軟件開發模型有哪些,政府信息化項目經常使用哪一種模型,爲何?

  • 瀑布模型:瀑布模型將軟件生命週期分爲八個階段,包括問題定義、可行性研究、軟件需求分析、系統整體設計、詳細設計、編碼、測試和運行、維護。並規定了他們自上而下,相互銜接的固定次序,如同瀑布流水,逐級下落。
  • 瀑布模型的主要問題:

        l  各個階段劃分徹底固定,階段之間產生大量文檔,極大增長工做量。測試

        l  用戶只有等到整個線性過程的末期才能見到開發成果,從而增長開發風險。編碼

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

  • 增量模型:在增量模型中,軟件被做爲一系列增量構件來設計、實現、集成和測試。每個構件由多種相互做用模塊所造成的提供特定功能的代碼片斷構成。增量模型各個階段交付知足客戶需求的一個子集的可運行產品。在使用增量模型時,第一個增量實現基本需求的核心產品,交付用戶使用後,通過評價造成下一個增量的開發計劃,包括對核心產品的修改和一些新功能的發佈,這個過程在每一個增量發佈後不斷重複,直到產生最終的完善產品。
  • 增量模型的主要問題:

        l  各個構件逐步併入已有軟件體系結構中,所加入構件必須不破壞已構造好的系統部分,須要軟件具有開放式的體系結構。生命週期

        l  軟件開發過程當中,需求變化不可避免,該模型容易退化成邊作邊改,對整個軟件過程失去總體控制性。開發

  • 螺旋模型:採用一種週期性的方法來進行系統開發,在每一個項目階段使用瀑布模型法,每個週期都包括需求定義、風險分析、工程實現和評審四個階段。螺旋模型強調風險分析。
  • 優勢:

        l  設計靈活,能夠在項目各個階段進行變動。文檔

        l  以小分段構建大型系統,使成本計算簡單容易。原型

        l  客戶始終參與每一個階段,保證項目不偏離方向。產品

  • 缺點:

        l  建設週期長,軟件技術發展比較快,常常出現軟件開發完畢後,與當前技術水平差距大,沒法知足當前需求。基礎

  • 螺旋模型與增量模型的區別:

        l  螺旋模型事先定義大部分需求,開發過程當中計劃性強;增量模型事先定義少部分需求。軟件

        l  螺旋模型在開發週期內採用簡化瀑布模型或快速模型,而增量模型是先作整體需求分析和設計,再在編碼和測試中逐個增量開發。

        l  螺旋模型每次迭代都提交一個完整軟件版本,而增量開發每次在上次增量基礎上提交新的一部分軟件。

        l  增量模型經過避免使用未成熟技術和常常的用戶反饋等方法減小風險;螺旋模型中直接增長了風險分析,評價所選方案,識別和消除風險。

  • 如何選擇生命週期模型:

        l  在前期需求明確的狀況下儘可能採用瀑布模型或改進型的瀑布模型。

        l  在用戶無信息系統使用經驗,需求分析人員技能不足狀況下必定要藉助原型。

        l  在不肯定性因素不少,不少東西前面沒法計劃狀況下儘可能採用增量迭代和螺旋模型。

        l  在需求不穩定狀況下儘可能採用增量迭代模型。

        l  在資金和成本沒法一次到位狀況下能夠採用增量模型,軟件產品分多個版本進行發佈。

        l  對於徹底多個獨立功能開發能夠在需求階段就分功能並行,但每一個功能內都應該遵循瀑布模型。

        l  對於全新系統的開發必須在整體設計完成後再開始增量或並行。

        l  對於編碼人員經驗較少狀況下建議不要採用敏捷或迭代等生命週期模型。

        l  增量、迭代和原型能夠綜合使用,但每一次增量或迭代都必須有明確的交付和出口準則。

相關文章
相關標籤/搜索