軟件工程-7_RUP_第1頁
軟件工程-7_RUP_第2頁
軟件工程-7_RUP_第3頁
軟件工程-7_RUP_第4頁
軟件工程-7_RUP_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Rational Unified Process 2主要內(nèi)容主要內(nèi)容 RUP簡介簡介 RUP裁剪裁剪 Case Study3軟件開發(fā)過程軟件開發(fā)過程 A software development process is the set of activities needed to transform a users requirement into a software system. (軟件開發(fā)過程是一個將用戶的需求轉(zhuǎn)化為軟件系統(tǒng)所需要的活動的集合。) The Unified Software Development Process, Ivan Jacobson, p4Software De

2、velopment ProcessUsers requirementsSoftware system4 A Process defines who is doing what when and how to reach a certain goal. (軟件開發(fā)過程描述了什么時候,什么人,做什么事,以及怎樣實現(xiàn)某一特定的目標(biāo)。)5什么是什么是RUP RUP即Rational Unified Process:是一種軟件工程過程,它提供了如何在開發(fā)組織中嚴(yán)格分配任務(wù)和職責(zé)的方法。 Rational Unified:最佳開發(fā)經(jīng)驗總結(jié) Process:Use case驅(qū)動,以體系結(jié)構(gòu)為中心,迭代和增量

3、 RUP的目標(biāo):按照預(yù)先制定的時間計劃和經(jīng)費預(yù)算,開發(fā)高質(zhì)量的軟件產(chǎn)品以滿足最終用戶的需求。6 RUP的歷史 Ericsson Approach Objectory Process 1.0-3.8 (87-95年) Rational Objectory Process 4.1 (96-97年) RUP 5.0 (98年) RUP 5.5 (99年) RUP 2000 RUP 2001 RUP 2002 RUP 20037 六個最佳開發(fā)經(jīng)驗總結(jié):六個最佳開發(fā)經(jīng)驗總結(jié): 迭代式開發(fā) 管理需求 使用基于構(gòu)件的體系結(jié)構(gòu) 可視化軟件建模 驗證軟件質(zhì)量 控制軟件變更1. 迭代式開發(fā) (Develop so

4、ftware iteratively) 軟件系統(tǒng)非常復(fù)雜,很難按照定義整個問題、設(shè)計整個系統(tǒng)、實現(xiàn)軟件、測試產(chǎn)品的順序線性進行。 迭代允許通過不斷地細化來加深對問題的理解。 迭代可以降低項目的風(fēng)險系數(shù)。 迭代容易容納需求的變更。 每個迭代過程以可執(zhí)行版本告終,有利于鼓舞開發(fā)團隊的士氣。82. 管理需求 (Manage requirements) Use case和scenario的使用被證明是捕獲功能性需求的卓越方法并由它們來驅(qū)動設(shè)計,實現(xiàn)和測試。 RUP描述了如何提取、組織和文檔化系統(tǒng)的功能和約束條件。3. 使用基于構(gòu)件的體系結(jié)構(gòu) (Use component-based architect

5、ures) RUP describes how to design a resilient architecture that is flexible, accommodates change, is intuitively understandable, and promotes more effective software reuse.4. 可視化軟件建模 (Visually model software) 為什么需要建立模型?為什么需要UML? RUP shows you how to visually model software to capture the structure a

6、nd behavior of architectures and components.95. 驗證軟件質(zhì)量 (Verify software quality) 軟件質(zhì)量低下是影響軟件使用的最重要的因素。 質(zhì)量評估被內(nèi)建于過程所有的活動,包括全體成員,使用客觀的度量和標(biāo)準(zhǔn),并且不是事后型的或單獨小組進行的分離活動。6. 控制軟件變更 (Control changes to software) RUP描述了如何控制、跟蹤和監(jiān)控變更以確保成功的迭代開發(fā)。 確定每個修改是可接受的、能被跟蹤的。 通過控制軟件開發(fā)過程中的制品(如模型、代碼、文檔等),隔離來自其它工作空間的變更,以此為每個開發(fā)人員建立安

7、全的工作空間。10 國外引入RUP的大公司: 電信業(yè):Ericsson、Alcatel、MCI 交通、航空、國防:Lockheed-Martin、British Aerospace 制造業(yè):Xerox、Volvo、Intel 金融業(yè):Visa、Merrill Lynch、Schwab 系統(tǒng)集成業(yè):Ernst & Young、Oracle、Deloitte & Touche11核心工作流RUP軟件開發(fā)生命周期軟件開發(fā)生命周期12說明: 二維的軟件開發(fā)模型 在RUP中,軟件開發(fā)生命周期根據(jù)時間和RUP的核心工作流劃分為二維空間。 RUP把軟件開發(fā)周期劃分為多個Cycle,每個Cycle生成一個產(chǎn)品

8、的新的版本。每個Cycle都依次由四個連續(xù)的階段(phase)組成,每個階段都應(yīng)完成確定的任務(wù)。 初始階段(Inception):定義最終產(chǎn)品視圖、業(yè)務(wù)模型并確定系統(tǒng)范圍。 細化階段(elaboration):設(shè)計及確定系統(tǒng)的體系結(jié)構(gòu),制定工作計劃及資源要求。 構(gòu)造階段(construction):構(gòu)造產(chǎn)品并繼續(xù)演進需求、體系結(jié)構(gòu)、計劃直至產(chǎn)品提交。 移交階段(Transition):把產(chǎn)品提交給用戶使用。 13 在每個階段結(jié)束前都應(yīng)有一個里程碑(Milestone)評估該階段的工作。如果未能通過該里程碑的評估,則決策者應(yīng)該做出決定是應(yīng)取消該項目,還是繼續(xù)做該階段的工作。 每一個階段都由一個或

9、多個連續(xù)的迭代(iteration)組成,每一個迭代都是一個完整的開發(fā)過程,它需要項目經(jīng)理根據(jù)當(dāng)前迭代所處的階段、以及上次迭代的結(jié)果,適當(dāng)?shù)貙诵墓ぷ髁髦械男袨檫M行裁剪。14 RUP有九個核心工作流:業(yè)務(wù)建模、需求、分析與設(shè)計、實現(xiàn)、測試、部署、配置和變更管理、項目管理、環(huán)境。 (A discipline is a collection of related activities that are related to a major area of concern within the overall project.) 業(yè)務(wù)建模(Business Modeling):理解待開發(fā)系統(tǒng)的組織結(jié)

10、構(gòu)及其商業(yè)運作,確保所有參與人員對待開發(fā)系統(tǒng)有共同的認識。 需求(Requirements):定義系統(tǒng)功能及用戶界面,使客戶知道系統(tǒng)的功能,開發(fā)人員知道系統(tǒng)的需求,為項目預(yù)算及計劃提供基礎(chǔ)。 分析與設(shè)計(Analysis and Design):把需求分析的結(jié)果轉(zhuǎn)化為實現(xiàn)規(guī)格。15 實現(xiàn)(Implementation):定義代碼的組織結(jié)構(gòu)、實現(xiàn)代碼、單元測試、系統(tǒng)集成。 測試(Test):校驗各自子系統(tǒng)的交互與集成。確保所有的需求被正確實現(xiàn)并在系統(tǒng)發(fā)布前發(fā)現(xiàn)錯誤。 部署(Deployment):打包、分發(fā)、安裝軟件,升級舊系統(tǒng);培訓(xùn)用戶及銷售人員,并提供技術(shù)支持。制定并實施beta測試。 配置

11、和變更管理(Configuration and Change Management):跟蹤并維護系統(tǒng)所有產(chǎn)品的完整性和一致性。16 項目管理(Project Management):為計劃、執(zhí)行和監(jiān)控軟件開發(fā)項目提供可行性的指導(dǎo);為風(fēng)險管理提供框架。 環(huán)境(Environment):為組織提供過程管理和工具的支持。17RUP中的核心概念中的核心概念 RUP中的一些核心概念包括: Role (角色-who): 角色描述某個人或一個小組的行為與職責(zé)。RUP預(yù)先定義了很多角色,例如:Architect、Designer、Implementer、Tester、Configuration Manager

12、, , 等等,并對每一個角色的工作和職責(zé)都作了詳盡的說明。 Activity (活動-how): 活動是一個有明確目的的獨立工作單元。 Artifact (產(chǎn)品, 制品, 工件-what): 產(chǎn)品是活動生成、創(chuàng)建或修改的一段信息。 Workflow (工作流-when): 工作流描述了一個有意義的連續(xù)的活動序列,每個工作流產(chǎn)生一些有價值的產(chǎn)品,并顯示了角色之間的關(guān)系。18 A role defines the behavior and responsibilities of an individual, or a set of individuals working together as a

13、 team, within the context of a software engineering organization. An activity is something that a role does that provides a meaningful result in the context of the project. An artifact is a work product of the process. roles use artifacts to perform activities, and produce artifacts in the course of

14、 performing activities. A workflow is a way to describe meaningful sequences of activities that produce some valuable result, and to show interactions between roles.19RUP 2003中基本概念之間的關(guān)系:20RUP的特點的特點 RUP的特點: Use case驅(qū)動,以體系結(jié)構(gòu)為中心,迭代和增量 1. Development activities under the RUP are use case driven. Require

15、ment capture Analysis and design Implementation Test實現(xiàn)實現(xiàn)測試測試需求需求分析和分析和設(shè)計設(shè)計Use Cases 把所有這些過程綁到一起把所有這些過程綁到一起21 2. Development under the RUP is architecture-centric. 什么是軟件體系結(jié)構(gòu)? Software architecture involves the description of elements from which systems are built, interactions among those elements, pa

16、tterns that guide their composition, and constraints on these patterns. (Software architectureperspectives on an emerging discipline, Mary Shaw and David Garlan)22 體系結(jié)構(gòu)刻畫了系統(tǒng)的整體設(shè)計,它去掉了細節(jié)部分,突出了系統(tǒng)的重要特征。 軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。 體系結(jié)構(gòu)層次的設(shè)計問題包括系統(tǒng)的總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素

17、的組織,物理分布,系統(tǒng)伸縮性和性能等。23 由于在項目的開發(fā)過程中不同的開發(fā)人員所關(guān)心的角度是不一樣的,因此軟件的體系結(jié)構(gòu)應(yīng)該是一個多維的結(jié)構(gòu),RUP采用如下圖所示的4+1 View(視圖)模型,利用UML語言來描述軟件的體系結(jié)構(gòu)。24End user - functionality - vocabularyProgrammers - system assembly - configuration managementAnalysts/Testers - BehaviorSystem integrators - Performance - Scalability - ThroughputSys

18、tem engineering - System topology - Distribution - Delivery - InstallationLogical ViewImplementation ViewProcess ViewDeployment ViewUse Case View41視圖模型25說明: 分析人員和測試人員關(guān)心的是系統(tǒng)的行為,因此會側(cè)重于用例視圖; 最終用戶關(guān)心的是系統(tǒng)的功能,因此會側(cè)重于邏輯視圖; 程序員關(guān)心的是系統(tǒng)的配置、裝配等問題,因此會側(cè)重于實現(xiàn)視圖; 系統(tǒng)集成人員關(guān)心的是系統(tǒng)的性能、可伸縮性、吞吐率等問題,因此會側(cè)重于進程視圖; 系統(tǒng)工程師關(guān)心的是系統(tǒng)的發(fā)布、

19、安裝、拓撲結(jié)構(gòu)等問題,因此會側(cè)重于部署視圖。26 3. The RUP is an iterative and Incremental Process. Develop in Small Steps Plan a little Specify, design and implement a little Integrate, test, and run each iteration a little27 為什么要進行迭代增量式開發(fā)? To Get a handle on the critical and significant risk early. To set forth an archi

20、tecture to guide software development. To provide a framework that better handles inevitable requirement and other changes. To build up the system over time incrementally rather than all at once near the end when change becomes expensive. To provide a development process through which the staff can

21、work more effectively.28主要內(nèi)容主要內(nèi)容 RUP簡介簡介 RUP裁剪裁剪 Case Study29RUP裁剪裁剪 RUP是一個通用的過程框架,具體應(yīng)用時還要做裁剪(配置)。 RUP可用于各種不同類型的軟件系統(tǒng)、各種不同的應(yīng)用領(lǐng)域、各種不同類型的開發(fā)機構(gòu)、各種不同功能級別以及各種不同的項目規(guī)模。 RUP就像是一個元過程(meta-process),通過對RUP進行裁剪可以得到很多不同的軟件開發(fā)過程,這些軟件開發(fā)過程可以看作是RUP的具體實例,這些具體的開發(fā)過程實例適合于不同的開發(fā)機構(gòu)和項目的需要。 30軟件開發(fā)過程是軟件軟件開發(fā)過程是軟件 Leon Osterweil在其

22、論文 Software Processes are Software Too 中指出:“軟件開發(fā)過程是軟件”, Proceedings of the 9th international conference on Software Engineering, 1987, p 2-13 軟件過程也是經(jīng)過了需求捕獲、分析、設(shè)計、實現(xiàn)和測試等活動才開發(fā)出來的。 軟件過程在開發(fā)出來之后,也有交付使用、維護升級直至廢棄的過程。 交付使用就是將軟件過程實施,用于指導(dǎo)軟件項目的開發(fā)。 被授予most influential paper獎, ICSE 9731 ICSEs Most Influential Pa

23、per Award1989 Marc J. Rochkind: The Source Code Control System, NCSE-1, 1975.1990 William A. Wulf, Ralph L. London, Mary Shaw: An Introduction to the Construction and Verification of Alphard Programs, ICSE-2, 1976.1991 David Parnas: Designing Software for Ease of Extension and Contraction, ICSE-3, 1

24、978.1992 Walter Tichy: Software Development Control Based on Module Interconnection, ICSE-4, 1979. 1993 Mark Weiser: Program Slicing, ICSE-5, 1981.1994 Sol Greenspan, John Mylopoulos, Alex Borgida: Capturing More World Knowledge in the Requirements Specification, ICSE-6, 1982. 1995 David L. Parnas,

25、Paul C. Clements, David M. Weiss: The Modular Structure of Complex Systems, ICSE-7, 1984. 321996 Sam Redwine Jr., William Riddle: Software Technology Maturation, ICSE-8, 1985. 1997 Lee Osterweil: Software Processes are Software Too, ICSE-9, 1987. and Manny Lehman: Process Models, Process Programs, P

26、rogramming Support, ICSE-9, 1987. 1998 David Harel, Hagi Lachover, Amnon Naamad, Amir Pnueli, Michal Politi, Rivi Sherman, Aharon Shtul-Trauring: Statemate: A Working Environment for the Development of Complex Reactive Systems, ICSE-10, 1988. 1999 Dewayne Perry: The Inscape Environment, ICSE-11, 198

27、9. 2000 No award. 2001 Robert Balzer: Tolerating Inconsistency, ICSE-13, 1991. 2002 David S. Rosenblum: Towards a Method of Programming with Assertions, ICSE-14, 1992. 2003 Bashar Nuseibeh, Jeff Kramer, Anthony Finkelstein: Expressing the Relationships between Multiple Views in Requirements Specific

28、ation, ICSE-15, 1993. 33 對RUP裁剪的理解 RUP裁剪是軟件過程開發(fā)的再工程: Rational公司開發(fā)出了RUP; 我們想將RUP裁剪后用于某軟件項目,于是對RUP進行逆向工程得到RUP開發(fā)需求和RUP設(shè)計方案等文檔; 然后,再考慮我們這個軟件項目得到某軟件項目軟件過程需求; 最后,比較兩個需求,借鑒RUP設(shè)計方案,進行軟件過程開發(fā)的正向工程得到某軟件項目軟件開發(fā)過程。 對RUP進行逆向工程其實就是個理解RUP的過程。34需求需求 Rational的大師們在開發(fā)RUP時先要進行需求捕獲,他們捕獲的需求可能包括: RUP將是一個有足夠通用性的過程產(chǎn)品,將RUP適當(dāng)裁剪

29、后應(yīng)能適合絕大多數(shù)項目。(功能性需求) 采用RUP作為開發(fā)過程,開發(fā)風(fēng)險必須最小化。(非功能性需求)35分析分析 Rational的大師們接下來進行分析,可能這樣考慮: 開發(fā)過程由多種“活動”組成。 每種“活動”生產(chǎn)出不同的“產(chǎn)品”,也可能多種“活動”生產(chǎn)出一種“產(chǎn)品”。 活動有業(yè)務(wù)建模、需求、分析和設(shè)計、實現(xiàn)、測試、實施、配置和變更管理、項目管理和環(huán)境。(RUP的九個核心工作流) 產(chǎn)品有:用例模型、分析模型、設(shè)計模型、源程序和測試報告等。 活動可以包含子活動,子活動之間可以并行進行。 “產(chǎn)品”可以是成品或演化中的半成品。36設(shè)計設(shè)計 接下來進行設(shè)計,可能這樣考慮: 為了滿足通用性需求:RUP

30、只提供框架而和具體項目無關(guān)。 為了滿足風(fēng)險最小化需求:引入階段概念和迭代開發(fā)模型,以便給開發(fā)者足夠多的機會,在付出太多代價之前放棄或調(diào)整開發(fā)。37實現(xiàn)實現(xiàn) RUP的實現(xiàn)就是那個可以在線查詢的知識庫,包含豐富的內(nèi)容。38RUP裁剪過程裁剪過程 RUP裁剪可分為五步:1.確定本項目的軟件過程需要哪些工作流 根據(jù)項目規(guī)模的大小不同,RUP的九大核心工作流并不總是需要的,如嵌入式軟件項目一般不需要業(yè)務(wù)建模工作流。2. 確定每個工作流產(chǎn)出哪些產(chǎn)品 如規(guī)定工作流應(yīng)產(chǎn)出哪些類型的文檔。3. 確定階段間演進 確定階段間(初始階段、細化階段、構(gòu)造階段和移交階段)演進要以風(fēng)險控制為原則,決定每個階段要執(zhí)行哪幾個工

31、作流,每個工作流執(zhí)行到什么程度,產(chǎn)出的產(chǎn)品有哪些,每個產(chǎn)品完成到什么程度。394.確定階段內(nèi)的迭代計劃 決定在RUP的四大階段中是否采用迭代開發(fā),如果采用,則每次迭代開發(fā)的內(nèi)容有哪些。 迭代是RUP非常強調(diào)的一個概念,可以進一步降低開發(fā)風(fēng)險,5.規(guī)劃工作流內(nèi)部結(jié)構(gòu) 工作流不是活動的簡單堆積,工作流涉及到角色、活動和產(chǎn)品,工作流的復(fù)雜程度和項目規(guī)模及角色多少等有很大關(guān)系。 這一步要決定本軟件過程要設(shè)立哪些角色;如果第二步中引入了傳統(tǒng)文檔,還要將傳統(tǒng)文檔映射到RUP產(chǎn)品;最后,規(guī)劃工作流內(nèi)部的結(jié)構(gòu),通常用活動圖的形式給出。 這一步是對RUP進行裁剪的難點。40主要內(nèi)容主要內(nèi)容 RUP簡介簡介 RUP裁剪裁剪 Case Study41Example: Course Registration System Rational suite enterprise 2002中的例子。 安裝Rational suite enterprise 2002時選RUP組件,缺省為已選。 執(zhí)行RUP4243444546 再選Examples Overview-Course Registration System項47

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論