UML与RUP(PPT) .ppt
面向对象建模技术,软件工程系林 琳,成功的项目所需要具有的三个方面符号、过程和工具。你可以学习一种符号,但是如果不知道如何 利用它(过程),你可能会失败。你可能拥有强大的过程,但是如果不能沟通这些过程(符号),你也可能失败。最后,如果你不能记载自己的工作文档(工具),你也可能失败。,第11章 UML与RUP,3,软件开发过程是软件工程的要素之一,有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它。当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP)。RUP是软件开发过程的一种,它为有效地使用统一建模语言UML提供了指导。,使用广泛的几种软件过程,Rational Unified ProcessOPEN ProcessObject-Oriented Software ProcessExtreme ProgrammingCatalysis,5,本章学习要点:,了解软件开发过程了解UML与RUP的关系及使用RUP的原因理解RUP的二维空间理解RUP的各核心工作流程,6,11.1 理解软件开发过程,软件开发过程是指应用于软件开发和维护当中的阶段、方法、技术、实践和相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。软件开发过程是开发高质量软件所需完成的任务的框架。软件工程是一种层次化的技术,如图所示。,流程图、数据流图、UML图,Waterfall、RUP、OOSP、XP,需求分析、设计、编码、测试,ISO9000、CMM,7,11.2 Rational统一过程(RUP),UML(Unified Modeling Language)仅仅是一种系统建模语言,它并没有告诉建模人员应该如何使用它,为了使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP),也称为Unified Process(统一过程)。为什么叫RUP?由Rational公司(IBM)开发并维护有一套统一的架构描述的是软件开发过程可以根据需要进行裁剪,11.2.1 理解RUP,软件开发过程是使软件从概念到成品所能遵循的一系列阶段,RUP作为一种软件开发过程包含了以下4个阶段:初始阶段(Inception):进行最初分析的阶段,用于确定要开发的系统,进行风险分析。注意:此阶段并不定义需求。细化阶段(Elaboration):进行系统详细分析设计的阶段,用于确定系统的功能。构建阶段(Construction):是一个根据系统设计的结果进行实际的软件制品构建的过程,该过程是一个增量过程,代码在每个可管理的部分进行编写。交付阶段(Transition):在该阶段中,将会处理将软件系统交付给用户的事务。,8,11.2.2 为什么要使用RUP,在目前比较流行的软件开发过程中,RUP是由发明UML的3位方法学家提出的,与其他软件开发过程相比,使用RUP可以更好地进行UML建模,RUP能够为软件开发团队提供指南、文档模板和工具,从而使软件开发团队能够最有效地利用当前软件开发实践中所获得的六项最佳实践。迭代地软件开发需求管理使用基于组件的架构为软件建立可视化模型验证软件质量软件变更控制,9,11.2.2 为什么要使用RUP,瀑布模型的缺点需要在开始进行完整的需求分析不适应软件开发的高变更率特点早期的分析后期可能无用容易导致软件失败,各种规模软件项目的变更百分比,瀑布式定义的特性实际使用情况,11.2.2 为什么要使用RUP,迭代开发进行适量的需求分析避免瀑布思维的侵蚀,11.3 RUP的二维空间,在RUP中,根据时间和核心工作流程,软件生命周期被划分为二维空间,也可以说RUP是沿着两个轴发展的;水平轴(时间维)显示了RUP动态的一面,在RUP中,使用周期(Cycle)、阶段(Phase)、迭代(Iteration)等术语进行描述;垂直轴代表了RUP静态的一面,该维是按照内容组织的,包含了RUP的核心过程工作流程和核心支持工作流程,在RUP中使用活动(Activity)、制品(Artifact)、工作人员(Worker)和工作流(Workflow)等术语进行描述。,14,Process Architecture,Time,Content,RUP的二维开发模型,11.3.1 时间维,时间维空间是RUP随着时间的动态组织,RUP将软件生命周期划分为初始阶段、细化阶段、构建阶段和移交阶段4个阶段,每个阶段的结果都是一个里程碑(Milestones),都要达到特定的目标。初始阶段的任务、输出和评价准则细化阶段的任务、输出和评价准则构建阶段的任务、输出和评价准则移交阶段的任务、输出和评价准则每个阶段都可以细分为迭代,17,11.3.2 RUP的静态结构,RUP的静态结构是用工作人员、活动、制品和工作流等描述的;工作人员(工作人员,Workers):代表“谁”来做?活动(Activities):代表“如何”去做?制品(Artifacts):代表要得到“什么东西”?工作流(Workflows):代表“按照什么顺序”做?,23,工作流(Workflows),核心过程工作流(Core Process Workflows)商业(业务)建模(Business Modeling)需求(Requirements)分析与设计(Analysis and Design)实现(Implementation)测试(Test)部署(Deployment)核心支持工作流(Core Supporting Workflows)项目管理(Project Management)配置和变更管理(Configuration and Change Management)环境(Environment)9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。,24,11.4 核心工作流介绍,11.4.1 需求工作流11.4.2 分析工作流11.4.3 设计工作流11.4.4 实现工作流11.4.5 测试工作流,11.4.1 需求工作流,通过对问题的理解和分析,确立问题涉及的信息、功能和系统行为,将用户需求精确化、完全化。需求的焦点主要在初始和细化阶段,在细化阶段后期,需求捕获的工作量大幅下降。,11.4.1 需求工作流,11.4.1 需求工作流,1.工作人员2.制品3.工作流,1.工作人员,参与需求捕获阶段的工作人员:系统分析师(System Analyst)用例描述人员(Use Case Specifier)GUI设计人员(User Interface Designer)构架设计师(Architect),2.制品,在需求捕获工作流,主要的UML制品:用例模型(Use Case Model)参与者(Actor)用例(Use Case)架构描述术语表(Glossary)GUI原型,3.工作流,需求捕获的工作流主要包括五个活动:确定参与者和用例区分用例的优先级详细描述用例构造GUI原型构造用例模型,11.4.2 分析工作流,分析的主要工作开始于初始阶段的结尾,和需求一样是细化阶段的主要焦点。细化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。,11.4.2 分析工作流,11.4.2 分析工作流,1.工作人员2.制品3.工作流,1.工作人员,在分析工作流期间,所参与的工作人员:构架工程师用例工程师组件工程师,2.制品,在分析工作流期间,主要的UML制品:分析模型分析类用例实现(分析)分析包架构模型,3.工作流,分析工作流主要包括四个活动:架构分析分析用例分析类分析包,11.4.3 设计工作流,设计工作流的主要工作是位于细化阶段的最后部分和构建阶段的开始部分的主要建模活动。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。,11.4.3 设计工作流,11.4.3 需求捕获工作流,1.工作人员2.制品3.工作流,1.工作人员,参与设计工作流的工作人员包括:架构设计师用例工程师组件工程师,2.制品,在分析工作流期间,主要的UML制品:设计模型设计类用例实现设计子系统接口部署图,3.工作流,设计工作流中,主要包括四种活动:架构设计设计用例设计类设计一个子系统,11.4.4 实现工作流,实现(实施)是关于把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。实现工作流是构建阶段的焦点。,11.4.4 实现工作流,11.4.4 实现工作流,1.工作人员2.制品3.工作流,1.工作人员,参与实现工作流的工作人员:架构设计师组件工程师系统集成人员,2.制品,在实现工作流中,主要有六种制品:实现模型组件实现子系统接口架构的实现模型集成构造计划,3.工作流,在实现工作流中,包括一系列活动:架构实现系统集成实现一个子系统实现一个类执行单元测试,11.4.5 测试工作流,测试是一项相当重要的工作。测试工作流贯穿于软件开发的整个过程。它开始于软件开发的初始阶段,而细化阶段和构建阶段是测试的焦点。测试是为了找出程序中的错误与权限,而不能证明程序无错。,11.4.5 测试工作流,11.4.5 测试工作流,1.工作人员2.制品3.工作流,1.工作人员,参与测试工作流的工作人员主要有四类:测试设计人员组件工程师集成测试人员系统测试人员,2.制品,测试工作流中,包括七个制品:测试模型测试用例测试规程测试组件测试计划缺陷评估测试,3.工作流,在测试工作流中,包括六种活动:制定测试计划设计测试实现测试执行集成测试执行系统测试评估测试,参考书,Rational统一过程引论/(美)Kruchten,Philippe著http:/,本章完,