軟件工程中的RUP
RUP(Rational Unified Process,統一軟件開發過程,統一軟件過程)是一個面向對象且基於網絡的程序開發方法論。
RUP總結了6條軟件開發經驗,這些經驗又被稱為“最佳實踐”。
(1)叠代式開發
通常,采用線性順序的開發不能夠解決客戶的需求。實際上,我們經常遇到的問題是需求在整個軟件開發工程中經常會改變。叠代式開發允許在每次叠代過程中需求都可以有變化,通過一系列細化來加深對問題的理解。
(2)管理需求
開發系統之前,開發人員不可能完全詳細的說明一個系統的真正需求,確定系統的需求是一個連續的過程。RUP描述了如何提取、組織系統的功能和約束條件並將其文檔化,用例和腳本的使用已被證明是捕獲功能性
(3)體系結構
構件使軟件重用成為可能,RUP描述了如何設計一個有彈性的、能適應變化的、易於理解的、有助於重用的軟件體系結構。
(4)可視化建模
RUP與UML聯系在一起,在開發過程建立起軟件系統的可視化模型,可以幫助人們提高管理軟件復雜性的能力。
(5)驗證軟件質量
在RUP中軟件質量評估不再是事後進行或單獨小組進行的分離活動,而是內建於過程中的所有活動,這樣可以及早發現軟件中的缺陷。
(6)控制軟件的變更
RUP描述了如何控制,跟蹤和監控修改,才能確保叠代開發的成功。
RUP軟件開發生命周期是一個二維的生命周期模型
RUP有9個核心工作流 ,6個為核心工程流程。3個為核心支持工作流程。其基本任務是業務建模,需求,分析與設計,實現,測試,部署,配置,項目管理,環境。
在工作階段,又分為初始階段,精化階段,構建階段,移交階段。
RUP叠代式開發
RUP中的每個階段可以進一步分解為叠代。一個叠代是一個完整的開發循環,產生一個可執行的產品版本,是最終產品的一個子集,它增量式地發展,從一個叠代過程到另一個叠代過程到成為最終的系統。傳統上的項目組織是順序通過每個工作流,每個工作流只有一次,也就是我們熟悉的瀑布生命周期(見圖2)。這樣做的結果是到實現末期產品完成並開始測試,在分析、設計和實現階段所遺留的隱藏問題會大量出現,項目可能要停止並開始一個漫長的錯誤修正周期。
一種更靈活,風險更小的方法是多次通過不同的開發工作流,這樣可以更好的理解需求,構造一個健壯的體系結構,並最終交付一系列逐步完成的版本。這叫做一個叠代生命周期。在工作流中的每一次順序的通過稱為一次叠代。軟件生命周期是叠代的連續,通過它,軟件是增量的開發。一次叠代包括了生成一個可執行版本的開發活動,還有使用這個版本所必需的其他輔助成分,如版本描述、用戶文檔等。因此一個開發叠代在某種意義上是在所有工作流中的一次完整的經過,這些工作流至少包括:需求工作流、分析和設計工作流、實現工作流、測試工作流。其本身就像一個小型的瀑布項目。
軟件工程中的RUP