第 3 章 · 质量属性与架构评估
考点梳理
3.1 质量属性(架构设计的核心输入)
| 属性 | 含义 | 常用战术/手段 |
|---|---|---|
| 性能 | 响应时间、吞吐量 | 缓存、负载均衡、异步处理、资源池、并发优化 |
| 可用性 | 正常运行时间比例 | 冗余(主备/双活)、心跳检测、故障转移、集群 |
| 安全性 | 防未授权访问与攻击 | 认证授权、加密、审计、最小权限、隔离 |
| 可修改性 | 修改的代价与效率 | 分层、模块化、松耦合、接口稳定、配置化 |
| 可测试性 | 便于测试与定位缺陷 | 可观测性、日志与监控、依赖注入、接口mock |
| 易用性 | 用户使用效率与体验 | 一致界面、操作引导、错误提示、可访问性 |
记忆锚:性能、可用、安全、可改、可测、易用——"能、用、安、改、测、易"。
3.2 架构评估关键术语(必考)
| 术语 | 含义 |
|---|---|
| 敏感点(Sensitivity Point) | 对某个质量属性有显著影响的架构决策点 |
| 权衡点(Tradeoff Point) | 同时影响多个质量属性(可能此消彼长)的决策点 |
| 风险点(Risk) | 可能导致质量属性不达标的潜在隐患 |
| 非风险点(Non-risk) | 已确认可接受或无风险的决策 |
记忆锚:敏感=影响一个属性;权衡=影响多个属性;风险=可能出问题;非风险=确认没事。
3.3 架构评估方法
- SAAM(软件架构分析方法):最早的方法,基于场景评估可修改性等属性;
- ATAM(架构权衡分析方法):在 SAAM 基础上扩展,围绕质量属性场景识别敏感点、权衡点与风险点,并明确属性之间的权衡;
- CBAM(成本效益分析法):在 ATAM 基础上引入经济性(成本效益)决策。
3.4 质量属性场景的六要素
刺激源 → 刺激 → 环境 → 制品 → 响应 → 响应度量(例:“在正常运行(环境)下,用户(刺激源)发起查询(刺激),系统应在 2 秒内返回结果(响应与度量)")。
场景六要素是从需求到架构设计的桥梁:写论文与答案例时用它把"需求"落到"架构决策”。
🧠 记忆工具箱
口诀速记
- 六属性:能、用、安、改、测、易;
- 评估术语:敏感一个、权衡多个、风险隐患、非风险放心;
- 评估三方法:SAAM 看场景(早)、ATAM 抓权衡(全)、CBAM 算成本(钱);
- 场景六要素:源、激、境、制、应、度。
例题(带解析)
例题 1:某架构决策在提升系统性能的同时降低了可修改性。该决策点属于? A. 敏感点 B. 权衡点 C. 非风险点 D. 无关决策 答案 B。解析:同时影响多个质量属性(性能↑、可修改性↓)的决策点是权衡点;只影响单个属性的是敏感点。
例题 2:在架构评估中,围绕质量属性场景识别敏感点、权衡点与风险点,并分析属性之间取舍的方法是? A. SAAM B. ATAM C. CBAM D. 功能点分析 答案 B。解析:ATAM 在场景基础上系统识别敏感点、权衡点与风险点;SAAM 更早、更侧重场景评估;CBAM 进一步引入成本效益分析。
⚠️ 易错提醒
- 敏感点与权衡点的区别在于"影响一个还是多个质量属性",答题时看题干的属性个数;
- 风险点 ≠ 权衡点:权衡点是"有得有失的决策",风险点是"可能导致不达标的隐患";
- 可用性战术关键词是冗余与故障转移,性能战术关键词是缓存与负载均衡,别互换;
- 质量属性场景必须可度量(如"2 秒内"“99.9%"),否则无法评估。