軟體工程–軟體過程模型

來源:互聯網
上載者:User
軟體工程--軟體過程模型

      軟體過程是為了獲得高品質軟體所需要完成的一系列任務的架構,它規定了完成各項任務的工作步驟。通常使用生命週期模型簡潔地描述軟體過程。生命週期模型規定了把生命週期劃分成哪些階段及各個階段的執行順序,因此,也稱為過程模型。常見的過程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型等。

1.瀑布模型

這個特點有兩重含義:

    1.必須等前一階段的工作完成之後,才能開始後一階段的工作;

    2.前一階段的輸出文檔就是後一階段的輸入文檔,因此,只有前一階段的輸出文檔正確,後一階段的工作才能獲得正確的結果。

瀑布模型每個階段都應堅持兩個重要做法:

    1.每個階段都必須完成規定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務。完整、準確的合格文檔是軟體開發時期各類人員之間相互連信的媒介,也是運行時期對軟體進行維護的重要依據。

    2.每個階段結束前都要對所完成的文檔進行評審,以便遲早發現問題,改正錯誤。事實上越是早期階段犯下的錯誤,暴露出來的時間就越晚,排除故障改正錯誤所需付出的代價也越高。因此,及時審查,是保證軟體品質,降低軟體成本的重要措施。

      可以說瀑布模型是由文檔驅動的。這個事實也是它的一個缺點,在可啟動並執行軟體產品交付給使用者之前,使用者只能通過文檔來瞭解產品是什麼樣的。瀑布模型曆史悠久、廣為人知的,它的優勢在於它是規範的、文檔驅動的方法;這種模型的問題是,最終開發出的產品可能並不是使用者真正需要的。

(1)傳統的瀑布模型:

(2)實際的瀑布模型:

2.快速原型模型

     所謂快速原型是快速建立起來的可以在電腦上啟動並執行程式,它所能完成的功能往往是最終產品能完成的功能的一個子集。快速原型的本質是“快速”,開發人員應該儘可能快地建造出原型系統,以加速軟體開發過程,節約軟體開發成本。原型的用作是獲知使用者的真正需求,一旦需求確定了,原型系統將被拋棄。

     快速原型模型正是為了克服瀑布模型的缺點而提出來的。它通過快速構建一個可在電腦上啟動並執行原型系統,讓使用者試用原型系統並收集使用者反饋意見的辦法,擷取使用者的真實需求。

3.增量模型

     增量模型也稱為漸增模型,使用增量模型開發軟體時,把軟體產品作為一系列的增量構件來設計、編碼、整合和測試。每個構件由多個相互作用的模組構成,並且能夠完成特定的功能。使用增量模型時,第一個增量構件往往實現軟體的基本需求,提供最核心的功能。

優點:

    1.能在較短的時間內向使用者提交可完成部分工作的產品。

    2.逐步增加產品功能可以使使用者有充裕的時間學習和適應新產品,從而減少一個全新的軟體可能給客戶組織帶來的衝擊。

     增量模型具有可在軟體開發的早期階段使投資獲得明顯回報和較易維護的優點,但是,要求軟體具有開放的結構是使用這種模型時固有的困難。

4.螺旋模型

     螺旋模型的基本思想就是,使用原型及其他方法來盡量降低風險。理解這種模型的一個簡便方法,是把它看作每個階段之前都增加了風險分析過程的快速原型模型。

     螺旋模型主要適用於內部開發的大規模軟體項目。如果進行風險分析的費用接近整個項目的經費預算,則風險分析是不可行的。事實上項目越大,風險也越大,因此進行風險分析的必要性也越大。此外只有內部開發的項目,才能在風險過大時方便中止項目。

     螺旋模型的主要優勢在於,它是風險驅動,但是,這也可能是它的一個弱點。除非軟體開發人員具有豐富的風險評估經驗和這方面的專門知識,否則將出現真正的風:當項目實際上正在走向災難時,開發人員可能還認為一切正常。

      風險驅動的螺旋模型適用於內部開發的大型軟體項目,但是,只有在開發人員具有風險分析和排除風險的經驗及專門知識時,使用這種模型才會獲得成功。

(1)簡化的螺旋模型

(2)完整的螺旋模型

4.噴泉模型

      噴泉模型對軟體複用和生存周期中多項開發活動的整合提供了支援,以物件導向的軟體開發方法為基礎,它適合物件導向的開發方法。它克服了瀑布模型不支援軟體重用和多項開發活動整合的局限性。噴泉模型使開發過程具有迭代性和無間隙性。系統某個部分常常重複工作多次,相關功能在每次迭代中隨之加入演化的系統。無間隙是指在分析、設計和實現等開發活動之間不存在明顯的邊界。

      按照在軟體生命週期過程中應完成的任務的性質,在概念上可以把軟體生命週期劃分成定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試以及運行維護等8個階段。實際從事軟體開發工作時,軟體規模、種類、開發環境及使用的技術方法等因素,都影響各階段的劃分。

      軟體過程是為了獲得高品質的軟體產品所需要完成的一系列任務的架構,它規定了完成各項任務的工作步驟。由於沒有適用所有軟體項目的任務集合,科學、有效軟體過程應該定義一組適合所承擔的項目特點的任務集合。通常使用軟體過程模型簡潔地描述軟體過程,它規定了把軟體生命週期劃分成的階段及各個階段的順序。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.