# 第11章 Rational统一过程（RUP）

> **考试重要度**：★★★  
> **核心内容**：RUP的三大特点、四个阶段、九个核心工作流、六大最佳实践

---

## 📢 软件开发不只是写代码

💬 开发软件就像盖一座大楼——你不能上来就搬砖，得先画图纸、打地基、搭框架、装修……

**RUP** 就是一套完整的"盖楼流程指南"，告诉你：什么人、在什么时候、做什么事、怎么做。

---

## 💡 一、RUP是什么？

> **RUP (Rational Unified Process)** = 一套基于UML的软件开发过程框架。

🔑 **核心公式**：RUP = **用例驱动** + **以体系结构为中心** + **迭代和增量开发**

### 三大特点

| 特点 | 含义 |
|------|------|
| **用例驱动** | 从用例出发，贯穿需求→设计→实现→测试全过程 |
| **以体系结构为中心** | 先搭建系统骨架，再逐步填充细节 |
| **迭代和增量开发** | 不是一口气做完，而是一轮一轮地完善 |

---

## 💡 二、RUP的二维结构

```
        ┌─────────────────────────────────────┐
  纵轴  │ 工作流                               │
  (做   │ 业务建模 需求 分析设计 实现 测试 部署  │
  什么) │ 配置管理 项目管理 环境                │
        ├─────────────────────────────────────┤
  横轴  │ 初始 → 细化 → 构造 → 移交            │
  (什么  │    ↑       ↑       ↑       ↑        │
  时候) │  里程碑   里程碑   里程碑   里程碑      │
        └─────────────────────────────────────┘
```

---

## 💡 三、四个阶段（横轴）

| 阶段 | 核心任务 | 里程碑 |
|------|----------|--------|
| **初始 (Inception)** | 定义项目范围，评估可行性 | 生命周期目标里程碑 |
| **细化 (Elaboration)** | 设计体系结构，制定计划 | 生命周期体系结构里程碑 |
| **构造 (Construction)** | 大规模开发，完成所有功能 | 初始操作能力里程碑 |
| **移交 (Transition)** | 交付用户，培训，部署 | 产品发布里程碑 |

💬 **比喻**：初始=立项审批，细化=画施工图，构造=主体施工，移交=交房验收。

---

## 💡 四、九个核心工作流（纵轴）

### 六个过程工作流

| 工作流 | 做什么 | 主要产物 |
|--------|--------|----------|
| **业务建模** | 理解业务现状 | 业务用例模型、业务对象模型 |
| **需求** | 定义系统功能 | 用例模型、SRS |
| **分析与设计** | 设计系统结构 | 分析模型、设计模型、数据模型 |
| **实现** | 编写代码 | 源代码、可执行系统 |
| **测试** | 验证系统质量 | 测试计划、测试报告 |
| **部署** | 交付使用 | 安装包、用户手册、培训资料 |

### 三个支持工作流

| 工作流 | 做什么 |
|--------|--------|
| **配置与变更管理** | 控制制品版本和变更 |
| **项目管理** | 计划、分配、监控项目 |
| **环境** | 提供开发工具和过程支持 |

---

## 💡 五、4W概念

RUP回答了软件开发的四个基本问题：

| 维度 | 问题 | RUP概念 |
|------|------|---------|
| **Who** | 谁来做？ | 角色（Role） |
| **How** | 怎么做？ | 活动（Activity） |
| **What** | 产出什么？ | 制品（Artifact） |
| **When** | 什么时候做？ | 工作流（Workflow） |

---

## 💡 六、六大最佳实践

🔑 **这是考试的常考点！**

| 最佳实践 | 含义 |
|----------|------|
| **① 迭代式开发** | 不是一次做完，而是多轮迭代，每轮都有一个可运行版本 |
| **② 管理需求** | 用用例来组织和管理需求，控制变更 |
| **③ 使用基于构件的体系结构** | 把系统设计成可替换的构件 |
| **④ 可视化软件建模** | 用UML图来描述系统结构和行为 |
| **⑤ 验证软件质量** | 把质量评估嵌入整个过程，不是事后检查 |
| **⑥ 控制软件变更** | 通过配置管理跟踪和控制每个修改 |

---

## 💡 七、迭代 vs 瀑布

| 维度 | 瀑布模型 | RUP迭代 |
|------|----------|---------|
| **节奏** | 需求→设计→编码→测试，一次性 | 多轮迭代，每轮都走完整流程 |
| **风险** | 到最后才发现问题 | 早期就能发现和解决风险 |
| **变更** | 不欢迎变更 | 每轮迭代可以调整方向 |
| **产出** | 最后才有可运行版本 | 每轮都有可运行版本 |

---

## ✍️ 边学边练

**题目**：判断以下描述对应RUP的哪个阶段或工作流。

1. 项目经理制定本次迭代的计划
2. 测试人员编写测试用例并执行
3. 确定系统的技术架构是B/S还是C/S
4. 系统上线，培训用户使用
5. 绘制用例图，确定系统功能范围

**答案：**
1. **项目管理**（支持工作流）| 可在任何阶段
2. **测试**（过程工作流）| 主要在构造阶段
3. **细化阶段** — 设计体系结构
4. **移交阶段** — 交付给用户
5. **初始阶段** 或 **需求工作流** — 定义范围和功能

---

## 📝 章末自测

**1. 填空题**
- RUP的三大特点是：（ ___ ）（ ___ ）、（ ___ ）（ ___ ）、（ ___ ）（ ___ ）
- RUP的四个阶段依次是：（ ___ ）（ ___ ）、（ ___ ）（ ___ ）、（ ___ ）（ ___ ）、（ ___ ）（ ___ ）
- 九个核心工作流中，6个是（ ___ ）（ ___ ）工作流，3个是（ ___ ）（ ___ ）工作流

**2. 简答题**
- 简述RUP六大最佳实践。
- 迭代和增量开发相比瀑布模型有什么优势？

**答案：**
**填空题**：
- 用例驱动、以体系结构为中心、迭代和增量开发
- 初始、细化、构造、移交
- 过程、支持

**简答题**：
- ①迭代式开发 ②管理需求 ③使用基于构件的体系结构 ④可视化软件建模 ⑤验证软件质量 ⑥控制软件变更
- 迭代开发可以早期发现风险、更容易容纳需求变更、每轮都有可运行的版本（增强信心）、可以根据反馈及时调整方向。

---
> 🔗 上一篇：[第9章 数据建模](第09章-数据建模.md)
