软件架构评估
案例分析高频考点,常考"敏感点/权衡点/风险点/非风险点"四类点判定
SAAM · Software Architecture Analysis Method 最早,基于场景
ATAM · Architecture Trade-off Analysis Method 最常考,多属性权衡
CBAM · Cost Benefit Analysis Method 成本收益,经济分析
ARID · Active Reviews for Intermediate Designs 中间设计评估
口诀:"SAAM 早 · ATAM 多 · CBAM 钱 · ARID 中"
一、4 个核心概念 ⭐⭐⭐⭐⭐
案例分析最爱出:给若干设计决策,要求判定属于哪类点。务必背死!
| 概念 | 定义 | 判定要点 |
|---|---|---|
| 敏感点 Sensitivity Point |
影响 某一个 质量属性的属性/决策点 | 只影响 1 个 质量属性 |
| 权衡点 Trade-off Point |
同时影响 多个 质量属性,且对它们有相反作用 | 影响 2 个或以上 质量属性 |
| 风险点 Risk |
架构决策中潜在的、有问题的、可能造成失败的点 | "可能…""未确定…""影响…未达标" |
| 非风险点 Non-Risk |
不需要担心、已经验证或不会引起问题 | "已采用…成熟方案""不会影响…" |
- 看影响几个属性:1 个 → 敏感点; 多个 → 可能是权衡点
- 看作用方向:多个属性中,作用相反 → 权衡点; 全正向 → 都是敏感点
- 看可控性:有"风险/可能/未达标"等不确定语 → 风险点; 否则非风险点
典型例题
题:某系统要求 P99 响应时间 ≤ 1s,使用 Redis 缓存。下列哪些是敏感点 / 权衡点?
- 缓存命中率 → 影响响应时间 → 敏感点(性能)
- 缓存过期策略 → 影响 性能 + 数据一致性 → 权衡点
- 使用 HTTPS → 安全性 ↑,性能 ↓ → 权衡点
- 主从复制延迟可能超 5s → 影响一致性 → 风险点
- 已使用成熟的 Nginx 负载均衡 → 非风险点
二、ATAM 详解(最常考)
Architecture Trade-off Analysis Method:架构权衡分析法,基于场景的评估,关注多质量属性间的权衡。
ATAM 阶段 / 9 个步骤
分 4 个阶段(口诀:呈/调/分/报),共 9 步:
- ATAM 方法的呈现
- 商业动机的描述
- 架构的描述
- 对架构方法分类
- 生成质量属性效用树(核心步骤!)
- 分析架构方法
- 讨论和分级场景
- 再次分析架构方法
- 结果呈现
质量属性效用树(Utility Tree)⭐⭐
ATAM 的核心产物,自顶向下:根 → 质量属性 → 属性细分 → 场景 → 重要性 / 难度
效用(Utility) ├─ 性能 │ ├─ 响应时间 → 场景 A (H, M) │ └─ 吞吐量 → 场景 B (M, L) ├─ 可用性 │ └─ 故障恢复 → 场景 C (H, H) └─ 安全性 └─ 抗攻击 → 场景 D (H, M) (H=高 重要/难度 · M=中 · L=低)
ATAM 的输出
- 已记录的架构方法
- 质量属性效用树
- 风险与非风险
- 敏感点与权衡点
- 风险主题
三、SAAM 详解
Software Architecture Analysis Method,最早的、基于场景的评估方法。
SAAM 5 个步骤
- 形成场景
- 描述体系结构
- 对场景进行分类和确定优先级(直接场景 + 间接场景)
- 对间接场景的单个评估
- 评估场景的相互作用
SAAM: 单属性(主要关注可修改性)、5 步骤、最早出现
ATAM: 多属性 + 权衡分析、9 步骤、用效用树
SAAM 是 非功能质量评估 的开创者; ATAM 在 SAAM 基础上扩展为多属性权衡。
四、CBAM / ARID 速览
CBAM(Cost Benefit Analysis Method)
ARID(Active Reviews for Intermediate Designs)
五、案例分析答题模板
模板 1:判定四类点(必背)
答题三段式:
- 引用决策原文:""使用 HTTPS 协议"这一决策"
- 分析影响:"提升了安全性(机密性),但引入加解密开销,降低性能"
- 给出结论:"同时影响安全性和性能,且作用相反,属于权衡点"
模板 2:ATAM 步骤简述
"系统采用 ATAM 方法,分 呈现、调查分析、测试、报告 四阶段:首先 呈现 ATAM 方法,然后 描述商业动机和架构,接着 构建质量属性效用树并对场景排序,逐一 分析架构方法对场景的支持,识别出 风险/非风险/敏感点/权衡点,最后 形成评估报告。"
模板 3:为什么要做架构评估?
三大价值(背):
- 降低风险 —— 在架构设计早期发现潜在问题,避免后期返工
- 验证设计 —— 确认架构能满足关键质量属性需求
- 提升沟通 —— 让利益相关者达成共识,形成文档化决策
六、必背口诀总览
四方法:SAAM 早 · ATAM 多 · CBAM 钱 · ARID 中
四类点:1 属性 = 敏感; 多属性反向 = 权衡; 不确定/未达标 = 风险; 已验证/不影响 = 非风险
ATAM 4 阶段:呈/调/分/报
ATAM 输出 4 件套:效用树 · 风险与非风险 · 敏感点与权衡点 · 风险主题
1. ATAM 的核心产物是什么?
2. "使用 HTTPS"通常属于哪类点?为什么?
3. SAAM 与 ATAM 最大的区别?
4. 给 4 个决策,各自判断点类型 → 答题三段式过一遍
答:1) 质量属性效用树 2) 权衡点,安全性 ↑ 但性能 ↓ 3) SAAM 单属性5步、ATAM 多属性权衡9步 4) 略
📕 必考章节 3/3 · 架构评估 完 · 三大必考全部攻克