熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

軟件項目開發之 軟件過程RUP初探(圖)

2013-11-23 19:53:46  來源: Java高級技術 

  Abstract: This paper discuss the important contents of the Rational Unified Process including Development Phase Iteration Process Core Workflows and so on Additionally giving some comments about its advantages and weaknesses in the software projects development
  
  Key Words: Unified Process Milestone Iteration Core Workflows
  
  一 前言
  
  軟件過程是指實施於軟件開發和維護中的階段方法技術實踐及相關產物(計劃文檔模型代碼測試用例和手冊等)的集合行之有效的軟件過程可以提高開發軟件組織的生產效率提高軟件質量降低成本並減少風險目前市場上領先的軟件過程主要有RUP(Rational Unified Process)OPEN Process和OOSP(ObjectOriented Software Process)
  
  RUP具有較高認知度的原因之一恐怕是因為其提出者Rational軟件公司聚集了面向對象領域三位傑出專家BoochRumbaugh和Jacobson同時它又是面向對象開發的行業標准語言??標准建模語言(UML)的創立者RUP是由Objectory過程演化而來其初始版本為先後經歷了等版本直到最新的Rational Unified Process版本本文主要討論RUP的主要內容和特點
  
  二 RUP的二維開發模型
  
  RUP可以用二維坐標來描述橫軸通過時間組織是過程展開的生命周期特征體現開發過程的動態結構用來描述它的術語主要包括周期(Cycle)階段(Phase)迭代(Iteration)和裡程碑(Milestone)縱軸以內容來組織為自然的邏輯活動體現開發過程的靜態結構用來描述它的術語主要包括活動(Activity)產物(Artifact)工作者(Worker)和工作流(Workflow)如圖
  
 
  圖 RUP的二維開發模型

  
  三 開發過程中的各個階段和裡程碑
  
  RUP中的軟件生命周期在時間上被分解為四個順序的階段分別是初始階段(Inception)細化階段(Elaboration)構造階段(Construction)和交付階段(Transition)每個階段結束於一個主要的裡程碑(Major Milestones)每個階段本質上是兩個裡程碑之間的時間跨度在每個階段的結尾執行一次評估以確定這個階段的目標是否已經滿足如果評估結果令人滿意的話可以允許項目進入下一個階段
  
  .初始階段
  
  初始階段有時也稱先啟階段初始階段的目標是為系統建立商業案例並確定項目的邊界為了達到該目的必須識別所有與系統交互的外部實體在較高層次上定義交互的特性本階段具有非常重要的意義在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險對於建立在原有系統基礎上的開發項目來講初始階段可能很短
  
  初始階段結束時是第一個重要的裡程碑生命周期目標(Lifecycle Objective)裡程碑生命周期目標裡程碑評價項目基本的生存能力
  
  .細化階段
  
  細化階段的目標是分析問題領域建立健全的體系結構基礎編制項目計劃淘汰項目中最高風險的元素為了達到該目的必須在理解整個系統的基礎上對體系結構作出決策包括其范圍主要功能和諸如性能等非功能需求同時為項目建立支持環境包括創建開發案例創建模板准則並准備工具
  
  細化階段結束時第二個重要的裡程碑生命周期結構(Lifecycle Architecture)裡程碑生命周期結構裡程碑為系統的結構建立了管理基准並使項目小組能夠在構建階段中進行衡量此刻要檢驗詳細的系統目標和范圍結構的選擇以及主要風險的解決方案
  
  .構造階段
  
  在構建階段所有剩余的構件和應用程序功能被開發並集成為產品所有的功能被詳細測試從某種意義上說構建階段是一個制造過程其重點放在管理資源及控制運作以優化成本進度和質量
  
  構建階段結束時是第三個重要的裡程碑初始功能(Initial Operational)裡程碑初始功能裡程碑決定了產品是否可以在測試環境中進行部署此刻要確定軟件環境用戶是否可以開始系統的運作此時的產品版本也常被稱為beta
  
  .交付階段
  
  交付階段的重點是確保軟件對最終用戶是可用的交付階段可以跨越幾次迭代包括為發布做准備的產品測試基於用戶反饋的少量的調整在生命周期的這一點上用戶反饋應主要集中在產品調整設置安裝和可用性問題所有主要的結構問題應該已經在項目生命周期的早期階段解決了
  
  在交付階段的終點是第四個裡程碑產品發布(Product Release)裡程碑此時要確定目標是否實現是否應該開始另一個開發周期在一些情況下這個裡程碑可能與下一個周期的初始階段的結束重合
  
  四 RUP的核心工作流(Core Workflows)
  
  RUP中有個核心工作流分為個核心過程工作流(Core Process Workflows)和個核心支持工作流(Core Supporting Workflows)盡管個核心過程工作流可能使人想起傳統瀑布模型中的幾個階段但應注意迭代過程中的階段是完全不同的這些工作流在整個生命周期中一次又一次被訪問個核心工作流在項目中輪流被使用在每一次迭代中以不同的重點和強度重復
  
  .商業建模(Business Modeling)
  
  商業建模工作流描述了如何為新的目標組織開發一個構想並基於這個構想在商業用例模型和商業對象模型中定義組織的過程角色和責任
  
  .需求(Requirements)
  
  需求工作流的目標是描述系統應該做什麼並使開發人員和用戶就這一描述達成共識為了達到該目標要對需要的功能和約束進行提取組織文檔化最重要的是理解系統所解決問題的定義和范圍
  
  .分析和設計(Analysis & Design)
  
  分析和設計工作流將需求轉化成未來系統的設計為系統開發一個健壯的結構並調整設計使其與實現環境相匹配優化其性能分析設計的結果是一個設計模型和一個可選的分析模型設計模型是源代碼的抽象由設計類和一些描述組成設計類被組織成具有良好接口的設計包(Package)和設計子系統(Subsystem)而描述則體現了類的對象如何協同工作實現用例的功能
  
  設計活動以體系結構設計為中心體系結構由若干結構視圖來表達結構視圖是整個設計的抽象和簡化該視圖中省略了一些細節使重要的特點體現得更加清晰體系結構不僅僅是良好設計模型的承載媒介而且在系統的開發中能提高被創建模型的質量
  
  .實現(Implementation)
  
  實現工作流的目的包括以層次化的子系統形式定義代碼的組織結構以組件的形式(源文件二進制文件可執行文件)實現類和對象將開發出的組件作為單元進行測試以及集成由單個開發者(或小組)所產生的結果使其成為可執行的系統
  
  .測試(Test)
  
  測試工作流要驗證對象間的交互作用驗證軟件中所有組件的正確集成檢驗所有的需求已被正確的實現 識別並確認缺陷在軟件部署之前被提出並處理RUP提出了迭代的方法意味著在整個項目中進行測試從而盡可能早地發現缺陷從根本上降低了修改缺陷的成本測試類似於三維模型分別從可靠性功能性和系統性能來進行
  
  .部署(Deployment)
  
  部署工作流的目的是成功的生成版本並將軟件分發給最終用戶部署工作流描述了那些與確保軟件產品對最終用戶具有可用性相關的活動包括軟件打包生成軟件本身以外的產品安裝軟件為用戶提供幫助在有些情況下還可能包括計劃和進行beta測試版移植現有的軟件和數據以及正式驗收
  
  .配置和變更管理(Configuration & Change Management)
  
  配置和變更管理工作流描繪了如何在多個成員組成的項目中控制大量的產物配置和變更管理工作流提供了准則來管理演化系統中的多個變體跟蹤軟件創建過程中的版本工作流描述了如何管理並行開發分布式開發如何自動化創建工程同時也闡述了對產品修改原因時間人員保持審計記錄
  
  .項目管理(Project Management)
  
  軟件項目管理平衡各種可能產生沖突的目標管理風險克服各種約束並成功交付使用戶滿意的產品其目標包括為項目的管理提供框架為計劃人員配備執行和監控項目提供實用的准則為管理風險提供框架等
  
  .環境(Environment)
  
  環境工作流的目的是向軟件開發組織提供軟件開發環境包括過程和工具環境工作流集中於配置項目過程中所需要的活動同樣也支持開發項目規范的活動提供了逐步的指導手冊並介紹了如何在組織中實現過程
  
  五 RUP的迭代開發模式
  
  RUP中的每個階段可以進一步分解為迭代一個迭代是一個完整的開發循環產生一個可執行的產品版本是最終產品的一個子集它增量式地發展從一個迭代過程到另一個迭代過程到成為最終的系統
  
  傳統上的項目組織是順序通過每個工作流每個工作流只有一次也就是我們熟悉的瀑布生命周期這樣做的結果是到實現末期產品完成並開始測試在分析設計和實現階段所遺留的隱藏問題會大量出現項目可能要停止並開始一個漫長的錯誤修正周期
  
 
  圖 RUP的迭代開發模式

  
  一種更靈活風險更小的方法是多次通過不同的開發工作流這樣可以更好的理解需求構造一個健壯的體系結構並最終交付一系列逐步完成的版本這叫做一個迭代生命周期在工作流中的每一次順序的通過稱
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27630.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.