软件过程的统一过程模型(RUP)

RUP(Rational Unified Process:统一过程)是由原Rational公司(现为IBM收购)推出的一种完整而且近乎完美的软件过程。20世纪90年代初,面向对象方法学进入鼎盛时期,学者们推出了许多不同的面向对象分析和设计方法,其中,Booch方法,Coad-Yourdon方法,Jacobson方法(OOSE),Rumbaugh方法(OMT)是当中最为流行的4种方法。随着时间的推移,这些方法之间开始出现了交叉,但它们仍然都拥有自己的独特表示法,这些不同表示法的使用给建模者造成了混乱,因为不同方法中的相同符号的含义可能并不相同。于是,当时在Rational公司效力的三位杰出的面向对象专家James Rumbaugh、Grady Booch以及Ivar Jacobson汇总了他们的研究成果,并吸收各家所长,创建了一个统一方法学,推出了UML(Unified Modeling Language:统一建模语言),随后又推出了与UML相适应的,适合于面向对象方法的统一过程模型(RUP)。

1.最佳实践

RUP总结了经过多年商业化验证的6条最有效的软件开发经验,这些经验被称为“最佳实践”。分别为:迭代式开发、管理需求、使用基于构件的体系结构、可视化建模、验证软件质量和控制软件变更。

(1)迭代式开发

在软件开发的早期阶段就想完全、准确地捕获用户的需求几乎是不可能的。实际开发中经常遇到的问题是需求在整个软件开发工程中频繁地改变。RUP支持迭代式开发,允许在每次迭代过程中需求发生变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程都以可执行版本结束,鼓舞开发人员的同时,还可以让最终用户不断地介入和提出反馈意见。

(2)管理需求

确定系统的需求是一个连续的过程,开发人员在开发系统之前不可能完全详细地说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化。经验表明,使用用例和脚本是捕获功能性需求的有效方法,RUP采用用例分析来捕获需求,并由它们驱动设计和实现。

(3)使用基于组件的体系结构

组件是指功能清晰的模块或子系统,系统可以由已经存在的、由第三方开发商提供的组件构成,因此组件使软件重用成为可能。基于独立的、可替换的、模块化组件的体系结构有助于降低管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。

(4)可视化建模

为更好地理解问题,常常采用建立问题模型的方法。所谓模型,是指运用文字、图形、数学表达式等多种形式对事物的一种抽象表示,它是对事物的一种无歧义的书面描述。RUP通过UML,能够将抽象的分析、设计思路以可视化方式表述出来,促进了有效沟通,也可以帮助人们提高管理软件复杂性的能力。

(5)验证软件质量

某些软件不受用户欢迎的一个重要原因,是其质量低下。在软件投入运行后再去查找和修改出现的问题,比在开发的早期阶段就进行这些工作需要花费更多的人力和物力。在RUP中,软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于所有过程中的活动,RUP通过持续的验证来提高软件质量,持续的质量验证可以尽早地识别缺陷,降低修复成本。

(6)控制软件变更

迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱,必须要具有管理变更的能力,才能确保每次修改都是可接受的而且能被跟踪的。RUP描述了如何控制、跟踪、监控、修改,以确保迭代开发的成功。

2.RUP生命周期

RUP是以用例驱动的、以体系结构为核心的、迭代的增量过程。它将一个大型项目分解为可连续应用瀑布模型的几个小部分,在对每一小部分进行需求分析、设计、实现并确认之后,再对下一小部分进行需求分析、设计、实现和确认,如此下去,直至整个项目完成。

RUP是一个二维的软件开发模型,如图2-10所示。从宏观上看,它是一个大的迭代过程:横坐标表示软件产品所处的四个阶段状态,纵坐标表示软件产品在每个阶段中的工作流。从微观上看,任何一个阶段本身,其内部工作流程也是一个小的迭代过程。

从图2-10横轴来看,RUP中的软件生命周期在时间上被分解为四个阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。每个阶段结束于一个主要的里程碑,每个阶段本质上是两个里程碑之间的时间跨度,如图2-11所示。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段,否则决策者应该做出决定,要么中止项目,要么重做该阶段的工作。

图2-10 RUP模型

图2-11 RUP中的阶段和里程碑

●初始阶段。本阶段主要工作是建立业务模型,定义最终产品视图,并确定项目的范围。初始阶段时间上可能很短。该阶段结束时产生第一个重要的里程碑,即生命周期目标里程碑,就是确定软件目标,评价项目基本的生存能力。

●细化阶段。本阶段主要工作是设计并确定系统的体系结构,制定项目计划,确定资源需求。细化阶段结束时产生第二个重要的里程碑,即生命周期结构里程碑。它为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量,需要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。

●构建阶段。本阶段主要工作是反复地开发,详尽地测试,集成为用户需要的产品。构建阶段结束时产生第三个重要的里程碑,即初始功能里程碑,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。

●移交阶段。本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。在交付阶段的终点是第四个里程碑,即产品发布里程碑。此时,要确定目标是否实现,是否应该开始另一次迭代周期,在一些情况下这个里程碑可能与下一次迭代周期的初始阶段的结束重合。

从图2-10纵轴来看,RUP包含9个工作流,分别是6个核心工作流和3个核心支持工作流。核心工作流是加工软件进行投入产出的实质性活动集,核心支持工作流是对核心过程工作流的配套支持和管理,保障核心过程工作高效、流畅运行。9个工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。

核心工作流是:

●商业建模。是商务层面的活动,弄清项目边界和约束,做出计划。

●需求。描述系统应该做什么,并使开发人员和用户就这一描述达成共识。

●分析和设计。将需求转化成计算机可以实现的模型,是将客观世界虚拟到计算机世界的逐步细化过程。

●实施。用计算机可以理解的语言将设计模型组织成可执行的文件、数据,俗称编程。

●测试。发现软件中的错误,验证软件中的需求是否被正确地实现。

●部署。将软件分发给最终用户,安装在真实的环境下,由用户操作运行。

核心支持工作流是:

●配置和变更管理。管理团队多个成员并行开发所产生的文档,在版本更新、需求变更中做到各类文档及时、同步跟踪,保证各文档内容完整、一致。

●项目管理。对核心工作流进行资源配置、评估监控、风险控制、计划调整等项目管理工作,做到投入产出的效益最大化。

●环境。向软件开发组织提供软件开发环境,包括人员、设备、过程和工具,以及各种规范、指导手册和保障措施。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/450.html
返回顶部