瀑布模型
1970年溫斯頓·羅伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被廣泛採用的軟體開發模型。
瀑布模型將軟體生命週期劃分為制定計劃、需求分析、軟體設計、程式編寫、軟體測試和運行維護等六個基本活動,並且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
優點:
- 為項目提供了按階段劃分的檢查點
- 當前一階段完成後,您只需要去關注後續階段
- 可在迭代模型中應用瀑布模型
缺點:
- 在項目各個階段之間極少有反饋。也正因為此,每個階段都產生大量文檔,增加了工作量
- 只有在專案生命週期的後期才能看到結果。增加了開發的風險
- 通過過多的強制完成日期和裡程碑來跟蹤各個項目階段
使用範圍:
需求明確且不易變更的軟體系統。(對於經常變化的項目而言,瀑布模型毫無價值)
增量模型
將產品的功能劃分為許多增量。第1個增量往往是核心的產品,即第1個增量實現了基本的需求,但很多補充的特徵還沒有發布。客戶對每一個增量的使用和評估都作為下一個增量發布的新特徵和功能,這個過程在每一個增量發布後不斷重複,直到產生了最終的完善產品。
使用範圍:
技術風險較大、使用者需求較為穩定的軟體系統
迭代模型
迭代模式和增量模式差不多。他們的異同的如下:
他們的共同點是,通過若干個階段的開發,完成整個軟體,每階段完成之後,都有一個新版本發布。至於不同點,主要是階段的劃分上不太一樣。增量模型是從功能量上來劃分的,每階段完成一定的功能。迭代模型是從深度或細化的程度來劃分的,每階段功能得到完善、增強。
快速原型模型
由於種種原因,在需求分析階段得到完全、一致、準確、合理的需求說明是很困難的,所以先構造一個原型。快速原型模型的第一步是建造一個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。
使用範圍:
需求複雜、難以確定、動態變化的軟體系統。並且要對開發領域比較熟悉,有原型開發工具
螺旋模型
強調風險分析,使得開發人員和使用者對每個演化層出現的風險有所瞭解,繼而做出應有的反應,因此特別適用於龐大、複雜並具有高風險的系統。對於這些系統,風險是開發不可忽視且潛在的不利因素,它可能在不同程度上損害軟體開發過程,影響軟體產品的品質。減小風險的目標是在造成危害之前,及時對風險進行識別及分析,決定採取何種對策,進而消除或減少風險的損害。
螺旋模式有四個階段:制定計劃,風險分析,實施工程,客戶評估。這四個階段分別處於座標系的四個象限(如:)
螺旋模式沿著四個象限迴圈,就像螺旋狀。所以叫螺旋模式
使用範圍:
需求難以擷取和確定、軟體開發風險較大的軟體系統
另外,關於軟體開發模型的更詳細內容可以參考http://wiki.mbalib.com/wiki/%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B