1. 程式人生 > >軟體的生命週期和軟體開發模型

軟體的生命週期和軟體開發模型

一、軟體的生命週期

    軟體從最開始被開發直到最後被淘汰的過程稱為軟體的生命週期。關於軟體的生命週期的劃分標準不統一、名稱也各不相同,但大致都包含計劃、分析、設計、程式設計、測試和維護這幾個階段。

二、常見的軟體開發模型

1.瀑布模型

    開發過程完全按照軟體的生命週期各階段的順序,上一階段完成以後才能開始下一階段。

    優點:開發郭晨採用規範的方法;規定了各階段必須提交的文件;每個階段結束後進行嚴格的評審工作。

    缺點:過於理想化、不夠靈活、當用戶的需求發生變更時需付出高額的代價。

    適用範圍:使用者需求明確並無變更的小型系統的開發。

2.快速原型模型

    第一步是快速建立一個能夠反映使用者主要需求的軟體原型,讓使用者去使用,提出意見;然後開發人員參照使用者提出的而易見快速去修改原型,然後再次讓使用者試用……直到使用者認為這個原型系統能夠滿足其所有的需求,然後開發人員便可以根據該原型系統去完成需求文件,並利用文件去開發滿足使用者真實需求的軟體。

    適用範圍:需求不夠明確的專案。

3.演化模型

    也是原型開發模型的一種,但與快速原型模型不同。快速原型模型中原型的作用獲得使用者的真正需求,一旦需求確定,原型即被拋棄。而演化模型是從初始模型逐漸演化為最終軟體產品的漸進過程。快速原型模型是“拋棄式”的,演化模型是“漸進式”的。

4.增量模型

    也是原型開發模型的一種,與上面二者不同,增量模型是“遞增式”的。該模型將軟體劃分成為一系列的增量構件。分別進行設計、程式設計、整合和測試。每個構件有多個相互作用的模組構成,並且能夠完成特定的功能。該模型要求軟體體系結構必須是開放的,加入薪構件也是比較容易的。

5.螺旋模型

    結合瀑布和演化的優點,增加了風險分析。包含4個方面:制定計劃、風險分析、實施工程、客戶評估。

6.噴泉模型

    主要用於描述面向物件的開發過程。名稱體現了面向物件開發過程的迭代和無間隙特徵。無間隙表示開發過程不存在明顯的邊界,允許開發活動交叉、迭代進行。

7.基於構件的模型

    構件是功能相對獨立課重用的軟體單元。基於構件的模型是利用模組化方法,將整個系統模組化,服用構件庫中的構件,通過組合構造軟體的過程。軟體的開發不再一切從頭開始,開發過程即是構件的組裝,維護就是構件的升級、替換和擴充。

    優點:構件組裝導致了軟體的複用性,提高了開發的速率;允許多個專案同時開發,降低了費用,提高了可維護性。

    缺點:沒有通用的組裝標準;可重用性不易協調;構件庫的質量會直接影響軟體的質量。

8.快速應用開發模型(RAD)

    是瀑布模型的一個變種,強調極端的開發週期。通過大量使用可重複用的構建,來縮短開發時間。

9.統一過程方法(UP)

    是統一的軟體開發過程,是一個通用的過程框架,基於構件,使用統一的建模語言UML。

    三個特點:用例驅動、以基本架構為中心、迭代和增量。

    四個階段:初始階段、細化階段、構建階段和交付階段。四個階段是一個開發週期,每經過四個階段就會產生一代軟體,但每一次迭代的側重點都在不同的階段。

10.極限程式設計(XP)

    是敏捷方法中的一種。

    4大價值觀:溝通、簡單、反饋、勇氣

    5大原則:快速反饋、簡單性假設、逐步修改、提倡更改、優質工作