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 语言核心

  • 基础:基于集合论 + 数理逻辑,强类型系统;
  • 风格:“状态 — 操作”,通过模式表达系统结构;
  • 特点:可结合自然语言,适合描述复杂系统的规格说明。

六、 总结

  1. UML 三要素:事物关系为块,图定规则,机制贯穿;
  2. 四大事物:结构静态(名),行为动态(动),分组包,注释说明;
  3. 四大关系:依赖用虚线,关联是实线,泛化三角实,实现三角虚;聚合空心菱,组合实心菱;
  4. 用例图关系:包含必调用,扩展是可选;
  5. Z 语言:集合逻辑为基,状态操作建模,强类型可自然语言。

七、 易混点区分(避坑重点)

  1. 类图 vs 对象图:类图描述类的静态结构(抽象),对象图是类图的实例(具体);
  2. 序列图 vs 通信图:序列图强调 “时间顺序”,通信图强调 “对象结构”;
  3. 构件图 vs 部署图:构件图描述逻辑构件,部署图描述硬件节点 + 构件部署。