開發流程 – RUP

來源:互聯網
上載者:User
Summary

RUP的基本組成元素:
   
通過工作流程的方式體現軟體工程過程,以各種指導原則方式組織,並明確各個角色及其職責、活動、工件等
整個軟體工程過程的步驟劃分如下:
   

關鍵特徵:迭代(Iterative)、以架構為中心(Architecture-Centric)、用例驅動(Use-Case Driven)
     
橫軸表示時間維度,縱軸表示RUP中的9個工作流程。工作流程在縱軸上的高度,表示某時刻該工作流程的工作量比重

Phases

在時間維度上,RUP將項目分成4個階段(Phases):初始階段Inception、細化階段Elaboration、構造階段Construction、交付階段Transition。階段只是一種較粗的劃分方式,強調該時間段內的工作重心、主要目標。比如說交付階段,並不僅僅是將項目交付給使用者使用,同時也包括了需求、設計、實現、測試等活動,只是說這個階段從項目整體來看,他的重點在於給客戶交付,比如參考下面的增量交付模式
每個階段包含一個或者多個迭代過程,每個迭代都是一個完整的開發流程,至少包括需求、分析設計、實現、測試這幾個活動,可以看作一個小的瀑布模型過程,每個迭代的產出都是穩定的、可執行檔產品(產品子集)
每個工作流程都定義了相關的產出,在項目的四個階段中,各工作流程產出的完成情況可以用大致描述
   
項目完成時,所有產出都是完整的
每個階段結束都是一個主要milestone,需要進行評估檢驗是否實現了該階段的目標

對比較典型的中型項目,各階段的進度、工作量分布大致如下
   
   

初始階段 Inception
對新項目,初始階段主要與利益相關者就項目目標進行交流,確定業務和需求風險等,對已有系統改進升級的項目,也需要確定項目值得做並且可以做
工作流程:

主要目標:
1. 確定專案範圍、邊界條件,包括運作情境、驗收標準,以及哪些可能會做哪些可能不會做
2. 確定關鍵用例、主要業務情境,用於開展主設計工作
3. 針對主要業務情境,陳述或者是示範至少一種備選架構方案
4. 評估項目的總體成本和進度計劃
5. 評估潛在的風險
6. 項目環境準備

細化階段 Elaboration
確定系統架構,為後續構造階段的設計和實現工作提供一個穩定的基礎
工作流程:

主要目標:
1. 確定架構的各種風險
2. 構建基準架構
3. 使用原型降低風險
4. 基於成本、時間等方面評估驗證架構的可行性,確保架構、需求和進度計劃足夠穩定,以及風險被很好的控制,不影響項目成本和進度
5. 下階段環境準備

構建階段 Construction
明確項目需求,基於架構進行開發,重點是成本、進度、品質的控制

交付階段 Transition
包括髮布前的測試、根據使用者反饋進行調整。使用者反饋應該集中於產品的最佳化、配置、安裝、使用者使用性等問題
還有安裝準備工作、使用者培訓、上線運行、實現客戶自我維護、按照驗收標準進行評估、利益相關者確定交付完成等

Iteration

每個迭代確定一個主要的milestone,需要release出可執行檔產品。迭代劃分的粒度不會太細,一般小項目中一個迭代也在一周以上。因為迭代的主要目的是降低類似瀑布模型方式下的風險,避免在最後時刻所有風險才顯現出來,因此一個迭代結束,需要有驗證評估等管理手段,迭代周期劃分的太細反而會失去這種管理方式的初衷。但迭代周期也不能劃分的太長,否則仍然會減弱對風險的控制能力

迭代模式:Incremental Lifecycle(增量模式)
確定使用者要求,定義系統需求,然後通過多個構建階段實現產品,第一個階段實現一部分功能,以後每個階段添加一部分功能
典型過程:
   
1. 一個較短的初始期迭代,建立專案範圍和目標,建立業務用例
2. 一個細化期迭代,確定需求,建立架構
3. 多個構造期迭代,實現架構和用例
4. 多個交付期迭代,整合產品,交付給使用者
適用情境:a). 對問題域很熟悉;b). 較好的理解項目風險;c). 項目團隊經驗豐富

迭代模式:Evolutionary Lifecycle(演化模式)
不同於增量模式的地方是使用者的要求無法確定,沒法在最開始將使用者需求完全定義出來,而是通過一個個迭代過程來明確、確定使用者需求,構建項目、產品
典型過程:
   
1. 一個較短的初始期迭代,建立專案範圍和目標,建立業務用例
2. 多個細化期迭代,每個階段使用者需求進一步細化、明確
3. 一個構造期迭代,實現架構和用例
4. 多個交付期迭代,整合產品,交付給使用者
適用情境:a). 針對新的或不熟悉的問題域;b). 團隊經驗不足

迭代模式:Incremental Delivery Lifecycle(增量交付模式)

可以說是增量模式的一種,但其迭代的產出需要給客戶部署實施起來。一般情境是市場壓力比較大,儘早發布關鍵功能可以給客戶帶來巨大的商業效益。對客戶而言關鍵在於儘早發布,這種模式要求一開始能建立一個穩定的架構
典型過程:
   
1. 一個較短的初始期迭代,建立專案範圍和目標,建立業務用例
2. 一個細化期迭代,需要基本確定一個穩定的架構
3. 一個構造期迭代,實現架構和用例
4. 多個交付期迭代,整合產品,交付給使用者
適用情境:a). 對問題域很熟悉,需求和架構能儘早在項目初期確定,針對項目團隊和客戶而言沒有太多新的需要嘗試的東西;b). 團隊經驗豐富;c). 增量的功能發布能給客戶帶來很高的價值

迭代模式:Grand Design Lifecycle(總設計模式)
即瀑布模型,他可以看作迭代模式的退化方式,只包含一個迭代周期。實際操作中可能會包含多個交付迭代周期。與增量互動模式等相比,他的構造期時間比較長,例如所示,其構造期相比於正常的迭代過程,所佔比例比較大,並且是單一一個構造期
   

迭代模式:Hybrid Strategies(混合模式)
沒有幾個項目採用單一迭代模式,都是各種形式的混合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.