瀑布模型
特點
- 嚴格區分階段,每個階段因果關系緊密相連
- 只適合需求明確的項目
缺點 - 軟件需求完整性、正確性難確定
- 嚴格串行化,很長時間才能看到結果
- 瀑布模型要求每個階段一次性完全解決該階段工作,這不現實。
原型模型
適合需求不明確的項目
原型模型兩個階段:
1、原型開發階段
2、目標軟件開發階段
【拋棄型原型】與【演化型原型】
原型以及相關模型
優點
1.有助于啟發和驗證系統需求。
缺點
1.原型開發會忽略掉非功能性要求 ,如性能、安全性、可靠性等;
2.開發過程的快速更改意味著沒有文檔,唯一的設計描述是原型的代碼,這不利于長期的維護。
適用范圍
1.需求模糊。
2.開發人員對算法效率、操作系統的兼容性,人機交互形式等情況不明確。
V模型
V模型(V-model),瀑布模型的一個變體,強調在各個階段進行測試和驗證,以提升軟件質量。
優缺點
V模型是瀑布模型的一種加強,可以提升軟件質量,但也更消耗人力和時間。
迭代與增量
增量開發:增量開發是將整個系統劃分為若干個功能模塊或子系統,然后按照順序逐步構建和交付。每個增量都是一個完整的、可運行的系統部分,能夠獨立地提供部分功能。隨著項目的進行,不斷地添加新的增量,逐步完善系統。典型的增量開發方法有原型法和螺旋法。優點包括有助于降低風險、提高客戶滿意度、更快地交付部分功能等。
迭代開發:迭代開發是將整個項目周期劃分為若干個迭代周期,每個迭代周期都包含需求分析、設計、開發、測試和部署等階段,但只完成部分功能或特性的開發。在每個迭代周期結束時,都會交付一個可用的軟件版本,即使是最初的版本也具有基本的功能。然后,在接下來的迭代中逐步添加新的功能和改進。典型的迭代開發方法有敏捷開發和Scrum等。優點包括能夠快速響應變化、更好地控制項目進度和質量、更頻繁地與客戶溝通等
螺旋模型
螺旋模型是一種風險驅動型的過程模型。采用循環的方式逐步加深系統定義和實現的深度,同時降低風險。
以快速原型為基礎+瀑布模型
考慮了風險問題
優點
實現風險管理,降低變更風險
確定一系列里程碑,確保利益相關者都能支持。
缺點
很難說服客戶以合同形式合作。
依賴大量風險評估專家及風險評估工作。
適用范圍
開發大型系統和軟件。
預期存在較大風險的項目。
構建組裝模型
【優點】易擴展、易重用、降低成本、安排任務更靈活。
【缺點】構件設計要求經驗豐富的架構師、設計不好的構件難重用、強調重用可能犧牲其它指標(如性能)第三方構件質量難控制。
【示例】
方艙醫院
樂高積木