第 2 章 · 系统分析与设计(UML · 设计模式)

📖 系统架构设计师 · 考点精讲(原创整理)约 1195 字🎯 配套练习:架构·分析与设计

考点梳理

2.1 需求工程要点

  • 过程:获取 → 分析 → 规格说明(SRS)→ 验证;需求变更须走变更控制;
  • 分类:功能需求(系统做什么)与非功能需求(性能、可用性、安全性等质量属性)——非功能需求是架构设计的核心输入

2.2 UML 图(结构图 vs 行为图)

类别用途
结构图类图类、属性、方法与关系(关联/聚合/组合/继承/依赖)
结构图对象图、构件图、部署图实例快照、构件组织、物理部署
行为图用例图参与者与系统功能(需求阶段)
行为图时序图(顺序图)、协作图对象间交互与消息顺序
行为图活动图、状态图业务流程/并发、对象状态变迁

记忆锚:类图看结构、用例看需求、时序看交互、活动看流程、状态看变迁

2.3 设计模式三大类(高频)

类别目的典型模式
创建型对象创建的解耦工厂方法、抽象工厂、单例、建造者、原型
结构型类/对象的组合结构适配器、桥接、组合、装饰器、外观、享元、代理
行为型对象间职责分配与算法职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者
  • 外观(Facade):为子系统提供统一入口,简化调用;
  • 适配器(Adapter):转换接口以兼容不匹配的类;
  • 策略(Strategy):封装可互换算法,运行时切换;
  • 观察者(Observer):一对多依赖,状态变化自动通知(发布-订阅)。

2.4 基于架构的软件设计(ABSD/ADD 思路)

  • ABSD:以功能分解 + 架构风格选择 + 软件模板为基础,自顶向下、递归细化;
  • ADD(属性驱动设计):从质量属性场景出发,逐步选择战术(tactics)满足属性需求;
  • 核心思想:架构设计由需求(尤其质量属性)驱动,而非仅由功能驱动

🧠 记忆工具箱

口诀速记

  • 设计模式三类:创建(怎么new)、结构(怎么组合)、行为(怎么分工)
  • 常用模式一句话:外观给统一入口、适配器转接口、装饰器加功能、代理做控制、策略换算法、观察者做通知
  • 需求两类:功能(做什么)+ 非功能(做得怎样)——后者决定架构选型。

例题(带解析)

例题 1:某系统需要在不修改原有子系统代码的前提下,为其提供统一、简化的调用入口。最合适的设计模式是? A. 适配器 B. 外观 C. 装饰器 D. 观察者 答案 B。解析:外观模式为复杂子系统提供统一的高层接口,简化客户端调用;适配器解决接口不兼容,装饰器动态增加职责。

例题 2:某系统支持多种计价算法并需在运行时切换。最合适的设计模式是? A. 策略 B. 单例 C. 代理 D. 组合 答案 A。解析:策略模式把可互换算法封装为独立类并可在运行时切换;单例控制实例数量,代理控制访问,组合表达整体-部分结构。

⚠️ 易错提醒

  • 聚合 vs 组合:聚合是弱整体-部分(生命周期独立),组合是强整体-部分(同生共死);
  • 装饰器 vs 代理:装饰器为增强功能,代理为控制访问(权限、延迟加载、远程调用);
  • 适配器 ≠ 桥接:适配器解决已有接口不匹配,桥接是设计期将抽象与实现分离;
  • 非功能需求是架构设计的关键输入,案例题问"为什么这样设计"时优先从质量属性回答。