RUP是以用例驱动的、以体系结构为核心的、迭代的增量过程。它将一个大型项目分解为可连续应用瀑布模型的几个小部分,在对每一小部分进行需求分析、设计、实现并确认之后,再对下一小部分进行需求分析、设计、实现和确认,如此下去,直至整个项目完成。
RUP是一个二维的软件开发模型,如图2-10所示。从宏观上看,它是一个大的迭代过程:横坐标表示软件产品所处的四个阶段状态,纵坐标表示软件产品在每个阶段中的工作流。从微观上看,任何一个阶段本身,其内部工作流程也是一个小的迭代过程。
从图2-10横轴来看,RUP中的软件生命周期在时间上被分解为四个阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。每个阶段结束于一个主要的里程碑,每个阶段本质上是两个里程碑之间的时间跨度,如图2-11所示。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段,否则决策者应该做出决定,要么中止项目,要么重做该阶段的工作。
图2-10 RUP模型
图2-11 RUP中的阶段和里程碑
●初始阶段。本阶段主要工作是建立业务模型,定义最终产品视图,并确定项目的范围。初始阶段时间上可能很短。该阶段结束时产生第一个重要的里程碑,即生命周期目标里程碑,就是确定软件目标,评价项目基本的生存能力。
●细化阶段。本阶段主要工作是设计并确定系统的体系结构,制定项目计划,确定资源需求。细化阶段结束时产生第二个重要的里程碑,即生命周期结构里程碑。它为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量,需要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。
●构建阶段。本阶段主要工作是反复地开发,详尽地测试,集成为用户需要的产品。构建阶段结束时产生第三个重要的里程碑,即初始功能里程碑,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。
●移交阶段。本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。在交付阶段的终点是第四个里程碑,即产品发布里程碑。此时,要确定目标是否实现,是否应该开始另一次迭代周期,在一些情况下这个里程碑可能与下一次迭代周期的初始阶段的结束重合。
从图2-10纵轴来看,RUP包含9个工作流,分别是6个核心工作流和3个核心支持工作流。核心工作流是加工软件进行投入产出的实质性活动集,核心支持工作流是对核心过程工作流的配套支持和管理,保障核心过程工作高效、流畅运行。9个工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
核心工作流是:
●商业建模。是商务层面的活动,弄清项目边界和约束,做出计划。
●需求。描述系统应该做什么,并使开发人员和用户就这一描述达成共识。
●分析和设计。将需求转化成计算机可以实现的模型,是将客观世界虚拟到计算机世界的逐步细化过程。
●实施。用计算机可以理解的语言将设计模型组织成可执行的文件、数据,俗称编程。
●测试。发现软件中的错误,验证软件中的需求是否被正确地实现。
●部署。将软件分发给最终用户,安装在真实的环境下,由用户操作运行。
核心支持工作流是:
●配置和变更管理。管理团队多个成员并行开发所产生的文档,在版本更新、需求变更中做到各类文档及时、同步跟踪,保证各文档内容完整、一致。
●项目管理。对核心工作流进行资源配置、评估监控、风险控制、计划调整等项目管理工作,做到投入产出的效益最大化。
●环境。向软件开发组织提供软件开发环境,包括人员、设备、过程和工具,以及各种规范、指导手册和保障措施。