簡介
螺鏇模型(Spiral Model)採用一種周期性的方法來進行系統開發。這會導致開發出眾多的中間版本。使用它,項目經理在早期就能夠為客戶實證某些概念。該模型是快速原型法,以進化的開發方式為中心,在每個項目階段使用瀑布模型法。這種模型的每一個周期都包括需求定義、風險分析、工程實現和評審4個階段,由這4個階段進行疊代。軟體開發過程每疊代一次,軟體開發又前進一個層次。採用螺鏇模型的軟體過程如下圖所示::
螺鏇模型基本做法是在“瀑布模型”的每一個開發階段前引入一個非常嚴格的風險識別、風險分析和風險控制,它把軟體項目分解成一個個小項目。每個小項目都標識一個或多個主要風險,直到所有的主要風險因素都被確定。
螺鏇模型強調風險分析,使得開發人員和用戶對每個演化層出現的風險有所了解,繼而做出應有的反應,因此特別適用於龐大、複雜並具有高風險的系統。對於這些系統,風險是軟體開發不可忽視且潛在的不利因素,它可能在不同程度上損害軟體開發過程,影響軟體產品的質量。減小軟體風險的目標是在造成危害之前,及時對風險進行識別及分析,決定採取何種對策,進而消除或減少風險的損害。
四種象限
螺鏇模型沿著螺線進行若干次疊代,圖中的四個象限代表了以下活動:
(1)制定計畫:確定軟體目標,選定實施方案,弄清項目開發的限制條件;
(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;
(3)實施工程:實施軟體開發和驗證;
(4)客戶評估:評價開發工作,提出修正建議,制定下一步計畫。
螺鏇模型由風險驅動,強調可選方案和約束條件從而支持軟體的重用,有助於將軟體質量作為特殊目標融入產品開發之中。
常見問題
螺鏇模型很大程度上是一種風險驅動的方法體系,因為在每個階段之前及經常發生的循環之前,都必須首先進行風險評估。在實踐中,螺鏇法技術和流程變得更為簡單。疊代方法體系更傾向於按照開發/設計人員的方式工作,而不是項目經理的方式。螺鏇模型中存在眾多變數,並且在將來會有更大幅度的增長,該方法體系正良好運作著。下表是螺鏇法能夠解決的各種問題:
經常遇到的問題 | 螺鏇模型的解決方案 |
用戶需求不夠充分 | 允許並鼓勵用戶反饋信息 |
溝通不明 | 在項目早期就消除嚴重的曲解 |
剛性的體系(Overwhelming architectures) | 開發首先關注重要的業務和問題 |
主觀臆斷 | 通過測試和質量保證,作出客觀的評估 |
潛在的不一致 | 在項目早期就發現不一致問題 |
糟糕的測試和質量保證 | 從第一次疊代就開始測試 |
採用瀑布法開發 | 在早期就找出並關注風險 |
優缺點
優點
1)設計上的靈活性,可以在項目的各個階段進行變更。
2)以小的分段來構建大型系統,使成本計算變得簡單容易。
3)客戶始終參與每個階段的開發,保證了項目不偏離正確方向以及項目的可控性。
4)隨著項目推進,客戶始終掌握項目的最新信息 , 從而他或她能夠和管理層有效地互動。
5)客戶認可這種公司內部的開發方式帶來的良好的溝通和高質量的產品。
缺點
很難讓用戶確信這種演化方法的結果是可以控制的。建設周期長,而軟體技術發展比較快,所以經常出現軟體開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。
螺鏇模型的項目適用:
對於新近開發,需求不明確的情況下,適合用螺鏇模型進行開發,便於風險控制和需求變更!
核心
“螺鏇模型”剛開始規模很小,當項目被定義得更好、更穩定時,逐漸展開。
“螺鏇模型”的核心就在於您不需要在剛開始的時候就把所有事情都定義的清清楚楚。您輕鬆上陣,定義最重要的功能,實現它,然後聽取客戶的意見,之後再進入到下一個階段。如此不斷輪迴重複,直到得到您滿意的最終產品。
每輪循環包含如下六個步驟:
1. 確定目標,可選項,以及強制條件。
2. 識別並化解風險。
3. 評估可選項。
4. 開發並測試當前階段。
5. 規劃下一階段。
6. 確定進入下一階段的方法步驟。