標籤:
軟體開發模型對比
軟體開發模型(Software Development Model)是指軟體開發全部過程、活動和任務的結構架構。軟體開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。
軟體開發模型能清晰、直觀地表達軟體開發全過程,明確規定了要完成的主要活動和任務,用來作為軟體項目工作的基礎
下面對瀑布模型 增量模型 快速原型模型 螺旋模型 噴泉模型做簡要分析。
1.瀑布模型
瀑布模型是經典的軟體開發模型,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,因此,如果有資訊未被覆蓋或者發現了問題,那麼最好 “返回”上一個階段並進行適當的修改,項目開發進程從一個階段“流動”到下一個階段,每個階段之間的依賴性強 優點:1)為項目提供了按階段劃分的檢查點 2) 當前一階段完成後,只需要去關注後續階段 缺點:1) 各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量;
2) 與使用者見面晚,從而增加了開發的風險;
3) 早期的錯誤可能要等到開發後期的測試階段才能發現,發現問題越晚代價越高 適用範圍:需求很明確的軟體開發項目; 在開發時間內需求沒有或很少變化; 分析設計人員應對應用領域很熟悉; 低風險項目(對目標、環境很熟悉); 使用者使用環境很穩定; 使用者除提出需求以外,很少參與開發工作2.增量模型 增量模型是一種非整體開發的模型,分為兩種形式:基於瀑布模型的漸增模型;基於原型的快速原型模型 增量模型的優點:人員分配靈活,剛開始不用投入大量人力資源。如果核心產品很受歡迎,則可增加人力實現下一個增量客戶可以不斷地看到所開發的軟體,從而降低開發風險 缺點: 1) 由於各個構件是逐漸併入已有的軟體體繫結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體繫結構。
2) 在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。 快速原型模型又稱原型模型,它是增量模型的另一種形式;它是在開發真實系統之前,構造一個原型,在該原型的基礎上,逐漸完成整個系統的開發工作。快速原型模型的第一步是建造一個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。 優點:減少由於軟體需求不明確帶來的開發風險。 缺點:所選用的開發技術和工具不一定符合主流的發展;快速建立起來的系統結構加上連續的修改可能會導致產品品質低下。 3.螺旋模型
螺旋模型將瀑布模型和增量模型結合起來,並加入了風險分析,主要分為四個工作步驟: (1)制定計劃:確定軟體目標,選定實施方案,弄清項目開發的限制條件;
(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;
(3)實施工程:實施軟體開發和驗證;
(4)客戶評估:評價開發工作,提出修正建議,制定下一步計劃。 優點:1)設計上的靈活性,可以在項目的各個階段進行變更。
2)以小的分段來構建大型系統,使成本計算變得簡單容易。
3)客戶始終參與每個階段的開發,保證了項目不偏離正確方向以及項目的可控性。
4)隨著項目推進,客戶始終掌握項目的最新資訊 , 從而他或她能夠和管理層有效地互動。
5)客戶認可這種公司內部的開發方式帶來的良好的溝通和高品質的產品 缺點:1)採用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的項目開發中,如果未能夠及時標識風險,勢必造成重大損失。
2)過多的迭代次數會增加開發成本,延遲提交時間。 4.噴泉模型
噴泉模型是一種以使用者需求為動力,以對象為驅動的模型,主要用於描述物件導向的軟體開發過程。
優點:該模型的各個階段沒有明顯的界限,開發人員可以同步進行開發。其優點是可以提高軟體項目開發效率,節省開發時間,適應於物件導向的軟體開發過程。
缺點:由於噴泉模型在各個開發階段是重疊的,因此在開發過程中需要大量的開發人員,因此不利於項目的管理。此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種資訊、需求與資料的情況。
軟體開發模型對比