螺旋模型
螺旋模型(英語:Spiral model),是系統發展生命周期的模型。它兼顧了快速原型的迭代的特徵以及瀑布模型的系統化與嚴格監視。螺旋模型最大的特點在於引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以減小損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑。螺旋模型更適合大型的昂貴的系統級的軟件應用。
歷史
編輯螺旋模型由美國軟件工程師巴里·勃姆於1988年5月在他的文章《一種螺旋式的軟件開發與強化模型》[1]提出。事實上,螺旋模型並不是第一個討論迭代過程的模型。而它卻是第一個解釋迭代的重要作用的模型。
步驟
編輯一個典型的螺旋模型應該由以下的步驟構成:
- 明確本迭代階段的目標、備選方案以及應用備選方案的限制;
- 對備選方案進行評估,明確並解決存在的風險,建立原型;
- 當風險得到很好的分析與解決後,應用瀑布模型進行本階段的開發與測試;
- 對下一階段進行計劃與部署;
- 與客戶一起對本階段進行評審;
優勢
編輯- 通過原型的建立,使軟件開發在每個迭代的最初明確方向;
- 通過風險分析,最大程度地降低軟件徹底失敗造成損失的可能性;
- 在每個迭代階段植入軟件測試,使每個階段的質素得到保證;
- 整體過程具備很高的靈活性,在開發過程的任何階段自由應對變化;
- 每個迭代階段累計開發成本,使支出狀況容易掌握;
- 通過對用戶反饋的採集,與用戶溝通,以保證用戶需求的最大實現;
缺陷
編輯- 過分依賴風險分析經驗與技術,一旦在風險分析過程中出現偏差將造成重大損失;
- 過於靈活的開發過程不利於已經簽署合同的客戶與開發者之間的協調;
- 由於只適用大型軟件,過大的風險管理支出會影響客戶的最終收益;
參見
編輯相關文獻
編輯- ^ 《一种螺旋式的软件开发与强化模型》(英文原文) (PDF). [2009-10-07]. (原始內容 (PDF)存檔於2009-10-07).