RUP(Rational Unified Process,统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。它是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。
RUP最重要的它有三大特点:1)软件开发是一个叠代过程,2)软件开发是由Use Case驱动的,3)软件开发是以构架设计(Architectural Design)为中心的。概括地描述就是:“用例驱动、以架构为中心的和受控的迭代增量开发。”
RUP应用角色、活动、制品和工作流的种重要的模型元素分别描述了“谁做”、“做什么”、“怎么做”和“什么时候做”。它的核心工作包括捕获需求、分析、设计、实现和测试等。首先,开发人员通过和用户的沟通、了解,捕获用户需求并制作软件用例图(用况图),从而得到软件的用况模型。然后分析并设计满足这些用例的系统,得到分析模型、设计模型和实施模型,进而实现系统,最后通过测试模型来验证系统是否满足用况中描述的功能。其中捕获需求过程中得到的用例将各个核心工作流结合为一个整体,驱动整个软件开发过程。
RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception Phase)、精化阶段(Elaboration Phase)、构建阶段(Construction Phase)和移交阶段(Transition Phase)。以下对各阶段做简要介绍:
初始阶段:专注于项目的初始活动。主要意图是建立项目的范围和版本,确定业务实现的可能性和项目目标的稳定性。产生的主要工作产品有构想文档(vision document)、初始用例模型、初始项目术语表、初始的业务用例、早期的风险评估和一个可以显示阶段和迭代的项目计划、业务模型以及一个或多个原型(需要时);
精化阶段:理解了最初的领域范围之后,进行需求分析和架构演进。主要意图是对问题域进行分析,建立系统的需求和架构,确定技术实现的可行性和系统架构的稳定性。在这阶段结束时产生用例模型、补充需求(包括非功能需求)、分析模型、软件体系架构描述、可执行的架构原型、初步的设计模型、修订的风险列表、项目计划(包括迭代计划、调整的工作流、里程碑和技术工作产品)以及初始用户手册;
构建阶段:该阶段的主要意图是增量式开发一个可以交付用户的软件产品,此阶段结束时的成果设计模型、软件构件、集成的软件增量、测试计划及步骤、测试用例以及一个准备交到最终用户手中的产品,包括具有最初运作能力的在适当的平台上集成的软件产品、用户手册和对当前版本的描述;
移交阶段:主要意图是将软件产品提交用户,此阶段结束时产生移交给用户产品发布版本、β测试报告和综合用户反馈。
RUP采用迭代开发模式,其中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。如下图:
图1. RUP迭代开发模型
在每一个迭代中,有5个核心工作流:捕获系统应该做什么的需求分析流,精华和结构化需求的分析工作流,在系统构架内实现需求的设计工作流,构造软件的实现工作流,验证实现是否如期那样工作的测试工作流。随着UP的阶段进展,每个核心工作流的工作量发生了变化。4个技术阶段由主要里程碑所终止。
初始阶段--生命周期目标;精化阶段--生命周期架构;构建阶段--初始运作功能;移交阶段--产品发布。