软考专题 · 架构评估 ATAM(选择题 15 + 案例答题套路 + 模拟题 + 论文提纲)
架构评估(ATAM)是系统架构设计师三科里的”全勤选手”——综合知识每年 2-3 道选择题,案例分析必出 1 道 25 分大题,论文也是高频主题。这篇把这个专题的高频选择题(带 ✅ 答案 + 解析)、案例答题套路、1 道完整模拟题、论文万能提纲打包在一起。内容来自开源仓库
PeterGuy326/senior-software-architect-review,原文链接见各小节末尾。回到 软考导览页 看完整专题清单。
一、必背:ATAM 核心理论
四类关键点(案例 + 论文都要用)
| 类型 | 信号词 | 含义 | 例子 |
|---|---|---|---|
| 敏感点 | “为了… 我们选…” | 为实现某质量属性的关键架构决策 | 主备切换 < 30s 对可用性 |
| 权衡点 | “既…又… / 提升 X 但降低 Y” | 同时影响多个质量属性(有正有负) | HTTPS 提升安全但降性能 |
| 风险点 | “可能导致 / 存在隐患 / 尚未验证” | 可能引发问题的决策 | 单点 MQ 未持久化 |
| 非风险点 | “已验证 / 业界成熟” | 已确认安全的决策 | Kafka 集群、MySQL 主从 |
质量属性场景 6 元组
1 | (1) 刺激源(Source) — 谁/什么引发 |
例:【用户】在【大促时】【订单服务】【运行正常时】【下单请求】【响应时间 < 500ms,成功率 > 99.99%】
ATAM 9 步 / 4 阶段
1 | 阶段一 展示:1.介绍 ATAM → 2.业务驱动 → 3.被评估架构 |
效用树优先级标注 = (业务价值 H/M/L, 技术难度 H/M/L)。三大评估方法:SAAM(最早,偏可修改性)→ ATAM(最主流,多质量属性权衡)→ CBAM(ATAM + 经济成本,投资决策)。
二、高频选择题(15 题,✅ 为正确选项)
1. ATAM 方法的全称是:
✅ A. 架构权衡分析方法 B. 架构测试自动化方法 C. 系统可靠性评估方法 D. 敏捷架构管理
ATAM = Architecture Tradeoff Analysis Method,SEI 提出的架构评估方法。
2. ATAM 评估中的四类关键点不包括:
A. 敏感点 B. 权衡点 C. 风险点 ✅ D. 缺陷点
四类点 = 敏感点 / 权衡点 / 风险点 / 非风险点,没有”缺陷点”。
3. 敏感点的定义是:
A. 对业务最关键的组件 ✅ B. 为实现某个质量属性而重点分析的架构决策 C. 可能引发系统崩溃的点 D. 性能瓶颈
敏感点 = 改动会显著影响质量属性的决策点。
4. 权衡点的定义是:
✅ A. 对某个质量有利,对另一个质量不利的决策 B. 两个架构师观点的分歧 C. 成本最高的组件 D. 与性能无关的决策
权衡点 = 影响多个质量属性且彼此此消彼长的敏感点。
5. ATAM 评估通常分为几个阶段:
A. 1 B. 2 C. 3 ✅ D. 4
4 阶段共 9 步:展示 + 调查与分析 + 测试 + 报告。
6. ATAM 中质量属性描述通常使用:
A. 自然语言 ✅ B. 六元组场景 C. UML 图 D. BNF 范式
7. 下列描述属于风险点的是:
✅ A. 采用微服务可能导致运维复杂度陡增 B. 选择 Redis 作为缓存 C. 使用 JWT 实现无状态认证 D. 引入 Kubernetes
风险点通常以”可能……”描述。
8. 下列描述属于权衡点的是:
✅ A. 使用缓存提升性能,但会降低一致性 B. 使用 Nginx 负载均衡 C. API 网关聚合接口 D. 所有服务部署在 Kubernetes
9. 性能场景的典型响应度量是:
✅ A. 每秒处理请求数(TPS)/ 响应时间 B. 用户数 C. 错误率 D. 代码行数
10. ATAM 评估的系统涉众不包括:
A. 最终用户 B. 运维 C. 架构师 ✅ D. 与项目无关的外部黑客
11. ATAM 中的效用树作用是:
A. 列出所有类图 ✅ B. 将质量属性细化为可评估的具体场景,并分优先级 C. 表达时序 D. 测试用例
效用树 4 级:效用 → 质量属性 → 属性细化 → 具体场景(带 H/M/L)。
12. 下列关于非风险点描述正确的是:
A. 不需要评估 ✅ B. 架构决策已经过充分论证,当前不会构成问题 C. 等同于正确决策 D. 不影响任何质量属性
13. 下列描述属于敏感点的是:
A. 心跳检测间隔影响故障发现时间 B. 数据库选型决定整体吞吐上限 C. 使用 LSM Tree 影响读写性能比 ✅ D. 以上都是
14. ATAM 与 SAAM 的主要区别:
✅ A. SAAM 基于可修改性单一质量属性评估,ATAM 评估多质量属性权衡 B. ATAM 比 SAAM 更简单 C. 两者等同 D. SAAM 专用于微服务
15. ATAM 评估最终输出不包括:
A. 敏感点、权衡点、风险点清单 B. 效用树 ✅ C. 架构源代码 D. 风险主题
原文 + 解析:
exam-bank/12-atam-evaluation.md
三、案例答题套路(必考题型,25 分)
问题 1:给场景填 6 元组
1 | (1) 源 = 题干中的用户 / 系统 / 外部事件 |
问题 2:判断四类点
每条必须跟一句”因为…”:
1 | XX 是【敏感点】,因为它直接决定了【可用性/性能/...】,是达成质量目标的关键。 |
问题 3:效用树排序
- 行优先级 = (业务价值, 技术难度),用 (H, M, L)
- 场景越具体得分越高,避免”性能好”这种空泛描述
万能高分句
- “该架构决策是敏感点,因为它直接决定了【可用性/性能】质量目标的达成”
- “【HTTPS 全链路加密】是权衡点:提升了安全性但增加了约 10% 的 CPU 开销“
- “识别出该风险点后,建议引入【Sentinel 熔断 / RocketMQ 持久化 / 多活部署】战术,将其转化为非风险点“
- “依据 ATAM 第 5 步(效用树),【性能-吞吐 (H, H)】为最高优先级,应优先保障”
常见陷阱
| ❌ | ✅ |
|---|---|
| 敏感点、风险点混淆 | 敏感点 = 关键决策;风险点 = 潜在问题 |
| 只说结论不说理由 | 每条判断必须跟一句因为… |
| 度量没数字 | 响应度量必须可量化(ms、%、TPS) |
| 分析不给改进方案 | 风险点必须给出缓解战术 |
高频战术速查
| 质量属性 | 战术 |
|---|---|
| 可用性 | 心跳、Ping/Echo、冗余(主备/双活)、回滚、重试 |
| 性能 | 缓存、并发、资源池、减少计算、异步 |
| 安全 | 认证、授权、审计、加密、完整性校验 |
| 可修改性 | 模块化、封装、接口抽象、DI、配置化 |
| 可测试性 | 记录/回放、接口分离、内部监控 |
| 易用性 | 撤销、用户启动、系统启动、任务模型 |
四、完整模拟案例题(25 分)
⚠️ 自主命题改编,建议严格 25 分钟限时作答再对答案。完整 3 道模拟题见
case-types/01-architecture-evaluation.md。
【题干】 某零售集团整合 B2C / 跨境 / 线下三套订单系统,建设统一订单中台。关键指标:日订单峰值 800 万笔,大促 QPS 5 万,下单 P99 < 200ms,全年可用性 99.99%,新业务线接入 < 1 个月。架构师选择”微服务 + 事件驱动”混合风格,DDD 拆 10 业务服务 + 5 基础服务。关键决策:①gRPC(内部)/REST(对外)双协议 + RocketMQ 3 主 3 从持久化;②Database Per Service,订单库 MySQL 一主两从半同步,商品库分 16 库 64 表按 tenant_id 哈希;③多级缓存 Caffeine(L1)+Redis Cluster(L2)+MySQL(L3) Cache Aside;④下单链路 TCC 三阶段补偿,库存扣减 Lua 原子化;⑤K8s 跨 3 可用区 + Istio;⑥API 网关 Sentinel 限流;⑦SkyWalking + Prometheus + ELK;⑧全链路 HTTPS(TLS 1.3) + JWT + 敏感字段 AES-256。计划用 ATAM 评估。
问 1(8 分):用 6 元组描述”大促期间订单系统的高性能场景”,每元素给具体取值。
问 2(10 分):识别 2 敏感点、2 权衡点、2 风险点、2 非风险点,说明判定理由。
问 3(7 分):构建效用树,给 4 个二级质量属性节点及最高优先级场景(标 (业务价值,技术难度)),解释为何”性能-下单 P99<200ms”排首位。
【参考答案要点】
问 1 6 元组:源=大促并发用户(峰值在线 200 万) / 刺激=提交下单请求(含商品、地址、优惠券) / 制品=订单服务集群及依赖(库存、支付、Redis、MySQL 订单库) / 环境=大促高峰模式(QPS 5 万,弹性扩容完成) / 响应=正常受理、扣库存、生成订单号、落库、返回 / 度量=下单 P99 < 200ms,成功率 ≥ 99.99%,单日峰值 800 万笔无超时降级。
问 2:
- 敏感点 1 = 多级缓存 Cache Aside 策略——直接决定 P99 < 200ms 能否达成(命中率 95%→80% 则 DB 压力激增)
- 敏感点 2 = RocketMQ 3 主 3 从持久化——直接决定节点宕机时订单/支付事件不丢,是可用性 99.99% 关键
- 权衡点 1 = 全链路 HTTPS + AES-256——安全性(+,等保合规) / 性能(-,TLS 与加解密约 10% CPU)
- 权衡点 2 = TCC 三阶段补偿——一致性(+) / 性能(-,三次远程调用增 50-80ms) / 可修改性(-,每方法写 Try/Confirm/Cancel)
- 风险点 1 = 促销服务单体保留且未做熔断——异常流量击穿后波及订单服务 → 建议接 Sentinel + 拆只读副本
- 风险点 2 = 对账服务未做全链路压测——大促峰值数据量未知,批处理超时风险 → 建议补压测
- 非风险点 1 = Nacos + Apollo 集群——阿里/字节大规模验证
- 非风险点 2 = K8s 跨 3 可用区 + Istio——CNCF 毕业项目,生产级
问 3 效用树:性能(下单 P99<200ms (H,H)⭐ / QPS≥5万 (H,M)) / 可用性(99.99% (H,H)⭐ / 主备切换<30s (H,M)) / 可修改性(新业务接入<1月 (M,M) / 新增促销规则<1周 (M,L)) / 安全性(等保三级 (H,M) / 敏感数据加密 (M,L))。”下单 P99<200ms (H,H)”排首位:①业务价值 H——直接关系大促 GMV,每增 100ms 转化率降约 1%;②技术难度 H——多级缓存+TCC+RocketMQ+库存原子扣减多重决策耦合;③ATAM 要求优先关注高业务价值且高技术风险的场景。
五、论文万能提纲(约 2500 字)
典型题目:论软件系统架构评估及其应用 / 论质量属性驱动的架构评估 / 论 ATAM 在 XX 系统中的应用。
1 | 1. 项目背景 + 为何需要评估(300 字) |
摘要模板:”我于 2023 年参与了 {电商订单中台} 项目的架构设计与评估,担任 {架构师}。系统服务 {800 万日订单 / 5 万 QPS / 99.99% 可用性}。在方案定稿前组织团队采用 ATAM 评估,构建效用树,识别出 {4 敏感点、2 权衡点、3 风险点、5 非风险点},针对风险点落实 {Sentinel 熔断、TCC 补偿、压测演练} 等改进战术,二次复审风险点全部转非风险点。本文以该项目为背景论述 ATAM 的核心理论与实践应用。”
加分关键词:ATAM/SAAM/CBAM、敏感点/权衡点/风险点/非风险点、效用树、质量属性场景、6 元组、业务驱动识别、利益相关者、场景集优先级、迭代分析;业界对标:SEI ATAM、阿里架构治理委员会、华为 IPD 架构评审、Amazon Bar Raiser。
避坑:①只写流程不结合项目 → 每步给本项目具体决策;②四类点混淆 → 用信号词模板严格区分;③效用树场景空泛 → 必须可量化;④风险点不给改进战术 → 每个必给”改进战术 + 改进后类型”;⑤不提利益相关者 → ATAM 强调多视角,必列。
完整理论 + 模拟论文 + 提纲:
paper-topics/02-architecture-evaluation.md;范文:paper-samples/02-architecture-evaluation.md
这是软考专题系列的第 1 篇。同系列还有:架构风格对比、微服务与云原生、数据库设计。全部清单见 软考导览页。发现题目错误欢迎到 仓库 开 issue。







