瀑布模型的優點:有利於大型軟體開發過程中人員的組織、管理,有利於軟體開發方法和工具的研究,從而提高了大型軟體專案開發的質量和效率。
瀑布模型的缺點:(1)開發過程一般不能逆轉,否則代價太大;(2)實際的專案開發很難嚴格按該模型進行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。(4)軟體的實際情況必須到專案開發的後期客戶才能看到,這要求客戶有足夠的耐心。
瀑布模型的使用範圍:(1)使用者的需求非常清楚全面,且在開發過程中沒有或很少變化;(2)開發人員對軟體的應用領域很熟悉;(3)使用者的使用環境非常穩定;(4)開發工作對使用者參與的要求很低。
快速原型模型的優點:(1)可以得到比較良好的需求定義,容易適應需求的變化;(2)有利於開發與培訓的同步;(3)開發費用低、開發週期短且對使用者更友好。
快速原型模型的缺點:(1)客戶與開發者對原型理解不同;(2) 準確的原型設計比較困難;(3) 不利於開發人員的創新。
快速原型模型的使用範圍:(1)對所開發的領域比較熟悉而且有快速的原型開發工具;(2)專案招投標時,可以以原型模型作為軟體的開發模型;(3)進行產品移植或升級時,或對已有產品原型進行客戶化工作時,原型模型是非常適合的。
增量模型的缺點:(1)並行開發構件有可能遇到不能整合的風險,軟體必須具備開放式的體系結構;(2)增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。
增量模型的使用範圍:(1)進行已有產品升級或新版本開發,增量模型是非常適合的;(2)對完成期限嚴格要求的產品,可以使用增量模型;(3)對所開發的領域比較熟悉而且已有原型系統,增量模型也是非常適合的。
螺旋模型的優點:(1)設計上的靈活性,可以在專案的各個階段進行變更;(2)以小的分段來構建大型系統,使成本計算變得簡單容易;(3)客戶始終參與每個階段的開發,保證了專案不偏離正確方向以及專案的可控性;(4) 隨著專案推進,客戶始終掌握專案的最新資訊 , 從而他或她能夠和管理層有效地互動。
螺旋模型的缺點:(1)採用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的專案開發中,如果未能夠及時標識風險,勢必造成重大損失;(2)過多的迭代次數會增加開發成本,延遲提交時間。
螺旋模型的使用範圍:螺旋模型只適合於大規模的軟體專案。
瀑布模型的優點:有利於大型軟體開發過程中人員的組織、管理,有利於軟體開發方法和工具的研究,從而提高了大型軟體專案開發的質量和效率。
瀑布模型的缺點:(1)開發過程一般不能逆轉,否則代價太大;(2)實際的專案開發很難嚴格按該模型進行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。(4)軟體的實際情況必須到專案開發的後期客戶才能看到,這要求客戶有足夠的耐心。
瀑布模型的使用範圍:(1)使用者的需求非常清楚全面,且在開發過程中沒有或很少變化;(2)開發人員對軟體的應用領域很熟悉;(3)使用者的使用環境非常穩定;(4)開發工作對使用者參與的要求很低。
快速原型模型的優點:(1)可以得到比較良好的需求定義,容易適應需求的變化;(2)有利於開發與培訓的同步;(3)開發費用低、開發週期短且對使用者更友好。
快速原型模型的缺點:(1)客戶與開發者對原型理解不同;(2) 準確的原型設計比較困難;(3) 不利於開發人員的創新。
快速原型模型的使用範圍:(1)對所開發的領域比較熟悉而且有快速的原型開發工具;(2)專案招投標時,可以以原型模型作為軟體的開發模型;(3)進行產品移植或升級時,或對已有產品原型進行客戶化工作時,原型模型是非常適合的。
增量模型的缺點:(1)並行開發構件有可能遇到不能整合的風險,軟體必須具備開放式的體系結構;(2)增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。
增量模型的使用範圍:(1)進行已有產品升級或新版本開發,增量模型是非常適合的;(2)對完成期限嚴格要求的產品,可以使用增量模型;(3)對所開發的領域比較熟悉而且已有原型系統,增量模型也是非常適合的。
螺旋模型的優點:(1)設計上的靈活性,可以在專案的各個階段進行變更;(2)以小的分段來構建大型系統,使成本計算變得簡單容易;(3)客戶始終參與每個階段的開發,保證了專案不偏離正確方向以及專案的可控性;(4) 隨著專案推進,客戶始終掌握專案的最新資訊 , 從而他或她能夠和管理層有效地互動。
螺旋模型的缺點:(1)採用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的專案開發中,如果未能夠及時標識風險,勢必造成重大損失;(2)過多的迭代次數會增加開發成本,延遲提交時間。
螺旋模型的使用範圍:螺旋模型只適合於大規模的軟體專案。