軟體開發模型介紹(二)
1.螺旋模型
螺旋模型兼顧了快速原型的迭代的特徵以及瀑布模型的系統化與嚴格監控,引入了其他模型不具備的風險分析,使軟體在無法排除重大風險時有機會停止。該模型很大程度上是一種風險驅動的方法體系,因為在每次迭代前,都必須先進行風險評估,適合大型的昂貴的系統級的軟體應用。
圖中的四個象限代表了四個活動:
1)制定計劃:確定軟體目標,選定實施方案,弄清專案開發的限制條件;
2)風險分析:分析評估所選方案,考慮如何識別和消除風險;
3)實施工程:實施軟體開發和驗證;
4)客戶評估:評價開發工作,提出修正建議,制定下一步計劃;
螺旋模型的特點:
1)通過建立原型,使軟體開發在每次迭代時有明確的方向;
2)通過風險分析,最大程度地降低軟體徹底失敗造成損失的可能性;
3)在每個迭代階段植入軟體測試,使每個階段的質量得到保證;
4)每個迭代階段都累計開發成本,使支出成本容易掌握;
5)過分依賴風險分析經驗與技術,一旦風險分析過程中出現偏差將造成重大損失;
6)由於只適用大型軟體,過大的風險管理支出會影響客戶的最終收益;
2.快速應用開發模型(RAD)
快速應用開發模型是一個增量型的軟體開發過程模型,強調極短的開發週期,該模型是瀑布模型的一個“高速”變種,通過大量使用可複用構件,採用基於構件的建造方法。其流程從業務建模開始,隨後是資料建模、過程建模、應用生成、測試及反覆。
工作過程如圖所示:
1)業務建模
確定驅動業務過程運作的資訊,要生成的資訊、如何生成、資訊流的去向及其處理等,可以輔之以資料流圖;
2)資料建模
為支援業務過程的資料流查詢資料物件集合、定義資料物件屬性,並與其他資料物件的關係構成資料模型,可以輔之E-R圖;
3)過程建模
使資料物件在資訊流中完成各業務功能,建立過程以描述資料物件的增加、修改、刪除、查詢,即細化資料流圖中的處理框;
4)應用程式生成
寫出處理程式,重用已有構件或建立新的可重用構件,利用環境提供的工具自動生成以構造出整個的應用系統。
5)測試與交付
對新建立的構件進行測試。對於大量重用的構件,一般只做總體測試;
3.演化模型
使用迭代開發的方法,根據使用者的基本需求,通過快速分析構造出該軟體的一個初始執行版本,然後根據使用者使用該版本的過程中提出的意見和建議對該版本進行改進,獲得新版本,重複這一過程,最終獲得令使用者滿意的軟體產品。
軟體開發人員根據使用者的需求,先開發出核心系統,當該核心系統執行後,使用者試用,並突出精簡系統,增強系統的需求,開發人員根據使用者的反饋,實施開發的迭代過程。每一次迭代過程均由需求、設計、編碼、測試、整合等階段組成,該模型可以看作是重複執行的多個“瀑布模型”。
演變模型特點:
1)任何功能經過開發就能進入測試以驗證是否符合產品要求;
2)在早期獲得專案程序資料,對後續的開發迴圈作出切實的估算,便於風險管理;
3)開發過程中的經驗教訓能應用於本產品的下一個迴圈過程,大大提高質量與效率;
4)使用者可以在新的一批功能開發測試後,立即參加驗證,提供非常有價值的反饋;