系统架构设计师备考站2027 上半年 · 通勤版 ⌕搜索
本页目录 · 9 节
  1. 一、分值定位
  2. 二、GoF 23 种设计模式
  3. 2.1 三大类划分(按目的)
  4. 2.2 模式识别关键词表(考前必背,考场上直接对号)
  5. 2.3 最容易混的三组
  6. 三、软件设计四活动与结构化设计
  7. 3.1 软件设计四活动(顺序与产出)
  8. 3.2 耦合(由低到高,越低越好)
  9. 3.3 内聚(由高到低,越高越好)
  10. 3.4 信息隐蔽与抽象
  11. 四、UML 与建模
  12. 4.1 图的两大类(先分类再选图,答题不跑偏)
  13. 4.2 高频图—用途对照
  14. 4.3 用例三种关系(必考)
  15. 4.4 SysML
  16. 4.5 DDD(领域驱动设计)
  17. 五、跨年真题定位索引
  18. 六、典型陷阱
  19. 七、答题模板
  20. 模板 A:案例"补全 UML 图"
  21. 模板 B:案例"识别应采用的模式"(30 秒)
  22. 模板 C:论文"论面向对象的建模"
  23. 八、自测清单
  24. 九、来源与可信度

知识域 04 · 设计模式、软件设计与 UML 建模

题号指向 ../01-年份索引/<年份>-套卷.md。标记:〔核〕/〔推〕/〔存疑〕。


一、分值定位

科目频率形态
综合知识每套 3—6 题模式分类与识别、UML 图与关系、耦合内聚、设计四活动、信息隐蔽
案例分析中高频(UML 建模是"送分选做题")用例图关系判断、顺序图补全、类图/实体识别
论文中频(2023 下论文三"论面向对象的建模及应用")需一套 UML 建模素材

这个域性价比极高:模式识别靠"关键词映射表"秒杀,UML 靠"图—用途"对应表秒杀,几乎没有推理成本。


二、GoF 23 种设计模式

2.1 三大类划分(按目的)

类别关注点成员(加粗为高频)
创建型(5)对象的创建过程Factory Method、Abstract Factory、Builder、Prototype、Singleton
结构型(7)类/对象的组合结构Adapter、Bridge、Composite、Decorator、Facade、Flyweight、Proxy
行为型(11)对象间的职责分配与交互Chain of Responsibility、Command、Interpreter、Iterator、Mediator、Memento、Observer、State、Strategy、Template Method、Visitor

母题(2018 下 54—57,〔推〕答案 D、A、B、A):
抽象工厂 → 创建型;将抽象部分与实现部分分离(Bridge)→ 结构型;"将一个请求封装为一个对象,可用不同请求对客户参数化、支持撤销" → Command。

2.2 模式识别关键词表(考前必背,考场上直接对号)

题干关键词答案
保证一个类只有一个实例,提供全局访问点Singleton
定义一个创建对象的接口,由子类决定实例化哪个类Factory Method
创建一系列相关/相互依赖的对象,无需指定具体类Abstract Factory
复杂对象的分步构造,同一构造过程可造不同表示Builder
通过复制原型创建新对象(克隆)Prototype
将一个类的接口转换成客户希望的另一个接口Adapter
将抽象部分与实现部分分离,使二者独立变化Bridge
树形结构,对单个对象和组合对象一致对待Composite
动态地给对象添加职责(比继承更灵活)Decorator
为子系统提供统一的高层接口,简化使用Facade
大量细粒度对象共享以降低内存Flyweight
为其他对象提供代理以控制访问(远程/虚/保护/智能引用)Proxy
将请求的发送者与接收者解耦,多个对象都有机会处理Chain of Responsibility
将请求封装为对象,支持参数化、排队、日志、撤销Command
给定语言,定义其文法表示与解释器Interpreter
顺序访问聚合对象元素而不暴露内部表示Iterator
用中介对象封装对象间交互,降低耦合Mediator
捕获并保存对象内部状态,以便之后恢复(撤销)Memento
一对多依赖,一变化则多得到通知并自动更新Observer
对象内部状态改变时改变其行为State
定义一系列可互换的算法,使算法独立于客户变化Strategy
父类定义算法骨架,将某些步骤延迟到子类Template Method
在不改变类的前提下为对象结构中的元素增加新操作Visitor

真题:2026 上 7/42、2025 下 37/50、2024 下 21、2024 上 18、2020 下 54—58、2019 下 54—57、2018 下 54—57。

2.3 最容易混的三组

组区分口径
Strategy vs StateStrategy 由客户选择算法;State 由对象自身状态驱动行为变化
Adapter vs BridgeAdapter 事后适配已存在的接口;Bridge 事前设计,抽象与实现双维度独立扩展
Decorator vs ProxyDecorator 目的是增强功能、可多层嵌套;Proxy 目的是控制访问、通常一层
Facade vs MediatorFacade 是单向简化调用;Mediator 是多向协调同事对象

三、软件设计四活动与结构化设计

3.1 软件设计四活动(顺序与产出)

活动目标关键词
数据设计把分析模型的数据对象转化为数据结构"改善程序结构与模块划分、降低过程复杂性"←数据设计(2018 下 32)
体系结构设计(软件结构设计)开发模块化的程序结构,表示模块间控制关系模块结构图、层次图、HIPO 图
接口设计(人机界面设计)描述软件与用户之间、软件与外部系统之间的交互界面、协议
过程设计把结构元素转化为过程性描述流程图、PAD、伪代码、盒图(N-S)

母题(2018 下 32—34,〔推〕答案 B、A、D):数据设计 / 软件结构设计 / 人机界面设计。
概要设计常用工具(2018 下 31,〔推〕答案 C):模块结构图、层次图、HIPO 图——"程序流程图/PAD/伪代码"属详细设计。

3.2 耦合(由低到高,越低越好)

非直接耦合 < 数据耦合 < 标记耦合 < 控制耦合 < 外部耦合 < 公共耦合 < 内容耦合
类型含义例
数据耦合只传简单数据参数传 int
标记耦合传整个数据结构,但只用其中部分传 record 只用一字段
控制耦合传控制信号(开关量)传 flag 决定分支
公共耦合通过全局数据区共享全局变量
内容耦合一个模块直接访问另一模块内部改别人内部数据

3.3 内聚(由高到低,越高越好)

功能内聚 > 顺序内聚 > 通信内聚 > 过程内聚 > 时间内聚 > 逻辑内聚 > 偶然内聚
  • 功能内聚:所有元素共同完成单一功能(最高)。
  • 顺序内聚:输出作为下一部分输入。
  • 通信内聚:操作同一数据结构。
  • 过程内聚:必须按特定次序执行。
  • 时间内聚:同一时间段执行(如初始化)。
  • 逻辑内聚:逻辑相似、参数决定行为。
  • 偶然内聚:毫无关系(最低)。

设计原则:高内聚、低耦合;模块扇入越大越好(复用度高),扇出适中(3—4,过大则复杂)。真题 2025 下 30/59、2024 下 52、2021 下 31—32。

3.4 信息隐蔽与抽象

  • 信息隐蔽:模块内应隐藏"可能变化的设计决策",只暴露稳定接口。
  • 抽象:忽略细节、提取本质;与信息隐蔽互为表里。
  • 真题:2020 下 33—34。

四、UML 与建模

4.1 图的两大类(先分类再选图,答题不跑偏)

类别图主要用途
结构图(静态)类图、对象图、包图、组合结构图、构件图、部署图、制品图描述系统静态结构
行为图(动态)用例图、活动图、状态图、顺序图、通信图、定时图、交互概览图描述系统动态行为

(UML 2.0 定义了 13 种图;不同版次教材对"制品图"是否单列有差异,考试以题干选项为准。)

4.2 高频图—用途对照

图一句话用途真题
用例图参与者与用例及关系(包含/扩展/泛化)2026 上 18、2025 上 4、2024 上 16
类图类、属性、方法及关联/聚合/组合/依赖/泛化常与"逻辑视图"绑定
顺序图(时序图)按时间顺序展示对象间消息交互2022 下 33—34、2021 下案例二
通信图(协作图)强调对象间的链接关系,弱化时间顺序与顺序图等价互换
活动图业务流程/工作流、并发分叉汇合2025 下 70、2025 上 25
状态图单个对象的状态迁移与"进程视图"关联
部署图软件到硬件节点的物理部署2025 下 69
构件图构件及其依赖,对应开发视图—
包图组织模型元素,对应开发视图—
界面建模界面原型/交互(常借活动图或专用 UI 模型)2024 下 35

4.3 用例三种关系(必考)

关系语义判别
包含(include)多个用例必须复用的公共步骤一定执行,箭头指向被包含用例
扩展(extend)满足条件时可选插入的增量行为有扩展点、条件成立才执行
泛化(generalization)子用例/子参与者是一种父用例/父参与者"is-a"

母题:2026 上 18、2025 上 4、2024 上 16。区分口诀:"必须"→包含;"可选/条件"→扩展;"是一种"→泛化。

4.4 SysML

  • 在 UML 基础上扩展的系统工程建模语言,新增:需求图(Requirement Diagram)、参数图(Parametric Diagram)、分配图;用 Block(块) 替代 Class。
  • 真题:2023 下 11—12、2023 下选做 4。

4.5 DDD(领域驱动设计)

  • 限界上下文(Bounded Context):一个显式的边界,边界内术语与模型保持一致;
  • 上下文映射:防腐层(ACL)、共享内核、客户/供应商;
  • 真题:2022 下 31、2025 下案例二。

五、跨年真题定位索引

年份题号/案例考点
2026 上7 / 18 / 42 / 58模式分类、用例关系、装饰器、结构化分析行为模型
2025 下30 / 37 / 50 / 51 / 59 / 69 / 70扇出、MVP、创建型、判定表、内聚、部署图、活动图
2025 上4 / 25 / 29用例关系、活动图、继承分类
2024 下21 / 35 / 49 / 52模式分类、界面建模、参与者关系、内聚
2024 上16—18、选做 3用例关系、需求分析常用图、创建型、UML 交互图
2023 下11—12、31、选做 4SysML 新增图、需求分析常用模型、SysML 需求图
2022 下24 / 28 / 30 / 33—34信息建模、工作流建模、UML 2 结构、顺序图
2021 下30—33结构化设计工具、耦合与内聚、UML
2021 下试题二用例图 + 顺序图 + 三种模型(案例)
2020 下31—34 / 54—58设计四活动、信息隐蔽、模式分类、创建型
2019 下31—34 / 44—45概要设计、结构化设计、模块化、UML 图与 4+1
2018 下31—34 / 54—57概要设计工具、设计四活动、模式分类与识别
2023 下论文三面向对象的建模及应用

六、典型陷阱

  1. 抽象工厂 vs 工厂方法:题干出现"一系列/产品族"→抽象工厂;"一个产品、子类决定"→工厂方法。
  2. Bridge 的"两个维度":抽象维度 + 实现维度,缺一不可;只说"适配接口"是 Adapter。
  3. Command 的四个关键词:参数化、排队、日志、撤销。出现"撤销"优先 Command,其次 Memento(Memento 是"恢复状态"不是"撤销请求")。
  4. Decorator 与继承的区别:Decorator 是运行时动态加职责;题干强调"比继承更灵活"即 Decorator。
  5. 概要设计 vs 详细设计工具:模块结构图/层次图/HIPO→概要;流程图/PAD/伪代码/盒图→详细。
  6. 内聚排序题:功能内聚永远最高、偶然内聚永远最低;中间四类按"顺序>通信>过程>时间"记。
  7. 用例包含 vs 扩展:include 是"被复用",extend 是"可选增强";画箭头方向常被反着考。
  8. 顺序图 vs 通信图:顺序图强调时间顺序,通信图强调对象链接,二者语义等价。
  9. UML 图归属:部署图是结构图(很多人误当行为图);活动图是行为图。
  10. 构件图/包图/部署图对应视图:构件图、包图→开发视图;部署图→物理视图。

七、答题模板

模板 A:案例"补全 UML 图"

① 定边界:先读题干找"参与者"(人/外部系统),排除内部模块。
② 定用例:每个"参与者要做的事"是一个用例,动词开头("提交订单"而非"订单")。
③ 判关系:必须复用→include;条件触发→extend;是一种→泛化。
④ 顺序图:按"参与者→界面→控制→实体"的消息顺序补,每条消息要有序号与返回。
⑤ 自检:是否有孤立用例?是否有参与者无用例?消息是否与题干步骤一一对应?

模板 B:案例"识别应采用的模式"(30 秒)

Step1 找变化点:什么会变?(算法/创建过程/接口/状态/访问方式)
Step2 对关键词表:算法互换→Strategy;创建族→Abstract Factory;
      接口不兼容→Adapter;动态加职责→Decorator;状态驱动→State;
      一对多通知→Observer;请求封装+撤销→Command。
Step3 补一句收益:该模式使 ______ 与 ______ 解耦,符合开闭原则。

模板 C:论文"论面向对象的建模"

一、项目背景(300 字)
二、方法论述(400 字):用例建模→领域建模(类图)→动态建模(顺序图/状态图)→
   构件与部署建模;说明 UML 在其中的作用(统一语言、可追溯)
三、实践(900 字):给出 1 张类图的分层(边界类/控制类/实体类)、1 个顺序图的
   关键交互、状态图的状态迁移,说明如何用模型发现需求遗漏
四、效果(200 字):需求返工率下降、与开发/测试的沟通成本下降

八、自测清单

  • [ ] 默写 23 种模式的三大类归属
  • [ ] 用关键词表在 2 分钟内答对 15 个模式识别题
  • [ ] 区分 Strategy/State、Adapter/Bridge、Decorator/Proxy、Facade/Mediator
  • [ ] 默写耦合 7 级、内聚 7 级顺序
  • [ ] 说出软件设计四活动及各自产出
  • [ ] 说出用例三种关系并各举一例
  • [ ] 说出 6 种常用 UML 图及其对应视图
  • [ ] 说出 SysML 相比 UML 的新增内容
  • [ ] 用模板 A 在 10 分钟内补全一张用例图 + 一张顺序图

九、来源与可信度

  • 模式定义与分类以 GoF《设计模式》及《系统架构设计师教程》为准。
  • 2018 下 31—34、54—57 为〔推〕,已用教材原文交叉验证(如"数据设计改善程序结构、降低过程复杂性"为教材原句)。
  • 近两年(2025—2026)题面多为考生回忆版,个别选项表述可能与原卷有差异,以套卷标注为准。