一、统一建模语言UML 00:02
1. 事物 02:46

- 四种基本类型:结构事物(类、接口、用例等)、行为事物(交互、活动等)、分组事物(包)、注释事物(解释性符号)
- 结构事物特点:模型的静态部分,如类图中使用的类符号、用例图中的用例符号
- 行为事物特点:模型的动态部分,如状态图中的状态转换、活动图中的动作
- 分组事物作用:模型的组织单元,如包图用于将相关元素分组管理
- 注释事物特性:非必要元素,可附加在任何元素上提供解释说明
2. 关系 05:31
1)关系的四大类 05:56
- 分类依据:根据语义强度和图形表示分为依赖、关联(含组合/聚合)、泛化、实现四大类
- 考试重点:主要考察关系类型的判断和图形符号识别,而非单纯记忆分类
2)依赖关系 06:06
- 定义特征:一个事物的变化会引起另一个事物的变化,如人类依赖空气和水生存
- 图形表示:虚线箭头(虚线+实心箭头)
- 典型场景:临时性的、较弱的关系,如方法参数传递
3)关联关系 06:43
- 基本特征:表示两个事物间存在某种联系,是最普遍的关系类型
- 图形表示:实线连接(可带多重度数字)
- 实例说明:医生与病人、教师与学生之间的关系都属于广义关联
4)组合与聚合关系 07:37
- 共同点:都是特殊的关联关系,表示部分与整体的关系
- 组合关系:
- 特点:强关系,具有共同生命周期(如人和大脑)
- 图形:实线+实心菱形(整体端)
- 聚合关系:
- 特点:弱关系,部分可独立存在(如雁群和大雁)
- 图形:实线+空心菱形(整体端)
5)泛化关系 09:52
- 本质:一般与特殊的关系,即继承关系
- 图形表示:实线+空心箭头(子类指向父类)
- 实例说明:学生与研究生、图书与科技书之间的关系
6)实现关系 10:19
- 应用场景:主要用于接口实现,如Java中的implements
- 图形表示:虚线+空心箭头
- 考试频率:较少直接考察,更多出现在编程语境中
7)关系的图形符号 11:15

- 记忆要点:
- 实线/虚线:关联/组合/泛化用实线;依赖/实现用虚线
- 箭头类型:依赖用实心箭头;泛化/实现用空心箭头
- 菱形区别:聚合空心菱形;组合实心菱形

8)例题1:汽车系统的组成关系 13:58
- 题目解析
- 解题关键:判断各选项是否符合组合关系的"共同生命周期"特征
- 争议说明:此题选项设计存在争议,各部件与汽车的绑定强度难以明确区分
- 推荐答案:B(汽车和车窗),因车窗相对容易独立存在
9)例题2:UML类图关系判断 16:04
- 题目解析
- 图形识别:
- 直线连接→关联关系(Shop-Magazine)
- 实心菱形→组合关系(Magazine-Page)
- 类图应用:不适用于对象快照建模(这是对象图的用途)
- 解题技巧:直接根据图形符号判断,无需过度分析语义
- 图形识别:
3. UML图 17:48
1)类图 19:54

- 本质特征: 静态图,展现系统的静态设计视图,包含对象、接口、协作及其相互关系
- 构成要素:
- 类表示法: 包含类名、属性(name:Name\text{name:Name}name:Name)、操作(getPersonalRecords()\text{getPersonalRecords()}getPersonalRecords())三要素
- 关系类型: 聚集(空心菱形)、关联(实线)、泛化(空心三角箭头)、依赖(虚线箭头)等
- 常见错误: 注意聚集关系应为空心菱形(教材示例错误使用实心菱形)
- 建模要点: 反映系统中类的数量、类间关联关系及接口实现情况
2)对象图 21:53

- 核心定义: 类图的特定时刻快照,展现具体对象实例及其链(关系)
- 与类图区别:
- 抽象层级: 对象图表现具体实例(如"技术部"),类图表现抽象概念(如"部门")
- 命名规范: 对象名采用"实例名:类名"格式(如Zhang:Student\text{Zhang:Student}Zhang:Student)
- 特殊作用: 当系统未建立类图时,对象图可替代作为静态设计视图
- 应用场景: 主要用于调试和验证类图设计的正确性
3)用例图 23:05
- 用例图的概念与作用 23:12

- 基本性质: 静态图,用于需求建模阶段
- 核心要素: 由用例(功能)、参与者(角色)及其关系构成
- 建模价值: 完整展现系统功能需求及用户交互场景
- 参与者的定义与示例 23:54
- 本质理解: 与系统交互的实体(人/硬件/外部系统),如"图书管理员"
- 识别特征:
- 名词性概念
- 具有主动交互能力
- 在系统边界之外
- 典型示例: 图书馆系统中的"读者"、"图书管理员"等角色
- 用例的定义与示例 24:39
- 核心定义: 参与者完成的原子功能单元,如"新增书籍信息"
- 识别特征:
- 动宾短语结构
- 体现完整业务价值
- 粒度控制在单一事务级别
- 典型示例: "查询外借信息"、"统计金额与册数"等系统功能
- 用例之间的关系 25:48
- 包含关系(include):
- 特征: 必须执行的基础用例(如"用户登录")
- 箭头方向: 从基础用例指向被包含用例
- 实例: "登记外借信息"必须包含"用户登录"
- 扩展关系(extend):
- 特征: 可选执行的扩展用例(如"修改书籍信息")
- 箭头方向: 从扩展用例指向基础用例
- 实例: "查询书籍信息"可能扩展"修改书籍信息"
- 泛化关系:
- 特征: 父子用例间的继承关系(类似类图的泛化)
- 实例: "支付"可泛化为"信用卡支付"和"余额支付"
- 包含关系(include):
- 用例图箭头方向注意事项 28:23
- 关键区别:
- 包含关系箭头指向被包含用例(必需功能)
- 扩展关系箭头指向基础用例(可选功能)
- 记忆技巧:
- 包含关系:指向"必须组件"(如登录)
- 扩展关系:指向"可能增强"(如修改)
- 常见错误: 混淆两种关系的箭头方向会导致建模语义完全错误
- 关键区别:
4)序列图 29:04

- 基本概念
- 别名: 又称顺序图、动态图,是UML中描述对象交互的图形化表示
- 核心特征:
- 对象生命线:用虚线表示,可理解为时间线
- 对象表示:上方用长方形表示(如c:Clientc : Clientc:Client)
- 作用: 描述以时间顺序组织的对象之间的交互活动
- 消息类型
- 同步消息:
- 特征:进行阻塞调用,调用者中止执行等待控制权返回
- 图示:实心三角箭头(如setAction(a,d,o)setAction(a,d,o)setAction(a,d,o)调用)
- 典型场景:需要等待返回消息才能继续执行
- 异步消息:
- 特征:发出后继续执行,不引起调用者阻塞
- 图示:空心箭头(如<>:Transaction<>:Transaction<>:Transaction)
- 典型场景:不等待返回消息
- 返回消息:
- 特征:表示方法调用的返回结果
- 图示:从右到左的虚线箭头
- 特殊标记:如messagecommitedmessagecommitedmessagecommited后的返回
- 同步消息:
- 重要元素
- 对象创建:
- 标记:<><><>构造型
- 示例:创建TransactionTransactionTransaction对象
- 对象销毁:
- 标记:destroydestroydestroy操作
- 生命线终止:用X符号表示
- 方法调用链:
- 示例流程:create()→setAction()→setValues()→messagecommitedcreate()→setAction()→setValues()→messagecommitedcreate()→setAction()→setValues()→messagecommited
- 对象创建:
5)通信图 31:54

- 基本概念
- 别名: 又称协作图(老式叫法),属于动态图
- 核心特征:
- 对象组织:强调交互对象的空间结构
- 链连接:对象间用直线连接(如c:Clientc:Clientc:Client与p:ODBCProxyp:ODBCProxyp:ODBCProxy之间)
- 与序列图区别:
- 不强调时间顺序,而是通过编号表示消息顺序(如1:, 2.1:)
- 消息表示
- 编号规则:
- 主消息:整数编号(如1:create()create()create())
- 子消息:小数点编号(如2.1:setValues(d,3.4)setValues(d,3.4)setValues(d,3.4))
- 消息流向:
- 沿连接线标注(如链2:setActions(a,d,o)setActions(a,d,o)setActions(a,d,o))
- 特殊操作:
- 对象创建:标号1的消息
- 对象销毁:标号3的destroy()destroy()destroy()操作
- 编号规则:
- 典型结构
- 对象表示:
- 矩形框+对象名(如:Transaction:Transaction:Transaction)
- 可带类型声明(如p:ODBCProxyp:ODBCProxyp:ODBCProxy)
- 消息序列:
- 完整示例:1.创建→2.设置操作→2.1设置值→3.销毁
- 链的多重性:
- 一条链可承载多个编号消息(如链2承载2:和2.1:消息)
- 对象表示:
6)状态图 33:02
- 状态图的概念与作用 33:08

- 动态图特性: 展现状态机,描述单个对象在多个用例中的行为模式
- 组成元素: 包含简单状态和组合状态两种基本类型
- 图形表示: 方框代表状态,箭头表示转换,实心圆点标记起点和终点
- 实际应用: 大系统内部通常存在状态机(如循环队列的状态切换)
- 典型示例: 收音机状态变化(初始→播放→暂停→快进→关闭)
- 状态转换的条件:事件触发器与监护条件 35:15
- 双重条件机制:
- 事件触发器: 必须发生的触发动作(如按下收音机快进键)
- 监护条件: 状态转换的附加限制(如电源是否接通)
- 必要条件: 无触发事件则状态保持,有触发事件但监护条件不满足时也不转换
- 图形标注: 触发事件标注在转换箭头上,监护条件以方括号形式标注
- 双重条件机制:
- 状态转换的过程 36:52
- 组合状态特性: 支持状态嵌套(如ringing状态包含Idle、Connected等子状态)
- 转换流程:
- 系统检测到有效触发事件
- 验证所有监护条件是否满足
- 执行状态转换动作
- 异常处理: 监护条件不满足时保持原状态(如停电时按启动键无效)
7)活动图 37:23
- 活动图的概念与特点 37:25

- 动态图特性: 特殊类型的状态图,展现系统活动流程
- 核心差异: 状态图关注对象状态变化,活动图关注业务流程推进
- 典型应用: 描述业务处理流程(如餐厅订单处理:接单→结账→关闭)
- 活动图与状态图的比较 37:49
- 图形相似性:
- 均使用实心圆点表示开始/结束
- 状态符号形状相近但语义不同
- 流程特性:
- 活动图具有明确的方向性(通常自上而下)
- 状态图转换路径更复杂多变
- 图形相似性:
- 活动图中的元素与符号 38:04
- 基本构件:
- 圆角矩形表示具体活动
- 箭头线表示控制流方向
- 菱形表示决策分支
- 特殊元素:
- 水平粗线实现并发分岔/汇合
- 监护表达式控制分支选择
- 基本构件:
- 并发分岔与并发汇合 39:39
- 并发分岔:
- 表示可以并行执行的多个活动分支
- 分支数量对应可并行线程数
- 并发汇合:
- 同步点,要求所有并行分支完成后继续
- 与分岔形成对应关系
- 典型场景: 订单处理中并行执行支付操作和服务评价
- 并发分岔:
8)构件图 40:38
- 基本概念

- 别名: 又称为组件图,属于UML静态图的一种
- 作用: 为系统提供静态实现视图,展现一组构件之间的组织和依赖关系
- 组成元素: 由构件(组件)及其相互关系构成,每个构件可能由多个类组成
- 核心要素
- 构件符号
- 表示方式: 使用《component》标注的矩形框表示构件
- 示例构件: 如图中的Order System、CustomerRepository等
- 接口表示
- 供接口: 用半圆符号表示,代表构件提供的服务(如示例中的Order System提供接口)
- 需接口: 用完整圆形符号表示,代表构件需要的服务(如示例中的CustomerLookup需要接口)
- 记忆要点: "供"是供应给别人(半圆),"需"是自己需要(整圆)
- 构件符号
9)部署图 41:50
- 基本概念

- 性质: 属于静态图,展示系统静态部署视图
- 核心内容: 反映物理模块的节点分布,与硬件/物理环境相关
- 考试特征: 只要涉及物理设备或硬件配置的题目,通常考察部署图
- 关键特性
- 节点组成: 每个节点可能包含一个或多个构件(如DB Server节点包含MySQL构件)
- 依赖关系: 部署组件间的依赖是单向的,类似于包含关系
- 粒度特征: 比构件图更粗粒度,一个构件可能对应多个类
- 典型节点: 如图中的Web Server、User Client等物理设备节点
- 符号识别
- 节点表示: 使用立方体符号表示物理节点(如DB Server)
- 构件标注: 使用<<artifact>>标注具体部署的构件(如Website、HTML5)
- 部署细节: 可能包含具体配置信息(如https:80端口说明)
4. UML四大视图 43:16
1)逻辑视图(设计视图) 44:17

- 抽象层级: 视图是比图更高级的抽象概念,视图由具体的图来实现
- 实现方式: 通过类图、对象图、用例图等静态图实现
- 核心内容: 表示设计模型中架构方面重要的部分,包括类、子系统、包和用例实现的子集
- 应用阶段: 主要与系统分析和系统设计相关
- 关系表达: 反映类和对象之间的静态关系
2)进程视图 45:02
- 本质特征: 是逻辑视图的一次执行实例
- 建模对象: 对可执行线程和进程作为活动类进行建模
- 关键特性: 描述并发与同步结构
- 记忆要点: 重点反映进程和线程之间的并发与同步关系
3)实现视图 45:28
- 实现内容: 对物理代码文件和构件进行建模
- 责任主体: 由程序员负责实现
- 表现形式: 反映源代码结构
- 转换关系: 将设计模型转换为实际代码实现
4)部署视图 45:58
- 核心功能: 把构件部署到物理节点上
- 映射关系: 表示软件到硬件的映射和分布结构
- 典型应用: 决定客户端、服务器、数据库等软件组件在硬件上的部署位置
- 对应图表: 与部署图直接对应
5)用例视图 46:25
- 基础地位: 最基本的需求分析模型
- 实现方式: 由用例图实现
- 核心作用: 描述系统对事件做出响应时所采取的行动
- 关系类型: 用例之间具有包含(include)、扩展(extend)、泛化(generalize)三种关系
5. 应用案例 46:44
1)例题:用力图关系判断

- 题目解析
- 关系辨析: 会员注册与电话/邮件注册是一般与特殊的关系
- 选项分析: 排除包含和扩展关系,因为不存在必要条件或扩展点
- 正确答案: C.泛化(generalize)
- 考点提醒: 用例图只有三种关系类型,需与类图关系区分
2)例题:UML状态图叙述判断 47:53
- 题目解析
- 关键概念: 状态迁移需要同时满足事件触发和监护条件
- 错误选项: B选项描述不准确,没有监护条件不能直接迁移
- 正确理解: 即使事件触发,仍需检查监护条件才能完成状态迁移
- 易错点: 容易忽略监护条件的必要性
3)例题:UML视图概念应用 49:22

- 题目解析
- 第一空线索: "并发与同步结构"指向进程视图
- 第二空线索: "最基本的需求分析模型"指向用例视图
- 记忆技巧: 五大视图特征可通过关键词联想记忆
- 答案确认: 第一空A.进程视图,第二空D.用例视图
4)例题:UML图形式种类 50:07
- 题目解析
- 图形识别: 通过分叉、合并特征判断为活动图
- 元素分析:
- ①表示分叉点,不是汇合或分支
- ②是监护表达式,不是分支条件或流名称
- 关联知识: 活动图是状态图的特例,继承状态图的监护条件概念
- 解题技巧: 掌握各类UML图的典型特征有助于快速识别
二、知识小结
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
|---|---|---|---|
| UML基础概念 | 统一建模语言(可视化、非编程语言),支持软件开发全过程 | 可视化≠编程语言,构造块(事物/关系/图)最重要 | ⭐⭐ |
| UML关系类型 | 6种关系:依赖(虚线+实心箭头)、关联(直线)、组合(实心菱形)、聚合(空心菱形)、泛化(实线+空心箭头)、实现(虚线+空心箭头) | 组合vs聚合(生命周期是否共存)、箭头类型区分 | ⭐⭐⭐⭐ |
| 类图 | 静态设计视图,展现类/接口/协作关系,含类名/属性/方法 | 类图不用于对象快照建模(属对象图) | ⭐⭐⭐ |
| 用例图 | 需求分析模型,含参与者(实体)和用例(功能),特有3种关系:包含(必选)、扩展(可选)、泛化(父子) | 箭头方向:包含(A→B)、扩展(B→A) | ⭐⭐⭐⭐ |
| 序列图 | 动态图,按时间顺序展示对象交互,含生命线、同步消息(实心三角箭头)、异步消息(空心箭头)、返回消息(虚线) | 同步消息会阻塞等待返回 | ⭐⭐⭐ |
| 状态图 | 动态图,描述对象状态转换,含初始/结束状态、事件触发器、监护条件 | 状态转换双条件:触发事件+监护条件满足 | ⭐⭐⭐⭐ |
| 活动图 | 特殊状态图,展示活动流程,含分叉(并发开始)/汇合(并发结束)、监护表达式 | 分叉≠分支(分叉为并行,分支为选择) | ⭐⭐⭐ |
| 部署图 | 静态部署视图,展示软件到硬件的物理节点映射 | 唯一涉及硬件分布的UML图 | ⭐⭐ |
| UML五大视图 | 逻辑视图(类图/用例图)、进程视图(并发同步)、实现视图(代码结构)、部署视图(部署图)、用例视图(需求分析) | 用例视图是最基础需求模型 | ⭐⭐⭐ |