RUP(Rational Unified Process,統一軟體開發過程)是一個物件導向且基於網路的程式開發方法論。它是Rational公司(現在是IBM)開發的軟體開發方法。根據Rational的說法RUP好像一個線上的指導者,它可以為所有方面和層次的程式開發提供指導方針,模版以及案例支援。 RUP和類似的產品,例如物件導向的軟體過程(OOSP),以及OPEN Process都是理解性的軟體工程工具,把開發中面向過程的方面(例如定義的階段,技術和實踐)和其他開發的組件(例如文檔,模型,手冊以及代碼等等)整合在一個統一的架構內。
1.1.1 經驗
迭代式開發:
在軟體開發的早期階段就想完全、準確的捕獲使用者的需求幾乎是不可能的。實際上,我們經常遇到的問題是需求在整個軟體開發工程中經常會改變。迭代式開發允許在每次迭代過程中需求可能有變化,通過不斷細化來加深對問題的理解。迭代式開發不僅可以降低項目的風險,而且每個迭代過程以可以執行版本結束,可以鼓舞開發人員。
管理需求:
確定系統的需求是一個連續的過程,開發人員在開發系統之前不可能完全詳細的說明一個系統的真正需求。RUP描述了如何提取、組織系統的功能和約束條件並將其文檔化,用例和指令碼的使用以被證明是捕獲功能性需求的有效方法。
基於組件的體繫結構:
組件使重用成為可能,系統可以由組件組成。基於獨立的、可替換的、模組化組件的體繫結構有助於管理複雜性,提高重用率。RUP描述了如何設計一個有彈性的、能適應變化的、易於理解的、有助於重用的軟體體繫結構。
可視化建模:
RUP往往和UML聯絡在一起,對軟體系統建立可視化模型協助人們提供管理軟體複雜性的能力。RUP告訴我們如何可視化的對軟體系統建模,擷取有關體繫結構於組件的結構和行為資訊。
驗證軟體品質:
在RUP中軟體品質評估不再是事後進行或單獨小組進行的分離活動,而是內建於過程中的所有活動,這樣可以及早發現軟體中的缺陷。
控制軟體變更:
迭代式開發中如果沒有嚴格的控制和協調,整個軟體開發過程很快就陷入混亂之中,RUP描述了如何控制、跟蹤、監控、修改以確保成功的反覆式開發法。RUP通過軟體開發過程中的製品,隔離來自其他工作空間的變更,以此為每個開發人員建立安全的工作空間。