软件工程--螺旋模型详解
螺旋模型
軟件開發幾乎總要冒一定風險,例如,產品交付給用戶之后用戶可能不滿意,到了預訂的交付日期軟件可能還未開發出來,實際的開發成本可能超過預算,產品完成前一些關鍵的開發人員可能“跳槽”了,產品投入市場之前競爭對手發布了一個功能相近、價格更低的軟件等。軟件風險是任何軟件開發項目中都普遍存在的實際問題,項目越大,軟件越復雜,承擔該項目所冒的風險也越大。軟件風險可能在不同程度上損害軟件開發過程和軟件產品質量。因此,在軟件開發過程中必須及時識別和分析風險,并且采取適當措施以消除或減少風險的危害。
構件原型是一種能使某些類型風險降至最低的方法。為了降低交付給用戶的產品不能滿足用戶需要的風險,一種行之有效的方法是在需求分析階段快速構建一個原型。在后續的階段中也可以通過構造適當的原型來降低某些技術風險。當然,原型并不能“包治百病”,對于某些類型的風險(例如,聘請不到需要的專業人員或關鍵的技術人員在項目完成前“跳槽”),原型方法是無能為力的。
**螺旋模型的基本思想是:**使用原型及其他方法來盡量降低風險。理解這種模型的一個簡便方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型,如下圖所示:
完整的螺旋模型如下圖:
圖中帶箭頭的點劃線的長度代表當前累計的開發費用,螺旋線的角度值代表開發進度。螺旋線每個周期對應于一個開發階段。每個階段開始時(左上象限)的任務是,確定該階段的目標、為完成這些目標選擇方案及設定這些方案的約束條件。接下來的任務是,從風險角度分析上一步的工作結果,努力排除各種潛在的風險,通常用建造原型的方法來排除風險。如果風險不能排除,則停止開發工作或大幅度地削減項目規模。如果成功地排除了所有風險,則啟動下一個開發步驟(右下象限),在這個步驟的工作過程相當于純粹的瀑布模型。最后是評價該階段的工作成果并計劃下一個階段的工作。
**螺旋模型有許多優點:**對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發的一個重要目標;減少了過多測試(浪費資金)或測試不足(產品故障多)所帶來的風險;更重要的是,在螺旋模型中維護只是模型的另一個周期,在維護和開發之間并沒有本質區別。
螺旋模型主要適用于內部開發的大規模軟件項目。 如果進行風險分析的費用接近整個項目的經費預算,則風險分析是不可行的。事實上,項目越大,風險也越大,因此,進行風險分析的必要性也越大。此外,只有內部開發的項目,才能在風險過大時方便地中止項目。
螺旋模型的主要優勢在于: 它是風險驅動的,但是,這也可能是它的一個弱點。除非軟件開發人員具有豐富的風險評估經驗和這方面專門的知識,否則將出現真正的風險;當項目實際正在走向災難時,開發人員可能還認為一切正常。
總結
以上是生活随笔為你收集整理的软件工程--螺旋模型详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么一个字节定义成8位?
- 下一篇: 你可能对电灯泡一无所知