? ? ? ? ? ? ?
?
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及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識
?