软考系统架构设计师 ·「架构评估」知识总文档

举报
yuebao 发表于 2026/10/16 22:49:06 2026/10/16
【摘要】 软考系统架构设计师 ·「架构评估」知识总文档单一合并总文档 · 覆盖思维导图→理论基石→质量属性→评估方法分类→三大场景方法详解→场景映射→选型比较→易混陷阱→避坑实践→关联图→双轨口诀→速记总表→典型考题→背诵路线全链路 1. 思维导图(全章概览)架构评估 (Architecture Evaluation)│├─ 基本概念│ ├─ 目的: 降低维护成本 / 减少修复风险 / 发现潜在...

软考系统架构设计师 ·「架构评估」知识总文档

单一合并总文档 · 覆盖思维导图→理论基石→质量属性→评估方法分类→三大场景方法详解→场景映射→选型比较→易混陷阱→避坑实践→关联图→双轨口诀→速记总表→典型考题→背诵路线全链路


1. 思维导图(全章概览)

架构评估 (Architecture Evaluation)
│
├─ 基本概念
│   ├─ 目的: 降低维护成本 / 减少修复风险 / 发现潜在问题 / 验证质量需求
│   ├─ 时机: 架构设计之后、详细设计之前
│   └─ 活动: 方法选择 → 构建框架 → 实施评估 → 结果分析
│
├─ 评估方式(三类)
│   ├─ ① 基于调查问卷/检查表 → 主观、简单、CATAM
│   ├─ ② 基于度量           → 量化、需度量模型、耦合/内聚度量
│   └─ ③ 基于场景 ★主流     → 场景驱动、SAAM/ATAM/CBAM/ARID
│
├─ 质量属性(六大)
│   ├─ 性能     → 响应时间/吞吐量/并发数
│   ├─ 可用性   → MTTF/MTTR/MTBF, A=MTTF/(MTTF+MTTR)
│   ├─ 安全性   → 机密性/完整性/可用性(CIA)
│   ├─ 可修改性 → 修改成本/影响范围
│   ├─ 可测试性 → 测试覆盖率/可控性/可观察性
│   └─ 易用性   → 学习曲线/操作步骤/错误率
│
├─ 质量属性场景(6要素)
│   └─ 刺激源 → 刺激 → 环境 → 制品 → 响应 → 响应度量
│
├─ 基于场景的评估方法(三大)
│   ├─ SAAM  → 单属性(可修改性) → 5步 → 最早
│   ├─ ATAM  → 多属性权衡 ★核心 → 9步 → 敏感点/权衡点/风险点
│   └─ CBAM  → 成本效益 → ATAM扩展 → 经济决策
│
├─ ATAM核心概念
│   ├─ 敏感点: 影响单一质量属性的参数
│   ├─ 权衡点: 影响多个质量属性的参数(权衡点⊆敏感点)
│   ├─ 风险点: 可能引起问题的架构决策
│   └─ 非风险点: 不会引起问题的架构决策
│
└─ 效用树(Utility Tree)
    ├─ 根: Utility
    ├─ 第二层: 质量属性
    ├─ 第三层: 属性细化
    └─ 叶子: 场景(标注重要度I + 难度D, H/M/L)

2. 理论基石

2.1 架构评估的定义

软件架构评估是在架构设计阶段,对架构方案能否满足质量属性需求进行系统性分析与判断的过程。

关键区分:架构评估关注的是质量属性(非功能需求),而非功能正确性。功能正确性由测试保证。

2.2 架构评估的目的

目的 说明
降低维护成本 架构阶段发现问题的修复成本远低于编码/测试阶段
减少修复风险 提前识别风险点,避免架构返工
发现潜在问题 暴露隐藏的质量属性缺陷
验证质量需求 确认架构能否满足性能/可用性/安全性等要求
为架构改进提供依据 评估结果指导架构优化方向
促进涉众达成共识 评估过程是沟通协调过程

2.3 架构评估的时机

需求分析 → 架构设计 → ★架构评估★ → 详细设计 → 编码 → 测试 → 部署
                         ↑
                    评估在此处进行
  • 最佳时机:架构设计完成之后、详细设计之前
  • 原因:此时架构已成型可评估,但尚未投入大量编码成本,发现问题修改代价最小

2.4 架构评估的活动

  1. 评估方法选择:根据项目特点选择合适的评估方法
  2. 构建评估框架:确定评估的属性、场景、度量标准
  3. 评估过程实施:按方法步骤执行评估
  4. 评估结果分析:分析发现的风险点、权衡点,形成评估报告

2.5 评估的参与者

角色 职责
评估小组 组织和执行评估(评估负责人、评估者)
架构师 呈现架构方案、回答提问
项目决策者 提供商业动机、决策依据
涉众 提供场景、关注点(开发者、用户、维护者、测试者)

3. 质量属性详解(六大质量属性)

3.1 性能

定义:系统处理事件的响应能力,用响应时间或吞吐量来衡量。

要素 内容
刺激源 内部/外部事件(用户请求、定时任务、消息)
刺激 事件到达系统
环境 系统运行模式(正常、过载、峰值)
制品 整个系统或特定组件
响应 系统处理事件
响应度量 响应时间、吞吐量、并发数、延迟抖动

关键指标:

  • 响应时间 = 处理时间 + 排队时间 + 传输时间
  • 吞吐量 = 单位时间内处理的请求数(TPS/QPS)
  • 并发数 = 同时处理的请求数
  • Little律:N = X × R (并发数 = 吞吐量 × 响应时间)

3.2 可用性

定义:系统正常运行的能力,用系统正常运行时间占总时间的比例来衡量。

要素 内容
刺激源 内部/外部故障(硬件宕机、软件崩溃、网络中断)
刺激 故障发生
环境 系统运行状态(正常、降级、恢复中)
制品 整个系统或特定组件
响应 系统检测故障、恢复运行、通知相关方
响应度量 故障检测时间、修复时间、可用性比例

关键公式:

  • MTTF(Mean Time To Failure):平均无故障时间
  • MTTR(Mean Time To Repair):平均修复时间
  • MTBF = MTTF + MTTR(平均故障间隔时间)
  • 可用性 A = MTTF / (MTTF + MTTR) × 100% = MTTF / MTBF × 100%

可用性等级:

可用性 停机时间/年 等级
99% 3.65天 2个9
99.9% 8.76小时 3个9
99.99% 52.6分钟 4个9
99.999% 5.26分钟 5个9
99.9999% 31.5秒 6个9

3.3 安全性

定义:系统在向合法用户提供服务的同时,阻止非授权访问的能力。

要素 内容
刺激源 攻击者、合法用户、系统
刺激 攻击尝试、合法访问、数据传输
环境 系统运行状态(在线、离线、被攻击)
制品 系统服务、数据、资源
响应 认证、授权、加密、审计、拒绝
响应度量 攻击成功率、检测时间、恢复时间

CIA三要素:

  • 机密性(Confidentiality):信息不被未授权访问
  • 完整性(Integrity):信息不被未授权篡改
  • 可用性(Availability):授权用户能正常访问

安全手段:认证 → 授权 → 审计 → 加密(AAA+E)

3.4 可修改性

定义:系统能够快速、低成本地适应变更的能力。

要素 内容
刺激源 开发者、维护者、用户需求变更
刺激 变更请求(功能增加、修改、删除、技术升级)
环境 系统运行/设计状态
制品 系统特定部分(模块、组件、接口)
响应 查找修改位置、进行修改、测试验证
响应度量 修改工作量、修改时间、影响范围、引入缺陷数

可修改性策略:

  • 局部化修改:模块化、信息隐藏
  • 防止连锁反应:高内聚低耦合、接口抽象
  • 推迟绑定时间:配置化、插件化

3.5 可测试性

定义:软件通过测试发现缺陷并确认质量的难易程度。

要素 内容
刺激源 测试者、测试工具
刺激 测试用例执行
环境 设计/开发/部署阶段
制品 系统代码、接口、设计
响应 执行测试、捕获结果
响应度量 测试覆盖率、测试执行时间、缺陷发现率

可测试性两大要素:

  • 可控性:能否控制被测组件的输入和执行
  • 可观察性:能否观察被测组件的输出和状态

3.6 易用性

定义:用户能够轻松、高效地使用系统的能力。

要素 内容
刺激源 用户
刺激 用户操作(学习使用、执行任务、从错误恢复)
环境 用户使用环境
制品 系统用户界面
响应 系统提供反馈、引导、错误提示
响应度量 学习时间、任务完成时间、操作错误率、用户满意度

易用性策略:

  • 运行时策略:任务取消、撤销/重做、进度反馈
  • 设计时策略:界面一致性、操作引导、错误预防

3.7 六大质量属性速记

质量属性 核心刺激 核心响应度量 关键公式/指标
性能 事件到达 响应时间/吞吐量 N=X×R (Little律)
可用性 故障发生 可用性比例 A=MTTF/(MTTF+MTTR)
安全性 攻击尝试 攻击成功率 CIA三要素
可修改性 变更请求 修改工作量 影响范围/修改时间
可测试性 测试执行 测试覆盖率 可控性+可观察性
易用性 用户操作 任务完成时间 学习曲线/错误率

4. 质量属性场景描述(6要素)

4.1 场景的6个要素

一个完整的质量属性场景由以下6个要素组成:

刺激源 ──→ 刺激 ──→ 环境 ──→ 制品 ──→ 响应 ──→ 响应度量
 (谁)     (什么)   (何时)   (何处)   (怎样)    (多好)
要素 含义 性能示例 可用性示例
刺激源 产生刺激的实体 用户 硬件故障
刺激 到达系统的事件 请求到达 服务器宕机
环境 刺激发生时的条件 峰值负载 正常运行
制品 被刺激的部分 处理模块 整个系统
响应 系统的反应 处理请求 切换备用
响应度量 响应的可度量属性 <2秒 <30秒恢复

4.2 六要素记忆要点

  • 前三个(刺激源、刺激、环境)描述"输入侧"
  • 后三个(制品、响应、响应度量)描述"输出侧"
  • 制品是连接输入和输出的桥梁

4.3 场景的分类

场景类型 来源 用途
用例场景 涉众直接提出 反映实际使用情况
生长场景 涉众提出但非当前用例 反映未来演化需求
探索场景 评估团队设计 探索架构边界/极限

5. 评估方法分类(三类)

5.1 基于调查问卷(或检查表)的方法

特征 说明
原理 通过问卷/检查表让相关人员回答预设问题
优点 简单易行、成本低、可快速进行
缺点 主观性强、依赖回答者经验、难以量化
适用 初步评估、快速筛查
代表 CATAM(CMU SEI的问卷式ATAM变体)

5.2 基于度量的方法

特征 说明
原理 对架构的某些属性建立度量模型,量化计算
优点 客观、可量化、可比较
缺点 需要建立度量模型、度量指标难定义、需工具支持
适用 有成熟度量模型的项目
代表 基于耦合度/内聚度的度量、架构依赖矩阵分析

5.3 基于场景的方法 ★(最主流、最重要)

特征 说明
原理 用场景激发质量属性,分析架构对场景的支持程度
优点 针对性强、可操作、结果具体、可权衡多属性
缺点 场景选择依赖经验、需涉众参与
适用 架构设计阶段的质量评估(软考重点)
代表 SAAM、ATAM、CBAM、ARID

5.4 三类方法比较

维度 调查问卷 度量 场景
主观性 高 低 中
量化程度 低 高 中
成本 低 高 中
准确性 低 高 高
适用阶段 早期 后期 设计阶段
软考地位 了解 了解 ★重点

6. 三大场景评估方法详解

6.1 SAAM(Software Architecture Analysis Method)

全称:软件架构分析法(Software Architecture Analysis Method)

特点:

  • 最早的基于场景的架构评估方法(由Kazman等人于1993年提出)
  • 适用于单一质量属性的评估(主要是可修改性)
  • 不考虑多属性间的权衡
  • ATAM的前身

SAAM的五步骤:

步骤1: 形成场景
  └─ 涉众提出场景,收集所有关心的变更/使用场景

步骤2: 描述体系结构(架构)
  └─ 架构师描述架构方案,用组件-连接关系图表示

步骤3: 对场景进行分类和优先级排序
  ├─ 分类: 直接场景(不需修改即可支持) vs 间接场景(需修改才能支持)
  └─ 排序: 涉众对场景投票,确定优先级

步骤4: 对单个场景进行评估
  └─ 对每个间接场景,确定需要修改的组件,估计修改工作量

步骤5: 评估场景的相互作用
  └─ 分析多个场景是否影响同一组件,相互作用多→该组件可能职责过重

SAAM关键概念:

  • 直接场景:当前架构无需修改即可支持的场景
  • 间接场景:需要修改架构才能支持的场景(评估重点)
  • 场景交互:多个场景影响同一组件,表明该组件耦合度高

6.2 ATAM(Architecture Trade-off Analysis Method)★核心

全称:架构权衡分析法(Architecture Trade-off Analysis Method)

特点:

  • 在SAAM基础上发展而来(CMU SEI, 2000)
  • 适用于多质量属性的权衡分析
  • 核心输出:敏感点、权衡点、风险点、非风险点
  • 软考最重要的评估方法

ATAM的九步骤:

阶段 步骤 名称 说明
呈现与收集 1 ATAM方法的呈现 评估负责人向涉众介绍ATAM方法
2 商业动机的呈现 项目决策者介绍商业目标、约束、驱动因素
3 架构的呈现 架构师呈现待评估架构方案
分析与评估 4 对架构方法进行分类 识别架构中使用的风格/模式/策略
5 生成质量属性效用树 构建效用树,确定高优先级场景
6 分析架构方法 针对高优先级场景分析架构,找敏感点/权衡点/风险点
场景与再分析 7 讨论和分级场景 涉众提出更多场景(用例场景+探索场景),投票分级
8 再次分析架构方法 对新高优先级场景重复步骤6的分析
结果呈现 9 呈现结果 汇总并呈现评估结果

ATAM九步骤分四个阶段:

阶段一: 呈现与收集 (步骤1-3) → 方法/动机/架构
阶段二: 分析与评估 (步骤4-6) → 分类/效用树/分析
阶段三: 场景与再分析 (步骤7-8) → 场景讨论/再分析
阶段四: 结果呈现 (步骤9) → 汇总输出

ATAM核心概念详解:

概念 定义 示例
敏感点 一个架构属性参数,该参数变化会影响某一质量属性 缓存大小→影响性能
权衡点 一个架构属性参数,该参数变化会影响多个质量属性 缓存大小→影响性能(↑)和内存占用(↑)
风险点 架构决策中可能引起问题的决策 未设置数据库连接池上限
非风险点 架构决策中经分析不会引起问题的决策 使用成熟的负载均衡方案

敏感点与权衡点的关系:

权衡点 ⊆ 敏感点

权衡点一定是敏感点(影响多个→必然影响某一个)
敏感点不一定是权衡点(只影响一个→不构成权衡)

例:
  缓存大小影响性能 → 性能敏感点
  缓存大小影响内存 → 内存敏感点
  缓存大小同时影响性能和内存 → 权衡点

6.3 CBAM(Cost Benefit Analysis Method)

全称:成本效益分析法(Cost Benefit Analysis Method)

特点:

  • 在ATAM基础上发展而来
  • 在质量属性分析基础上,进一步考虑经济成本
  • 对架构策略进行成本-效益分析,辅助经济决策

CBAM的基本思路:

  1. 继承ATAM的评估结果(场景、架构策略)
  2. 估计每个架构策略的成本
  3. 估计每个架构策略对场景的效益(效用收益)
  4. 计算效益/成本比(收益效用÷成本)
  5. 选择效益成本比最优的策略

CBAM步骤:

步骤 名称 说明
1 整理ATAM结果 收集场景、架构策略、响应度量
2 确定策略成本 估计实施每个策略的成本
3 确定策略收益 估计策略对质量属性的效用提升
4 计算期望值 效益期望 = Σ(场景概率 × 效用收益)
5 计算效益成本比 选择比值最高的策略

6.4 ARID方法(了解)

全称:Active Reviews for Intermediate Designs(中间设计主动评审)

  • 用于评估部分完成的架构设计
  • 适用于架构尚未全部完成时的阶段性评估
  • 软考了解即可

7. 效用树(Utility Tree)详解

7.1 效用树的结构

效用树是ATAM方法步骤5的核心工具,用于系统地组织质量属性和场景:

Utility (根节点 - 效用)
├── 性能
│   ├── 响应时间
│   │   ├── 场景1 (I:H, D:M)  ← 重要度高、难度中
│   │   └── 场景2 (I:M, D:H)
│   └── 吞吐量
│       └── 场景3 (I:H, D:H)
├── 可用性
│   ├── 故障恢复
│   │   └── 场景4 (I:H, D:L)
│   └── 数据持久性
│       └── 场景5 (I:M, D:M)
├── 安全性
│   └── 抗攻击
│       └── 场景6 (I:H, D:H)
├── 可修改性
│   └── 功能扩展
│       └── 场景7 (I:M, D:L)
├── 可测试性
│   └── ...
└── 易用性
    └── ...

7.2 效用树的层级

层级 内容 示例
第0层(根) Utility(效用) Utility
第1层 质量属性 性能、可用性、安全性…
第2层 质量属性细化 响应时间、吞吐量、故障恢复…
第3层(叶子) 具体场景 + (重要度I, 难度D) 场景(I:H, D:M)

7.3 重要度与难度评级

每个叶子节点场景标注两个评级:

评级 含义 取值
I(Importance) 场景对业务的重要程度 H(高)、M(中)、L(低)
D(Difficulty) 架构实现该场景的难度 H(高)、M(中)、L(低)

优先级判断:

  • (H, H):重要且难 → 最高优先级,必须重点分析
  • (H, L):重要但容易 → 次高优先级
  • (L, H):不重要但难 → 较低优先级
  • (L, L):不重要且容易 → 最低优先级

考点:ATAM优先分析 (H,H) 的场景,因为它们既重要又难以实现,风险最高。


8. 场景映射(质量属性→评估方法)

质量属性 首选方法 场景类型 关键分析内容
可修改性 SAAM 变更请求 修改组件、修改工作量、场景交互
性能 ATAM 事件到达 响应时间、吞吐量、瓶颈分析
可用性 ATAM 故障发生 MTTF/MTTR、冗余策略、故障恢复
安全性 ATAM 攻击尝试 认证授权、加密、攻击面分析
可测试性 ATAM 测试执行 可控性、可观察性、测试覆盖
易用性 ATAM 用户操作 界面反馈、操作流程、错误处理
多属性权衡 ATAM 多类场景 敏感点、权衡点、风险点
经济决策 CBAM ATAM结果 成本效益比、策略选择

9. 选型比较(SAAM vs ATAM vs CBAM)

比较维度 SAAM ATAM CBAM
全称 Software Architecture Analysis Method Architecture Trade-off Analysis Method Cost Benefit Analysis Method
中文名 软件架构分析法 架构权衡分析法 成本效益分析法
提出时间 1993年 2000年 2001年
评估属性 单一属性(可修改性) 多属性权衡 多属性+经济成本
步骤数 5步 9步 5步(基于ATAM结果)
核心输出 场景交互分析 敏感点/权衡点/风险点 效益成本比
权衡分析 无 有 有(含经济权衡)
效用树 无 有 继承ATAM
成本考虑 无 无 有
复杂度 低 高 最高
关系 ATAM的前身 SAAM的扩展 ATAM的扩展
软考地位 重要 ★最重要 了解

方法演进关系:

SAAM (1993, 单属性)
  ↓ 扩展
ATAM (2000, 多属性权衡) ★核心
  ↓ 扩展
CBAM (2001, 多属性+成本)

10. 易混陷阱(高频易错点辨析)

序号 易混点 正确理解 常见错误
1 敏感点 vs 权衡点 权衡点影响多个质量属性,敏感点影响某一个 认为敏感点影响多个属性
2 权衡点与敏感点关系 权衡点一定是敏感点,反之不成立 认为两者无包含关系
3 风险点 vs 非风险点 风险点可能引起问题,非风险点不会 认为风险点一定引起问题
4 SAAM评估的属性 SAAM主要评估可修改性(单属性) 认为SAAM可评估多属性
5 ATAM评估的属性 ATAM评估多属性权衡 认为ATAM只评估单一属性
6 场景6要素 刺激源、刺激、环境、制品、响应、响应度量 漏掉"环境"或"制品"
7 可用性公式 A = MTTF/(MTTF+MTTR) 误用 A = MTTF/MTTR
8 MTBF与MTTF关系 MTBF = MTTF + MTTR 认为MTBF = MTTF
9 评估时机 架构设计后、详细设计前 认为在编码后评估
10 评估关注点 关注质量属性(非功能需求) 认为评估功能正确性
11 效用树叶节点 场景标注(I重要度, D难度) 认为标注(优先级, 成本)
12 ATAM优先分析 优先分析(H,H)场景 认为优先分析(H,L)场景
13 直接场景 vs 间接场景 直接场景无需修改,间接场景需修改 混淆两者定义
14 CBAM基础 CBAM基于ATAM结果扩展 认为CBAM独立于ATAM
15 场景来源 用例场景(涉众)+生长场景(涉众)+探索场景(评估组) 忽略探索场景

11. 避坑实践

11.1 评估过程避坑

陷阱 后果 对策
场景选择不充分 遗漏关键质量属性 涉众广泛参与+评估组补充探索场景
只关注直接场景 忽略架构修改需求 重视间接场景的分析
忽略场景交互 组件职责过重未发现 SAAM步骤5必须执行
效用树构建不完整 质量属性遗漏 六大属性逐一展开
评级主观随意 优先级失真 涉众投票+讨论确定
混淆敏感点和权衡点 权衡分析错误 严格按定义判断影响属性数量

11.2 答题避坑

陷阱 对策
把"影响多个属性"的参数判为敏感点 影响多个→权衡点;影响一个→敏感点
可用性计算用错公式 牢记 A = MTTF/(MTTF+MTTR)
漏写场景6要素 背"刺源刺激环境,制品响应度量"
SAAM/ATAM步骤记混 SAAM=5步,ATAM=9步,记"5-9"
ATAM步骤顺序错 记四阶段:呈现收集→分析评估→场景再分析→结果呈现

12. 关联图(知识点关系图)

                    ┌──────────────┐
                    │  架构评估     │
                    └──────┬───────┘
                           │
              ┌────────────┼────────────┐
              │            │            │
        ┌─────┴─────┐ ┌───┴───┐ ┌─────┴─────┐
        │调查问卷    │ │ 度量  │ │ 基于场景★ │
        └───────────┘ └───────┘ └─────┬─────┘
                                         │
                          ┌──────────────┼──────────────┐
                          │              │              │
                    ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
                    │   SAAM    │ │   ATAM★   │ │   CBAM    │
                    │  (5步)    │ │  (9步)    │ │  (5步)    │
                    │ 单属性    │ │ 多属性权衡│ │ 成本效益  │
                    └─────┬─────┘ └─────┬─────┘ └───────────┘
                          │              │
                          │    ┌─────────┼─────────┐
                          │    │         │         │
                          │  敏感点   权衡点    风险点
                          │    │         │         │
                          │    └────┬────┘         │
                          │         │              │
                          │    权衡点⊆敏感点       │
                          │                        │
                    ┌─────┴────────────────────────┴─────┐
                    │         效用树(Utility Tree)        │
                    │  Utility→属性→细化→场景(I,D)        │
                    └────────────────────────────────────┘

  质量属性场景(6要素): 刺激源→刺激→环境→制品→响应→响应度量

  六大质量属性: 性能 | 可用性 | 安全性 | 可修改性 | 可测试性 | 易用性

13. 双轨口诀

13.1 顺口溜口诀

六大质量属性:

性安安改测易  →  性能、安全、可用、可改、可测、易用
口诀: "信安安改测试"(性能-安全-可用-可修改-可测试-易用)

场景6要素:

刺源刺激环境,制品响应度量
口诀: "谁什么事何时何地,怎么做多好"

SAAM五步:

形成场景 → 描述架构 → 分类排序 → 单场景评估 → 场景交互
口诀: "形描分单交"(形描分单交,五步SAAM)

ATAM九步:

呈现方法 → 商业动机 → 架构呈现 → 方法分类 → 效用树 →
分析架构 → 场景分级 → 再分析 → 呈现结果
口诀: "方商架分树,析场再呈"(九步ATAM)

ATAM四阶段:

呈现收集 → 分析评估 → 场景再分析 → 结果呈现
口诀: "呈析场呈"(呈现-分析-场景-呈现)

敏感点/权衡点/风险点:

敏感单,权衡多,风险可能错,非风险不会错
口诀: "单敏多衡,险可非不"

可用性公式:

A = MTTF / (MTTF + MTTR)
口诀: "无故障除以总周期"(MTTF÷MTBF)

13.2 谐音口诀

三大方法:

SAAM → "傻"(单属性,简单最早)
ATAM → "啊叹"(多属性权衡,叹为观止,最核心)
CBAM → "西班"(成本效益,西班牙式精打细算)
联想: "傻人先做(SAAM最早),啊叹权衡(ATAM核心),西班算钱(CBAM成本)"

六大质量属性谐音:

性能-可用-安全-可修改-可测试-易用
谐音: "信以安改测试" → "性安安改测易"
联想: "信(性能)以安(可用)安(安全)改(可修改)测(可测试)易(易用)"

场景6要素谐音:

刺激源-刺激-环境-制品-响应-响应度量
谐音: "源激境品应量"
联想: "原(源)鸡(激)进(境)瓶(品)应(应)量(量)"
     → "原鸡进瓶应量" = 一只原鸡进瓶子看反应量

SAAM五步谐音:

形成-描述-分类-单评-交互
谐音: "形描分单交"
联想: "形(形成)描(描述)分(分类)单(单评)交(交互)"
     → "熊描分单交" = 熊描画分单个交

ATAM九步谐音:

方-商-架-分-树-析-场-再-呈
谐音: "方商架分树,析场再呈"
联想: "方(方法)商(商业)架(架构)分(分类)树(效用树)"
     → "方商架分树" = 方丈上架分树(方丈爬上架树分树杈)
     "析(分析)场(场景)再(再析)呈(呈现)"
     → "析场再呈" = 洗场再呈(洗完场地再呈现)

敏感点vs权衡点谐音:

敏感点 → "敏单"(敏感影响单一)
权衡点 → "衡多"(权衡影响多个)
口诀: "敏单衡多,衡必是敏"
联想: "敏感的人只盯一个,权衡的人考虑多个;权衡者必敏感"

14. 速记总表(考前速查表)

14.1 评估方法速记表

方法 全称 步骤数 评估属性 核心输出 关系
SAAM Software Architecture Analysis Method 5 单属性(可修改性) 场景交互 最早
ATAM Architecture Trade-off Analysis Method 9 多属性权衡 敏感点/权衡点/风险点 SAAM扩展★
CBAM Cost Benefit Analysis Method 5 多属性+成本 效益成本比 ATAM扩展
ARID Active Reviews for Intermediate Designs - 部分架构 阶段性评估 了解

14.2 ATAM核心概念速记表

概念 定义 影响范围 包含关系
敏感点 参数变化影响某一质量属性 单一属性 被权衡点包含
权衡点 参数变化影响多个质量属性 多个属性 ⊆敏感点
风险点 可能引起问题的架构决策 - -
非风险点 不会引起问题的架构决策 - -

14.3 质量属性速记表

属性 刺激 响应度量 关键公式
性能 事件到达 响应时间/吞吐量 N=X×R
可用性 故障发生 可用性比例 A=MTTF/(MTTF+MTTR)
安全性 攻击尝试 攻击成功率 CIA
可修改性 变更请求 修改工作量 -
可测试性 测试执行 覆盖率 可控+可观察
易用性 用户操作 完成时间 -

14.4 场景6要素速记表

序号 要素 含义 记忆
1 刺激源 产生刺激的实体 谁
2 刺激 到达系统的事件 什么
3 环境 刺激发生的条件 何时
4 制品 被刺激的部分 何处
5 响应 系统的反应 怎样
6 响应度量 可度量的响应属性 多好

14.5 SAAM五步速记表

步骤 名称 记忆
1 形成场景 形
2 描述架构 描
3 场景分类与优先级排序 分
4 单个场景评估 单
5 场景交互评估 交

14.6 ATAM九步速记表

阶段 步骤 名称 记忆
呈现收集 1 ATAM方法呈现 方
2 商业动机呈现 商
3 架构呈现 架
分析评估 4 架构方法分类 分
5 生成效用树 树
6 分析架构方法 析
场景再分析 7 讨论分级场景 场
8 再次分析架构 再
结果呈现 9 呈现结果 呈

14.7 可用性计算速记表

指标 全称 公式
MTTF Mean Time To Failure 平均无故障时间
MTTR Mean Time To Repair 平均修复时间
MTBF Mean Time Between Failures MTTF + MTTR
A Availability MTTF/(MTTF+MTTR) × 100%

14.8 可用性等级速记表

9的个数 可用性 年停机时间
2 99% 3.65天
3 99.9% 8.76小时
4 99.99% 52.6分钟
5 99.999% 5.26分钟
6 99.9999% 31.5秒

15. 典型考题

15.1 选择题

【题1】 在ATAM方法中,()是指一个架构属性参数的变化会影响多个质量属性。

  • A. 敏感点
  • B. 权衡点
  • C. 风险点
  • D. 非风险点

答案:B
解析:权衡点是指影响多个质量属性的参数;敏感点只影响某一个质量属性。权衡点一定是敏感点,反之不成立。


【题2】 软件架构评估的主要目的不包括()。

  • A. 降低维护成本
  • B. 减少修复风险
  • C. 验证功能正确性
  • D. 发现潜在问题

答案:C
解析:架构评估关注的是质量属性(非功能需求),而非功能正确性。功能正确性由测试保证。


【题3】 以下关于SAAM和ATAM的叙述中,错误的是()。

  • A. SAAM是最早的基于场景的架构评估方法
  • B. ATAM是在SAAM基础上发展而来的
  • C. SAAM适用于多质量属性的权衡分析
  • D. ATAM的核心输出包括敏感点、权衡点和风险点

答案:C
解析:SAAM适用于单一质量属性(主要是可修改性)的评估,不考虑多属性权衡。多属性权衡是ATAM的特点。


【题4】 某系统的MTTF为99小时,MTTR为1小时,则该系统的可用性为()。

  • A. 98%
  • B. 99%
  • C. 99.9%
  • D. 99.99%

答案:B
解析:A = MTTF/(MTTF+MTTR) × 100% = 99/(99+1) × 100% = 99/100 × 100% = 99%。


【题5】 质量属性场景的6个要素中,不属于输入侧的是()。

  • A. 刺激源
  • B. 刺激
  • C. 环境
  • D. 制品

答案:D
解析:6要素中,前三个(刺激源、刺激、环境)描述输入侧,后三个(制品、响应、响应度量)描述输出侧。制品属于输出侧。


【题6】 ATAM方法中,效用树叶节点场景标注的两个评级是()。

  • A. 优先级和成本
  • B. 重要度和难度
  • C. 风险和收益
  • D. 频率和影响

答案:B
解析:效用树叶节点场景标注重要度I(Importance)和难度D(Difficulty),取值为H/M/L。ATAM优先分析(H,H)场景。


【题7】 SAAM方法中,需要修改架构才能支持的场景称为()。

  • A. 直接场景
  • B. 间接场景
  • C. 用例场景
  • D. 探索场景

答案:B
解析:直接场景是当前架构无需修改即可支持的场景;间接场景是需要修改架构才能支持的场景,是SAAM评估的重点。


【题8】 以下不属于基于场景的架构评估方法的是()。

  • A. SAAM
  • B. ATAM
  • C. CBAM
  • D. CATAM

答案:D
解析:CATAM是基于调查问卷的方法,不是基于场景的方法。SAAM、ATAM、CBAM都是基于场景的方法。


15.2 计算题

【题9】 某电商系统要求年可用性达到99.99%(4个9),即年停机时间不超过52.6分钟。已知该系统由3个串联子系统组成,各子系统MTTF和MTTR如下表,请计算系统整体可用性并判断是否满足要求。

子系统 MTTF(小时) MTTR(小时)
Web层 9990 1
应用层 9990 1
数据层 4995 1

解:

步骤1:计算各子系统可用性

  • Web层:A₁ = 9990/(9990+1) = 9990/9991 ≈ 0.999900
  • 应用层:A₂ = 9990/(9990+1) = 9990/9991 ≈ 0.999900
  • 数据层:A₃ = 4995/(4995+1) = 4995/4996 ≈ 0.999800

步骤2:串联系统可用性 = 各子系统可用性之积

  • A = A₁ × A₂ × A₃
  • A = 0.999900 × 0.999900 × 0.999800
  • A ≈ 0.999600

步骤3:换算为停机时间

  • 年停机时间 = (1 - 0.999600) × 365 × 24 × 60
  • = 0.000400 × 525600
  • = 210.24 分钟

步骤4:判断

  • 要求:≤ 52.6分钟
  • 实际:210.24分钟 > 52.6分钟
  • 结论:不满足99.99%可用性要求

改进建议:数据层MTTF最低,应优先提升数据层可用性(如增加主从冗余)。


【题10】 某系统采用ATAM评估,分析得到以下结果,请识别敏感点、权衡点、风险点。

架构参数 影响的质量属性 影响方向
缓存大小 性能 ↑(增大提升性能)
缓存大小 内存占用 ↑(增大增加内存)
连接池上限 性能 ↑(增大提升性能)
连接池上限 资源占用 ↑(增大增加资源)
连接池上限 (未设置上限) 可能耗尽资源
加密强度 安全性 ↑(增强提升安全)
加密强度 性能 ↓(增强降低性能)

解:

参数 分类 理由
缓存大小 权衡点 同时影响性能(↑)和内存占用(↑),影响多个属性
连接池上限(已设置) 权衡点 同时影响性能(↑)和资源占用(↑)
连接池上限(未设置) 风险点 未设置上限可能耗尽资源,是可能引起问题的架构决策
加密强度 权衡点 同时影响安全性(↑)和性能(↓),影响多个属性
缓存大小→性能 敏感点 影响单一属性(性能),也是权衡点的组成部分
加密强度→安全性 敏感点 影响单一属性(安全性),也是权衡点的组成部分

要点:

  • 权衡点一定是敏感点(影响多个→必然影响某一个)
  • 缓存大小既是性能敏感点,又是内存敏感点,合起来是权衡点

【题11】 某系统在ATAM评估中构建效用树如下,请确定应优先分析的3个场景。

场景 质量属性 重要度(I) 难度(D)
S1 性能 H H
S2 可用性 H L
S3 安全性 M H
S4 可修改性 L L
S5 性能 H M
S6 可用性 H H

解:

ATAM优先分析 (H, H) 场景,因为既重要又难以实现,风险最高。

场景 (I, D) 优先级 是否优先分析
S1 (H, H) 最高 ★是
S6 (H, H) 最高 ★是
S2 (H, L) 次高 否
S5 (H, M) 中 否
S3 (M, H) 较低 否
S4 (L, L) 最低 否

优先分析的3个场景:S1、S6(仅2个(H,H)场景)

若需选第3个,按优先级选 S2(H,L) 或 S5(H,M)——重要度高且难度较低/中,实现风险次高。


【题12】 某系统采用CBAM方法进行架构策略选择,三个策略的成本效益如下,请选择最优策略。

策略 成本(万元) 效益期望(万元)
策略A 50 200
策略B 80 300
策略C 100 350

解:

步骤1:计算各策略效益成本比

  • 策略A:效益/成本 = 200/50 = 4.0
  • 策略B:效益/成本 = 300/80 = 3.75
  • 策略C:效益/成本 = 350/100 = 3.5

步骤2:比较

  • 策略A(4.0) > 策略B(3.75) > 策略C(3.5)

结论:选择策略A,效益成本比最高(4.0)。

变式:若预算上限为90万元,则策略C(100万)超预算被排除,在A和B中选择,仍选策略A。


15.3 简答题

【题13】 简述ATAM方法的九个步骤及其四个阶段。

参考答案:

ATAM方法分四个阶段、九个步骤:

阶段一:呈现与收集

  1. ATAM方法的呈现:评估负责人向涉众介绍ATAM方法
  2. 商业动机的呈现:项目决策者介绍商业目标和约束
  3. 架构的呈现:架构师呈现待评估架构方案

阶段二:分析与评估
4. 对架构方法进行分类:识别架构使用的风格/模式/策略
5. 生成质量属性效用树:构建效用树,确定高优先级场景
6. 分析架构方法:针对高优先级场景找敏感点/权衡点/风险点

阶段三:场景与再分析
7. 讨论和分级场景:涉众提出更多场景,投票分级
8. 再次分析架构方法:对新高优先级场景重复分析

阶段四:结果呈现
9. 呈现结果:汇总评估结果


【题14】 简述敏感点、权衡点、风险点、非风险点的定义及其关系。

参考答案:

概念 定义
敏感点 一个架构属性参数,该参数的变化会影响某一质量属性
权衡点 一个架构属性参数,该参数的变化会影响多个质量属性
风险点 架构决策中可能引起问题的决策
非风险点 架构决策中经分析不会引起问题的决策

关系:

  • 权衡点一定是敏感点(影响多个属性→必然影响某一个),反之不成立
  • 敏感点和权衡点描述的是架构参数对质量属性的影响
  • 风险点和非风险点描述的是架构决策是否有问题

16. 背诵路线建议

第一阶段:核心概念(1天)

  1. 六大质量属性:性能、可用性、安全性、可修改性、可测试性、易用性
    • 口诀:“性安安改测易”
  2. 场景6要素:刺激源、刺激、环境、制品、响应、响应度量
    • 口诀:“源激境品应量”
  3. 可用性公式:A = MTTF/(MTTF+MTTR),MTBF = MTTF + MTTR

第二阶段:三大方法(1天)

  1. SAAM:5步,单属性(可修改性),最早
    • 口诀:“形描分单交”
  2. ATAM:9步,多属性权衡,最核心
    • 口诀:“方商架分树,析场再呈”
  3. CBAM:5步,成本效益,ATAM扩展

第三阶段:ATAM核心(1天)

  1. 敏感点/权衡点/风险点/非风险点定义及关系
    • 口诀:“单敏多衡,衡必是敏”
  2. 效用树结构:Utility→属性→细化→场景(I,D)
    • 优先分析(H,H)场景
  3. ATAM四阶段:呈现收集→分析评估→场景再分析→结果呈现

第四阶段:计算与综合(1天)

  1. 可用性计算:串联=各可用性之积,并联=1-各不可用性之积
  2. 敏感点/权衡点识别:看影响属性数量
  3. CBAM效益成本比计算
  4. 效用树优先级排序

第五阶段:口诀固化(0.5天)

  1. 反复背诵所有双轨口诀
  2. 默写速记总表

考前速记清单

□ 六属性: 性安安改测易
□ 6要素: 源激境品应量
□ SAAM 5步: 形描分单交 (单属性-可修改性)
□ ATAM 9步: 方商架分树析场再呈 (多属性权衡)
□ ATAM 4阶段: 呈析场呈
□ 敏感点: 影响单一属性
□ 权衡点: 影响多个属性 (权衡⊆敏感)
□ 风险点: 可能出问题
□ 非风险点: 不会出问题
□ 可用性: A=MTTF/(MTTF+MTTR), MTBF=MTTF+MTTR
□ 效用树: Utility→属性→细化→场景(I,D)
□ 优先分析: (H,H)场景
□ CBAM: 效益/成本比最高
□ 评估时机: 架构设计后、详细设计前
□ 评估关注: 质量属性(非功能需求)

文档说明:本文档为软考系统架构设计师「架构评估」知识点单一总文档,覆盖评估基础理论、三大评估方法(SAAM/ATAM/CBAM)、质量属性场景、ATAM核心概念、效用树、计算题型、易混陷阱、双轨口诀、速记总表、典型考题及背诵路线全链路。重点掌握ATAM方法(9步骤+敏感点/权衡点/风险点)和可用性计算公式。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。