螺旋模型是快速原型法以進化的開發方式為中心,在每個項目階段使用瀑布模型法。這種模型的每一個周期都包括需求定義、風險分析、工程實現和評審4個階段,由這4個階段進行迭代。螺旋模型即是一種引入了風險分析與規避機制的過程模型,是瀑布模型、快速原型方法和風險分析方法的有機結合。螺旋模型最大的特點在於引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以減小損失。
螺旋模型
螺旋模型沿着螺線進行若干次迭代,圖中的四個象限代表了以下活動: (參考文章)
(1)制定計划:確定軟件目標,選定實施方案,弄清項目開發的限制條件;
(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;
(3)實施工程:實施軟件開發和驗證;
(4)客戶評估:評價開發工作,提出修正建議,制定下一步計划。
每輪循環包含如下六個步驟:
1. 確定目標,可選項,以及強制條件。
2. 識別並化解風險。
3. 評估可選項。
4. 開發並測試當前階段。
5. 規划下一階段。
6. 確定進入下一階段的方法步驟。
螺旋模型強調風險分析,使得開發人員和用戶對每個演化層出現的風險有所了解,繼而做出應有的反應,因此特別適用於龐大、復雜並具有高風險的系統。
螺旋模型允許並鼓勵用戶反饋信息,在項目早期就消除嚴重的曲解,開發首先關注重要的業務和問題,通過測試和質量保證,作出客觀的評估,在項目早期就發現不一致問題,從第一次迭代就開始測試,在早期就找出並關注風險。
優點
1)設計上的靈活性,可以在項目的各個階段進行變更。
2)以小的分段來構建大型系統,使成本計算變得簡單容易。
3)客戶參與每個階段的開發,保證了項目不偏離正確方向及項目的可控性。
4)客戶始終掌握項目的最新信息, 能夠和管理層有效地交互。
5)客戶認可這種公司內部的開發方式帶來的良好的溝通和高質量的產品。
缺點
1)很難讓用戶確信這種演化方法的結果是可以控制的。
2)建設周期長,而軟件技術發展比較快,所以經常出現軟件開發完畢后,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。