登錄

統(tǒng)一軟件開(kāi)發(fā)過(guò)程

百科 > 軟件項(xiàng)目管理 > 統(tǒng)一軟件開(kāi)發(fā)過(guò)程

1.什么是統(tǒng)一軟件開(kāi)發(fā)過(guò)程

統(tǒng)一軟件開(kāi)發(fā)過(guò)程(RUP)又稱為統(tǒng)一軟件過(guò)程,是一個(gè)面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開(kāi)發(fā)方法論。根據(jù)Rational(Rational Rose和統(tǒng)一建模語(yǔ)言的開(kāi)發(fā)者)的說(shuō)法,好像一個(gè)在線的指導(dǎo)者,它可以為所有方面和層次的程序開(kāi)發(fā)提供指導(dǎo)方針,模版以及事例支持。統(tǒng)一軟件開(kāi)發(fā)過(guò)程和類似的產(chǎn)品,如面向?qū)ο蟮能浖^(guò)程(OOSP),以及OPEN Process都是理解性的軟件工程工具,把開(kāi)發(fā)中面向過(guò)程的方面(例如定義的階段,技術(shù)和實(shí)踐)和其他開(kāi)發(fā)的組件(例如文檔,模型,手冊(cè)以及代碼等等)整合在一個(gè)統(tǒng)一的框架內(nèi)。

2.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的二維開(kāi)發(fā)模型

RUP軟件開(kāi)發(fā)生命周期是一個(gè)二維的軟件開(kāi)發(fā)模型。橫軸通過(guò)時(shí)間組織,是過(guò)程展開(kāi)的生命周期特征,體現(xiàn)開(kāi)發(fā)過(guò)程的動(dòng)態(tài)結(jié)構(gòu),用來(lái)描述它的術(shù)語(yǔ)主要包括周期(Cycle)、階段(Phase)、迭代 (Iteration)和里程碑(Milestone);縱軸以內(nèi)容來(lái)組織為自然的邏輯活動(dòng),體現(xiàn)開(kāi)發(fā)過(guò)程的靜態(tài)結(jié)構(gòu),用來(lái)描述它的術(shù)語(yǔ)主要包括活動(dòng) (Activity)、產(chǎn)物(Artifact)、工作者(Worker)和工作流(Workflow)。如下圖:

統(tǒng)一軟件開(kāi)發(fā)過(guò)程

3.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的裁剪

RUP是一個(gè)通用的過(guò)程模板,包含了很多開(kāi)發(fā)指南、制品、開(kāi)發(fā)過(guò)程所涉及到的角色說(shuō)明,由于它非常龐大所以對(duì)具體的開(kāi)發(fā)機(jī)構(gòu)和項(xiàng)目,用RUP時(shí)還要做裁剪,也就是要對(duì)RUP進(jìn)行配置。RUP就像一個(gè)元過(guò)程,通過(guò)對(duì)RUP進(jìn)行裁剪可以得到很多不同的開(kāi)發(fā)過(guò)程,這些軟件開(kāi)發(fā)過(guò)程可以看作RUP的具體實(shí)例。RUP裁剪可以分為以下幾步:

1、確定本項(xiàng)目需要哪些工作流。RUP的9個(gè)核心工作流并不總是需要的,可以取舍。

2、確定每個(gè)工作流需要哪些制品。

3、確定4個(gè)階段之間如何演進(jìn)。確定階段間演進(jìn)要以風(fēng)險(xiǎn)控制為原則,決定每個(gè)階段要那些工作流,每個(gè)工作流執(zhí)行到什么程度,制品有那些,每個(gè)制品完成到什么程度。

4、確定每個(gè)階段內(nèi)的迭代計(jì)劃。規(guī)劃RUP的4個(gè)階段中每次迭代開(kāi)發(fā)的內(nèi)容。

5、規(guī)劃工作流內(nèi)部結(jié)構(gòu)。工作流涉及角色、活動(dòng)及制品,他的復(fù)雜程度與項(xiàng)目規(guī)模即角色多少有關(guān)。最后規(guī)劃工作流的內(nèi)部結(jié)構(gòu),通常用活動(dòng)圖的形式給出。

4.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的各個(gè)階段和里程碑

RUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段,分別是:初始階段(Inception)、細(xì)化階段(Elaboration)、構(gòu)造階段(Construction)和交付階段(Transition)。每個(gè)階段結(jié)束于一個(gè)主要的里程碑(Major Milestones);每個(gè)階段本質(zhì)上是兩個(gè)里程碑之間的時(shí)間跨度。在每個(gè)階段的結(jié)尾執(zhí)行一次評(píng)估以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿足。如果評(píng)估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。

1、初始階段

初始階段的目標(biāo)是為系統(tǒng)建立商業(yè)案例并確定項(xiàng)目的邊界。為了達(dá)到該目的必須識(shí)別所有與系統(tǒng)交互的外部實(shí)體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個(gè)階段中所關(guān)注的是整個(gè)項(xiàng)目進(jìn)行中的業(yè)務(wù)和需求方面的主要風(fēng)險(xiǎn)。對(duì)于建立在原有系統(tǒng)基礎(chǔ)上的開(kāi)發(fā)項(xiàng)目來(lái)講,初始階段可能很短。 初始階段結(jié)束時(shí)是第一個(gè)重要的里程碑:生命周期目標(biāo)(Lifecycle Objective)里程碑。生命周期目標(biāo)里程碑評(píng)價(jià)項(xiàng)目基本的生存能力。

2、細(xì)化階段

細(xì)化階段的目標(biāo)是分析問(wèn)題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目計(jì)劃,淘汰項(xiàng)目中最高風(fēng)險(xiǎn)的元素。為了達(dá)到該目的,必須在理解整個(gè)系統(tǒng)的基礎(chǔ)上,對(duì)體系結(jié)構(gòu)作出決策,包括其范圍、主要功能和諸如性能等非功能需求。同時(shí)為項(xiàng)目建立支持環(huán)境,包括創(chuàng)建開(kāi)發(fā)案例,創(chuàng)建模板、準(zhǔn)則并準(zhǔn)備工具。 細(xì)化階段結(jié)束時(shí)第二個(gè)重要的里程碑:生命周期結(jié)構(gòu)(Lifecycle Architecture)里程碑。生命周期結(jié)構(gòu)里程碑為系統(tǒng)的結(jié)構(gòu)建立了管理基準(zhǔn)并使項(xiàng)目小組能夠在構(gòu)建階段中進(jìn)行衡量。此刻,要檢驗(yàn)詳細(xì)的系統(tǒng)目標(biāo)和范圍、結(jié)構(gòu)的選擇以及主要風(fēng)險(xiǎn)的解決方案。

3、構(gòu)造階段

在構(gòu)建階段,所有剩余的構(gòu)件和應(yīng)用程序功能被開(kāi)發(fā)并集成為產(chǎn)品,所有的功能被詳細(xì)測(cè)試。從某種意義上說(shuō),構(gòu)建階段是一個(gè)制造過(guò)程,其重點(diǎn)放在管理資源及控制運(yùn)作以優(yōu)化成本、進(jìn)度和質(zhì)量。 構(gòu)建階段結(jié)束時(shí)是第三個(gè)重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產(chǎn)品是否可以在測(cè)試環(huán)境中進(jìn)行部署。此刻,要確定軟件、環(huán)境、用戶是否可以開(kāi)始系統(tǒng)的運(yùn)作。此時(shí)的產(chǎn)品版本也常被稱為“beta”版。

4、交付階段

交付階段的重點(diǎn)是確保軟件對(duì)最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發(fā)布做準(zhǔn)備的產(chǎn)品測(cè)試,基于用戶反饋的少量的調(diào)整。在生命周期的這一點(diǎn)上,用戶反饋應(yīng)主要集中在產(chǎn)品調(diào)整,設(shè)置、安裝和可用性問(wèn)題,所有主要的結(jié)構(gòu)問(wèn)題應(yīng)該已經(jīng)在項(xiàng)目生命周期的早期階段解決了。 在交付階段的終點(diǎn)是第四個(gè)里程碑:產(chǎn)品發(fā)布(Product Release)里程碑。此時(shí),要確定目標(biāo)是否實(shí)現(xiàn),是否應(yīng)該開(kāi)始另一個(gè)開(kāi)發(fā)周期。在一些情況下這個(gè)里程碑可能與下一個(gè)周期的初始階段的結(jié)束重合。

5.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的核心工作流

RUP中有9個(gè)核心工作流(Core Workflows),分為6個(gè)核心過(guò)程工作流(Core Process Workflows)和3個(gè)核心支持工作流(Core Supporting Workflows)。盡管6個(gè)核心過(guò)程工作流可能使人想起傳統(tǒng)瀑布模型中的幾個(gè)階段,但應(yīng)注意迭代過(guò)程中的階段是完全不同的,這些工作流在整個(gè)生命周期中一次又一次被訪問(wèn)。9個(gè)核心工作流在項(xiàng)目中輪流被使用,在每一次迭代中以不同的重點(diǎn)和強(qiáng)度重復(fù)。

1、商業(yè)建模(Business Modeling)

商業(yè)建模工作流描述了如何為新的目標(biāo)組織開(kāi)發(fā)一個(gè)構(gòu)想,并基于這個(gè)構(gòu)想在商業(yè)用例模型和商業(yè)對(duì)象模型中定義組織的過(guò)程,角色和責(zé)任。

2、需求(Requirements)

需求工作流的目標(biāo)是描述系統(tǒng)應(yīng)該做什么,并使開(kāi)發(fā)人員和用戶就這一描述達(dá)成共識(shí)。為了達(dá)到該目標(biāo),要對(duì)需要的功能和約束進(jìn)行提取、組織、文檔化;最重要的是理解系統(tǒng)所解決問(wèn)題的定義和范圍。

3、分析和設(shè)計(jì)(Analysis & Design)

分析和設(shè)計(jì)工作流將需求轉(zhuǎn)化成未來(lái)系統(tǒng)的設(shè)計(jì),為系統(tǒng)開(kāi)發(fā)一個(gè)健壯的結(jié)構(gòu)并調(diào)整設(shè)計(jì)使其與實(shí)現(xiàn)環(huán)境相匹配,優(yōu)化其性能。分析設(shè)計(jì)的結(jié)果是一個(gè)設(shè)計(jì)模型和一個(gè)可選的分析模型。設(shè)計(jì)模型是源代碼的抽象,由設(shè)計(jì)類和一些描述組成。設(shè)計(jì)類被組織成具有良好接口的設(shè)計(jì)包(Package)和設(shè)計(jì)子系統(tǒng)(Subsystem),而描述則體現(xiàn)了類的對(duì)象如何協(xié)同工作實(shí)現(xiàn)用例的功能。 設(shè)計(jì)活動(dòng)以體系結(jié)構(gòu)設(shè)計(jì)為中心,體系結(jié)構(gòu)由若干結(jié)構(gòu)視圖來(lái)表達(dá),結(jié)構(gòu)視圖是整個(gè)設(shè)計(jì)的抽象和簡(jiǎn)化,該視圖中省略了一些細(xì)節(jié),使重要的特點(diǎn)體現(xiàn)得更加清晰。體系結(jié)構(gòu)不僅僅是良好設(shè)計(jì)模型的承載媒介,而且在系統(tǒng)的開(kāi)發(fā)中能提高被創(chuàng)建模型的質(zhì)量。

4、實(shí)現(xiàn)(Implementation)

實(shí)現(xiàn)工作流的目的包括以層次化的子系統(tǒng)形式定義代碼的組織結(jié)構(gòu);以組件的形式(源文件、二進(jìn)制文件、可執(zhí)行文件)實(shí)現(xiàn)類和對(duì)象;將開(kāi)發(fā)出的組件作為單元進(jìn)行測(cè)試以及集成由單個(gè)開(kāi)發(fā)者(或小組)所產(chǎn)生的結(jié)果,使其成為可執(zhí)行的系統(tǒng)。

5、測(cè)試(Test)

測(cè)試工作流要驗(yàn)證對(duì)象間的交互作用,驗(yàn)證軟件中所有組件的正確集成,檢驗(yàn)所有的需求已被正確的實(shí)現(xiàn), 識(shí)別并確認(rèn)缺陷在軟件部署之前被提出并處理。RUP提出了迭代的方法,意味著在整個(gè)項(xiàng)目中進(jìn)行測(cè)試,從而盡可能早地發(fā)現(xiàn)缺陷,從根本上降低了修改缺陷的成本。測(cè)試類似于三維模型,分別從可靠性、功能性和系統(tǒng)性能來(lái)進(jìn)行。

6、部署(Deployment)

部署工作流的目的是成功的生成版本并將軟件分發(fā)給最終用戶。部署工作流描述了那些與確保軟件產(chǎn)品對(duì)最終用戶具有可用性相關(guān)的活動(dòng),包括:軟件打包、生成軟件本身以外的產(chǎn)品、安裝軟件、為用戶提供幫助。在有些情況下,還可能包括計(jì)劃和進(jìn)行beta測(cè)試版、移植現(xiàn)有的軟件和數(shù)據(jù)以及正式驗(yàn)收。

7、配置和變更管理(Configuration & Change Management)

配置和變更管理工作流描繪了如何在多個(gè)成員組成的項(xiàng)目中控制大量的產(chǎn)物。配置和變更管理工作流提供了準(zhǔn)則來(lái)管理演化系統(tǒng)中的多個(gè)變體,跟蹤軟件創(chuàng)建過(guò)程中的版本。工作流描述了如何管理并行開(kāi)發(fā)、分布式開(kāi)發(fā)、如何自動(dòng)化創(chuàng)建工程。同時(shí)也闡述了對(duì)產(chǎn)品修改原因、時(shí)間、人員保持審計(jì)記錄。

8、項(xiàng)目管理(Project Management)

軟件項(xiàng)目管理平衡各種可能產(chǎn)生沖突的目標(biāo),管理風(fēng)險(xiǎn),克服各種約束并成功交付使用戶滿意的產(chǎn)品。其目標(biāo)包括:為項(xiàng)目的管理提供框架,為計(jì)劃人員配備、執(zhí)行和監(jiān)控項(xiàng)目提供實(shí)用的準(zhǔn)則,為管理風(fēng)險(xiǎn)提供框架等。

9、環(huán)境(Environment)

環(huán)境工作流的目的是向軟件開(kāi)發(fā)組織提供軟件開(kāi)發(fā)環(huán)境,包括過(guò)程和工具。環(huán)境工作流集中于配置項(xiàng)目過(guò)程中所需要的活動(dòng),同樣也支持開(kāi)發(fā)項(xiàng)目規(guī)范的活動(dòng),提供了逐步的指導(dǎo)手冊(cè)并介紹了如何在組織中實(shí)現(xiàn)過(guò)程。

6.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的迭代開(kāi)發(fā)模式

RUP中的每個(gè)階段可以進(jìn)一步分解為迭代。一個(gè)迭代是一個(gè)完整的開(kāi)發(fā)循環(huán),產(chǎn)生一個(gè)可執(zhí)行的產(chǎn)品版本,是最終產(chǎn)品的一個(gè)子集,它增量式地發(fā)展,從一個(gè)迭代過(guò)程到另一個(gè)迭代過(guò)程到成為最終的系統(tǒng)。傳統(tǒng)上的項(xiàng)目組織是順序通過(guò)每個(gè)工作流,每個(gè)工作流只有一次,也就是我們熟悉的瀑布生命周期(見(jiàn)下圖)。這樣做的結(jié)果是到實(shí)現(xiàn)末期產(chǎn)品完成并開(kāi)始測(cè)試,在分析、設(shè)計(jì)和實(shí)現(xiàn)階段所遺留的隱藏問(wèn)題會(huì)大量出現(xiàn),項(xiàng)目可能要停止并開(kāi)始一個(gè)漫長(zhǎng)的錯(cuò)誤修正周期。

統(tǒng)一軟件開(kāi)發(fā)過(guò)程

一種更靈活,風(fēng)險(xiǎn)更小的方法是多次通過(guò)不同的開(kāi)發(fā)工作流,這樣可以更好的理解需求,構(gòu)造一個(gè)健壯的體系結(jié)構(gòu),并最終交付一系列逐步完成的版本。這叫做一個(gè)迭代生命周期。在工作流中的每一次順序的通過(guò)稱為一次迭代。軟件生命周期是迭代的連續(xù),通過(guò)它,軟件是增量的開(kāi)發(fā)。一次迭代包括了生成一個(gè)可執(zhí)行版本的開(kāi)發(fā)活動(dòng),還有使用這個(gè)版本所必需的其他輔助成分,如版本描述、用戶文檔等。因此一個(gè)開(kāi)發(fā)迭代在某種意義上是在所有工作流中的一次完整的經(jīng)過(guò),這些工作流至少包括:需求工作流、分析和設(shè)計(jì)工作流、實(shí)現(xiàn)工作流、測(cè)試工作流。其本身就像一個(gè)小型的瀑布項(xiàng)目(見(jiàn)下圖)。

統(tǒng)一軟件開(kāi)發(fā)過(guò)程

與傳統(tǒng)的瀑布模型相比較,迭代過(guò)程具有以下優(yōu)點(diǎn):

1)降低了在一個(gè)增量上的開(kāi)支風(fēng)險(xiǎn)。如果開(kāi)發(fā)人員重復(fù)某個(gè)迭代,那么損失只是這一個(gè)開(kāi)發(fā)有誤的迭代的花費(fèi)。

2)降低了產(chǎn)品無(wú)法按照既定進(jìn)度進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。通過(guò)在開(kāi)發(fā)早期就確定風(fēng)險(xiǎn),可以盡早來(lái)解決而不至于在開(kāi)發(fā)后期匆匆忙忙。

3)加快了整個(gè)開(kāi)發(fā)工作的進(jìn)度。因?yàn)殚_(kāi)發(fā)人員清楚問(wèn)題的焦點(diǎn)所在,他們的工作會(huì)更有效率。

4)由于用戶的需求并不能在一開(kāi)始就作出完全的界定,它們通常是在后續(xù)階段中不斷細(xì)化的。因此,迭代過(guò)程這種模式使適應(yīng)需求的變化會(huì)更容易些。

7.統(tǒng)一軟件開(kāi)發(fā)過(guò)程的十大要素

1、開(kāi)發(fā)一個(gè)前景

有一個(gè)清晰的前景是開(kāi)發(fā)一個(gè)滿足涉眾真正需求的產(chǎn)品的關(guān)鍵。前景抓住了RUP需求流程的要點(diǎn):分析問(wèn)題,理解涉眾需求,定義系統(tǒng),當(dāng)需求變化時(shí)管理需求。前景給更詳細(xì)的技術(shù)需求提供了一個(gè)高層的、有時(shí)候是合同式的基礎(chǔ)。正像這個(gè)術(shù)語(yǔ)隱含的那樣,它是軟件項(xiàng)目的一個(gè)清晰的、通常是高層的視圖,能被過(guò)程中任何決策者或者實(shí)施者借用。它捕獲了非常高層的需求和設(shè)計(jì)約束,讓前景的讀者能理解將要開(kāi)發(fā)的系統(tǒng)。它還提供了項(xiàng)目審批流程的輸入,因此就與商業(yè)理由密切相關(guān)。最后,由于前景構(gòu)成了“項(xiàng)目是什么?”和“為什么要進(jìn)行這個(gè)項(xiàng)目?”,所以可以把前景作為驗(yàn)證將來(lái)決策的方式之一。對(duì)前景的陳述應(yīng)該能回答以下問(wèn)題,需要的話這些問(wèn)題還可以分成更小、更詳細(xì)的問(wèn)題:?關(guān)鍵術(shù)語(yǔ)是什么?(詞匯表) ? 我們嘗試解決的問(wèn)題是什么?(問(wèn)題陳述) ? 涉眾是誰(shuí)?用戶是誰(shuí)?他們各自的需求是什么? ? 產(chǎn)品的特性是什么? ? 功能性需求是什么?(Use Cases) ? 非功能性需求是什么? ? 設(shè)計(jì)約束是什么?

2、達(dá)成計(jì)劃

“產(chǎn)品的質(zhì)量只會(huì)和產(chǎn)品的計(jì)劃一樣好?!痹赗UP中,軟件開(kāi)發(fā)計(jì)劃(SDP)綜合了管理項(xiàng)目所需的各種信息,也許會(huì)包括一些在先啟階段開(kāi)發(fā)的單獨(dú)的內(nèi)容。SDP必須在整個(gè)項(xiàng)目中被維護(hù)和更新。SDP定義了項(xiàng)目時(shí)間表(包括項(xiàng)目計(jì)劃和迭代計(jì)劃)和資源需求(資源和工具),可以根據(jù)項(xiàng)目進(jìn)度表來(lái)跟蹤項(xiàng)目進(jìn)展。同時(shí)也指導(dǎo)了其他過(guò)程內(nèi)容(原文:process components)的計(jì)劃:項(xiàng)目組織、需求管理計(jì)劃、配置管理計(jì)劃、問(wèn)題解決計(jì)劃、QA計(jì)劃、測(cè)試計(jì)劃、評(píng)估計(jì)劃以及產(chǎn)品驗(yàn)收計(jì)劃。

在較簡(jiǎn)單的項(xiàng)目中,對(duì)這些計(jì)劃的陳述可能只有一兩句話。比如,配置管理計(jì)劃可以簡(jiǎn)單的這樣陳述:每天結(jié)束時(shí),項(xiàng)目目錄的內(nèi)容將會(huì)被壓縮成ZIP包,拷貝到一個(gè)ZIP磁盤中,加上日期和版本標(biāo)簽,放到中央檔案柜中。 軟件開(kāi)發(fā)計(jì)劃的格式遠(yuǎn)遠(yuǎn)沒(méi)有計(jì)劃活動(dòng)本身以及驅(qū)動(dòng)這些活動(dòng)的思想重要。正如艾森豪威爾(Dwight D.Eisenhower)所說(shuō):“plan什么也不是,planning才是一切?!?“達(dá)成計(jì)劃”—和列表中第3、4、5、8條一起—抓住了RUP中項(xiàng)目管理流程的要點(diǎn)。項(xiàng)目管理流程包括以下活動(dòng):構(gòu)思項(xiàng)目、評(píng)估項(xiàng)目規(guī)模和風(fēng)險(xiǎn)、監(jiān)測(cè)與控制項(xiàng)目、計(jì)劃和評(píng)估每個(gè)迭代和階段。

3、標(biāo)識(shí)和減小風(fēng)險(xiǎn)

RUP的要點(diǎn)之一是在項(xiàng)目早期就標(biāo)識(shí)并處理最大的風(fēng)險(xiǎn)。項(xiàng)目組標(biāo)識(shí)的每一個(gè)風(fēng)險(xiǎn)都應(yīng)該有一個(gè)相應(yīng)的緩解或解決計(jì)劃。風(fēng)險(xiǎn)列表應(yīng)該既作為項(xiàng)目活動(dòng)的計(jì)劃工具,又作為確定迭代的基礎(chǔ)。

4、分配和跟蹤任務(wù)

有一點(diǎn)在任何項(xiàng)目中都是重要的,即連續(xù)的分析來(lái)源于正在進(jìn)行的活動(dòng)和進(jìn)化的產(chǎn)品的客觀數(shù)據(jù)。在RUP中,定期的項(xiàng)目狀態(tài)評(píng)估提供了講述、交流和解決管理問(wèn)題、技術(shù)問(wèn)題以及項(xiàng)目風(fēng)險(xiǎn)的機(jī)制。團(tuán)隊(duì)一旦發(fā)現(xiàn)了這些障礙物(籬笆),他們就把所有這些問(wèn)題都指定一個(gè)負(fù)責(zé)人,并指定解決日期。進(jìn)度應(yīng)該定期跟蹤,如有必要,更新應(yīng)該被發(fā)布。(原文:updates should be issued as necessary。) 這些項(xiàng)目“快照”突出了需要引起管理注意的問(wèn)題。隨著時(shí)間的變化/雖然周期可能會(huì)變化(原文:While the period may vary。),定期的評(píng)估使經(jīng)理能捕獲項(xiàng)目的歷史,并且消除任何限制進(jìn)度的障礙或瓶頸。

5、檢查商業(yè)理由

商業(yè)理由從商業(yè)的角度提供了必要的信息,以決定一個(gè)項(xiàng)目是否值得投資。商業(yè)理由還可以幫助開(kāi)發(fā)一個(gè)實(shí)現(xiàn)項(xiàng)目前景所需的經(jīng)濟(jì)計(jì)劃。它提供了進(jìn)行項(xiàng)目的理由,并建立經(jīng)濟(jì)約束。當(dāng)項(xiàng)目繼續(xù)時(shí),分析人員用商業(yè)理由來(lái)正確的估算投資回報(bào)率(ROI,即return on investment)。商業(yè)理由應(yīng)該給項(xiàng)目創(chuàng)建一個(gè)簡(jiǎn)短但是引人注目的理由,而不是深入研究問(wèn)題的細(xì)節(jié),以使所有項(xiàng)目成員容易理解和記住它。在關(guān)鍵里程碑處,經(jīng)理應(yīng)該回顧商業(yè)理由,計(jì)算實(shí)際的花費(fèi)、預(yù)計(jì)的回報(bào),決定項(xiàng)目是否繼續(xù)進(jìn)行。

6、設(shè)計(jì)組件構(gòu)架

在RUP中,件系統(tǒng)的構(gòu)架是指一個(gè)系統(tǒng)關(guān)鍵部件的組織或結(jié)構(gòu),部件之間通過(guò)接口交互,而部件是由一些更小的部件和接口組成的。即主要的部分是什么?他們又是怎樣結(jié)合在一起的? RUP提供了一種設(shè)計(jì)、開(kāi)發(fā)、驗(yàn)證構(gòu)架的很系統(tǒng)的方法。在分析和設(shè)計(jì)流程中包括以下步驟:定義候選構(gòu)架、精化構(gòu)架、分析行為(用例分析)、設(shè)計(jì)組件。要陳述和討論軟件構(gòu)架,你必須先創(chuàng)建一個(gè)構(gòu)架表示方式,以便描述構(gòu)架的重要方面。在RUP中,構(gòu)架表示由軟件構(gòu)架文檔捕獲,它給構(gòu)架提供了多個(gè)視圖。每個(gè)視圖都描述了某一組涉眾所關(guān)心的正在進(jìn)行的系統(tǒng)的某個(gè)方面。涉眾有最終用戶、設(shè)計(jì)人員、經(jīng)理、系統(tǒng)工程師、系統(tǒng)管理員,等等。這個(gè)文檔使系統(tǒng)構(gòu)架師和其他項(xiàng)目組成員能就與構(gòu)架相關(guān)的重大決策進(jìn)行有效的交流。

7、對(duì)產(chǎn)品進(jìn)行增量式的構(gòu)建和測(cè)試

在RUP中實(shí)現(xiàn)和測(cè)試流程的要點(diǎn)是在整個(gè)項(xiàng)目生命周期中增量的編碼、構(gòu)建、測(cè)試系統(tǒng)組件,在先啟之后每個(gè)迭代結(jié)束時(shí)生成可執(zhí)行版本。在精化階段后期,已經(jīng)有了一個(gè)可用于評(píng)估的構(gòu)架原型;如有必要,它可以包括一個(gè)用戶界面原型。然后,在構(gòu)建階段的每次迭代中,組件不斷的被集成到可執(zhí)行、經(jīng)過(guò)測(cè)試的版本中,不斷地向最終產(chǎn)品進(jìn)化。動(dòng)態(tài)及時(shí)的配置管理和復(fù)審活動(dòng)也是這個(gè)基本過(guò)程元素(原文:essential process element)的關(guān)鍵。

8、驗(yàn)證和評(píng)價(jià)結(jié)果

顧名思義,RUP的迭代評(píng)估捕獲了迭代的結(jié)果。評(píng)估決定了迭代滿足評(píng)價(jià)標(biāo)準(zhǔn)的程度,還包括學(xué)到的教訓(xùn)和實(shí)施的過(guò)程改進(jìn)。根據(jù)項(xiàng)目的規(guī)模和風(fēng)險(xiǎn)以及迭代的特點(diǎn),評(píng)估可以是對(duì)演示及其結(jié)果的一條簡(jiǎn)單的紀(jì)錄,也可能是一個(gè)完整的、正式的測(cè)試復(fù)審記錄。這兒的關(guān)鍵是既關(guān)注過(guò)程問(wèn)題又關(guān)注產(chǎn)品問(wèn)題。越早發(fā)現(xiàn)問(wèn)題,就越?jīng)]有問(wèn)題。(原文:The sooner you fall behind,the more time you will have to catch up.)

9、管理和控制變化

RUP的配置和變更管理流程的要點(diǎn)是當(dāng)變化發(fā)生時(shí)管理和控制項(xiàng)目的規(guī)模,并且貫穿整個(gè)生命周期。其目的是考慮所有的涉眾需求,盡可能的滿足,同時(shí)仍能及時(shí)的交付合格的產(chǎn)品。 用戶拿到產(chǎn)品的第一個(gè)原型后(往往在這之前就會(huì)要求變更),他們會(huì)要求變更。重要的是,變更的提出和管理過(guò)程始終保持一致。在RUP中,變更請(qǐng)求通常用于記錄和跟蹤缺陷和增強(qiáng)功能的要求,或者對(duì)產(chǎn)品提出的任何其他類型的變更請(qǐng)求。變更請(qǐng)求提供了相應(yīng)的手段來(lái)評(píng)估一個(gè)變更的潛在影響,同時(shí)記錄就這些變更所作出的決策。他們也幫助確保所有的項(xiàng)目組成員都能理解變更的潛在影響。

10、提供用戶支持

在RUP中,部署流程的要點(diǎn)是包裝和交付產(chǎn)品,同時(shí)交付有助于最終用戶學(xué)習(xí)、使用和維護(hù)產(chǎn)品的任何必要的材料。項(xiàng)目組至少要給用戶提供一個(gè)用戶指南(也許是通過(guò)聯(lián)機(jī)幫助的方式提供),可能還有一個(gè)安裝指南和版本發(fā)布說(shuō)明。根據(jù)產(chǎn)品的復(fù)雜度,用戶也許還需要相應(yīng)的培訓(xùn)材料。最后,通過(guò)一個(gè)材料清單(BOM表,即Bill of Materials)清楚地記錄應(yīng)該和產(chǎn)品一起交付哪些材料。 關(guān)于需求有人看了我的要素清單后,可能會(huì)非常不同意我的選擇。例如,他會(huì)問(wèn),需求在哪兒呢?他們不重要嗎?我會(huì)告訴他我為什么沒(méi)有把它們包括進(jìn)來(lái)。有時(shí),我會(huì)問(wèn)一個(gè)項(xiàng)目組(特別是內(nèi)部項(xiàng)目的項(xiàng)目組):“你們的需求是什么?”,而得到的回答卻是:“我們的確沒(méi)有什么需求。” 剛開(kāi)始我對(duì)此非常驚訝(我有軍方的宇航開(kāi)發(fā)背景)。他們?cè)趺磿?huì)沒(méi)有需求呢?當(dāng)我進(jìn)一步詢問(wèn)時(shí),我發(fā)現(xiàn),對(duì)他們來(lái)說(shuō),需求意味著一套外部提出的強(qiáng)制性的陳述,要求他們必須怎么樣,否則項(xiàng)目驗(yàn)收就不能通過(guò)。但是他們的確沒(méi)有得到這樣的陳述。尤其是當(dāng)項(xiàng)目組陷入了邊研究邊開(kāi)發(fā)的境地時(shí),產(chǎn)品需求從頭到尾都在演化。因此,我接著問(wèn)他們另外一個(gè)問(wèn)題:“好的,那么你們的產(chǎn)品的前景是什么呢?”。這時(shí)他們的眼睛亮了起來(lái)。然后,我們非常順利的就第一個(gè)要素(“開(kāi)發(fā)一個(gè)前景”)中列出的問(wèn)題進(jìn)行了溝通,需求也自然而然的流動(dòng)著(原文:and the requirements just flow naturally.)。也許只有對(duì)于按照有明確需求的合同工作的項(xiàng)目組,在要素列表中加入“滿足需求”才是有用的。請(qǐng)記住,我的清單僅僅意味著進(jìn)行進(jìn)一步討論的一個(gè)起點(diǎn)。

8.統(tǒng)一軟件開(kāi)發(fā)過(guò)程總結(jié)

RUP具有很多長(zhǎng)處:提高了團(tuán)隊(duì)生產(chǎn)力,在迭代的開(kāi)發(fā)過(guò)程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)量及控制軟件變更等方面,針對(duì)所有關(guān)鍵的開(kāi)發(fā)活動(dòng)為每個(gè)開(kāi)發(fā)成員提供了必要的準(zhǔn)則、模板和工具指導(dǎo),并確保全體成員共享相同的知識(shí)基礎(chǔ)。它建立了簡(jiǎn)潔和清晰的過(guò)程結(jié)構(gòu),為開(kāi)發(fā)過(guò)程提供較大的通用性。但同時(shí)它也存在一些不足: RUP只是一個(gè)開(kāi)發(fā)過(guò)程,并沒(méi)有涵蓋軟件過(guò)程的全部?jī)?nèi)容,例如它缺少關(guān)于軟件運(yùn)行和支持等方面的內(nèi)容;此外,它沒(méi)有支持多項(xiàng)目的開(kāi)發(fā)結(jié)構(gòu),這在一定程度上降低了在開(kāi)發(fā)組織內(nèi)大范圍實(shí)現(xiàn)重用的可能性??梢哉f(shuō)RUP是一個(gè)非常好的開(kāi)端,但并不完美,在實(shí)際的應(yīng)用中可以根據(jù)需要對(duì)其進(jìn)行改進(jìn)并可以用OPEN和OOSP等其他軟件過(guò)程的相關(guān)內(nèi)容對(duì)RUP進(jìn)行補(bǔ)充和完善。

評(píng)論  |   0條評(píng)論