周期和階段
從管理的角度,即從業務和經濟的角度來看,軟件的生命周期包括四個主要階段
[1] :
-
起始階段(Inception)-- 有一個好的想法:具體構想出終于產品的設想和它的業務案例,確定項目的范圍 。
-
細化階段(Elaboration)--計劃必要的活動和所需資源,具體確定功能并設計構架 。
-
構建階段(Construction)-- 構建產品, 發展最初的設想、構架和計劃,直到一個能夠交付給用戶的產品(完畢后的設想)完畢。
-
移交階段(Transition)-- 將產品移交用戶使用,包含:制造、交付、培訓、支持、維護,直到用戶愜意。
完畢這4個階段稱為一個開發周期,它產生的軟件稱作第一代(generation)。 除非產品的生命結束, 一個現有產品能夠通過反復下一個同樣的起始、細化、構建和移交四階段,各個階段的側重點與第一次不同,從而演進為下一代產品。 這個時期我們稱之為演進(evolution)。最后伴隨著產品經過幾個周期的演進,新一代產品也不斷被制造出來。比如,演進周期的啟動可能由下面這幾項觸發:用戶建議增強功能、用戶環境的改變、重要技術的變更,以及應對競爭的需要。
實際中,周期之間會有輕微重疊:起始階段和細化階段可能會在上一個周期的移交階段未結束時就開始了。
迭代
從技術的角度來 看,軟件開發能夠視為一連串的迭代過程,通過這些迭代被開發的軟件得以增量演進。 每次迭代都以一個可運行的產品的公布而結束, 該產品可能是完整版本號的一個子集,但從project的或用戶的角度來看是實用的。 每次公布都伴隨一些支持性工件:版本號描寫敘述、用戶文檔和計劃等。
一次迭代包含下面活動: 計劃、分析、設計、實施和測試。 依據迭代在開發周期中所處位置的不同,這些活動分別占不同的比例。
管理角度和技術角度之間是協調的, 并且各個階段的結束還和各次迭代的結束保持同步。換句話說,每一個階段能夠分為一次或多次迭代過程。