Files
obsidian/软件需求分析/各章笔记/第11章-RUP统一过程.md

165 lines
6.2 KiB
Markdown
Raw Normal View History

2026-06-10 12:08:39 +08:00
# 第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)