《[ppt模板]UML 第9章 RUP.ppt》由会员分享,可在线阅读,更多相关《[ppt模板]UML 第9章 RUP.ppt(56页珍藏版)》请在三一办公上搜索。
1、1,第9章 Rational统一过程,2,本章内容,什么是Rational统一过程Rational统一过程的演进历史Rational统一过程的结构Rational统一过程的配置和实现,3,什么是Rational统一过程(RUP),Rational:Rational统一过程是由Rational公司开发并维护的,可以将RUP看成一款软件产品,并和一系列软件开发工具紧密集成;统一:Rational统一过程拥有自己的一套架构,并且这套架构是以一种大多数项目和开发组织都能够接受的形式存在;过程:Rational统一过程是一种软件开发过程,提够了如何对软件开发组织进行管理的方式,并拥有自己的目标和方法;,
2、4,什么是Rational统一过程(RUP),Rational统一过程是一种软件工程过程;Rational统一过程是一个过程产品;Rational统一过程拥有一套自己的过程框架;Rational统一过程包含了许多现代软件开发中的最佳实践;,5,什么是Rational统一过程(RUP),RUP以一种能够被大多数项目和开发组织适应的形式建立整个过程,包含6项最佳实践:迭代式软件开发;需求管理;基于构件的架构应用;建立可视化的软件模型;软件质量验证;软件变更控制;,6,(1)迭代式软件开发,软件系统在规模上、复杂性上、分布式以及重要性上的要求在不断的提高,采用线性的开发方式无法在开始就完成对系统的完
3、整定义;迭代式软件开发能够通过一系列细化和若干个渐进的反复过程形成有效解决方案;RUP专注于处理软件生命周期中每个阶段的最高风险,通过一系列的迭代过程和风险控制极大减少了项目的风险;,7,(2)需求管理,通过一系列系统化的方式对各种软件密集型系统或应用程序的需求进行提出、组织、交流和管理;RUP描述如何提取、组织和文档化所需要的功能以及对这些功能的限制因素;能跟踪和文档化项目的解决方案并对项目做出决策,有时候需要对方案和决策进行折中;能够对商业需求进行捕获,并进行交流;,8,(3)基于构件的架构应用,RUP是以架构为中心的,该过程在开发之前,关注开发和产生健壮的可执行的体系结构的基线,描述如何
4、设计灵活的、可容纳修改的、直观便于理解的并且促进有效软件重用的弹性结构;RUP还为架构提供一个设计、开发、验证的系统性方法,包括模板、架构风格、设计规则、设计规约、设计过程构件和管理过程等;,9,(4)建立可视化的软件模型,RUP的可视化建模基础是UML;RUP指导如何有效地使用UML进行建模;RUP在开发过程中开发和维护模型,帮助理解和找到解决方案;,10,(5)软件质量验证,软件质量关注两方面质量:产品质量和过程质量;软件产品的质量应关注于可靠性、功能性、应用和系统性能等方面并根据需求进行验证;RUP帮助开发人员计划、设计、实现、执行和评估,将软件产品质量评估内驾驭所有过程和活动中;RUP
5、还针对如何验证和客观评价软件产品能否达到预期质量提出一系列的标准;,11,(6)软件变更控制,RUP变更管理关注软件开发组织的需求变化,是针对需求、设计和实现中的变更产生进行管理的一种系统性方法;RUP变更管理能力确定每个修改是可接受的,并且能够跟踪。RUP描述了如何控制、跟踪和监控修改确保成功的迭代开发。,12,RUP的演进历史,Rational Unified Process(RUP,统一开发过程)是一套面向对象的软件工程过程。RUP说明了如何有效地使用成熟技术开发软件。,13,Rational统一过程的结构,传统的瀑布开发模型是一个一维的模型,开发过程被划分为多个连续的阶段。在RUP中,
6、软件开发生命周期根据时间和RUP的核心工作流划分为二维空间。横轴表示项目的时间维,是对过程的动态描述,通过迭代式软件开发的周期、阶段、迭代和里程碑等动态信息表示;纵轴以内容来组织为自然的逻辑活动,是对过程的静态描述,通过过程的构件、活动、工作流、产物和角色等静态概念来描述系统;,14,15,图中的阴影部分描述了不同的工作流,在不同的时间段内工作量的不同。值得注意的是,几乎所有的工作流,在所有的时间段内均有工作量,只是大小不同而已。这与瀑布过程有明显的不同。,16,统一过程的静态结构:过程描述,统一过程的静态结构是通过对其模型元素的定义来进行描述的。在Rational统一过程的开发流程中定义了“
7、谁何时如何做某事”,通过9种建模元素来表达:角色:构架师、系统分析员、测试设计师等;(谁)活动:角色执行的行为;(如何)产物:被过程产生的、修改或过程所使用的一段信息,是项目有形的产品;(某事)工作流:描述产生有价值的有意义的结果的活动序列;(何时),17,角色:定义了个人或由若干个人组成小组的行为和责任;角色定义了一个人应该如何完成工作,即角色的职责;所分派给角色的责任既包括一系列的活动,还包括成为一系列产物的拥有者;架构师系统分析员测试设计师,18,角色所执行的行为用活动来表示,每个角色与一组相关的活动联系,定义了他们执行的工作;活动通常具有明确的目的,将在项目语境中产生有意义的结果,通常
8、表现为一些产物:模型、类、计划等;每个活动分派个特定角色,活动同常占用几个小时或几天;计划一个迭代过程,涉及角色:项目经理;寻找用例和参与者,涉及角色:系统分析员;审核设计,涉及角色:设计审核员;执行性能测试,涉及角色:性能测试人员;,19,产物:是被过程产生的、修改或者过程所使用的一段信息。产物是项目的有形产品;产物作为角色执行某个活动的输入,同时也是该活动的输出。模型、模型的组成元素、文档、源代码、可执行文件都是产物;,20,工作流:描述能产生若干有价值有意义结果的活动序列,显示角色之间的交互作用;工作流能够产生具有可观察结果的活动序列;通常一个工作流使用活动图的形式来表达;RUP中有9个
9、核心工作流,分为6个核心过程工作流(C ore Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。,21,1.业务建模(Business Modeling)2.需求(Requirements)3.分析与设计(Analysis and Design)4.实现(Implementation)5.测试(Test)6.部署(Deployment)7.设置和变更管理(Configuration and Change Management)8.项目管理(Project Ma
10、nagement)9.环境(Environment),22,业务建模工作流,23,业务建模工作流,提供的文档与模型 商业逻辑建模(USE CASE)(ROSE)业务需求说明书(MS WORD)专业词汇表(英汉对照)(MS WORD)风险说明(MS WORD)复审说明书,24,需求工作流,目的 了解目标组织(将要在其中部署系统的组织)的结构及机制。了解目标组织中当前存在的问题并确定改进的可能性。确保客户、最终用户和开发人员就目标组织达成共识。导出支持目标组织所需的系统需求。为实现这些目标,业务建模工作流程说明了如何拟定新目标组织的前景,并基于该前景来确定该组织在业务用例模型和业务对象模型中的流程
11、、角色以及职责。,25,分析与设计工作流,1.目的 将业务需求转换为未来系统的设计。逐步开发强壮的系统构架。使设计适合于实施环境,为提高性能而进行设计。,26,27,提供的文档与模型 系统总体设计报告(MS WORD)系统领域模型DOMAIN MODEL(ROSE)系统设计模型DESIGN MODEL(ROSE)数据库设计模型(POWER DESIGNER)数据字典(MS WORD)系统详细设计报告(MS WORD)工作量化书(MS WORD),分析与设计工作流,28,实施工作流,实施的目的包括:对照实施子系统的分层结构定义代码结构;以构件(源文件、二进制文件、可执行文件以及其他文件等)的方式
12、实施类和对象;对已开发的构件按单元来测试,并且将各实施员(或团队)完成的结果集成到可执行系统中 实施工作流程的范围仅限于如何对各个类进行单元测试。系统测试和集成测试将在测试工作流程中进行说明。,29,实施工作流,30,实施工作流,提供的文档与模型 实施总结书(MS WORD)实施模型(ROSE)系统集成书(MS WORD)代码审核意见书(MS WORD)源代码(MS WORD)用户使用手册(MS WORD)错误解决记录手册(MS WORD)构件及其说明,31,测试工作流,测试的目的在于:核实对象之间的交互。核实软件的所有构件是否正确集成。核实所有需求是否已经正确实施。确定缺陷,并确保在部署软件
13、之前将缺陷解决。,32,统一过程的动态结构:迭代开发,迭代生命周期:通过多次不同的开发工作流,逐步确定一部分需求分析和风险,在设计、实现并确认这部分后,再去做下一部分的需求分析、设计、实现和确认工作,依次进行下去,直至整个项目完成,这样能在逐步集成中更好的理解需求,构造一个健壮的体系结构;一个开发迭代,在某种意义上来说是在所有工作流中一次完整的经过;当一个迭代过程进入到下一个迭代过程时,需要对整个项目的进展情况进行评估,使用里程碑的方式即时根据明确的准则决定继续、取消还是改变迭代过程。,33,为了对迭代的特定短期目标进行分割并组织迭代开发秩序,将迭代过程划分为9个连续的阶段:初始阶段细化阶段构
14、建阶段移交阶段每个阶段结束于一个主要的里程碑(Major Milestones),每个阶段本质上是两个里程碑之间的时间跨度。,34,(1)初始阶段,初始阶段的目标是为系统建立商业案例和确定项目的边界;初始阶段所要进行如下的活动:明确说明项目规模,了解环境以及最重要的需求和约束,以便可以得出最终产品的验收标准。计划和准备商业理由。评估风险管理、人员配备、项目计划以及成本、进度、收益折衷的备选方案。明确区分系统的关键用例和主要的功能场景;展现或演示至少一种符合主要场景要求的候选软件体系结构;对整个项目做出最初的项目成本和日程估计;估计潜在的风险;准备项目的环境;,35,初始阶段的产品:总体蓝图原始
15、用例模型原始项目术语表原始商业案例原始的风险评估一个或者多个原型初始阶段结束的里程碑:生命周期目标里程碑。需要对阶段结束进行评审;,36,初始阶段的评估标准如下:出资人同意系统范围定义以及费用和进度评估。主要用例是否符合需求。费用和进度评估、优先级、风险以及开发过程的可信性。任何已开发的原型的深度和广度。实际开销与计划开销。初始阶段的焦点是需求和分析工作流。,37,(2)细化阶段,细化阶段的目标:分析问题领域、建立体系结构基础、编制项目计划、淘汰项目中最高风险的元素;由细化阶段决定是否将项目提交给构建和交付阶段;细化阶段确保结构、需求、计划是足够的稳定,风险被充分的减轻,可以为开发结果预先决定
16、成本和日程安排;细化阶段的工作量至少处理初始阶段中识别的关键用例。细化阶段的目标是一个由产品质量级别构件组成可进化的原型;,38,细化阶段的目标:,确保软件结构、需求、计划足够稳定;确保项目风险已经降低到能预计完成整个项目的成本和日程的程度;针对项目的软件结构上的主要风险已经解决或处理完成;通过完成软件结构上的主要场景建立软件体系结构的基线;建立一个包含高质量组件的可演化的产品原型;说明基线化的软件体系结构可以保障系统的需求,可以控制在合理的成本和时间范围内;建立好产品的支持环境;,39,细化阶段的产品,所有用例均被识别,大多数用例描述被开发;补充捕获非功能性要求和非关联与特定用例要求的需求;
17、软件体系结构描述可执行的软件原型;经过修订的风险清单和商业案例;总体项目的开发计划,包括纹理较粗的项目计划、显示迭代过程和对应的审核标准;指明被使用过程中更新过的开发用例;用户手册的初始版本(可选);,40,细化阶段,细化阶段的评估标准如下:标明用例模型中的用户和参与者,并且建立用例的描述文档。用例模型需完成80。创建软件系统开发过程中的软件结构的描述文档。创建可执行的系统原型。细化商业案例和风险列表。创建整个项目的开发计划。细化阶段的焦点是需求、分析和设计工作流。细化阶段的里程碑是:生命周期的结构里程碑;,41,(3)构建阶段,将所有剩余的构件和应用程序功能被开发并集成为产品,且所有的功能被
18、详尽的测试;重点:管理资源和控制运作以优化成本、日程、质量的生产过程;,42,(3)构建阶段的目标,通过优化资源和避免不必要的返工达到开发成本的最小化;根据实际需要达到适当的质量目标;根据实际需要形成各个版本;对所有必须的功能完成分析、设计、开发和测试工作;采用循环渐进的方式开发出一个可以提交给最终用户的完整产品;确定软件站点用户都为产品的最终部署做好了准备;达到一定程度上的并行开发制度;,43,(3)构建阶段,构建阶段的焦点是实现工作流。构建阶段的产品是:交付给最终用户的产品,最小包括特定平台上的集成产品、用户手册、当前版本描述。构建阶段的里程碑:初始功能里程碑;,44,(4)移交阶段,目的
19、:将软件产品交付给用户;交付阶段的主要目标如下:进行Beta版测试,按用户的要求验证新系统。替换旧的系统。对用户和维护人员进行培训。开始调整活动,例如调试、性能或可用性的增强。与用户达成共识,配置基线与评估标准一致。交付阶段的焦点是实现和测试工作流。里程碑:产品发布里程碑;,45,RUP的每个阶段都可以进一步的分解为迭代过程,迭代过程是导致可执行产品版本的完整开发循环,是最终产品的子集,从一个迭代过程到另一个迭代过程的递增式增长形成最终的系统;迭代过程的优点:减小风险;更容易对变更进行控制;高度的重用性;项目小组可以在开发中学习;较佳的总体质量;,46,RUP中的每个阶段可以进一步分解为迭代,
20、47,统一过程以构架为中心,构架:就是当在去掉系统中的任何部分,就无法使人理解整个系统和解释它是如何工作的系统描述;一个良好的构架能够表达清晰的目的;构架需要关注的方面:构架的目的;构架的表示;构架的过程;,48,RUP视图,RUP采用5种视图来对构架进行描述:逻辑视图:用来设计对象的模型;过程视图:用来捕获设计的并发和同步特性;物理视图:用来描述软件到硬件的映射;部署视图:描述在开发环境中软件的静态组织结构;用例视图:描述其它视图如何工作;即所谓的9+1视图;,49,50,(1)逻辑视图,主要支持系统的功能性需求,是设计模型的抽象;逻辑视图采用面向对象的风格,主要设计准则是试图在系统中保持单
21、一的、一致的对象模型,避免各个场合或过程产生草率的类和机制的技术说明;逻辑视图的结果是:确定重要的设计包、子系统和类;,51,(2)过程视图,考虑非功能性需求,表现为系统运行时的一系列特性,用于解决系统运行时的并发性、分布性、系统完整性、系统容错性,及逻辑视图的主要抽象如何与系统进程结构配合在一起;在过程视图的设计中,应关注在架构上有意义的元素。,52,(3)物理视图,关注系统的非功能性需求,包括系统的可用性、可靠性、性能和可伸缩型;物理视图描述的是软件至硬件的映射,即展示不同的可执行程序和其他运行时间内构件是如何映射到底层平台和处理节点上的;,53,(4)部署视图,描述系统的开发架构,关注软件开发环境中实际模块的组织情况,及系统的子系统是如何分解的。,54,(5)用例视图,也被认为是场景,它综合了其余9种视图,9种视图的元素通过数量较少的一组重要场景或用例无缝协调工作;场景和用例是最重要的需求抽象;,55,RUP的配置和实现,配置RUP是指通过修改Rational交付的过程框架,使其适应采纳此方法的组织的需要;实现RUP指在软件开发组织中,通过改变组织的实践,是组织能例行的、成功的使用RUP的全部或部分;,56,在软件开发组织中实现一个全新的过程可使用6个步骤来描述:评估当前状态;建立明确目标;识别过程风险;计划过程实现;执行过程实现;评价过程实现;,