概述

定义

统一软件开发过程(英语:Rational Unified Process,缩写为RUP)是一种软件工程方法,为迭代式软件开发流程。

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

基于RUP的软件过程是一个迭代和增量的过程

RUP是一个二维的软件开发模型,其核心特点之一是用例驱动、以体系结构为中心的、迭代和增量的软件开发过程

RUP 9个核心工作流

  • 业务建模
  • 需求
  • 分析与设计
  • 实现
  • 测试部署
  • 配置与变更管理
  • 项目管理
  • 环境

时间上顺序的阶段

每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足

RUP把软件开发生存周期划分为多个循环,每个循环生成产品的一个新的版本,每个循环依次由4个连续的阶段组成,每个阶段完成确定的任务。这4个阶段分别为:

  • 初始阶段:定义最终产品视图和业务模型,并确定系统范围
  • 细化阶段:设计及确定系统的体系结构,制定工作计划及资源要求
  • 构造阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。
  • 移交阶段:把产品提交给用户使用

通过初始、细化、构建和移交4个阶段就是一个开发周期,每次经过这4个阶段就会产生一代软件。除非产品退役,否则通过重复同样的4个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。这样做的好处是在软件开发的早期就可以对关键的、影响大的风险进行处理。

过程上顺序的阶段

  • 起始阶段
  • 细化阶段
  • 构建阶段:产生设计模型文档
  • 交付阶段
  • 生产价段

4+1视图模型

在RUP中采用“4+1”视图模型来描述软件系统的体系结构

4+1视图组成

  • 逻辑视图:逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。一般用类图和对象图描述

  • 开发视图:也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。该视图可描述源代码,系统文件结构

  • 进程视图:侧重于系统的运行特性,主要关注一些非功能性需求,例如,系统的性能和可用性等。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的功能抽象如何适合进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行的

  • 物理视图:在UML中被称为部署视图,它主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装和通信等问题。当软件运行于不同的物理节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小化

  • 场景:可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。场景视图对应UML中的用例视图

各视图的关注点

  • 逻辑视图:用户关心的是系统的功能
  • 实现视图:程序员关心的是系统的配置、装配等问题
  • 进程视图:系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题
  • 部署视图:系统工程师关心的是系统的发布、安装、拓扑结构等问题
  • 用例视图:分析人员和测试人员关心系统的行为,侧重用例视图

Reference