1.5.6 统一过程
统一软件开发过程(Rational Unified Process,RUP)模型是基于统一建模语言(Unified Modeling Language,UML)的一种面向对象软件开发模型。它解决了螺旋模型的可操作性问题,采用迭代和增量递进的开发策略,并以用例驱动为特点,集中了多个软件开发模型的优点。RUP模型是迭代模型的一种。RUP模型的示意图如图1.13所示。
图1.13中,纵轴以工作的内容为组织方式,表现了软件开发的工作流程。工作流程就是指一系列的活动,这些活动产生的结果是可见的价值。工作流程可以分为核心工作流程和核心支持工作流程。其中,核心工作流程是在整个项目中与主要关注领域相关的活动的集合。在每个迭代的软件生存周期中,核心工作流程有业务建模、需求、分析和设计、实现、测试和部署。配置与变更管理、项目管理和环境属于核心支持工作流程,它们为核心工作流程的实施提供支持。

图1.13 统一软件开发过程模型
图1.13中,横轴以时间为组织方式,表现了软件开发的4个阶段,即先启、细化、构建和产品化,每个阶段中都可能包含若干次迭代。先启阶段的任务是估算项目的成本和效益,确定项目的规模、功能和架构,估计和安排项目的进度;细化阶段的主要目标是建立软件系统的架构,如建立用例模型、静态模型、动态模型和实现模型;构建阶段的任务是通过一系列的迭代过程,增量式地构建和实现用例;产品化阶段的任务是试用产品并改正适用中发现的错误,以及制作产品的最终版本、安装产品、完善用户手册并培训用户等。这四个阶段按照顺序依次进行,每个阶段结束时都有一个主要里程碑。实际上,可以把每个阶段看成是两个主要里程碑之间的时间跨度。在每个阶段结束时都要进行阶段评估,确保该阶段目标已被实现,从而进入下一个阶段。阶段与里程碑的关系如图1.14所示。(https://www.daowen.com)

图1.14 统一软件开发过程的项目阶段和里程碑
统一软件开发过程模型是基于迭代思想的软件开发模型。在传统的瀑布模型中,项目的组织方法是使其按顺序一次性地完成每个工作流程。通常,在项目前期出现的问题可能推迟到后期才会发现,这不仅增大了软件开发的成本,还严重影响了软件开发的进度。采用迭代的软件工程思想可以多次执行各个工作流程,有利于更好地理解需求,设计出合理的系统架构,并最终交付一系列渐趋完善的成果。可以说,迭代是一次完整地经过所有工作流程的过程,从图1.14中能够看出,每个阶段都包含了一次或多次的迭代。
基于统一软件开发过程模型所构造的软件系统,是由软件构件建造而成的。这些软件构件定义了明确的接口,相互连接成整个系统。在构造软件系统时,RUP采用架构优先的策略。软件架构概念包含了系统中最重要的静态结构和动态特征,架构体现了系统的总体设计。架构优先开发的原则是RUP开发过程中至关重要的主题。
统一软件开发过程模型适用的范围极为广泛,但是对开发人员的素质要求较高。