UML 建模语言 & 形式化方法 核心知识点整理
一、 UML 核心概述
UML(统一建模语言)是软件系统可视化建模的标准语言,核心由3 大要素构成:
- 基本构造块:事物(4 类)、关系(4 类);
- 图:构造块的组合规则(14 种图);
- 公用机制:贯穿整个语言的通用规则(如注释、修饰、扩展机制)。
二、 UML 四大事物(软考选择题高频)
事物是 UML 的基本建模元素,按功能分为 4 类,核心是 “静态结构 + 动态行为”:
| 事物类型 | 核心定位 | 典型元素 | 记忆要点 |
|---|---|---|---|
| 结构事物 | 名词、静态元素(描述 “是什么”) | 类、接口、协作、用例、主动类、构件、制品、节点 | 静态结构,8 个元素,核心是类、用例、构件 |
| 行为事物 | 动词、动态元素(描述 “做什么”) | 交互、状态机、活动 | 动态行为,3 个元素,核心是交互(时序 / 通信)、活动 |
| 分组事物 | 组织元素(模块化管理) | 包(唯一核心) | 仅包,用于归类结构 / 行为事物,降低复杂度 |
| 注释事物 | 说明元素(标注解释) | 注释(注解) | 无语义,仅用于文档说明,不影响模型逻辑 |
三、 UML 四大关系(软考核心难点,易混点重点)
关系是连接事物的纽带,4 类关系的优先级:泛化 > 实现 > 关联(聚合 / 组合) > 依赖
| 关系类型 | 核心定义 | 图形符号 | 典型场景 | 关键区别 / 记忆要点 |
|---|---|---|---|---|
| 依赖关系 | 「使用关系」:A 变化影响 B,B 依赖 A | 虚线 + 箭头(指向被依赖方) | 类调用另一个类的方法、参数传递 | 最弱的关系,临时使用,无 “拥有” 关系 |
| 关联关系 | 「拥有关系」:类之间的结构关系,实例长期连接 | 实线 + 箭头(双向可无箭头) | 学生 – 课程、订单 – 商品 | 基础关联,可标注多重度(如 1:n) |
| 聚合关系(关联特例) | 「整体 – 部分」:部分可属于多个整体,生命周期独立 | 空心菱形 + 实线(菱形指向整体) | 汽车 – 轮胎(轮胎可拆换,独立存在) | 弱整体部分,“可分离” |
| 组合关系(关联特例) | 「整体 – 部分」:部分仅属于一个整体,生命周期相同 | 实心菱形 + 实线(菱形指向整体) | 人 – 心脏(心脏不能脱离人存在) | 强整体部分,“不可分离” |
| 泛化关系 | 「特殊 – 一般」:子类继承父类,可替换父类 | 实线 + 空心三角(三角指向父类) | 学生 – 人、矩形 – 图形 | 即 “继承”,UML 中唯一的泛化表达 |
| 实现关系 | 「接口 – 实现」:类 / 构件实现接口,用例实现协作 | 虚线 + 空心三角(三角指向接口 / 用例) | 类实现 Runnable 接口、用例 “支付” 由协作实现 | 连接 “规范” 与 “实现”,仅两类场景:接口 – 类 / 用例 – 协作 |
关联子类记忆口诀:聚合空心菱,组合实心菱;聚合可分离,组合同生死
四、 UML 2.0 的 14 种图(按视图分类,软考高频)
14 种图按功能分为 5 大视图,核心考 “图的用途 + 典型场景”:
| 视图类型 | 包含的图 | 核心用途 | 记忆要点 |
|---|---|---|---|
| 用例视图(核心) | 用例图 | 描述系统功能边界,用户与系统的交互 | 核心元素:参与者、用例、扩展 / 包含关系 |
| 逻辑视图 | 类图、对象图、状态图、活动图、组合结构图 | 描述系统内部静态结构和动态行为 | 类图(静态核心)、活动图(流程)、状态图(状态变化) |
| 进程视图 | 交互图(序列图、通信图、交互概览图、计时图) | 描述系统进程 / 线程间的交互 | 序列图(时间顺序)、通信图(结构顺序)是核心 |
| 实现视图 | 构件图、制品图 | 描述系统的物理构件(如 Jar 包、DLL)和部署产物 | 构件图(逻辑构件)、制品图(物理文件) |
| 部署视图 | 部署图、包图 | 描述系统硬件节点和构件的部署关系 | 部署图(节点 + 连接)、包图(模块化管理) |
用例图特殊关系
- 包含关系(<<include>>):基用例必须调用子用例(如 “下单” 包含 “支付”),子用例是公共功能,基用例不可独立完成;
- 扩展关系(<<extend>>):子用例可选扩展基用例(如 “下单” 扩展 “优惠券抵扣”),基用例无扩展也能完整执行。
五、 形式化方法 & Z 语言
1. 形式化方法核心
- 定义:将系统概念转化为形式符号(数学语言),通过严格的数学推理分析系统的方法;
- 分类:
- 按描述方式:模型描述、性质描述;
- 按表达能力:模型方法、代数方法、进程代数、逻辑方法、网络模型方法;
- 特点:严格、无歧义,贯穿软件工程全生命周期(需求→设计→测试)。
2. Z 语言核心
- 基础:基于集合论 + 数理逻辑,强类型系统;
- 风格:“状态 — 操作”,通过模式表达系统结构;
- 特点:可结合自然语言,适合描述复杂系统的规格说明。
六、 总结
- UML 三要素:事物关系为块,图定规则,机制贯穿;
- 四大事物:结构静态(名),行为动态(动),分组包,注释说明;
- 四大关系:依赖用虚线,关联是实线,泛化三角实,实现三角虚;聚合空心菱,组合实心菱;
- 用例图关系:包含必调用,扩展是可选;
- Z 语言:集合逻辑为基,状态操作建模,强类型可自然语言。
七、 易混点区分(避坑重点)
- 类图 vs 对象图:类图描述类的静态结构(抽象),对象图是类图的实例(具体);
- 序列图 vs 通信图:序列图强调 “时间顺序”,通信图强调 “对象结构”;
- 构件图 vs 部署图:构件图描述逻辑构件,部署图描述硬件节点 + 构件部署。