一、初始階段

初始階段的目標(biāo)是為系統(tǒng)建立商業(yè)案例和確定項目的邊界。
為了達(dá)到該目的必須識別所有與系統(tǒng)交互的外部實(shí)體,在較高層次上定義交互的特性。它包括識別所有用例和描述一些重要的用例。商業(yè)案例包括驗(yàn)收規(guī)范、風(fēng)險評估、所需資源估計、體現(xiàn)主要里程碑日期的階段計劃。
本階段具有非常重要的意義,在這個階段中,關(guān)注的是整個項目進(jìn)行工程中的業(yè)務(wù)和需求方面的主要風(fēng)險。對于建立在原有系統(tǒng)基礎(chǔ)上的開發(fā)項目來說,初始階段的時間可能很短。
本階段的主要目標(biāo)如下:
明確軟件系統(tǒng)的范圍和邊界條件,包括從功能角度的前景分析、產(chǎn)品驗(yàn)收標(biāo)準(zhǔn)和哪些做與哪些不做的相關(guān)決定
明確區(qū)分系統(tǒng)的關(guān)鍵用例(Use-case) 和主要的功能場景
展現(xiàn)或者演示至少一種符合主要場景要求的候選軟件體系結(jié)構(gòu)
對整個項目做最初的項目成本和日程估計(更詳細(xì)的估計將在隨后的細(xì)化階段中做出)
估計出潛在的風(fēng)險(主要指各種不確定因素造成的潛在風(fēng)險)
準(zhǔn)備好項目的支持環(huán)境
初始階段的產(chǎn)出是:
藍(lán)圖文檔核心項目需求關(guān)鍵特色主要約束的總體藍(lán)圖
原始用例模型(完成10%~20%)
原始項目術(shù)語表(可能部分表達(dá)為業(yè)務(wù)模型)
原始商業(yè)案例,包括業(yè)務(wù)的上下文、驗(yàn)收規(guī)范(年度映射、市場認(rèn)可等等),成本預(yù)計
原始的風(fēng)險評估
一個或多個原型
里程碑:生命周期的目標(biāo)
初始階段結(jié)束時是第一個重要的里程碑:生命周期目標(biāo)里程碑。初始階段的評審標(biāo)準(zhǔn):
風(fēng)險承擔(dān)者就范圍定義成本日程估計達(dá)成共識
以客觀的主要用例證實(shí)對需求的理解
成本/日程、優(yōu)先級、風(fēng)險和開發(fā)過程的可信度
被開發(fā)體系結(jié)構(gòu)原型的深度和廣度
實(shí)際開支與計劃開支的比較
如果無法通過這些里程碑,則項目可能被取消或仔細(xì)地重新考慮。
二、細(xì)化階段
細(xì)化階段的目標(biāo)是分析問題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項目計劃,淘汰項目中最高風(fēng)險的元素。
為了達(dá)到該目的,必須對系統(tǒng)具有"英里寬和英寸深"的觀察。體系結(jié)構(gòu)的決策必須在理解整個系統(tǒng)的基礎(chǔ)上作出:它的范圍,主要功能和如性能等非功能性需求。
容易引起爭論,細(xì)化階段是四個階段中最關(guān)鍵的階段。該階段結(jié)束時,硬"工程"可以認(rèn)為已結(jié)束,項目則經(jīng)歷最后的審判日:決策是否項目提交給構(gòu)建和交付階段。對于大多數(shù)項目,這也相當(dāng)于從移動的、輕松的、靈巧的、低風(fēng)險的運(yùn)作過渡到高成本、高風(fēng)險并帶有較大慣性的運(yùn)作過程。而過程必須能容納變化,細(xì)化階段活動確保了結(jié)構(gòu)、需求和計劃是足夠穩(wěn)定的,風(fēng)險被充分減輕,所以可以為開發(fā)結(jié)果預(yù)先決定成本和日程安排。概念上,其逼真程度一致于機(jī)構(gòu)實(shí)行費(fèi)用固定的構(gòu)建階段的必要程度。
在細(xì)化階段,可執(zhí)行的結(jié)構(gòu)原形在一個或多個迭代過程中建立,依賴于項目的范圍、規(guī)模、風(fēng)險和先進(jìn)程度。工作量必須至少處理初始階段中識別的關(guān)鍵用例,關(guān)鍵用例典型揭示了項目主要技術(shù)的風(fēng)險。通常我們的目標(biāo)是一個由產(chǎn)品質(zhì)量級別構(gòu)件組成的可進(jìn)化的原型,但這并不排除開發(fā)一個或多個探索性、可拋棄的原型來減少如:設(shè)計/需求折衷,構(gòu)件可行性研究,或者給投資者、顧客即最終用戶演示版本等特定的風(fēng)險。
本階段的主要目標(biāo)如下:
確保軟件結(jié)構(gòu)、需求、計劃足夠穩(wěn)定;確保項目風(fēng)險已經(jīng)降低到能夠預(yù)計完成整個項目的成本和日程的程度。
針對項目的軟件結(jié)構(gòu)上的主要風(fēng)險已經(jīng)解決或處理完成。
通過完成軟件結(jié)構(gòu)上的主要場景建立軟件體系結(jié)構(gòu)的基線。
建立一個包含高質(zhì)量組件的可演化的產(chǎn)品原型。
說明基線化的軟件體系結(jié)構(gòu)可以保障系統(tǒng)需求可以控制在合理的成本和時間范圍內(nèi)。
建立好產(chǎn)品的支持環(huán)境。
初始階段的產(chǎn)出是:
用例模型(完成至少80%)-- 所有用例均被識別,大多數(shù)用例描述被開發(fā)
補(bǔ)充捕獲非功能性要求和非關(guān)聯(lián)于特定用例要求的需求
軟件體系結(jié)構(gòu)描述_可執(zhí)行的軟件原型
經(jīng)修訂過的風(fēng)險清單和商業(yè)案例
總體項目的開發(fā)計劃,包括紋理較粗糙的項目計劃,顯示迭代過程和對應(yīng)的審核標(biāo)準(zhǔn)
指明被使用過程的更新過的開發(fā)用例
用戶手冊的初始版本(可選)
里程碑:生命周期的結(jié)構(gòu)
細(xì)化階段結(jié)束是第二個重要的里程碑:生命周期的結(jié)構(gòu)里程碑。此刻,檢驗(yàn)詳細(xì)的系統(tǒng)目標(biāo)
和范圍、結(jié)構(gòu)的選擇以及主要風(fēng)險的解決方案。 主要的審核標(biāo)準(zhǔn)包括回答以下的問題:
產(chǎn)品的藍(lán)圖是否穩(wěn)定?
體系結(jié)構(gòu)是否穩(wěn)定?
可執(zhí)行的演示版是否顯示風(fēng)險要素已被處理和可靠的解決
構(gòu)建階段的計劃是否足夠詳細(xì)和精確?是否被可靠的審核基礎(chǔ)支持?
如果當(dāng)前計劃在現(xiàn)有的體系結(jié)構(gòu)環(huán)境中被執(zhí)行而開發(fā)出完整系統(tǒng),是否所有的風(fēng)險承擔(dān)人同意該藍(lán)圖是可實(shí)現(xiàn)的?
實(shí)際的費(fèi)用開支與計劃開支是否可以接受?
如果無法通過這些里程碑,則項目可能被取消或仔細(xì)地重新考慮。
三、構(gòu)建階段
在構(gòu)建階段,所有剩余的構(gòu)件和應(yīng)用程序功能被開發(fā)并集成為產(chǎn)品,所有的功能被詳盡的測試。
構(gòu)建階段,從某種意義上說,是重點(diǎn)在管理資源和控制運(yùn)作以優(yōu)化成本、日程、質(zhì)量的生產(chǎn)過程。就這一點(diǎn)而言,管理的理念經(jīng)歷了初始階段和細(xì)化階段的智力資產(chǎn)開發(fā)到構(gòu)建階段和交付階段可發(fā)布產(chǎn)品的過渡。
許多項目規(guī)模大的足夠產(chǎn)生許多平行的增量構(gòu)建過程,這些平行的活動可以極大地加速版本發(fā)布的有效性;同時也增加了資源管理和工作流同步的復(fù)雜性。健壯的體系結(jié)構(gòu)和易于理解的計劃是高度關(guān)聯(lián)的。換言之,體系結(jié)構(gòu)上關(guān)鍵的質(zhì)量是構(gòu)建的容易程度。這也是在細(xì)化階段平衡的體系結(jié)構(gòu)和計劃被強(qiáng)調(diào)的原因。
本階段的主要目標(biāo)如下:
通過優(yōu)化資源和避免不必要的返工達(dá)到開發(fā)成本的最小化
根據(jù)實(shí)際需要達(dá)到適當(dāng)?shù)馁|(zhì)量目標(biāo)
據(jù)實(shí)際需要形成各個版本(Alpha,Beta,and other test release)
對所有必須的功能完成分析、設(shè)計、開發(fā)和測試工作
采用循環(huán)漸進(jìn)的方式開發(fā)出一個可以提交給最終用戶的完整產(chǎn)品
確定軟件站點(diǎn)用戶都為產(chǎn)品的最終部署做好了相關(guān)準(zhǔn)備
達(dá)成一定程度上的并行開發(fā)機(jī)制
構(gòu)建階段的產(chǎn)出是可以交付給最終用戶的產(chǎn)品。它最小包括:
特定平臺上的集成產(chǎn)品
用戶手冊
當(dāng)前版本的描述
里程碑:初始運(yùn)作能力
創(chuàng)建階段結(jié)束是第三個重要的項目里程碑(初始功能里程碑)。此刻,決定是否軟件、環(huán)境、用戶可以運(yùn)作而不會將項目暴露在高度風(fēng)險下。該版本也常被稱為"beta"版。
構(gòu)建階段主要的審核標(biāo)準(zhǔn)包括回答以下的問題:
產(chǎn)品是否足夠穩(wěn)定和成熟得發(fā)布給用戶?
是否所有的風(fēng)險承擔(dān)人準(zhǔn)備好向用戶移交?
實(shí)際費(fèi)用與計劃費(fèi)用的比較是否仍可被接受?
如果無法通過這些里程碑,則移交不得不被延遲。
四、交付階段
交付階段的目的是將軟件產(chǎn)品交付給用戶群體。
只要產(chǎn)品發(fā)布給最終用戶,問題常常就會出現(xiàn):要求開發(fā)新版本,糾正問題或完成被延遲的問題。
當(dāng)基線成熟得足夠發(fā)布到最終用戶時,就進(jìn)入了交付階段。其典型要求一些可用的系統(tǒng)子集被開發(fā)到可接收的質(zhì)量級別及用戶文檔可供使用,從而交付給用戶的所有部分均可以有正面的效果。這包括:
對照用戶期望值,驗(yàn)證新系統(tǒng)的"beta測試"
與被替代的已有系統(tǒng)并軌
功能性數(shù)據(jù)庫的轉(zhuǎn)換
向市場、部署、銷售團(tuán)隊移交產(chǎn)品
構(gòu)建階段關(guān)注于向用戶提交產(chǎn)品的活動。典型的,該階段包括若干重復(fù)過程,包括 beba 版本、通用版本、bug 修補(bǔ)版和增強(qiáng)版。相當(dāng)大的工作量消耗在開發(fā)面向用戶的文檔,培訓(xùn)用戶。在初始產(chǎn)品使用時,支持用戶并處理用戶的反饋。開發(fā)生命周期的該點(diǎn),用戶反饋主要限定在產(chǎn)品性能調(diào)整、配置、安裝和使用問題。
本階段的目標(biāo)是確保軟件產(chǎn)品可以提交給最終用戶。本階段根據(jù)實(shí)際需要可以分為幾個循環(huán)。本階段的具體目標(biāo)如下:
進(jìn)行 Beta 測試以期達(dá)到最終用戶的需要
進(jìn)行 Beta 測試和舊系統(tǒng)的并軌
轉(zhuǎn)換功能數(shù)據(jù)庫
對最終用戶和產(chǎn)品支持人員的培訓(xùn)
提交給市場和產(chǎn)品銷售部門
和具體部署相關(guān)的工程活動
協(xié)調(diào) Bug 修訂/改進(jìn)性能和可用性(Usability)等工作
基于完整的 Vision 和產(chǎn)品驗(yàn)收標(biāo)準(zhǔn)對最終部署做出評估
達(dá)到用戶要求的滿意度
達(dá)成各風(fēng)險承擔(dān)人對產(chǎn)品部署基線已經(jīng)完成的共識
達(dá)成各風(fēng)險承擔(dān)人對產(chǎn)品部署符合 Vision 中標(biāo)準(zhǔn)的共識
該階段依照產(chǎn)品的類型,可能從非常簡單到極端復(fù)雜的范圍內(nèi)變化。例如,現(xiàn)有的桌面產(chǎn)品的新版本可能非常簡單,而替代國際機(jī)場的流量系統(tǒng)會非常復(fù)雜。
里程碑:產(chǎn)品發(fā)布
在交付階段的終點(diǎn)是第四個重要的項目里程碑,產(chǎn)品發(fā)布里程碑。此時,決定是否目標(biāo)已達(dá)到或開始另一個周期。在許多情況下,里程碑會與下一個周期的初始階段相重疊。
發(fā)布階段的審核標(biāo)準(zhǔn)主要包括以下兩個問題:
用戶是否滿意?
實(shí)際費(fèi)用與計劃費(fèi)用的比較是否仍可被接受?