系统架构设计师考试 — UML建模知识点与考点总结

适用考试 :软考高级 --- 系统架构设计师(案例分析科目) 总结范围:用例图、类图、序列图(时序图)、活动图等核心UML图


一、UML图在架构师考试中的定位

UML建模是系统架构设计师案例分析科目的高频选做题(几乎每年必考1题),主要出现在"软件系统设计"主题中 。

考试形式

  • 题型:填空题(挖空补全)、概念辨析、图关系识别、对比分析
  • 分值:约占案例分析卷15-25分
  • 难度:中等偏易,答案多可从题干描述中抽象得出

历年真题分布

年份 试题 考查UML图类型 考查形式
2024上 试题二 序列图、协作图 图填空、消息类型识别、条件分支
2023下 试题二 SysML需求图、用例图 关系识别、图对比
2021下 试题二 用例图、顺序图 对象/消息名称填空、模型对比
2018下 试题二 用例图、数据流图、ER图 实体识别、用例补全
2016下 试题二 用例图、类图 参与者识别、用例关系、类关系
2015下 试题二 状态图、活动图 状态转换、活动流程

数据来源:历年案例分析真题考点归纳 [^3^][^17^]


二、核心UML图详解与考点

2.1 用例图(Use Case Diagram)

核心概念

用例图描述一组用例、参与者及它们之间的关系 ,给出系统的静态用例视图

高频考点

(1)参与者识别

  • 参与者是系统外部的触发因素,包括:用户、组织、外部系统、时间(定时任务)
  • 识别技巧:找题干中"某人/某系统/定时触发"的描述

(2)用例之间的关系

关系类型 图示 定义 典型场景
包含关系(include) <<include>> 提取公共用例,基础用例必须执行抽象用例 多个用例有共同操作步骤
扩展关系(extend) <<extend>> 基本用例在特定条件下扩展出额外行为 条件分支场景(如"如果余额不足则...")
泛化关系(generalize) 空心三角箭头 子用例继承父用例的结构和行为 多个用例有类似结构和行为

(3)用例建模流程

  1. 识别参与者(必须)
  2. 合并需求获得用例(必须)
  3. 细化用例描述(必须)
  4. 调整用例模型(可选)

真题案例

【2016年案例分析真题】 某在线购物系统,涉及"用户下单"、"用户支付"、"管理员处理订单"等功能。

问题

  1. 识别出该系统的主要参与者。
  2. "用户下单"和"用户支付"都包含"验证用户信息"步骤,应使用什么关系表示?
  3. "用户支付"在"余额不足"时扩展出"充值"行为,应使用什么关系表示?

答案要点

  1. 参与者:用户、管理员、支付系统(外部系统)、时间(定时任务)
  2. 包含关系(<<include>>)------ 公共行为提取
  3. 扩展关系(<<extend>>)------ 条件分支扩展

2.2 类图(Class Diagram)

核心概念

类图描述一组类、接口、协作和它们之间的关系 ,是面向对象系统建模中最常见的图 ,给出系统的静态设计视图

高频考点

(1)类的组成

  • 类名、属性(可见性:+ public / - private / # protected)、方法
  • 类的类型:实体类、接口类、控制类

(2)类之间的关系

关系类型 图示 定义 记忆口诀
依赖关系 虚线箭头 一个事物变化影响另一个事物 "A用了一下B"
关联关系 实线 描述一组链,链是对象之间的连接 "A和B有关系"
聚合关系 空心菱形 + 实线 整体与部分,生命周期不同 "整体没了,部分还在"
组合关系 实心菱形 + 实线 整体与部分,生命周期相同 "整体没了,部分也没了"
泛化关系 空心三角箭头 特殊与一般关系(继承) "is-a 关系"
实现关系 虚线 + 空心三角 接口与类之间的关系 "实现了接口"

(3)聚合 vs 组合 核心区别

  • 聚合:弱整体-部分关系,部分可以独立于整体存在(如:班级和学生,班级解散学生还在)
  • 组合:强整体-部分关系,部分不能独立于整体存在(如:人和心脏,人没了心脏也没了)

真题案例

【2016年案例分析真题】 某图书馆管理系统中,"图书馆"包含多个"书架","书架"上放置"图书"。当图书馆关闭时,书架被移除,但图书可以被转移到其他图书馆。

问题:"图书馆"与"书架"、"书架"与"图书"之间分别是什么关系?

答案要点

  • "图书馆"与"书架":组合关系(实心菱形)------ 图书馆关闭,书架随之移除,生命周期相同
  • "书架"与"图书":聚合关系(空心菱形)------ 书架移除,图书可转移,生命周期不同

2.3 序列图(Sequence Diagram)/ 时序图

核心概念

序列图是一种交互图 ,展现了一组对象或角色以及它们之间可能发送的消息,强调消息的时间次序

高频考点

(1)序列图的组成要素

  • 对象/生命线:顶部的对象框和向下的虚线(生命线)
  • 激活条:生命线上的窄矩形,表示对象正在执行操作
  • 消息:对象之间的水平箭头,表示消息传递

(2)消息的类型

消息类型 图示 定义
同步消息 实心三角箭头或实线箭头 发送者等待接收者处理完才继续
异步消息 开口箭头或实线箭头 发送者不等待,继续执行
返回消息 虚线箭头 表示操作的返回值

(3)序列图 vs 协作图(通信图)

对比维度 序列图 协作图(通信图)
强调重点 时间顺序(时序) 对象结构组织(关系)
时间表达 纵轴明确表示时间先后 需通过消息编号表示顺序
对象关系 不强调对象间的结构关系 强调对象间的链接结构
适用场景 关注交互的时序细节 关注对象间的组织结构

(4)条件分支与循环

  • alt(变体) :if-then-else 建模,有多个操作元,可含[else]约束
  • opt(选择项) :if-then 建模,只有一个操作元,不能[else]
  • loop(循环):表示重复执行的消息序列

真题案例

【2024年上半年案例分析真题】 某医院预约挂号系统,患者通过系统预约医生号源。系统需验证患者信息,若信息有效则分配号源并发送确认通知;若信息无效则返回错误提示。

问题

  1. 完善序列图中的对象(1)及消息(2)~(4)的名称。
  2. 序列图中的条件分支应使用哪种组合片段表示?
  3. 简要说明协作图与序列图的区别。

答案要点

  1. 对象:患者、预约系统、号源管理系统、通知服务;消息:提交预约请求、验证信息、分配号源、发送确认通知
  2. alt(变体)组合片段 ------ 因为有"信息有效/无效"两种分支(if-then-else)
  3. 序列图强调时序,协作图强调对象结构组织;序列图纵轴表示时间,协作图通过消息编号表示顺序

2.4 活动图(Activity Diagram)

核心概念

活动图是一种特殊的状态图 ,将进程或其他计算结构展示为计算内部一步步的控制流和数据流强调对象间的控制流程,支持并行。

高频考点

(1)活动图的核心元素

  • 活动节点(动作):圆角矩形,表示执行的动作
  • 初始节点:实心圆
  • 结束节点:实心圆外圈
  • 判断/合并节点:菱形,表示条件分支
  • 分叉/汇合节点:粗横线,表示并行流程

(2)活动图 vs 状态图

对比维度 活动图 状态图
节点含义 动作/活动 状态
关注焦点 控制流和数据流 状态转移和事件触发
适用场景 业务流程建模、工作流 对象生命周期、反应式系统
并行支持 支持并行(分叉/汇合) 一般不支持
本质 特殊的状态图 标准状态机

(3)活动图 vs 流程图

  • 活动图支持并行(分叉/汇合),流程图不支持
  • 活动图面向对象,流程图面向过程

真题案例

【2015年案例分析真题】 某电商订单处理流程:接收订单 → 验证库存 → 【判断】库存充足?→ 是:分配仓库并通知物流(可并行)→ 更新订单状态 → 结束;否:取消订单并通知用户 → 结束。

问题

  1. 该流程适合用哪种UML图描述?
  2. "分配仓库"和"通知物流"能否并行执行?在图中如何表示?
  3. 若将此流程与"订单状态转换"建模对比,应分别使用什么图?

答案要点

  1. 活动图 ------ 强调控制流和业务流程
  2. 可以并行,使用分叉节点 (粗横线)将控制流分为两个并行分支,最后用汇合节点合并
  3. 流程建模用活动图 ;状态转换建模用状态图

2.5 状态图(State Diagram)

核心概念

状态图描述一个状态机 ,由状态、转移、事件和活动组成,给出对象的动态视图 ,强调事件导致的对象行为

高频考点

(1)状态图的核心元素

  • 状态:圆角矩形,表示对象在某一时刻的状况
  • 转移:带箭头的线,表示状态之间的变化
  • 事件:引起状态转移的触发条件(标注在转移线上)
  • 初始状态:实心圆
  • 结束状态:实心圆外圈

(2)状态图适用场景

  • 对象生命周期建模(如:订单状态、线程状态)
  • 反应式系统建模(事件驱动)
  • 注意:状态图的节点是"状态",不是"动作"

真题案例

【2015年案例分析真题】 某在线订单的状态包括:待支付、已支付、已发货、已完成、已取消。事件包括:支付成功、发货、确认收货、超时未支付、申请退款。

问题

  1. 该场景适合用哪种UML图建模?
  2. "已支付"状态下,发生"申请退款"事件后转移到什么状态?
  3. 若需描述订单处理的业务流程(而非状态转换),应使用什么图?

答案要点

  1. 状态图 ------ 强调对象状态随事件的转移
  2. 转移到"退款中"或"已退款"状态(根据具体业务规则)
  3. 活动图 ------ 状态图关注状态转移,活动图关注业务流程和控制流

三、UML图分类速查表

3.1 按性质分类

分类 包含的图 特点
结构图(静态图) 类图、对象图、构件图、部署图、包图、组合结构图 描述系统的静态结构
行为图(动态图) 用例图、状态图、活动图、交互图(序列图、协作图、定时图) 描述系统的动态行为

注:用例图有时也被归为结构图

3.2 常考UML图对比

UML图 静态/动态 核心关注点 典型应用场景 考试频率
用例图 静态 系统功能、用户交互 需求分析、功能范围界定 ⭐⭐⭐⭐⭐
类图 静态 类结构、类间关系 系统设计、数据库建模 ⭐⭐⭐⭐⭐
序列图 动态 消息时序、对象交互 详细设计、接口定义 ⭐⭐⭐⭐⭐
活动图 动态 控制流、业务流程 工作流、算法流程 ⭐⭐⭐⭐
状态图 动态 状态转换、事件响应 对象生命周期、协议设计 ⭐⭐⭐⭐
协作图 动态 对象结构、消息关系 与序列图互补 ⭐⭐⭐
构件图 静态 系统实现结构 组件设计 ⭐⭐
部署图 静态 物理节点配置 系统部署 ⭐⭐

四、面向对象建模三大模型

在系统架构师考试中,常考面向对象方法的三种模型及其关系:

模型 描述 对应UML图 适用阶段
对象模型 描述系统的静态结构,包括类、对象、关系 类图、对象图 需求分析、设计
动态模型 描述系统的动态行为,包括交互、状态变化 序列图、状态图、活动图 需求分析、设计
功能模型 描述系统的功能需求,从用户视角看系统功能 用例图、数据流图 需求分析

三者关系:对象模型是基础,动态模型描述对象模型的行为,功能模型说明对象模型和动态模型"做什么"。


五、答题技巧与备考建议

5.1 案例分析答题技巧

  1. 仔细读题干:UML填空题的答案往往可以直接从题干描述中抽象得出
  2. 先判断图类型:根据题目描述判断该用哪种UML图(看关键词:"状态"→状态图,"流程/控制流"→活动图,"时序/消息顺序"→序列图)
  3. 关系辨析
    • 看到"公共行为提取"→包含关系
    • 看到"条件分支扩展"→扩展关系
    • 看到"整体-部分,生命周期相同"→组合关系
    • 看到"整体-部分,生命周期不同"→聚合关系
  4. 对比题答题模板:先分别描述两种图的特点,再对比差异点

5.2 备考重点

  • 必掌握:用例图(参与者、三种关系)、类图(六种关系)、序列图(消息类型、与协作图区别)、活动图(与状态图区别)
  • 常考对比:序列图 vs 协作图、活动图 vs 状态图、聚合 vs 组合
  • 真题训练:重点做2016年、2018年、2021年、2024年的UML相关案例分析题

六、综合知识(选择题)UML考点

除案例分析外,UML在上午综合知识科目中也有考查:

  • 考法1:给定图示判断属于哪种UML图
  • 考法2:给定UML图,判断属于结构图还是行为图
  • 考法3:给定UML图,指出相关参数(如类图中的关系类型)
  • 考法4:给出UML描述,判断正误。
相关推荐
池佳齐2 小时前
软考高级系统架构设计师备考(二十七):软件工程—系统运行与软件维护
数据库·系统架构
roman_日积跬步-终至千里21 小时前
【系统架构师案例题-知识点】可靠性与安全性设计
系统架构
roman_日积跬步-终至千里2 天前
【系统架构师案例题】分布式系统设计与选型
系统架构
roman_日积跬步-终至千里2 天前
【系统架构师案例题-知识点】数据库与缓存设计
数据库·缓存·系统架构
程序员大志2 天前
系统架构设计师:最大流量问题
系统架构
池佳齐2 天前
软考高级系统架构设计师备考(十九):数据库系统—数据库设计
数据库·系统架构
roman_日积跬步-终至千里2 天前
【系统架构师案例题-知识点】系统建模
系统架构
roman_日积跬步-终至千里2 天前
【案例题-知识点(2)】架构风格上(五大类详解)
数据库·架构·系统架构
下地种菜小叶2 天前
电商系统架构总览怎么搭?一次讲清商品、库存、订单、支付、履约、营销的整体边界
系统架构