統一軟件開發過程——RUP

RUP(rational unified process)是一個面向對象且基於網絡的程序開發方法論。它是以面向對象方法爲基礎的方法,RUP堅持以用例驅動,以架構爲中心,迭代和增量的開發方法。

  下面以思維導圖爲依據簡單介紹一下RUP:

  

 1.六大經驗

  1)迭代式開發

  RUP中的每一個階段可進一步分解爲迭代,一個迭代是一個完整的開發循環,每一次循環都可以產生一個執行文件,每一次循環都是一次增量開發直到形成最終產品。迭代式開發允許在每次迭代過程中需求發生變化,通過不斷細化對問題加深理解。迭代式開發不僅可以降低風險,而且每次迭代過程都可以執行版本結束,一次鼓舞團隊士氣。

  2)管理需求

  RUP描述瞭如何提取、組織系統的功能和約束條件並將其文檔化,用例和腳本的使用證明了是捕獲需求的有效方法。

  3)基於組件的體系結構

  基於獨立的、可替代的、模塊化組件的體系結構有助於管理複雜性,提高使用率。RUP描述瞭如何設計一個有彈性的、能適應變化的、易於理解的、有助於複用的軟件體系結構。

  4)可視化建模

 RUP往往和UML聯繫在一起,對軟件系統建立可視化模型幫助人們提高管理軟件複雜性的能力。RUP告訴我們如何可視化的對軟件系統建模,獲取有關體系結構於組件的結構和行爲信息。

  5)驗證軟件質量

 在RUP中軟件質量評估不再是事後進行或單獨小組進行的分離活動,而是內建於過程中的所有活動,這樣可以及早發現軟件中的缺陷,提高軟件質量節約軟件成本。

  6)控制軟件變更

  迭代式開發中如果沒有嚴格的控制和協調,整個軟件開發過程很快就陷入混亂之中,RUP描述瞭如何控制、跟蹤、監控、修改以??品,隔離來自其他工作空間的變更,以此爲每個開發人員建立安全的工作空間。

 2.二維開發模型

 RUP軟件開發生命週期是一個二維的軟件開發模型。橫軸通過時間組織,是過程展開的生命週期特徵,體現開發過程的動態結構,用來描述它的術語主要包括週期、階段、迭代里程碑;縱軸以內容來組織爲自然的邏輯活動,體現開發過程的靜態結構,用來描述它的術語主要包括活動、產物、工作者和工作流。如圖:

  

 3.核心概念

  RUP中定義的核心概念主要有角色、活動和工作:

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

  

 4.裁剪

  RUP是一個通用的過程模板,包含了很多開發指南、製品、開發過程所涉及到的角色說明,由於它非常龐大所以對具體的開發機構和項目,用RUP時還要做裁剪,也就是要對RUP進行配置。RUP就像一個元過程,通過對RUP進行裁剪可以得到很多不同的開發過程,這些軟件開發過程可以看作RUP的具體實例。RUP裁剪可以分爲五步:

  1) 確定本項目需要哪些工作流

  2) 確定每個工作流需要哪些製品。

  3) 確定4個階段之間如何演進。確定階段間演進要以風險控制爲原則,決定每個階段要哪些工作流,每個工作流執行到什麼程度,製品有哪些,每個製品完成到什麼程度。

  4) 確定每個階段內的迭代計劃。規劃RUP的4個階段中每次迭代開發的內容。

  5) 規劃工作流內部結構。工作流涉及角色、活動及製品,他的複雜程度與項目規模即角色多少有關。最後規劃工作流的內部結構,通常用活動圖的形式給出。

 5.開發過程

  RUP中的軟件生命週期在時間上被分解爲四個順序的階段,分別是:初始階段、細化階段、構造階段和交付階段。在每個階段的結尾執行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許項目進入下一個階段。

  1)初始階段

 初始階段的目標是爲系統建立商業案例並確定項目的邊界。爲了達到該目的必須識別所有與系統交互的外部實體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險。對於建立在原有系統基礎上的開發項目來講,初始階段可能很短。

  2)細化階段

 細化階段的目標是分析問題領域,建立健全的體系結構基礎,編制項目計劃,淘汰項目中最高風險的元素。爲了達到該目的,必須在理解整個系統的基礎上,對體系結構作出決策,包括其範圍、主要功能和諸如性能等非功能需求。同時爲項目建立支持環境,包括創建開發案例,創建模板、準則並準備工具。

  3)構造階段

 在構建階段,所有剩餘的構件應用程序功能被開發並集成爲產品,所有的功能被詳細測試。從某種意義上說,構建階段是一個製造過程,其重點放在管理資源及控制運作以優化成本、進度和質量。

  4)交付階段

 交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括爲發佈做準備的產品測試,基於用戶反饋的少量的調整。在生命週期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,所有主要的結構問題應該已經在項目生命週期的早期階段解決了。

 6.核心工作流

  RUP中有9個核心工作流,分爲6個核心過程工作流和3個核心支持工作流。這些工作流在整個生命週期中被多次訪問。9個核心工作流在項目中輪流被使用,在每一次迭代中以不同的重點和強度重複。

  1)商業建模

商業建模工作流描述瞭如何爲新的目標組織開發一個構想,並基於這個構想在商業用例模型和商業對象模型中定義組織的過程,角色和責任。

  2)需求

 需求工作流的目標是描述系統應該做什麼,並使開發人員和用戶就這一描述達成共識。爲了達到該目標,要對需要的功能和約束進行提取、組織、文檔化;最重要的是理解系統所解決問題的定義和範圍。

  3)分析和設計

 分析和設計工作流需求轉化成未來系統的設計,爲系統開發一個健壯的結構並調整設計使其與實現環境相匹配,優化其性能。分析設計的結果是一個設計模型和一個可選的分析模型。設計模型是源代碼的抽象,由設計類和一些描述組成。設計類被組織成具有良好接口的設計包和設計子系統,而描述則體現了類的對象如何協同工作實現用例的功能。設計活動以體系結構設計爲中心,體系結構由若干結構視圖來表達,結構視圖是整個設計的抽象和簡化,該視圖中省略了一些細節,使重要的特點體現得更加清晰。體系結構不僅僅是良好設計模型的承載媒介,而且在系統的開發中能提高被創建模型的質量。

  4)實現

 實現工作流的目的包括以層次化的子系統形式定義代碼的組織結構,以組件的形式實現類和對象,將開發出的組件作爲單元進行測試以及集成由單個開發者(或小組)所產生的結果,使其成爲可執行的系統。

  5)測試

 測試工作流要驗證對象間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正確的實現,識別並確認缺陷在軟件部署之前被提出並處理。RUP提出了迭代的方法,意味着在整個項目中進行測試,從而儘可能早地發現缺陷,從根本上降低了修改缺陷的成本。測試類似於三維模型,分別從可靠性、功能性和系統性能來進行。

  6)部署

 部署工作流的目的是成功的生成版本並將軟件分發給最終用戶。部署工作流描述了那些與確保軟件產品對最終用戶具有可用性相關的活動,包括:軟件打包、生成軟件本身以外的產品、安裝軟件、爲用戶提供幫助。

  7)配置和變更管理

 配置和變更管理工作流描繪瞭如何在多個成員組成的項目中控制大量的產物。配置和變更管理工作流提供了準則來管理演化系統中的多個變體,跟蹤軟件創建過程中的版本。工作流描述瞭如何管理並行開發、分佈式開發、如何自動化創建工程。同時也闡述了對產品修改原因、時間、人員保持審計記錄。

  8)項目管理

 軟件項目管理平衡各種可能產生衝突的目標,管理風險,克服各種約束併成功交付使用戶滿意的產品。

  9)環境

 環境工作流的目的是向軟件開發組織提供軟件開發環境,包括過程和工具。環境工作流集中於配置項目過程中所需要的活動,同樣也支持開發項目規範的活動,提供了逐步的指導手冊並介紹瞭如何在組織中實現過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章