Rational统一过程(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整而且完美的软件过程。
RUP总结了经过多年商业化验证的六条最有效软件开发经验,这些经验被称为“最佳实践”。
1,最佳实践
(1)迭代式开发
通常,采用线性顺序的开发方法不可能开发出当今客户的需要的大型复杂软件系统。事实上,在整个软件开发过程中客户的需求会经常发生变化,因此需要一种能够通过一系列细化,若干个渐进的反复过程而得出有效的解决方案的迭代方法。
迭代式开发允许每次迭代过程中需求都可以有变化,这种开发方法通过一系列细化来加深对问题的理解,因此能更容易地容纳需求的变更。
也可以把软件开发过程看着一个风险管理过程,迭代式开发通过采用可验证的方法来减少风险。采用迭代式开发方法,每个迭代过程以完成可执行版本结束,这不仅使最终用户可以不断地介入和提出反馈意见,而且开发人员有因随时有一个可交付的版本而提高士气。
(2)管理需求
在开发软件过程中,客户需求将不断发生变化,因此,确定系统的需求是一个连续的过程。RUP描述了如何提取,组织系统的功能性需求和约束条件并把它们文档化。
(3)使用基于构件的体系结构
所谓构件就是功能清晰的模块或子系统。系统可以由已经存在的,由第三方开发商提供的构件组成,因此构件使软件重用成为可能,RUP提供了使用现有的或新开发的构件定义体系结构的系统化方法,从而有助于降低软件开发的复杂性,提高软件的重用率。
(4)可视化建模
为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。由于应用领域不同,模型可以有文字、图片或数学表达式等多种形式,一般来说,可视化的图形形式更容易理解。
(5)验证软件质量
某些软件不受欢迎的一个重要原因,是其质量低下。在Rational统一过程中,软件质量评估不再是事后型的或由单独小组进行的孤立活动,而是内建在贯穿于整个开发过程的、由全体成员参与的所有活动中。
(6)控制软件变更
在变更是不可避免的环境中,必须具有管理变更的能力,才能确保每个修改都是可接受的而且能被追踪的。RUP描述了如何控制、跟踪和监控修改,以确保迭代开发的成功。
2,RUP软件开发生命周期
RUP软件开发生命周期是一个二维的生命周期模型。
(1)核心工作流
· 业务建模:深入了解使用目标系统的机构及其商业运作,评估目标系统对使用它的机构的影响。
· 需求:捕获客户的需求,并且使开发人员和用户达成对需求描述的共识。
· 分析与设计:把需求分析的结果转化成分析模型与设计模型。
· 实现:把设计模型转换成实现结果(形式化地定义代码结构;用构件实现类和对象;对开发出的构件进行单元测试;把不同实现人员开发出的模块集成为可执行的系统)。
· 测试:检查各个子系统的交互与集成,验证所有需求是否被正确地实现了,识别,确认缺陷并确保在软件部署之前消除缺陷。
· 部署:成功地生成目标系统的可运行版本,并把软件移交给最终用户。
· 配置与变更管理:跟踪并维护在软件开发过程中产生的所有制品的完整性和一致性。
· 项目管理:提供项目管理框架,为软件开发项目制定计划、人员配备、执行和监控等方面的实用准则,并为风险管理提供框架。
· 环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持。
(2)工作阶段
RUP把软件生命周期划分为四个阶段:
· 初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围。
· 精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求。
· 构件阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。
· 移交阶段:把开发出的产品提交给用户使用。
(3)RUP迭代式开发
迭代计划的特点:
- 一个迭代是总体项目计划的一个阶段
- 需要明确的交付目标(或可以运行的系统)
- 多个比较明确的角色的参与
- 可以串行也可以并行
- 体现了 RUP 架构驱动、关注风险的特点
- 实现快速交付,缩短大项目的交付周期
- 提高客户参与度和项目的可视化
迭代计划的开发考虑的因素:
- 总体项目计划
- 项目规模大小、周期
- 需求明确程度和技术风险
- 团队成熟度和规模
- 项目所处的阶段,在同一个项目的不同的阶段可以采用不同的迭代计划方法
开发特征
1.在进行大规模的投资之前就解决了关键的风险分析。
2.使得早期的用户反馈在初始迭代中就能出现。
3.对各个目标里程碑提供了短期的焦点(阶段性的中心)。
4.对过程的测量是通过对实现的评定(而不仅仅是文档)来进行的。
5.可以对局部的实现进行部署。