---
tags: 軟體工程
title: 第二、三週
---
# Approaches(方法) to System Development
## Waterfall Model(早期)

## Modified Waterfall with Overlapping Phases

>優點:每一階段任務定義明確,易進行專案管理
>缺點:耗時,且當客戶需求不明確時,或是客戶需求有變動時,改善成本很高,且瀑布式不適合大型專案開發
---
## A Generic(通用的) Adaptive Approach

- Six Core Processes go across iterations
- Multiple Iterations as required
## Agile Model

> 優點:可以快速適應顧客需求變更、增加新功能快速、顧客反饋馬上執行於下次的 Sprint 中
> 缺點:文件不嚴謹、團隊對於 Agile 熟練度與執行度要很高
- <font color=red>Agile 不是快速的意思</font>,因為敏捷開發是結合 Iterative and incremental model,因此 Agile 具有快速迭代與快速衝刺( Sprint ) 的意思
> Sprint 短衝刺,通常週期為 1~4 weeks,每一個週期包含需求蒐集、設計、開發 Coding 與 測試 ( Testing ),也就是把瀑布式流程簡化,因應客戶突如其來的需求變化或是市場變更。
---
## Methodologies(方法論)

- techniques(技術)
- A collection of guidelines(指引) that help an analyst(分析師) complete an activity or task
- Learning techniques is the key to having expertise(專業知識) in a field(領域)
- 
- models
- 能提綱挈領的表示法
- 用一個角度(觀點)把重點講出來
- An abstraction of an important aspect of the real world.
- Makes it possible to understand a complex concept by focusing only on a relevant part
- Each model shows a different aspect of the concept
- Crucial for communicating project information
- 
- tools
- Software applications that assists developers in creating models or other components required for a project
---