來源: http://flexjson.com.cn/uml.html
RUP(Rational Unified Process,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程)是一個面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論。根據(jù)Rational(Rational Rose和統(tǒng)一建模語言的開發(fā)者)的說法,好像一個在線的指導(dǎo)者,它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持。 RUP和類似的產(chǎn)品--例如面向?qū)ο蟮能浖^程(OOSP),以及OPEN Process都是理解性的軟件工程工具--把開發(fā)中面向過程的方面(例如定義的階段,技術(shù)和實踐)和其他開發(fā)的組件(例如文檔,模型,手冊以及代碼等等)整合在一個統(tǒng)一的框架內(nèi)。
一、六大經(jīng)驗
迭代式開發(fā)。在軟件開發(fā)的早期階段就想完全、準確的捕獲用戶的需求幾乎是不
可能的。實際上,我們經(jīng)常遇到的問題是需求在整個軟件開發(fā)工程中經(jīng)常會改變。迭代式開發(fā)允許在每次迭代過程中需求可能有變化,通過不斷細化來加深對問題的
理解。迭代式開發(fā)不僅可以降低項目的風險,而且每個迭代過程以可以執(zhí)行版本結(jié)束,可以鼓舞開發(fā)人員。
管理需求。確定系統(tǒng)的需求是一個連續(xù)的過程,開發(fā)人員在開發(fā)系統(tǒng)之前不可能完全詳細的說明一個系統(tǒng)的真正需求。RUP描述了如何提取、組織系統(tǒng)的功能和約束條件并將其文檔化,用例和腳本的使用以被證明是捕獲功能性需求的有效方法。
基于組件的體系結(jié)構(gòu)。組件使重用成為可能,系統(tǒng)可以由組件組成?;讵毩⒌?、可替換的、模塊化組件的體系結(jié)構(gòu)有助于管理復(fù)雜性,提高重用率。RUP描述了如何設(shè)計一個有彈性的、能適應(yīng)變化的、易于理解的、有助于重用的軟件體系結(jié)構(gòu)。
可視化建模。RUP往往和UML聯(lián)系在一起,對軟件系統(tǒng)建立可視化模型幫助人們提供管理軟件復(fù)雜性的能力。RUP告訴我們?nèi)绾慰梢暬膶浖到y(tǒng)建模,獲取有關(guān)體系結(jié)構(gòu)于組件的結(jié)構(gòu)和行為信息。
驗證軟件質(zhì)量。在RUP中軟件質(zhì)量評估不再是事后進行或單獨小組進行的分離活動,而是內(nèi)建于過程中的所有活動,這樣可以及早發(fā)現(xiàn)軟件中的缺陷。
控制軟件變更。迭代式開發(fā)中如果沒有嚴格的控制和協(xié)調(diào),整個軟件開發(fā)過程很快就陷入混亂之中,RUP描述了如何控制、跟蹤、監(jiān)控、修改以確保成功的迭代開 發(fā)。RUP通過軟件開發(fā)過程中的制品,隔離來自其他工作空間的變更,以此為每個開發(fā)人員建立安全的工作空間。
二、統(tǒng)一軟件開發(fā)過程RUP的二維開發(fā)模型
RUP軟件開發(fā)生命周期是一個二維的軟件開發(fā)模型。 橫軸通過時間組織,是過程展開的生命周期特征,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括周期(Cycle)、階段(Phase)、迭代 (Iteration)和里程碑(Milestone);縱軸以內(nèi)容來組織為自然的邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括活動 (Activity)、產(chǎn)物(Artifact)、工作者(Worker)和工作流(Workflow)。如圖1:

三、統(tǒng)一軟件開發(fā)過程RUP核心概念
RUP中定義了一些核心概念,如下圖:

角色:描述某個人或者一個小組的行為與職責。RUP預(yù)先定義了很多角色。
活動:是一個有明確目的的獨立工作單元。
工件:是活動生成、創(chuàng)建或修改的一段信息。