# 第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)