--- 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 ---