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

三、統一軟件開發過程RUP核心概念
RUP中定義了一些核心概念,如下圖:

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