---
# System prepended metadata

title: 第二、三週
tags: [軟體工程]

---

---
tags: 軟體工程
title: 第二、三週
---
# Approaches(方法) to System Development
## Waterfall Model(早期)
![](https://i.imgur.com/P16zz89.png)
## Modified Waterfall with Overlapping Phases
![](https://i.imgur.com/Qh5Qshq.png)
>優點：每一階段任務定義明確，易進行專案管理
>缺點：耗時，且當客戶需求不明確時，或是客戶需求有變動時，改善成本很高，且瀑布式不適合大型專案開發
---
## A Generic(通用的) Adaptive Approach
![](https://i.imgur.com/NU36mbe.png)
- Six Core Processes go across iterations
- Multiple Iterations as required
## Agile Model
![](https://i.imgur.com/mqnGIn3.png)
> 優點：可以快速適應顧客需求變更、增加新功能快速、顧客反饋馬上執行於下次的 Sprint 中
> 缺點：文件不嚴謹、團隊對於 Agile 熟練度與執行度要很高
- <font color=red>Agile 不是快速的意思</font>，因為敏捷開發是結合 Iterative and incremental model，因此 Agile 具有快速迭代與快速衝刺( Sprint ) 的意思
> Sprint 短衝刺，通常週期為 1~4 weeks，每一個週期包含需求蒐集、設計、開發 Coding 與 測試 ( Testing )，也就是把瀑布式流程簡化，因應客戶突如其來的需求變化或是市場變更。
---
## Methodologies(方法論)
![](https://i.imgur.com/0r9jsF3.png)
- 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(領域)
	- ![](https://i.imgur.com/aa3fUb2.png)
- 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
	- ![](https://i.imgur.com/tJdFeZo.png)
- tools
	- Software applications that assists developers in creating models or other components required for a project 
---



