统一软件开发过程

統一軟體開發過程（，縮寫為RUP）是一種软件工程方法，為迭代式軟體開發流程。最早由Rational Software公司開發，因此冠上公司名稱。Rational Software公司後來被IBM併購，成為IBM之下的一個部門，因此又稱IBM-Rational Unified Process。

RUP描述了如何有效地利用商业的可靠的方法开发和部署软件，是一种重量级过程（也被称作厚方法学），因此特别适用于大型软件团队开发大型项目。

在软件工程领域，与RUP齐名的软件方法还有：
 净室软件工程（重量级）、CMMI（重量级）
 极限编程（extreme programming）和其他敏捷软件开发（agile methodology）方法学（轻量级）

产品生命周期中的指导方针和模板 
RUP为项目成员定义了在一个产品生命周期中如下指导方针和模板。

迭代式开发 
给定的时间内，开发一个大型的复杂的软件系统，定义问题并构建解决方案是不可能一蹴而就的。在项目的开发过程中，由于体系结构方面的约束，客户的需要或对原始问题更精确的理解，需求会经常地变更。迭代式开发允许通过后续的细化产生对项目更好的理解，并在每个迭代的阶段，把项目的最高风险的事项作为最高优先级的任务集中精力解决。理想的，每一次迭代都以一个可执行的发布为结束，这样可以减少一个项目风险，更多地允许客户的交互并帮助开发人员集中精力。

管理需求 
对于任何大型项目来说，一个文档框架是必不可少的；因此RUP描述了如何描述功能性，约束，设计决定和业务需求。

用例和场景是过程规定的制品的例子，在贯穿系统整个开发和部署的过程中，用例和场景在捕捉功能需求和提供一致的线索上是非常有效的。

使用基于构件的体系架构 
基于构件的体系架构（CBA）创造了容易扩展的系统，并提升了软件的重用性和可读性。一个构件经常与面向对象程序设计中的一个对象有关。

RUP提供了构建这种系统的一个系统化的方法，关注于在把所有资源投入到一个项目之前，开发出一个早期的可执行的体系架构。

这些构件通过一些基础平台，如CORBA和COM组装在一起。

软件的可视化建模 
将你的程序设计从代码上抽象出来，并用图形化构件块展现出来是得到解决方案的全面意象的一种有效方法。这对于项目的技术人员来说，一方面，能够更容易地勾画出如何最好的实现一个给定逻辑集合的轮廓，另一方面，能够更容易地构造在业务过程和实现业务过程的实际代码之间的中间物。

统一建模语言（UML）是表示项目的产业标准方法，因此经常被RUP使用。

验证软件品質 
品質评估是所有软件项目中最经常的失败所在，因为通常这样项目的仅仅在项目总结中进行质量评估和甚至由另外的团队来进行品質评估。 RUP在规划品質控制和评估方面有所帮助，并把品質控制和评估包括在每个项目成员都参与的整个过程中。

控制软件的变更 
在所有的软件项目中，变更是不可避免的，RUP定义了控制和监控变更的方法。一个表面上很小的变更可能以完全不可预计的方式对应用程序产生影响，这一点对一个成功项目至关重要。RUP同时定义了安全的操作环境，保证一个程序员对另一个系统的修改将不会对他系统地修改。这一点与基于构件的体系架构有很大的关系。

迄今为止，这些指导方针是通用的，可以在一个项目的生命周期中遵守。为了把握一个项目的时间尺度，RUP把一个项目分为四个不同的阶段：
 构思阶段 ：包括用户沟通和计划活动两个方面，强调定义和细化用例，并将其作为主要模型。
 细化阶段 ：包括用户沟通和建模活动，重点是创建分析和设计模型，强调类的定义和体系结构的表示。
 构建阶段 ：将设计转化为实现，并进行集成和测试。
 移交阶段 ：将产品发布给用户进行测试评价，并收集用户的意见，之后再次进行迭代修改产品使之完善。

参见 
 软件工程
 软件构件
 项目生命周期
 软件架构
 计算机程序设计
 质量保证

参考文献

外部链接 
 Rational软件公司主页
 The Rational Edge网站上的RUP的非常好的阐述（pdf） 

软件工程
軟體開發
資訊管理