RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。
RUP总结了6条软件开发经验,这些经验又被称为“最佳实践”。
(1)迭代式开发
通常,采用线性顺序的开发不能够解决客户的需求。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求都可以有变化,通过一系列细化来加深对问题的理解。
(2)管理需求
开发系统之前,开发人员不可能完全详细的说明一个系统的真正需求,确定系统的需求是一个连续的过程。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用已被证明是捕获功能性需求的有效方法。
(3)体系结构
构件使软件重用成为可能,RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。
(4)可视化建模
RUP与UML联系在一起,在开发过程建立起软件系统的可视化模型,可以帮助人们提高管理软件复杂性的能力。
(5)验证软件质量
在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。
(6)控制软件的变更
RUP描述了如何控制,跟踪和监控修改,才能确保迭代开发的成功。
RUP软件开发生命周期是一个二维的生命周期模型
RUP有9个核心工作流 ,6个为核心工程流程。3个为核心支持工作流程。其基本任务是业务建模,需求,分析与设计,实现,测试,部署,配置,项目管理,环境。
在工作阶段,又分为初始阶段,精化阶段,构建阶段,移交阶段。
RUP迭代式开发
RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。传统上的项目组织是顺序通过每个工作流,每个工作流只有一次,也就是我们熟悉的瀑布生命周期(见图2)。这样做的结果是到实现末期产品完成并开始测试,在分析、设计和实现阶段所遗留的隐藏问题会大量出现,项目可能要停止并开始一个漫长的错误修正周期。
一种更灵活,风险更小的方法是多次通过不同的开发工作流,这样可以更好的理解需求,构造一个健壮的体系结构,并最终交付一系列逐步完成的版本。这叫做一个迭代生命周期。在工作流中的每一次顺序的通过称为一次迭代。软件生命周期是迭代的连续,通过它,软件是增量的开发。一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现工作流、测试工作流。其本身就像一个小型的瀑布项目。