面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt

上传人:本田雅阁 文档编号:3132578 上传时间:2019-07-15 格式:PPT 页数:81 大小:6.21MB
返回 下载 相关 举报
面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt_第1页
第1页 / 共81页
面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt_第2页
第2页 / 共81页
面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt_第3页
第3页 / 共81页
面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt_第4页
第4页 / 共81页
面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt》由会员分享,可在线阅读,更多相关《面向对象的系统分析与设计(王海燕)rup统一软件过程.ppt(81页珍藏版)》请在三一文库上搜索。

1、第11章 RUP统一软件过程,成功的项目所需要具有的三个方面符号、过程和工具。 你可以学习一种符号,但是如果不知道如何 利用它(过程),你可能会失败。 你可能拥有强大的过程,但是如果不能沟通这些过程(符号),你也可能失败。 如果你不能记载自己的工作文档(工具), 你也可能失败。,RUP统一软件过程,软件工程的三个要素是:工具、方法和过程。软件过程是指开发软件所需要完成的活动构成的框架。在每个活动期间,都要通过一些工具,采用一些方法、技术构造工作产品(如,计划、文档、模型、代码、测试用例和手册等)。 软件工程使用某些工具,采用某种方法,按照某种过程开发软件系统。,工具、方法和过程在开发软件时的关

2、系,工具层为软件过程和方法提供了自动或半自动的支持;方法层在技术上说明了需要如何去开发软件;软件过程提供一个活动框架,在这个框架下可以建立一个软件开发的综合计划。,3,流程图、数据流图、UML图,Waterfall、RUP、OOSP、XP,需求分析、设计、编码、测试,ISO9000、CMM,什么是软件开发过程,SDP(软件开发过程,Software Development Process),又称为SEP(软件工程过程,Software Engineering Process),是指应用于软件开发和维护当中的阶段、方法、技术、实践和相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。 有

3、效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。软件开发过程是开发高质量软件所需完成的任务的框架。 软件工程是一种层次化的技术,如图所示。,当前流行的软件过程,Rational Unified Process(RUP) OPEN Process Object-Oriented Software Process(OOSP) Extreme Programming(XP) Catalysis Dynamic System Development Method(DSDM),传统的软件开发模型,1. 瀑布模型(Waterfall Model) 2. 螺旋模型

4、,瀑布模型(Waterfall Model),瀑布模型是一种线性模型。 瀑布模型将软件生存周期划分为6个阶段: 需求分析 设计 实现 测试 运行 维护 瀑布模型最为突出的缺点是缺乏灵活性。,瀑布模型(Waterfall Model),9,Rational统一过程的结构,传统的瀑布开发模型是一个一维的模型,开发过程被划分为多个连续的阶段。,瀑布模型的缺点: 1 需要在开始进行完整的需求分析 2 不适应软件开发的高变更率特点 3 早期的分析后期可能无用 4 容易导致软件失败,各种规模软件项目的变更百分比,瀑布式定义的特性实际使用情况,螺旋模型,螺旋模型使用原型作为降低风险的机制。 螺旋模型使开发者

5、在产品演化的任意阶段均可使用原型方法。 螺旋模型体现了RUP中迭代的思想。 一个螺旋的周期一般包括四个阶段: 确定目标,选择方案,选定完成目标的策略。 风险分析。 启动开发阶段。 评审前一阶段的工作,计划下一阶段工作。,螺旋模型,13,传统的瀑布开发模型是一个一维的模型,开发过程被划分为多个连续的阶段。 UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它。 当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP)。RUP是软件开发过程的一种,它为

6、有效地使用统一建模语言UML提供了指导。 在RUP中,软件开发生命周期根据时间和RUP的核心工作流划分为二维空间。横轴表示项目的时间维,纵轴以内容来组织为自然的逻辑活动。,什么是RUP,它是由Rational软件开发公司开发并维护的,它能够被看成是Rational软件开发公司的一款软件产品,并且和Rational软件开发公司开发的一系列软件开发工具进行了紧密集成,包括Rational Rose建模工具。,它是“统一”的。Rational 统一过程拥有自己的一套架构,并且这套架构是以一种大多数项目和开发组织都能够接受的形式存在,采用了现代软件工程开发的6项最佳实践。,Rational统一过程不管

7、是如何解释,其最终仍然是一种软件开发过程,提供了如何对软件开发组织进行管理的方式,并且拥有自己的目标和方法。,什么是RUP,1、RUP是一个软件工程过程。 它为开发组织提供了如何在开发过程中对软件开发的任务进行严格分配、如何对参与开发的人员职责进行严格的划分等方法,它的目标是在可预见的日程和预算前提下开发出满足最终用户需求的高质量软件。,2、RUP是一个过程产品。 对项目进行明确的定义并且使用文档记录软件开发过程在软件的成败中起着很重要的作用。把软件的开发过程当成是一种软件产品来看待,像任何其他软件一样被人们设计、开发、交付和维护。,什么是RUP,3、Rational拥有一套自己的过程框架。

8、它可以适合不同规模、各种类型的软件项目开发。在实际的应用过程中,可以根据自己的需要,通过改造和扩展这套框架,对这个标准过程进行裁剪。组成过程框架的基本元素被称为过程模型。一个模型描述了在软件开发过程中谁做、做什么、怎么做和什么时候做的问题。在RUP中应用了4种重要的模型元素,分别是角色、活动、产物和工作流,通过这些模型元素来回答相应的问题形成一套RUP的框架。,RUP用一种二维结构来表达架构,横轴代表了制订软件开发过程时的时间,显示了软件开发过程的生命周期安排,体现了Rational统一过程的动态结构。在这个坐标轴中使用的术语包括周期、阶段、迭代和里程碑等。纵轴代表了过程的静态结构,显示了软件

9、开发过程中的核心过程工作流。这些工作流按照相关内容进行逻辑分组。在这个坐标轴中,使用的术语包括活动、产物、角色和工作流等。,17,什么是Rational统一过程(RUP),RUP以一种能够被大多数项目和开发组织适应的形式建立整个过程,包含6项最佳实践: 迭代式软件开发; 需求管理; 基于构件的架构应用; 建立可视化的软件模型; 软件质量验证; 软件变更控制;,18,迭代式软件开发,软件系统在规模上、复杂性上、分布式以及重要性上的要求在不断的提高,采用线性的开发方式无法在开始就完成对系统的完整定义;迭代式软件开发能够通过一系列细化和若干个渐进的反复过程形成有效解决方案; RUP专注于处理软件生命

10、周期中每个阶段的最高风险,通过一系列的迭代过程和风险控制极大减少了项目的风险;,19,需求管理,通过一系列系统化的方式对各种软件密集型系统或应用程序的需求进行提出、组织、交流和管理; RUP描述如何提取、组织和文档化所需要的功能以及对这些功能的限制因素; 能跟踪和文档化项目的解决方案并对项目做出决策,有时候需要对方案和决策进行折中; 能够对商业需求进行捕获,并进行交流;,20,基于构件的架构应用,RUP是以架构为中心的,该过程在开发之前,关注开发和产生健壮的可执行的体系结构的基线,描述如何设计灵活的、可容纳修改的、直观便于理解的并且促进有效软件重用的弹性结构; RUP还为架构提供一个设计、开发

11、、验证的系统性方法,包括模板、架构风格、设计规则、设计规约、设计过程构件和管理过程等;,21,建立可视化的软件模型,RUP的可视化建模基础是UML; RUP指导如何有效地使用UML进行建模; RUP在开发过程中开发和维护模型,帮助理解和找到解决方案;,22,软件质量验证,软件质量关注两方面质量:产品质量和过程质量; 软件产品的质量应关注于可靠性、功能性、应用和系统性能等方面并根据需求进行验证; RUP帮助开发人员计划、设计、实现、执行和评估,将软件产品质量评估内驾驭所有过程和活动中; RUP还针对如何验证和客观评价软件产品能否达到预期质量提出一系列的标准;,23,软件变更控制,RUP变更管理关

12、注软件开发组织的需求变化,是针对需求、设计和实现中的变更产生进行管理的一种系统性方法; RUP变更管理能力确定每个修改是可接受的,并且能够跟踪。 RUP描述了如何控制、跟踪和监控修改确保成功的迭代开发。,24,RUP的演进历史,Rational Unified Process(RUP,统一开发过程)是一套面向对象的软件工程过程。 RUP说明了如何有效地使用成熟技术开发软件。,RUP的演进历史,RUP的发展历史,在RUP中,软件开发生命周期根据时间和RUP的核心工作流划分为二维空间。 横轴表示项目的时间维,是对过程的动态描述,通过迭代式软件开发的周期、阶段、迭代和里程碑等动态信息表示; 纵轴以内

13、容来组织为自然的逻辑活动,是对过程的静态描述,通过过程的构件、活动、工作流、产物和角色等静态概念来描述系统;,27,28,图中的阴影部分描述了不同的工作流,在不同的时间段内工作量的不同。值得注意的是,几乎所有的工作流,在所有的时间段内均有工作量,只是大小不同而已。这与瀑布过程有明显的不同。,时间维,时间维空间是RUP随着时间的动态组织,RUP将软件生命周期划分为初始阶段、细化阶段、构建阶段和转换阶段4个阶段,每个阶段的结果都是一个里程碑(Milestones),都要达到特定的目标。 初始阶段的任务、输出和评价准则 细化阶段的任务、输出和评价准则 构建阶段的任务、输出和评价准则 移交阶段的任务、

14、输出和评价准则 每个阶段都可以细分为迭代,29,RUP的静态结构,RUP的静态结构是用工作人员、活动、制品和工作流等描述的 工作人员(工作人员,Workers):代表“谁”来做? 活动(Activities):代表“如何”去做? 产品(Artifacts):代表要得到“什么东西”? 工作流(Workflows):代表“按照什么顺序”做?,35,RUP的结构,1、RUP的静态结构:过程描述 RUP的静态结构是通过对其模型元素的定义来进行描述的。,(1)角色 角色定义了个人或由若干人所组成小组的行为和责任,它是统一过程的中心概念,很多事物和活动都是围绕角色进行的。,系统分析人员(System An

15、alyst):系统分析人员在需求捕获阶段作为建模的领导者和协调者负责界定系统,确定参与者和用例,并确保用例模型是完整的、一致的。在需求捕获阶段,系统分析人员主要负责用例模型、参与者和术语表三个工作产品。,用例描述人员(Use Case Specifier):捕获需求是软件开发过程中极为重要的阶段,它直接影响到用户对最终的软件产品的满意度。这个过程一般需要多人共同完成,系统分析人员以及其他工作人员相互协助,来对一个或多个用例进行详细描述,这些工作人员称为用例描述人员。,用户界面设计人员(User Interface Designer):用户界面设计人员负责对用户界面进行可视化定型。,构架设计师(

16、Architect):构架设计师在整个项目中领导和协调技术活动和产物。为每一个架构视图建立整体结构,即视图分解、元素分组以及在这些主要分组之间的接口。,RUP的结构,(2)活动 角色所执行的行为使用活动表示,每一个角色都与一组相关的活动相联系,活动定义了它们执行的工作。活动通常具有明确的目的,将在项目语境中产生有意义的结果,表现为一些产物,如模型、类、计划等。每个活动分派给特定的角色。,计划一个迭代过程,对应角色:项目经理,寻找用例和参与者,对应角色:系统分析员,执行性能测试,对应角色:性能测试人员,RUP的结构,(3)产品 产品是被过程产生、修改或过程所使用的一段信息。产物是项目的有形产品,

17、是项目最终产生的事物或者向最终产品迈进的过程中使用的事物。,产物品的形式: -模型,如用例模型或设计模型 -模型组成元素,如类、用例或子系统等 -文档,如商业案例或软件结构文档 -源代码 -可执行文件,RUP的结构,(4)工作流 仅依靠角色、活动和产物的列举并不能组成一个过程。需要一种方法来描述能产生若干有价值的有意义结果的活动序列,从而显示角色之间的交互作用,这就是工作流,RUP包含了9个核心过程工作流,代表了所有角色和活动的逻辑分组情况。其中,有6个核心工程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows),工作

18、流(Workflows),核心过程工作流(Core Process Workflows) 商业(业务)建模(Business Modeling) 需求(Requirements) 分析与设计(Analysis and Design) 实现(Implementation) 测试(Test) 部署(Deployment) 核心支持工作流(Core Supporting Workflows) 项目管理(Project Management) 配置和变更管理(Configuration and Change Management) 环境(Environment) 9个核心工作流在项目中轮流被使用,在每

19、一次迭代中以不同的重点和强度重复。,40,RUP的结构,RUP的核心工程工作流:,(1)商业建模(Business Modeling) 商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程、角色和责任。,42,商业建模工作流,43,商业建模工作流,提供的文档与模型 商业逻辑建模(USE CASE)(ROSE) 业务需求说明书(MS WORD) 专业词汇表(英汉对照)(MS WORD) 风险说明(MS WORD) 复审说明书,(2)需求(Requirements) 1 了解目标组织(将要在其中部署系统的组织)的结构及机制。 2 了解目标组

20、织中当前存在的问题并确定改进的可能性。 3 确保客户、最终用户和开发人员就目标组织达成共识。 4 导出支持目标组织所需的系统需求。 为实现这些目标,业务建模工作流程说明了如何拟定新目标组织的前景,并基于该前景来确定该组织在业务用例模型和业务对象模型中的流程、角色以及职责。,RUP的结构,大部分需求工作集中在初始和细化阶段,在细化阶段后期,需求捕获的工作量大幅下降。,RUP的结构,(3)分析和设计(Analysis & Design) 目的 将业务需求转换为未来系统的设计。 逐步开发强壮的系统构架。 使设计适合于实施环境,为提高性能而进行设计。,分析和设计工作流将需求转化成未来系统的设计,为系统

21、开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。 分析设计的结果是一个设计模型和一个可选的分析模型。 设计模型是源代码的抽象,由设计类和一些描述组成。 设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作,实现用例的功能。 设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。 体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。,RUP的结构,分析工作流 分析的主要工作开始于初始阶段的结尾,

22、与需求一样,分析工作主要集中在细化阶段,细化阶段的大部分活动是捕获需求,并进行需求分析,分析工作与需求捕获在很大程度上重叠。这两种活动是相辅相成的,在对系统进行需求捕获的同时往往会加入一些分析。,RUP的结构,设计工作流 设计工作流的主要工作集中于细化阶段的最后部分和构造阶段的开始部分。就软件系统而言,最初的大量建模工作集中在需求和分析工作流,在分析活动逐步完善后,建模工作大量集中在系统设计。,设计工作流,50,51,提供的文档与模型 系统总体设计报告(MS WORD) 系统领域模型DOMAIN MODEL(ROSE) 系统设计模型DESIGN MODEL (ROSE) 数据库设计模型 (PO

23、WER DESIGNER) 数据字典(MS WORD) 系统详细设计报告(MS WORD) 工作量化书(MS WORD),RUP的结构,4实现(Implementation) 实现工作流的目的: 1 以层次化的子系统形式定义代码的组织结构; 2 以组件的形式(源文件、二进制文件、可执行文件)实现类和对象; 3 将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。 从系统分析师或系统设计师的角度看,实现工作流的重点就是编写软件系统的可执行代码。 实现工作流是构造阶段的焦点。,53,54,提供的文档与模型 实施总结书(MS WORD) 实施模型(ROSE

24、) 系统集成书(MS WORD) 代码审核意见书(MS WORD) 源代码(MS WORD) 用户使用手册(MS WORD) 错误解决记录手册(MS WORD) 构件及其说明,RUP的结构,5测试(Test) 测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现, 识别并确认缺陷在软件部署之前被提出并处理。 RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。 测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。测试工作流贯穿于软件开发的整个过程。 从初始阶段开始,到细化阶段和构造阶段是测试的焦

25、点。测试是为了找出程序中的错误与缺陷,而不能证明程序无错。,RUP的结构,6部署(Deployment) 部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。,RUP的结构,3个核心支持工作流:,1配置和变更管理(Configuration & Change Management) 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准

26、则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。,2项目管理(Project Management) 软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。,3环境(Environment) 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了

27、逐步的指导手册并介绍了如何在组织中实现过程。,RUP的结构,2、RUP的动态结构:迭代开发,RUP的动态结构是通过对迭代式软件开发过程的周期、阶段、迭代过程以及里程碑等的描述来进行表示。在RUP二维结构的水平坐标轴上,显示了统一过程的生命周期,将软件开发的各个阶段和迭代周期在这个水平时间轴上表达出来,反映了软件开发过程沿时间方向的动态组织结构。,RUP的结构,传统的软件开发是瀑布开发模型(先定义整个问题,再设计整个解决方案,然后编制软件,最后进行软件测试)。它是一个一维的模型,开发过程被划分为多个连续的阶段。试图在编程之前(详细)定义所有或大部分需求,通常在编程之前创建出完整的设计;试图在开始

28、前定义“可靠的”计划或时间表。,RUP的结构,迭代开发过程通过不断地细化来逐渐加深对问题的理解,不断完善解决方案,从而最终形成有效的解决方案。,采用迭代过程的好处是: 1 把一个复杂的系统分解成多个简单的系统。 2 提高软件项目的可控性。 3 降低软件开发的风险。 4 有效地应对需求变更。,RUP支持迭代的过程,通过将风险分散于每一次迭代,大大降低了项目的风险。由于每次迭代都产生一个可执行的版本,频繁的状态检查可以确保项目能按时进行。,RUP的结构,RUP中的迭代模型 在RUP过程中,可以把每个阶段的任务分成多个部分,采用多次迭代完成每个阶段的任务。每一次完整的迭代包含所有工作流,迭代有可能只

29、包含部分工作流。每一次迭代建立一个可执行的软件产品(版本),每次迭代产生的软件产品是最终产品的一个子集。,RUP的迭代模型,RUP的结构,对于RUP过程,其开发模型由软件生命周期(四个阶段)和RUP的核心工作流构成一个二维空间。横轴表示项目的时间维,包括四个阶段,纵轴表示工作流(活动)。,RUP开发模型,RUP的结构,RUP的四个阶段 使用RUP过程开发软件系统,软件的生命周期分为以下几个阶段:起始阶段;细化阶段;构造阶段;交付阶段。每个阶段结束于一个主要的里程碑(Major Milestones),在每个阶段的结尾执行一次评估,以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以

30、允许项目进入下一个阶段。每个阶段本质上是两个里程碑之间的时间跨度。 (1)初始阶段 初始阶段也称为初始的目标,是“获得项目的基础”。初始阶段的主要人员是项目经理和系统设计师,他们所要完成的任务包括对系统的可行性分析,即软件系统的实现技术和经济方面的可行性;创建基本需求以有助于界定系统范围;识别软件系统的关键任务。 初始阶段的焦点是需求和分析工作流。,RUP的结构,(2)细化阶段 细化阶段的主要目标是创建可执行构件基线;细化风险评估;定义质量属性;捕获大部分的系统功能需求用例;为构造阶段创建详细计划。细化阶段并不是要创建真正可执行的系统,也不是要创建原型,这个阶段只需要展现用户所期望系统。细化是

31、开发过程最重要的阶段,因为在以后的阶段是以细化的结果为基础的。 细化阶段的焦点是需求、分析和设计工作流。 (3)构造阶段 构建阶段完成了所有需求、分析、设计和实现。所有的功能被详细测试。细化阶段的工作产品将演化为最终系统,构造的主要问题是维护系统框架的完整性。开发人员应该避免由于软件编码问题而造成最终系统低质量、高维护成本的情况发生。 构建阶段的焦点是实现工作流。,RUP的结构,(4)交付阶段 交付是将完整的系统部署到用户所处的环境,交付阶段的重点是完成系统部署确保软件可用。交付阶段的目标包括修复系统缺陷;为用户环境准备新软件;如果出现不可预见问题则修改软件;创建用户使用手册和系统文档;提供用

32、户咨询; 交付阶段的焦点是实现和测试工作流。,RUP的结构,初始阶段的主要目标是确定项目的范围和目标。 1.了解要创建什么样的系统; 2.确定系统的主要功能; 3.确定至少一个可行的方案; 4.了解与项目相关的成本、时间表和风险; 5.确定遵循什么过程和使用哪些工具。 这些目标没有优先、时间的顺序,开发人员要平行地完成这些目标。 细化阶段的目标: 1.要明确地认识需求; 2.设计、实现、验证系统架构并建立架构基线; 3.化解主要风险,制定更精确的时间表和费用估算; 4.细化开发案例并搭建开发环境。,RUP的结构,构造阶段的目标: 1.降低开发成本并实现部分的并行开发; 2.迭代开发准备交付给用

33、户的完整产品。 交付阶段的主要目标是确保软件完全满足用户需求。 1.进行Beta测试以确保满足用户的期望; 2.培训用户和维护人员来达到用户的自我依赖; 3.准备交付环境并转换数据库系统; 4.包装准备投放市场的产品;进行宣传并演示系统;交付销售力量;进行人员培训; 5.通过得到的经验改进未来的项目。,RUP的结构,软件工程过程的目的并不是使开发人员生活在痛苦中,而是确保软件开发组织在规定的日期和预算内顺利地开发并移交高质量的软件系统,并且可以最终满足用户的所有需求。,不同阶段定义了项目的不同状态,而这些状态又是由要化解的风险或要解决的问题决定的。 在初始阶段主要化解业务模型风险:这个项目从经

34、济的角度看值得吗?它可行吗? 在细化阶段中,主要化解技术风险,检查架构风险,或许当更了解用户需求时,要重新定义系统边界。 在构造阶段中,主要化解“逻辑”风险,并完成绝大部分的工作。在这个阶段中,参与项目的人员规模达到最大程度。 在交付阶段中,要化解为用户发布产品的风险。,RUP的结构,3、 统一软件过程的三个主要的概念 用例驱动、以构架为中心、采用迭代和增量模型。,(1)所有的软件开发都是用户需求驱动的。统一软件开发过程采用用例来描述用户需求,同时提供一套方法把用例转化为设计的类图,进一步变成最终的程序代码。在整个软件开发过程中,要求用例是可跟踪的,也就是说,无论是设计阶段还是实现阶段的产品,

35、都可以找到相应的需求。用例还可以作为用户测试和验收最终软件产品的标准。,(2)构架是一个皮包骨头的系统,它实现了用户的核心需求,包括了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,它舍弃了细节部分,突出了系统的重要特征。统一软件过程提供了创建构架的相应方法和过程,可以帮助分析人员和设计人员很好地完成构架的设计。,(3)统一软件过程采用迭代和增量的开发方式,把一个软件产品划分成多个较小的部分,每一次完成一个部分,每次要迭代部分是产品的一个增量部分。每个增量部分的生产过程是受控的。,70,RUP视图,RUP采用5种视图来对构架进行描述: 逻辑视图:用来设计对象的模型; 过程视图:用来捕获

36、设计的并发和同步特性; 物理视图:用来描述软件到硬件的映射; 部署视图:描述在开发环境中软件的静态组织结构; 用例视图:描述其它视图如何工作;,71,72,逻辑视图,主要支持系统的功能性需求,是设计模型的抽象; 逻辑视图采用面向对象的风格,主要设计准则是试图在系统中保持单一的、一致的对象模型,避免各个场合或过程产生草率的类和机制的技术说明; 逻辑视图的结果是:确定重要的设计包、子系统和类;,73,过程视图,考虑非功能性需求,表现为系统运行时的一系列特性,用于解决系统运行时的并发性、分布性、系统完整性、系统容错性,及逻辑视图的主要抽象如何与系统进程结构配合在一起; 在过程视图的设计中,应关注在架

37、构上有意义的元素。,74,物理视图,关注系统的非功能性需求,包括系统的可用性、可靠性、性能和可伸缩型; 物理视图描述的是软件至硬件的映射,即展示不同的可执行程序和其他运行时间内构件是如何映射到底层平台和处理节点上的;,75,部署视图,描述系统的开发架构,关注软件开发环境中实际模块的组织情况,及系统的子系统是如何分解的。,76,用例视图,也被认为是场景,它综合了其余9种视图,9种视图的元素通过数量较少的一组重要场景或用例无缝协调工作; 场景和用例是最重要的需求抽象;,在项目中应用RUP,最好在项目开始时就应用RUP,这样可以避免在项目中间从当前过程转化到RUP时导致的复杂问题。 在项目开始时引入

38、RUP的5个步骤: 1.评价 评价开发小组以前遇到的问题及它们给业务带来的影响,以及在未来的实践中,哪些问题具有最高的商业价值。明确阐述期望的商业价值,最好通过商业案例的方式来表现。,例:Mercury项目正处于开始阶段。在上一个项目中,开发小组遇到的主要问题是关于需求蔓延和架构结构方面的。这两个问题被认为是导致项目推迟3个月的主要原因。Mercury项目非常重要,时间因素是重中之重。如果像上一个项目那样推迟时间,将使公司损失20万美元,并且如果系统的性能不能达标,将使相关的部门每年损失将近30万美元。在分析了RUP后,项目经理认为应用RUP可以给项目带来很大好处,这个项目要遵循RUP中交付需

39、求、分析/设计和项目管理的规程。为了更好地支持新的RUP,开发小组决定投资购买需求管理工具和可视化建模工具。但是一次引入太多的变化将会增加项目的风险,所以开发小组决定不改变以前的测试和变更管理方面的内容。,在项目中应用RUP,2.计划 计划预备活动,比如定制过程、培训、指导(请一个有经验的项目组成员亲自指导开发小组工作),并购买一些必要的工具。要确保进行实施培训来确保学员的积极性,而不要培训哪些空泛的内容,因为学员只有在指导培训的内容很快可以用到的情况下,才能学习得更快。,例:Mercury项目分配了用于购买RUP产品已经需求管理和可视化建模工具的经费。开发小组使用RUP创建器进行了适当的RU

40、P配置。他们指派一个专家编写开发案例,并展示如何使用工具。由于开发小组不熟悉迭代开发过程,并且他们使用的配置管理工具和测试工具并不理想,所以他们决定开发过程不能超过4次迭代。开发小组用于培训的经费非常紧张,所以他们只派了一个人参加RUP基础知识、管理迭代开发的原则和面向对象的分析与设计的课程。但是所有小组成员都能接受基于网络的RUP培训。他们还决定聘请一个兼职的专家辅助他们更有效地使用工具,获取需求、分析/设计过程和项目管理的规程。,在项目中应用RUP,3. 配置和定制 对开发过程、工具环境和培训资料做必要的配置和定制。要以商业价值为基础进行配置和定制,也就是根据商业案例完成这些工作。 配置和

41、定制需要裁减RUP来使其只包含那些项目所需要的部分,必要时还要开发附加的指导方针,定制相关的培训资料、裁减和集成工具以及模板。如果只是针对一个项目应有RUP,最好使用RUP创建器建立RUP配置和过程视图,并生产开发案例,这些工作都可以在很短的时间内完成。如果在第二个或第三个项目中应用RUP,可以考虑创建简单RUP插件,但只有大型项目(多于80人)或组织才应该考虑创建结构化RUP插件。,在项目中应用RUP,4. 执行 在项目中交付过程和工具,培训并指导项目组成员,启动项目。把开发小组的精力集中到项目的结果上,必要时聘请专家评估使用的过程和工具能否达到预期的商业目标。,5. 评估 评估项目的成果,

42、与商业案例中的期望进行比较。识别以后还可以提高的机会。,小结,RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。 但同时它也存在一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1