考点频率 :★★★★★(UML基础概念每年必考,是后续所有UML图知识的地基)
难度 :⭐⭐
建议:重点掌握UML的三大构造块、六大关系的图形符号,这是所有UML题目中识别关系的"通行证"
1️⃣ 什么是UML?
UML(统一建模语言,Unified Modeling Language) 是一种用于软件系统可视化建模 的标准语言。它不是一种编程语言,而是一套图形化表示法------用各种图形符号来描述系统的结构、行为和交互。
打个比方:UML就是软件行业的"工程图纸"。盖房子需要平面图、结构图、水电图;开发软件也需要类图、时序图、用例图。没有图纸,施工队(程序员)只能靠猜。
2️⃣ UML的三大基本构造块(软考必考点)
UML的体系由三部分构成:事物 、关系 、图。记住这个框架,UML就学懂了七成。
2.1 事物(Things):图的"名词"------图中有什么东西
| 事物类型 | 含义 | 典型代表 |
|---|---|---|
| 结构事物(Structural) | 系统的静态部分,描述概念或物理元素 | 类(Class)、接口(Interface)、用例(Use Case)、构件(Component)、节点(Node) |
| 行为事物(Behavioral) | 系统的动态部分,描述随时间变化的行为 | 交互(Interaction)、状态机(State Machine) |
| 分组事物(Grouping) | 用来组织其他事物的容器 | 包(Package) |
| 注释事物(Annotational) | 对模型的解释和说明 | 注释(Note) |
考试提示:软考常问"下面哪个属于结构事物?"------记住"类、接口、用例、构件、节点"这五个核心就够了。
2.2 关系(Relationships):图的"动词"------事物之间怎么连接
这是UML中最常考、最易混淆的部分。六大关系的图形符号必须背下来!
| 关系 | 英文 | 图形符号 | 一句话理解 | 箭头方向 |
|---|---|---|---|---|
| 依赖 | Dependency | 虚线箭头(------>) |
A"用到"B,B变了A可能受影响 | A → B(A依赖B) |
| 关联 | Association | 实线(---------) |
A和B"认识",有结构上的联系 | 双向或单向 |
| 聚合 | Aggregation | 空心菱形 + 实线(◇---------) |
整体与部分,部分可独立存在(车和轮胎) | 整体 → 部分 |
| 组合 | Composition | 实心菱形 + 实线(◆---------) |
整体与部分,部分不可独立(公司和部门) | 整体 → 部分 |
| 泛化 | Generalization | 空心三角 + 实线(------▷) |
继承关系(子类→父类) | 子类 → 父类 |
| 实现 | Realization | 空心三角 + 虚线(---▷) |
类实现接口 | 实现类 → 接口 |
❓ 聚合 vs 组合的必考点:
- 聚合:整体和部分可以分开独立存在。比如"汽车"和"轮胎"------轮胎拆下来还能用,汽车没了轮胎还能存在。
- 组合:整体和部分同生共死。比如"公司"和"部门"------部门是公司的一部分,公司没了部门就不存在(或失去意义)。
❓ 依赖 vs 关联的区分:
- 依赖:A只在某个方法里用到了B(临时关系,B改了A可能编译不过)。
- 关联:A把B作为自己的成员变量(长期关系,A"认识"B)。
2.3 图(Diagrams):图的"篇章"------把事物和关系组织起来
UML 2.x 共包含 14种图,分为两大类:
| 分类 | 图名称 | 核心用途 |
|---|---|---|
| 结构图(静态图) | 类图、对象图、构件图、部署图、包图、组合结构图 | 描述系统的静态结构("长什么样") |
| 行为图(动态图) | 用例图、顺序图、通信图、状态图、活动图、定时图、交互概览图 | 描述系统的动态行为("怎么运行") |
软考重点考查:类图、用例图、顺序图、活动图、状态图。其余了解即可。
3️⃣ 一张表看懂三大构造块
| 构造块 | 本质 | 核心元素(软考重点) |
|---|---|---|
| 事物 | 图里有"什么" | 类、接口、用例、构件、节点、交互、状态 |
| 关系 | 它们"什么关系" | 依赖、关联、聚合、组合、泛化、实现(六大符号必背) |
| 图 | 怎么"组织展示" | 类图(结构)、用例图/顺序图/活动图/状态图(行为) |
4️⃣ 经典例题
例题1:以下UML关系中,表示整体与部分生命周期一致的关系是( )。
A. 依赖
B. 聚合
C. 组合
D. 泛化
解析 :组合 强调整体与部分生命周期一致(同生共死)。聚合虽然也是整体与部分,但部分可以独立存在。选 C。
例题2:在UML类图中,表示"一个类实现一个接口"的关系符号是( )。
A. 实线空心三角箭头
B. 虚线空心三角箭头
C. 实线箭头
D. 虚线箭头
解析 :类实现接口是虚线空心三角箭头;类继承父类是实线空心三角箭头。选 B。
例题3:以下属于UML结构图的是( )。
A. 用例图
B. 顺序图
C. 类图
D. 活动图
解析 :结构图包括类图、构件图、部署图等。用例图、顺序图、活动图都属于行为图。选 C。
5️⃣ 记忆口诀
UML三构造,事物关系图。
事物分五类,类用构节包(结构核心五元素)。
关系六大种,依赖关联聚合组,泛化实现要分清。
实线空心是泛化,虚线空心是实现。
聚合组合区分口诀:
空心菱形是聚合,零件拆了还能活。
实心菱形是组合,同生共死不可脱。
6️⃣ 小测验(评论区对答案)
在UML类图中,如果类A以成员变量的形式持有类B的引用,且类B的对象可以独立于类A的对象存在,则类A和类B之间的关系是( )。
A. 依赖
B. 关联
C. 聚合
D. 组合
🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容
#软考中级 #软件设计师 #UML #统一建模语言 #面向对象 #软考备考