瀑布模型的特點是:
階段是順序的、依存的,前壹階段結束後才能開始下壹階段的工作,前壹階段的輸出就是慷慨階段的輸入;推遲觀點的實現,盡可能推遲程序的物理實現;強調質量保證的觀點,每個階段必須完成指定的文檔,並在每個階段結束前完成文檔,以便盡快糾正錯誤。
優勢:
(1)原理簡單,容易掌握。
(2)質量管理各階段之間有驗證和確認環節。
(3)主要用於支持結構化方法。
缺點:
(1)缺乏靈活性,不能適應用戶不斷變化的需求。
(2)進化不足,回到下壹個發展層次是非常昂貴的。
(3)是線性的軟件開發模型,可追溯性差。
使用場合:
(1)適用於軟件需求比較明確或者很少變化的情況,開發人員可以壹次性得到所有需求。
(2)適用於開發技術成熟,項目管理嚴格的場合。
(3)壹般用於低風險項目,適合經驗豐富的開發人員。
2.快速原型模型
快速原型法是壹種可以在計算機中運行的快速建立的程序。它是軟件的早期可運行版本,其功能是最終產品的子集。主要目的是獲取用戶的真實需求。
優勢:
(1)增強了開發者與用戶的溝通,有助於滿足用戶的真實需求。
(2)用戶可以盡早得到有用的產品,盡早發現問題,隨時修正錯誤。
(3)降低技術和應用風險可以降低開發成本,縮短開發時間。
缺點:
(1)缺乏豐富強大的軟件工具和開發環境。
(2)對設計師和開發環境的要求更高。
(3)難以徹底測試和更新文檔。
適用場合:
(1)需求無法事先精確定義的軟件系統,或者需求多變的系統。
(二)開發商對設計方案沒有信心,或者對擬采用的技術手段不熟悉、不確定。
(3)原型模型可以作為壹個單獨的過程模型,它經常在其他過程模型中作為壹種方法或實現技術使用。
3.增量模型
增量模型,也叫增量模型,本質上是壹種分段線性模型,是壹種非整數開發模型。增量模型將軟件產品作為壹系列增量組件進行設計、編碼、集成和測試,在項目開發過程中以壹系列增量方式逐步開發系統。
優勢:
(1)軟件產品可以批量提交,方便用戶及時了解軟件開發進度,及早發現問題。
(2)組件化開發降低了軟件開發的風險。
(3)開發順序靈活,優先級最高的服務先交付。
缺點:
(1)由於整個軟件系統的需求沒有完整的定義,會給整體設計帶來麻煩。
(2)當每個新的增量組件集成到現有的軟件結構中時,不得破壞原始開發的產品。
(3)軟件架構必須是開放的,即向產品添加新組件的過程必須簡單方便。每個增量開發產品都應該是可測試和可擴展的。
適用場合:
(1)軟件產品可以批量交互。
(2)待開發的軟件系統可以模塊化。
(3)軟件開發人員對應用領域不熟悉,壹時難以開發軟件時。
(4)當項目經理對全局的把握水平較高時,
(5)軟件需求不準確,設計方案有壹定風險的項目。
4.噴泉模型
噴泉這個詞體現了叠代和無縫的特點。叠代是指在開發壹個軟件系統時,某些部分往往會重復多次,在每次叠代中向進化出來的系統中加入相關功能。
特點:
(1)各階段相互重疊,體現了軟件過程的並行性。
(2)基於分析,資源消耗呈塔形,分析階段消耗的資源最多。
(3)體現了軟件過程叠代的自然特性,從高級返回低級時沒有資源消耗。
(4)強調增量開發,基於壹點分析壹點設計的原則,不需要壹個階段就能完成。整個過程是壹個叠代、逐步細化的過程。
5.螺旋模型
螺旋模型是在瀑布模型和快速原型模型相結合的基礎上演化而來,並增加了風險分析。基本思想是使用原型和其他方法來最小化風險。
在螺旋模型中,軟件過程被表示為壹個螺旋,螺旋上的每個循環代表過程的壹個階段。整個過程的實現分以下四個步驟完成:
(1)指定計劃
(2)風險分析
(3)項目實施
(4)客戶評價
適用場合:
(1)適用於面向規範、面向過程和面向對象的軟件開發方法。
(2)也適用於幾種開發方法的組合以及由此產生的組合模型。
缺點:
(1)要求開發者具有豐富的風險評估經驗和專業知識。