统一软件开发过程教程.ppt
Rational Unified Process统一软件开发过程,一、概述,Rational Unified Process(简称RUP)是一套软件工程过程,主要由Ivar Jacobson的 The Objectory Approch 和 The Rational Approch 发展而来。同时,它又是文档化的软件工程产品,所有RUP 的实施细节及方法导引均以Web文档的方式集成在一张光盘上,由Rational公司开发、维护并销售。RUP又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程。RUP 吸收了多种开发模型的优点,具有很好的可操作性和实用性、从它一推出市场,凭借Booch、Ivar Jacobson、以及Rumbagh 在业界的领导地位、以及与统一建模语言(Unified Model Language,简称UML)的良好集成、多种CASE工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组织以它作为软件开发模型框架。,二、喷泉模型,三、支持六大最佳软件开发实践,迭代式开发管理需求使用以组件为中心的软件架构可视化建模验证软件质量控制变更,Initial Project RisksInitial Project Scope,Revise Overall Project Plan Cost Schedule Scope/Content,Plan Iteration N Cost Schedule,Assess Iteration N,Risks Eliminated,Revise Project Risks Reprioritize,Develop Iteration N Collect cost and quality metrics,Define scenarios to address highest risks,Iteration N,3.1.1 Risk Reduction Drives Iterations,3.1 迭代式开发,Iteration Planning,Rqmts Capture,Analysis&Design,Implementation,Test,Prepare Release,Use Cases Drive the Iteration Process,The Iteration Life Cycle:A Mini-Waterfall,Results of previous iterations Up-to-date risk assessment Controlled libraries of models,code,and tests,Release descriptionUpdated risk assessmentControlled libraries,Iteration Planning,Requirements Capture,Analysis&Design,Implementation,Test,Prepare Release,Selected scenarios,Risk,PreliminaryIteration,Architect.Iteration,Architect.Iteration,Devel.Iteration,Devel.Iteration,Devel.Iteration,TransitionIteration,TransitionIteration,Post-deployment,Time,Risk Profile of an Iterative Development,3.1.2 Phases in the Software Life Cycle,The Process has four phasesInception:defining the scope of the projectElaboration:planning the project,specifying features and designing the architectureConstruction:building the productTransition:deployment to the user community,Major milestones,3.1.3 Iterations in the Software Life Cycle,An iteration is a complete development loop ending in a release of an executable product,an increment of the final product under development.,3.2 管理需求,需求工程,需求管理,需求开发,编写规格说明,分析,问题获取,验证,基准需求说明,分析编写文档评审、商议,需求变更过程,市场,需求,客户,管理,市场客户管理,项目环境,当前基线,需求开发,需求管理,修正后基线,需求变更,项目变更,需求开发与需求管理之间的界限,3.3 Layered Architecture,Generic components like GUI-builders,interfacing to DBMS,operating system services,ORB抯,OLE comp抰s,etc.,Components for the application engineers,Distinct application systems,Operating systems,DBMSs,OLE,foundation classes,etc.,Variants of a particular application system,System software platform,Non-domain specific component systems,Domain specific component systems,Application systems,3.4 可视化建模,可视化建模提高了抽象的水平,3.5 检验软件质量,软件质量定义产品质量过程质量外在质量内在质量保证质量的方法,3.6 控制变更,在开发软件密集型系统时,所面临的一个关键挑战就是必须应付分散到不同团队中的多个开发人员,他们可能在不同的地方,为各次迭代、各个发布版、产品和平台协同工作。配置与变更管理为使各个开发人员及团队在执行活动和使用工件方面协调一致,需要建立可重复的过程以管理软件和其他开发工件的变更。管理变更请求为了使迭代和发布协调一致,需要在每次迭代完成时建立和发布一个测试过的基线。为了评估和有效地控制变更的影响,有必要保持每个发布版的元素和多个并行发布版中的元素的可追踪性。管理基线与发布,四、软件开发生生命周期的二维空间,One iteration,Architectureiteration,时间维从组织管理的角度描述整个软件开发生命周期,是RUP的动态组成部分。它可进一步描述为周期(Cycle)、阶段(phase)、迭代(Iteration)。核心工作流从技术角度描述RUP的静态组成部分,它可进一步描述为行为(activities)、工作流(workflow)、产品(artifact)、工人(worker)。图中的阴影部分描述了不同的工作流,在不同的时间段内工作量的不同。值得注意的是,几乎所有的工作流,在所有的时间段内均有工作量,只是大小不同而已。这与Waterfall process 有明显的不同。RUP采用Usecase的概念,把要开发的系统根据各功能使用的情况划分多个Usecase,并采用迭代的思想把系统的风险分布在四个阶段,风险越大的迭代越要放在靠前的阶段做,使软件产品的风险不断降低;而不是像传统软件工程那样越往开发的后期问题越多。所以RUP的思想一推出就受到软件企业的欢迎。按照RUP的开发模式一般可以达到CMM2、3级的水平。当然,理解和掌握RUP需要一个相对较长的过程。,五、如何在过程中使用UML,以软件体系结构为中心用例驱动支持迭代开发过程UML的图与工作流程和模型之间的关系,5.1 Process Components and Models,realized by,implemented by,verified by,Each process component is associated with a particular model.,5.2 UML的图与模型的对应关系,用例模型用用例图、顺序图、协作图、状态图和活 动图描述。分析、设计模型用类图和对象图、顺序图、协作 图、状态图和活动图描述。实现模型可用组件图、顺序图和协作图描述。实施模型配置图测试模型测试模型引用了所有其他模型,所以它使 用他们对应的所有图。,