![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwkzX39GZhh2csATMflHLwEzX4xSZz91ZsADMx8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnVGcq5CZhF2YzIWN5YTOyQTNzQWZwQmZzEDNilTZmhTO2QGO38CX4IzLcVDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.jpeg)
1、概念介紹
軟體生命周期模型是一個包含軟體産品開發、運作和維護中有關過程、活動和任務的架構,它覆寫了系統從需求定義到系統使用的結束階段。
特點:
描述了開發的主要階段
定義了每個階段需要完成的任務和過程
規範了每個階段的輸入輸出
提供了一個标準架構,可以把必要的活動映射到該架構中去。
2、項目生命周期模型分類
比較常用的有瀑布模型、演化模型、螺旋模型、噴泉模型。
2.1 瀑布模型(Waterfall Model)
瀑布模型将項目的生存周期各個活動規定為按照線性順序連接配接成若幹個階段的模型。包括需求分析、設計、編碼工作、測試、項目運維。依照由前至後、互相銜接的固定順序,類似瀑布流水,逐級下落。
适用範圍:文檔型為驅動、适合那些項目需求十分明确的軟體項目。
優點:
容易了解、管理成本較低、強調開發階段性早期計劃及需求調研和産品測試。
缺點:
客戶需要完整、準确的表達自己的需求
在開始的前三個階段很難評估真正的進度狀态
項目收尾階段可能會出現大量的內建測試工作
對項目的風險控制能力較弱
2.2 增量模型(Incremental Model)
增量模型融合了瀑布模型的基本成分和原型實作的疊代特征,它假設可以将需求分為一系列增量産品,每個增量可以分别開發。增量模型強調每一個增量都是一個可操作的階段産品。
優點:融合了瀑布模型的優點。另外還有以下幾個優點
第一個可傳遞版本所需的成本和時間很少
開發由增量表示小系統所承擔的風險會小很多
因為較快時間釋出了第一個版本,可以減少客戶對需求的變更。
運作增量投資,也就是項目開始時,可以僅對一個或兩個增量投入成本。
如果對客戶的變更要求規劃不得當,産生的初始增量可能會造成後來的增量不穩定
前期需求沒有思考全面可能會造成一些增量需要重新開發、釋出。
管理發生的成本、進度和配置的複雜性會增加項目的成本。
2.3、演化模型(Evonlutionary Model)
演化模型主要針對事先不能完整定義需求的項目開發,是在一個比較初期的原型基礎上,根據客戶在确認原型的過程中提出意見和建議,進而逐漸改進原型,直到客戶滿意。
任何功能一旦開發後,就可以進入測試環節,以便驗證是否符合産品需求,可以幫助引導出高品質的産品要求。
如果控制不當讓客戶接觸到開發當中不穩定的功能,可能會對客戶以及開發人員帶來負面影響。
2.4、螺旋模型(Spiral Model)
螺旋模型可以看作是瀑布模型和演化模型的結合體,并加入了風險分析。
螺旋周期:
制定計劃:确定項目的目标,標明實施方案,明确項目開發的限制條件。
風險分析:分析所選方案、識别風險、消除風險。
實施工程:開發階段、階段驗證産品的品質。
客戶評估:客戶評估開發産品的品質,提出改進建議,建立下一個周期的開發計劃。
螺旋模型強調風險分析、讓每個開發人員和客戶對每個演化層出現的風險有所了解,然後做出應有的反應。特别适合龐大、複雜且有高風險的項目。
優點:
支援客戶需求的動态變化,為客戶參與軟體開發的所有關鍵決策提供了友善,有助于提高軟體的适應能力。
也為項目經理及時調整管理決策提供了很好的支援,進而降低了軟體開發的風險。
需要開發人員具備相當豐富的風險評估經驗和專門知識
過多的疊代可能會增加開發成本、延遲傳遞時間。
2.5、噴泉模型(Water Foundtain Model)
噴泉模型以客戶需求為動力,以對象作為驅動模型,适合面向對象的開發方法。
噴泉模型各個階段沒有明顯的界限,開發人員可以同步進行,進而提高了軟體的開發效率。
噴泉模型各個開發階段是重疊的,開發過程會需要大量開發人員、不利于項目的管理。
IT技術分享社群
個人部落格網站:https://programmerblog.xyz
文章推薦程式員效率:畫流程圖常用的工具程式員效率:整理常用的線上筆記軟體遠端辦公:常用的遠端協助軟體,你都知道嗎?51單片機程式下載下傳、ISP及序列槽基礎知識硬體:斷路器、接觸器、繼電器基礎知識