1. 程式人生 > 實用技巧 >常見軟體開發模型及其優缺點

常見軟體開發模型及其優缺點

>>> hot3.png

典型的開發模型有:

1. 邊做邊改模型(Build-and-Fix Model);

這是一種類似作坊的開發方式,對編寫幾百行的小程式來說還不錯,但這種方法對任何規模的開發來說都是不能令人滿意的,其主要問題在於:

(1) 缺少規劃和設計環節,軟體的結構隨著不斷的修改越來越糟,導致無法繼續修改;

(2) 忽略需求環節,給軟體開發帶來很大的風險;

(3) 沒有考慮測試和程式的可維護性,也沒有任何文件,軟體的維護十分困難。

2. 瀑布模型(Waterfall Model);

瀑布模型強調文件的作用,並要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現代的軟體開發模式,幾乎被業界拋棄,其主要問題在於:

(1) 各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量;

(2) 由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;

(3) 早期的錯誤可能要等到開發後期的測試階段才能發現,進而帶來嚴重的後果。

3. 快速原型模型(Rapid Prototype Model);


快速原型模型的第一步是建造一個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。 快速原型通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。顯然,快速原型方法可以克服瀑布模型的缺點,減少由於軟體需求不明確帶來的開發風險,具有顯著的效果。快速原型的關鍵在於儘可能快速地建造出軟體原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統的內部結構並不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。

4. 增量模型(Incremental Model)(演化模型(incremental model));


整個產品被分解成若干個構件,開發人員逐個構件地交付產品,這樣做的好處是軟體開發可以較好地適應變化,客戶可以不斷地看到所開發的軟體,從而降低開發風險。但是,增量模型也存在以下缺陷:(1) 由於各個構件是逐漸併入已有的軟體體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體系結構。(2) 在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。

5.螺旋模型(Spiral Model);


它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。

螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:

(1) 制定計劃:確定軟體目標,選定實施方案,弄清專案開發的限制條件;

(2) 風險分析:分析評估所選方案,考慮如何識別和消除風險;

(3) 實施工程:實施軟體開發和驗證;

(4) 客戶評估:評價開發工作,提出修正建議,制定下一步計劃。

螺旋模型由風險驅動,強調可選方案和約束條件從而支援軟體的重用,有助於將軟體質量作為特殊目標融入產品開發之中。但是,螺旋模型也有一定的限制條件,具體如下:

(1) 螺旋模型強調風險分析,但要求許多客戶接受和相信這種分析,並做出相關反應是不容易的,因此,這種模型往往適應於內部的大規模軟體開發。

(2) 如果執行風險分析將大大影響專案的利潤,那麼進行風險分析毫無意義,因此,螺旋模型只適合於大規模軟體專案。

(3) 軟體開發人員應該擅長尋找可能的風險,準確地分析風險,否則將會帶來更大的風險

6.噴泉模型(fountain model);


(也稱面向物件的生存期模型, OO模型) 噴泉模型與傳統的結構化生存期比較,具有更多的增量和迭代性質,生存期的各個階段可以相互重疊和多次反覆,而且在專案的整個生存期中還可以嵌入子生存期。

7.智慧模型(四代技術(4GL));


智慧模型擁有一組工具(如資料查詢、報表生成、資料處理、螢幕定義、程式碼生成、高層圖形功能及電子表格等),每個工具都能使開發人員在高層次上定義軟體的某些特性,並把開發人員定義的這些軟體自動地生成為原始碼。

這種方法需要四代語言(4GL)的支援。4GL不同於三代語言,其主要特徵是使用者介面極端友好,即使沒有受過訓練的非專業程式設計師,也能用它編寫程式;它是一種宣告式、互動式和非過程性程式語言。4GL還具有高效的程式程式碼、智慧預設假設、完備的資料庫和應用程式生成器。目前市場上流行的4GL(如Foxpro等)都不同程度地具有上述特徵。但4GL目前主要限於事務資訊系統的中、小型應用程式的開發。

8.混合模型(hybrid model)

過程開發模型又叫混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個專案能沿著最有效的路徑發展,這就是過程開發模型(或混合模型)。

各種模型的優點和缺點

瀑布模型 文件驅動 系統可能不滿足客戶的需求 快速原型模型 關注滿足客戶需求 可能導致 系統設計差、效率低,難於維護 增量模型 開發早期反饋及時,易於維護 需要開放式體系結構,可能會設計差、效率低 螺旋模型 風險驅動 風險分析人員需要有經驗且經過充分訓練

轉載於:https://my.oschina.net/xyxlxd/blog/10147