UML 图知识点梳理总结

📅 创建时间:2026 年 5 月 15 日

🏷️ 标签: UML 软件设计师 面向对象 建模语言

📚 来源:[[UML图总结]] / [[UML关系区别]] + 补充整理

一、UML 概述与分类

UML(Unified Modeling Language,统一建模语言)是面向对象软件系统建模的标准化图形语言,用于可视化、规约、构造和文档化软件系统。

UML 不是编程语言,而是建模语言;不是方法论,而是图形表示法。UML 2.x 共定义了 14 种图,分为两大类:

结构图 静态图(6 种)

描述系统的静态结构,不随时间变化

行为图 动态图(8 种)

描述系统的动态行为,随时间变化

💡 记忆口诀 结构图:类对构部制包(类图、对象图、构件图、部署图、制品图、包图)
行为图:用活状交(用例图、活动图、状态图、交互图)
交互图:顺通定交(顺序图、通信图、定时图、交互概览图)
类图
对象图
构件图
部署图
制品图
包图

二、结构图(静态图)详解

1. 类图 Class Diagram

面向对象设计的核心

2. 对象图 Object Diagram

某一时刻的快照

3. 构件图 Component Diagram

模块化结构展示

4. 部署图 Deployment Diagram

软硬件映射关系

5. 制品图 Artifact Diagram

物理文件组织

6. 包图 Package Diagram

模型分层结构

三、行为图(动态图)详解

3.1 用例图 Use Case Diagram

⚠️ 易错点 用例图没有聚合/组合关系!聚合和组合是类图的概念。用例图只有包含、泛化、扩展三种关系。

3.2 活动图 Activity Diagram

3.3 状态机图 State Machine Diagram

四、交互图详解

交互图是行为图的子类,描述对象之间的交互,共 4 种:

4.1 顺序图 Sequence Diagram

时间顺序

4.2 通信图 Communication Diagram

对象链接

4.3 定时图 Timing Diagram

时间约束

4.4 交互概览图 Interaction Overview Diagram

控制流
💡 顺序图 vs 通信图 两者都是交互图,表达的信息等价(可以相互转换)。区别在于:
顺序图:强调时间顺序,纵轴是时间,消息从上到下排列
通信图:强调对象链接,用编号标识消息顺序,展示对象的空间组织

五、UML 关系体系

5.1 用例图关系(3 种)

关系 方向 含义 关键字 示例
包含 include 基本用例 → 抽象用例 必须执行的公共用例 <<include>> 学习和测验都包含权限检查
泛化 父 → 子 父子继承关系 实线空心三角箭头 登录(父)→ 手机号登录、密码登录(子)
扩展 extend 扩展用例 → 基本用例 可选执行的扩展用例 <<extend>> 看视频(基本)← 冲会员(可选扩展)
⚠️ 包含 vs 扩展包含(include)= 必须执行(mandatory):基本用例执行时,被包含用例一定执行
扩展(extend)= 可选执行(optional):只有满足条件时,扩展用例才会执行

5.2 类图关系(6 种)

关系 强度 含义 UML 表示 示例
依赖 最弱 ★ 一个事物变化影响另一个事物,临时性使用 虚线箭头 ---> 人依赖手机打电话
泛化 ★★ 特殊/一般关系(继承) 实线空心三角 → 动物 → 猫、狗
关联 ★★ 一组链,对象之间的连接,可有方向和多重性 实线箭头 → 学生选课
聚合 ★★★ 整体与部分生命周期不同,部分可独立存在 空心菱形 ◊→ 车队和车辆(车可离开车队)
组合 ★★★★ 整体与部分生命周期相同,部分不能独立存在 实心菱形 ♦→ 人和心脏(心脏不能离开人)
实现 ★★★ 接口与类之间的关系,类实现接口定义的操作 虚线空心三角 --> List 接口 ← ArrayList 类
🚨 聚合 vs 组合(高频考点) 核心区别:生命周期是否相同
聚合:部分可以脱离整体独立存在(弱拥有关系)。例:班级和学生
组合:部分不能脱离整体存在(强拥有关系)。例:窗口和按钮

六、图与软件生命周期

不同 UML 图适用于软件开发的不同阶段:

需求分析
概要设计
详细设计
实现
测试
阶段 推荐使用的图 说明
需求分析 用例图、活动图 用例图描述功能需求;活动图描述业务流程
概要设计 类图、包图、构件图 类图描述系统结构;包图/构件图描述模块划分
详细设计 类图、顺序图、状态图 类图细化属性方法;顺序图描述交互;状态图描述对象行为
实现阶段 构件图、部署图、制品图 构件图描述组件组织;部署图描述物理部署
测试阶段 状态图、用例图 状态图用于状态覆盖测试;用例图用于功能验证

七、易混淆对比

7.1 类图 vs 对象图

对比项类图对象图
本质模板(抽象)实例(具体)
名称类名不带下划线对象名带下划线,格式:对象名:类名
属性可以有抽象方法只有具体值,无抽象方法
关系关联、泛化等链接(Link)
生命周期永久存在某一时刻的快照

7.2 顺序图 vs 通信图

对比项顺序图通信图
强调时间顺序对象链接
布局纵轴为时间对象按空间排列
消息顺序从上到下自然排列用编号(1, 1.1, 2...)标识
等价性两者信息等价,可以相互转换

7.3 活动图 vs 状态图

对比项活动图状态图
描述对象活动流程(做什么)状态转换(处于什么状态)
焦点从一个活动到另一个活动从一个状态到另一个状态
触发活动完成后自动流转需要事件触发转换
适用业务流程、算法对象生命周期

7.4 构件图 vs 部署图

对比项构件图部署图
描述软件组件(逻辑)硬件节点(物理)
元素构件、接口、依赖节点、构件、通信路径
视角软件模块化软硬件映射

八、考试重点与答题技巧

8.1 关键词速查表

功能需求 用例图
业务流程 活动图
状态变化 状态机图
时间顺序 顺序图
对象链接 通信图
静态结构 类图
物理部署 部署图
实例快照 对象图
模块组织 构件图 / 包图
生命周期不同 聚合
生命周期相同 组合
必须执行 include

8.2 记忆口诀

用例图关系口诀:包饭菜

包含 include
泛化
扩展 extend

类图关系口诀:依饭关聚组实

依赖
泛化
关联
聚合
组合
实现

8.3 答题技巧

  1. 看到"功能需求" → 用例图
  2. 看到"业务流程" → 活动图
  3. 看到"状态变化" → 状态图
  4. 看到"时间顺序" → 顺序图
  5. 看到"对象链接" → 通信图
  6. 看到"静态结构" → 类图
  7. 看到"物理部署" → 部署图
  8. 聚合 vs 组合:看生命周期是否相同
  9. 包含 vs 扩展:看是否必须执行
  10. 类图 vs 对象图:类图是模板,对象图是实例

九、补充知识点

9.1 UML 中的 4+1 视图模型

UML 建模常结合 4+1 视图模型来描述系统的不同侧面:

逻辑视图

  • 关注系统功能需求
  • 使用类图、对象图、状态图
  • 面向最终用户

开发视图(实现视图)

  • 关注软件模块组织
  • 使用构件图、包图
  • 面向程序员

进程视图

  • 关注并发与同步
  • 使用活动图、顺序图
  • 面向系统集成

物理视图(部署视图)

  • 关注系统拓扑部署
  • 使用部署图
  • 面向系统工程师

+1:场景视图(用例图)→ 驱动其他四个视图的开发

9.2 UML 图的表示符号速查

元素 UML 符号/表示 说明
矩形(三格:类名、属性、方法)抽象类名斜体
对象矩形(名称带下划线)格式:对象名:类名
接口<<interface>> + 类名或用圆圈(棒棒糖表示法)
关联实线箭头可标注角色名、多重性
聚合空心菱形 + 箭头整体端为菱形
组合实心菱形 + 箭头整体端为菱形
泛化实线 + 空心三角箭头子类指向父类
实现虚线 + 空心三角箭头类指向接口
依赖虚线箭头最弱的关系
包含虚线 + <<include>>基本用例指向被包含用例
扩展虚线 + <<extend>>扩展用例指向基本用例
参与者火柴人图标用例图中的外部角色
用例椭圆用例名写在椭圆内

9.3 多重性表示法

关联关系中的多重性(Multiplicity)表示关联一端的对象数量:

表示含义
1恰好 1 个
0..10 或 1 个
*0 个或多个
1..*1 个或多个
n..mn 到 m 个

9.4 消息类型(顺序图)

同步消息

  • 实线 + 实心三角箭头
  • 发送方等待接收方处理完
  • 常见于方法调用

异步消息

  • 实线 + 开放箭头
  • 发送方不等待,继续执行
  • 常见于事件/信号发送

返回消息

  • 虚线 + 开放箭头
  • 表示方法返回结果
  • 可省略

自调用消息

  • 指向自身的箭头
  • 对象调用自己的方法
  • 激活条嵌套

9.5 交互片段操作符(顺序图)

操作符含义对应编程概念
alt条件分支(互斥)if-else
opt可选执行if(无 else)
loop循环for / while
par并行执行多线程并发
break中断break
critical临界区synchronized
ref引用其他交互函数调用
✅ 总结要点
  1. UML 共 14 种图,分结构图(6 种)和行为图(8 种)
  2. 用例图只有 3 种关系:包含、泛化、扩展
  3. 类图有 6 种关系:依赖、泛化、关联、聚合、组合、实现
  4. 聚合 vs 组合的核心区别:生命周期是否相同
  5. 顺序图 vs 通信图:信息等价,强调点不同
  6. 选图看关键词:功能需求→用例图、业务流程→活动图、状态变化→状态图
  7. 4+1 视图:逻辑、开发、进程、物理 + 场景(用例图)

相关笔记:[[需求工程总结]] | [[UML关系区别]] | [[4+1视图]]

📅 创建时间:2026 年 5 月 15 日 | 基于 [[UML图总结]] 和 [[UML关系区别]] 整理补充