返回知识库

软考

架构核心速查表

软件架构设计核心:架构风格对比、质量属性战术、ATAM/SAAM 评估流程——案例第1题必考,论文高频素材

软考架构设计质量属性ATAMSAAM

一句话定位

本表覆盖软考 §3.7 软件架构设计(核心高频),是案例第 1 题必考内容(架构风格 + 质量属性效用树),也是论文高频素材来源。要求做到核心表与流程图可默写

IMPORTANT

  • 案例第 1 题高频模式:给出一个系统的架构描述,要求①判断/选择架构风格;②画出/补全质量属性效用树;③针对某一质量属性提出改进方案。
  • 本系列最高价值产出,务必精确记忆

A. 软件架构基础概念

A.1 组成要素

要素定义示例
构件(Component)系统中可独立部署、替换的基本单元模块、类、服务、组件
连接件(Connector)构件之间的交互机制与规则消息传递、RPC、消息队列、共享内存
约束(Constraint)构件与连接件之间的限制条件接口规范、协议、调用顺序、拓扑规则

NOTE

架构 = 构件 + 连接件 + 约束。三要素在面试/论文中可作为”架构定义”的规范表述。

A.2 架构复用与产品线

概念定义核心要素考试要点
软件架构复用在不同系统中重用已有的架构设计、构件或文档领域知识、架构模板、可复用构件库降低开发成本、提高质量
DSSA(特定领域软件架构)针对某一特定应用领域抽取通用架构领域分析 → 领域设计 → 领域实现;产出参考需求 + 参考架构DSSA 四阶段常考选择题
软件产品线(SPL)基于一组共享的核心资产,通过配置/定制生成一系列相关产品核心资产(构件、架构、文档)+ 产品配置与 DSSA 的关系:SPL 是实现架构复用的组织级实践

B. 架构风格完整对比表

数据来源:《系统架构设计师教程(第 2 版)》§3.7;案例第 1 题核心判题依据

B.1 传统六大类架构风格

大类子风格组成/原理优点缺点典型例子
数据流批处理序列数据批量流动,每个步骤完整处理全部数据后再传给下一步简单、吞吐高延迟大、无法交互编译器后端(链接阶段)、ETL 数据清洗
数据流管道-过滤器 (Pipe-Filter)前置输出 → 后置输入,增量式流处理流式处理、可并行、易复用、灵活性高难处理交互式场景、错误恢复困难Unix 管道、编译器四阶段流水线
调用/返回主程序-子程序分解为若干模块,通过过程调用组织结构清晰、直观易懂扩展性差、耦合度高传统 C 程序、早期结构化编程
调用/返回面向对象对象封装数据与行为,通过消息传递交互封装性好、易复用、易维护对象间依赖复杂、需唯一标识(OID)Java/C# 企业应用
调用/返回层次结构 (Layered)分层,每层只调用相邻下层服务支持扩展、复用、可移植性好跨层调用破坏分层(应严格禁止)OSI 七层协议栈、操作系统内核
独立构件进程通信进程间显式通信(消息/信号/共享内存)松耦合、独立部署性能开销、通信延迟RPC、消息队列、Socket
独立构件事件驱动 / 隐式调用 (Event-Driven)构件注册/订阅事件,事件触发时隐式调用高度松耦、可动态扩展、支持运行时变化控制流难追踪、调试困难GUI 框架(Swing/Qt)、MQ、MVC
虚拟机解释器 (Interpreter)解释引擎 + 被解释程序,逐条解释执行灵活、可移植、易扩展性能低、资源占用大JVM、SQL 引擎、正则表达式引擎
虚拟机基于规则系统 (Rule-Based)规则库 + 规则解释器 + 工作内存适合知识推理、易修改规则规则冲突难处理、性能低Prolog、Drools、专家系统
仓库数据库系统中央数据存储 + 独立构件读写数据集中管理、一致性好中心瓶颈、扩展受限RDBMS 应用、ERP 系统
仓库黑板系统 (Blackboard)知识源 + 黑板(共享数据区) + 控制器适合不确定性问题求解、可增量求解控制复杂、效率难保证语音识别(HEARSAY-II)、图像识别、AI 推理

WARNING

易混区分

  • 管道-过滤器 vs 批处理:管道-过滤器是增量流式(数据像流水一样逐条通过);批处理是批量(全部数据处理完再传递)。考试常给场景让判断属于哪种风格。
  • 黑板系统三要素:①知识源(Knowledge Source);②黑板(Blackboard,共享数据区);③控制器(Controller,协调知识源)。三要素缺一不可,是高频填空/选择题考点。

B.2 现代派生风格(高频延伸)

风格核心特征来源/定位
C/S (Client/Server)客户端请求 → 服务端响应两层/三层经典架构
B/S (Browser/Server)浏览器作为通用客户端、零部署Web 1.0 时代主流
N-tier / 多层架构表示层/业务层/数据层分离企业应用标准架构
MVC / MVP / MVVM视图与模型分离GUI/Web 前端架构模式
SOA (Service-Oriented)松耦合服务,通过 ESB 集成重量级企业服务架构
RESTHTTP 语义化操作(GET/POST/PUT/DELETE)轻量级 Web API 架构风格
微服务 (Microservices)细粒度服务拆分、独立部署、DevOps现代分布式系统主流
云原生 (Cloud Native)微服务 + 容器 + DevOps + 持续交付云计算时代架构范式
EDA (Event-Driven Architecture)事件驱动、异步通信、松耦合IoT/实时流处理/high scalabale 系统
RIA (Rich Internet Applications)富客户端交互、AJAX/SPA现代 Web 应用

B.3 架构风格对比速记

对比维度风格 A风格 B核心差异
数据流方式管道-过滤器(增量流式)批处理(全量批量)是否逐条处理数据
调用方式显式调用(主程序/面向对象)隐式调用(事件驱动)调用关系是否可见
耦合度紧耦合(主程序-子程序)松耦合(事件驱动/进程通信)构件间依赖程度
控制流集中式(主程序)分布式(事件驱动)控制逻辑在哪里

C. 质量属性与战术清单(Case 必默写)

C.1 质量属性场景六要素

场景 = 刺激源 + 刺激 + 制品 + 环境 + 响应 + 响应度量

要素含义示例
刺激源引发质量属性问题的来源用户请求、故障、黑客攻击
刺激具体的刺激事件并发请求 1000/s、服务器宕机、SQL 注入
制品被刺激的系统部分数据库服务、Web 服务网关、缓存层
环境刺激发生时的系统状态正常负载/高负载/降级模式
响应系统如何响应刺激返回结果/切换备用/熔断降级
响应度量响应效果的量化指标响应时间 < 200ms、可用性 ≥ 99.9%

C.2 效用树 (Utility Tree)

效用树是 ATAM 评估的核心工具,用于优先级排序

根节点:软件质量属性
├── 可用性 (Availability)
│   ├── 故障检测时间 < 30s (H, M)  ← (重要性, 实现难度)
│   └── 故障恢复时间 < 60s (H, L)
├── 性能 (Performance)
│   ├── 并发 1000/s 响应 < 200ms (H, H)
│   └── 资源利用率 < 80% (M, M)
├── 安全性 (Security)
│   └── …
└── 可修改性 (Modifiability)
    └── …

IMPORTANT

  • 效用树对每个场景标注 (重要性, 实现难度),常用 H/M/L 表示
  • 案例第 1 题常考:给场景让补全/修正效用树,或给出效用树让分析架构是否满足要求

C.3 质量属性 × 战术 完整对照

必背:每个质量属性至少记住 3~4 个核心战术,案例问答题直接套用。

可用性 (Availability)

分类战术说明案例常见用法
错误检测Ping / Echo周期性探测服务是否存活心跳检测
Heartbeat服务间定期发送心跳包微服务健康检查
Exception捕获异常并报警try-catch + 警报
错误恢复主动冗余(热备)主备同时运行,主故障秒切数据库主从热备
被动冗余(暖备)备机运行但不处理请求,主故障后接管应用服务主备
备件(Spare)准备替换部件服务器备机
表决(Voting)多副本结果投票,取多数分布式一致性
状态再同步故障恢复后与主状态一致主备数据同步
回滚(Rollback)事务失败回滚到之前状态数据库事务
降级(Graceful Degradation)关闭非核心功能保核心业务双 11 关闭评论
重试(Retry)失败后自动重试幂等接口重试
错误预防服务从服务中移除故障实例自动下线健康检查失败下线
事务(Transactions)ACID 保证操作原子性数据库事务
进程监视器进程异常自动重启Kubernetes 自动重启

可修改性 (Modifiability)

分类战术说明
局部化修改维持语义一致性模块接口与实现语义一致
模块分解大拆小,减少变更影响范围
模块通用化提取通用模块,一处修改多处受益
预期期望变更预留扩展点
防止连锁反应信息隐藏隐藏实现细节
接口与实现分离面向接口编程
维持现有接口向后兼容
限制通信路径减少模块间直接依赖
使用中介者中介者模式减少直接耦合
推迟绑定时间运行时注册插件/服务发现
配置文件配置驱动,不修改代码
多态延迟绑定到运行时才确定
组件替换热插拔组件
遵守已发布协议标准化接口

性能 (Performance)

分类战术说明案例常见用法
资源需求提高计算效率优化算法缓存热点数据
减少计算开销避免冗余计算惰性求值
管理事件率限流/降级令牌桶限流
控制采样频率仅处理部分数据日志采样
资源管理引入并发多线程/多进程线程池
维持数据/计算多副本读写分离主从数据库
增加资源垂直/水平扩展扩容服务器
资源仲裁(调度)FIFO先进先出任务队列
固定优先级高优先级优先实时系统
动态优先级轮转/抢占时间片轮转
SJF短作业优先批处理系统

TIP

性能战术速记口诀:“提效率、减开销、管速率、控采样;引并发、多副本、加资源;调度看 FIFO/优先级/SJF”

安全性 (Security)

分类战术说明案例常见用法
抵抗攻击身份验证(认证)确认用户身份用户名密码、OAuth、SSO
用户授权确认用户权限RBAC 角色权限
数据加密传输/存储加密HTTPS / AES
限制访问防火墙、ACLIP 白名单
维护数据完整性哈希校验SHA-256、数字签名
检测攻击入侵检测(IDS/IPS)检测异常行为WAF、SIEM
异常行为检测基于规则/机器学习风控系统
从攻击中恢复审计跟踪(Audit Trail)全量操作日志审计日志
恢复备份恢复数据备份/快照

可测试性 (Testability)

分类战术说明
输入/输出管理录制/回放(Record/Playback)记录输入输出用于回放测试
接口与实现分离测试时替换成 Mock/Stub
内部监视内置监视器内嵌健康检查、性能计数器

易用性 (Usability)

分类战术说明
运行时战术任务模型根据用户任务自动调整界面
用户模型记录用户偏好,个性化展示
系统模型预测用户行为,主动提供帮助
设计时战术用户接口分离MVC 中视图与模型分离
支持用户主动取消、撤销、聚合、多个视图、历史、保存用户体验操作

C.4 质量属性考点评分速查

属性答题套路关键词
高可用负载均衡 + 冗余(主备) + 故障转移 + 降级 + 重试心跳、Ping/Echo、热备、降级
高性能缓存 + 并发 + 异步 + 负载均衡 + 限流缓存、并发、异步、索引、分片
高可修改分层/模块化 + 接口隔离 + 配置化 + 信息隐藏接口分离、信息隐藏、插件化

WARNING

本表是案例问答题的万能公式。看到 “如何保证可用性/性能/可修改性” 等问法时,直接从上面抄战术。


D. 架构评估方法(论文高频 + 案例选考)

D.1 四种评估方法对比

方法全称关注焦点阶段数核心产出考试重点
ATAM架构权衡分析法多属性权衡9 步(+步骤 0)敏感点/权衡点/风险点/非风险点★★★ 最常考
SAAM软件架构分析法可修改性5~6 步直接/间接场景、场景交互★★ 次考
ARID主动中间件设计评审构件/中间件可复用性构件复用适配度★ 了解
CBAM成本收益分析法成本-收益权衡风险-收益量化★ 了解

NOTE

  • ATAM:顾此失彼的问题(多个质量属性之间的 tradeoff)
  • SAAM:只关心”好不好改”(可修改性),不涉及多属性权衡
  • CBAM:加上”钱”的维度,评估哪个方案的性价比最高

D.2 ATAM 9 步流程

图 1:ATAM 9 步流程(来源:教材第 2 版 §3.7.3)

IMPORTANT

ATAM 两阶段结构

  • 第一阶段(展示与调查,步骤 1~6):展示方法、商业动机、架构、识别方法、生成效用树、分析方法
  • 第二阶段(头脑风暴与再分析,步骤 7~9):场景头脑风暴、再次分析、结果呈现

ATAM 关键产出定义

产出定义示例
敏感点 (Sensitivity Point)一个或多个构件特性对质量属性产生显著影响”使用缓存构件” 对性能有显著影响
权衡点 (Tradeoff Point)满足一个质量属性的同时损害另一个质量属性”引入缓存提升性能,但降低了可修改性”
风险点 (Risk Point)架构中可能引发问题的设计决策”单点数据库可能引发可用性风险”
非风险点 (Non-Risk Point)经评估确认不会引发问题的设计决策”已部署主从数据库,可用性风险已缓解”

WARNING

敏感点 ≠ 权衡点:敏感点只涉及”一动全身”(影响大);权衡点涉及”顾此失彼”(此消彼长)。所有权衡点都是敏感点,但并非所有敏感点都是权衡点。

D.3 SAAM 6 步流程

图 2:SAAM 6 步流程(来源:教材第 2 版 §3.7.3)

IMPORTANT

SAAM 核心考点

  • 直接场景 vs 间接场景:直接场景 = 现有架构直接支持,不需要修改;间接场景 = 需要修改架构才能支持
  • 场景交互评估:如果多个间接场景都需要修改同一个构件 → 耦合度高 → 设计越差
  • SAAM 只评估单一可修改性,不涉及多属性权衡

E. 架构其他核心

E.1 中间件分类与典型产品

类型功能典型产品考试要点
数据库中间件数据库连接池、SQL 路由、读写分离MyCAT、ShardingSphere、TDDL分库分表、读写分离
消息中间件异步消息传递、削峰填谷Kafka、RabbitMQ、RocketMQ、ActiveMQ削峰/解耦/异步
RPC 中间件远程过程调用gRPC、Dubbo、Thrift服务间通信
事务中间件分布式事务管理Seata、TCC、XA2PC/3PC/TCC
门户中间件单点登录、统一门户CAS、Portal企业应用集成

E.2 构件标准对比

标准技术栈特点现状
CORBA公共对象请求代理结构跨语言、跨平台,但复杂度高基本淘汰
EJBEnterprise JavaBeansJava EE 标准,重量级基本淘汰(被 Spring 取代)
COM+微软组件对象模型Windows 平台基本淘汰

TIP

构件标准在教材中有,但考试近年极少涉及(指南性了解即可)。重点放在微服务/云原生等现代架构风格上。


F. 记忆口诀与易错点

架构风格速记

风格口诀关键区分
管道-过滤器”数据流水过管道”增量流式 ≠ 批量
事件驱动”谁订阅谁响应”隐式调用,松耦合
黑板系统”三要素:黑板知识源控制器”适合不确定性问题
层次结构”只能向下调用”跨层调用破坏分层
虚拟机”解释逐条走”灵活但性能低

质量属性战术速记

属性速记口诀
可用性”检测(Ping/心跳/异常),恢复(冗余/回滚/降级),预防(事务/监视器)“
可修改性”局部改、防连锁、推迟绑”
性能”提效率、减开销、管速率;引并发、多副本、加资源”
安全性”抵抗(认证/授权/加密),检测(入侵/异常),恢复(审计)“

ATAM 与 SAAM 速记

维度ATAMSAAM
全称架构权衡分析法软件架构分析法
关注点多属性权衡单一可修改性
步骤9 步(两阶段)6 步
关键产出敏感点/权衡点/风险点直接/间接场景、场景交互
核心图效用树场景分类表

WARNING

易错点汇总

  1. 管道-过滤器 ≠ 批处理:前者增量流式,后者全量批量
  2. 黑板三要素:知识源 + 黑板(共享数据区) + 控制器,缺一不可
  3. 敏感点 ≠ 权衡点:敏感点只涉及”影响大”,权衡点涉及”此消彼长”
  4. ATAM 是两阶段:第一阶段(步骤 16)展示与调查;第二阶段(步骤 79)头脑风暴与再分析
  5. SAAM 只评估可修改性,不涉及性能/安全等其他属性
  6. 效用树标注:每个场景标 (重要性, 实现难度),不是 (实现难度, 重要性)

G. 交叉引用与关联阅读

相关主题位置关联内容
计算机基础01-cs-fundamentals.mdx可靠性计算、PV 操作、范式、事务
软件工程与 UML02-software-engineering-uml.mdx开发模型、UML 九图、类间关系
设计模式04-design-patterns.mdx(待产)23 GoF 速查、架构中的应用
新技术05-new-tech-web-arch.mdx(待产)微服务、云原生、容器、DevOps
案例分析模板06-case-analysis-template.mdx(待产)第 1 题答题套路、架构风格判断
论文素材库07-essay-material-library.mdx(待产)架构评估论文写法、质量属性论述

H. 自测题(检验掌握程度)

  1. 某系统采用”传感器采集数据 → 数据清洗 → 特征提取 → 模型推理”的架构,数据像流水线一样逐条处理。请判断其架构风格。

    点击查看答案 管道-过滤器 (Pipe-Filter)。核心特征:数据增量式流式处理,前置输出直接作为后置输入。

  2. 黑板系统的三要素是什么?

    点击查看答案知识源(Knowledge Source);②黑板(Blackboard,共享数据区);③控制器(Controller,协调知识源)。

  3. ATAM 和 SAAM 的核心区别是什么?

    点击查看答案 ATAM 关注多属性权衡(可用性/性能/安全性等的 tradeoff),产出敏感点/权衡点/风险点;SAAM 只关注单一可修改性,产出直接/间接场景和场景交互评估。

  4. 在 ATAM 中,“引入缓存提升系统响应速度,但增加了系统的复杂度”属于哪种关键产出?

    点击查看答案 权衡点 (Tradeoff Point)。因为提升性能的同时损害了可修改性,属于多质量属性之间的权衡。

  5. 请默写六类质量属性中,可用性和性能各自至少 3 个战术。

    点击查看答案 可用性:Ping/Echo(错误检测)、主动冗余/热备(错误恢复)、降级(错误恢复)、事务(错误预防)。
    性能:引入并发(资源管理)、维持数据多副本(资源管理)、提高计算效率(资源需求)、FIFO/优先级调度(资源仲裁)。

IMPORTANT

如果只能”看着面熟”但说不出来,说明还没真正掌握,建议回看对应章节并多做真题。本表要求做到核心架构风格对比表、质量属性战术表、ATAM/SAAM 流程图可默写


下一篇导引设计模式速查表(待产) 将涵盖 23 种 GoF 设计模式——创建型、结构型、行为型的速查与高频模式辨析。