第11章 UML建模
UML 建模题是软件设计师下午固定试题 3,满分 15 分。题型通常不是让你从零画图,而是给出业务背景和若干不完整的 UML 图,把类名、用例名、状态名、消息名、关系条件等“扣掉”,要求根据题干和图之间的对应关系补全。
本章的核心能力是:从题干中提取信息,再让用例图、类图、状态图、通信图互相校验。
考试定位
| 项目 | 内容 |
|---|---|
| 题型位置 | 下午试题 3 |
| 总分 | 15 分 |
| 目标分 | 尽量拿到 12 分左右 |
| 最常考图 | 类图 |
| 常与类图组合 | 用例图、状态图、活动图、顺序图、通信图 |
| 题型本质 | 扣图填空,不是自由建模 |
近年最常见的是“类图 + 另一种图”的组合。即使考用例图、状态图、通信图,也经常要回到类图补类名、属性、方法或关系。
学习顺序
| 顺序 | 内容 | 学习目标 |
|---|---|---|
| 1 | 用例图与类图 | 从题干提取参与者、用例、类名和关系条件 |
| 2 | 状态图与类图 | 用状态、事件、条件和类名互相校验 |
| 3 | 通信图与类图 | 通过消息箭头和类图方法反推填空 |
通用解题流程
- 先读问题,不要先读长题干。看清楚要填的是类名、用例名、状态名、消息名还是条件。
- 再读题干,标出名词、动词、条件词和英文词。
- 名词优先考虑类名、对象名、参与者;动词短语优先考虑用例名、方法名、活动名、事件名。
- 如果题目给英文词汇,优先使用题目给出的英文词汇,尤其是类名和方法名。
- 图与图互证:通信图对象的冒号后是类名,类图中的方法可填回通信图消息。
- 用关系定位:泛化箭头指父类,聚合/组合菱形在整体侧,include 指公共用例,extend 指基本用例。
常见填空来源
| 填空类型 | 来源 |
|---|---|
| 类名 | 题干名词、英文词汇、通信图对象冒号后的类名 |
| 属性 | 需要长期保存的数据项 |
| 方法 | 通信图消息、顺序图消息、题干中的操作动词 |
| 用例名 | 系统功能,常是“动词 + 名词” |
| 状态名 | 题干明确列出的状态,或对象生命周期阶段 |
| 事件/条件/动作 | 状态迁移线上的“事件 [条件] / 动作” |
| 扩展条件 | 题干中的“若……则……”“如果没有……则……” |
识图重点
| 图 | 常见填空 | 做题抓手 |
|---|---|---|
| 类图 | 类名、属性、方法、关系 | 名词、英文名、泛化/聚合/组合位置 |
| 用例图 | 参与者、用例、include/extend 条件 | 外部角色、系统功能、条件流程 |
| 状态图 | 状态、事件、条件、动作 | 对象生命周期和备选事件流 |
| 通信图 | 对象、消息、编号 | 冒号后类名、箭头指向方法所属类 |
| 活动图 | 活动名、监护条件、并发分岔/汇合 | 动作流程、条件分支、责任泳道 |
本章小结
UML 建模题的答案大多来自题干,不需要凭空创造。真正难的是把题干里的自然语言放到正确的图形位置上:名词进类图,动词进用例或方法,条件进扩展关系或状态迁移,英文词汇按原文填入类名和方法名。