第8章 系统质量属性与架构评估
⚠️ 案例第1题必考质量属性识别,务必熟练掌握
核心知识点
1. 质量属性分类
- 运行期质量属性:性能、可用性、安全性、易用性
- 开发期质量属性:可修改性、可测试性、可移植性、可复用性
2. 六大质量属性详解(案例必考)
2.1 性能 Performance
- 定义:系统响应能力,即对事件做出响应的时间
- 关键指标:响应时间、吞吐量、并发用户数
- 场景关键词:在X时间内完成Y、XX秒内响应、XX分钟内提供
- 对应真题:
- "一分钟内提供硬件和资源" → 性能
- "5秒内提供队列信息" → 性能
- "吞吐率达到XX" → 性能
2.2 可用性 Availability
- 定义:系统正常工作时间所占比例,以及故障恢复能力
- 子属性:容错性、健壮性、可恢复性
- 场景关键词:故障不影响、自动切换、定位故障、提供日志、异常隔离
- 对应真题:
- "异常请求不影响用户正常工作" → 可用性(容错)
- "数据库故障自动切换到备用数据库" → 可用性
- "15秒内定位故障、解决故障" → 可用性(可维护性)
- "提供操作日志" → 可用性(可维护性)
- "发送消息通知管理员" → 可用性(异常处理)
2.3 安全性 Security
- 定义:保护信息和数据不被未授权访问、修改、破坏
- 子属性:机密性、完整性、不可否认性、可审计性
- 场景关键词:防止未授权、保护隐私、注册用户才能使用、远程访问控制
- 对应真题:
- "保护用户隐私,防止未授权访问" → 安全性
- "仅提供给系统注册用户使用" → 安全性
- "支持远程修改,仅注册用户" → 安全性
2.4 可修改性 Modifiability
- 定义:在不影响系统其他部分的情况下,能够快速修改或扩展系统
- 子属性:可维护性、可扩展性、结构重组、可移植性
- 场景关键词:扩展能力、快速部署、新增功能、X天内完成
- 对应真题:
- "3天内完成新功能部署" → 可修改性
2.5 易用性 Usability
- 定义:系统易于使用、学习和操作的程度
- 场景关键词:界面适配、多语言、帮助文档、快捷键、用户友好
- 对应真题:
- "界面能调整屏幕适配比例" → 易用性
- "支持多语音界面、操作指南和文档" → 易用性
- "符合用户习惯的默认快捷键" → 易用性
2.6 互操作性 Interoperability
- 定义:系统与其他系统交换数据和调用服务的难易程度
- 场景关键词:与其他系统对接、数据交换、API调用
- 对应真题:
- "与其他系统交换数据" → 互操作性
3. 质量属性场景(六元素)
- 精确描述质量属性的手段
- 六元素:
- 刺激源:谁产生刺激(人、外部系统、硬件)
- 刺激:什么事件到达系统
- 环境:刺激发生时系统状态(正常、过载、降级)
- 制品:被刺激的系统部分(系统、子系统、构件)
- 响应:系统对刺激的反应
- 响应度量:响应是否满足要求的度量标准
- 考试角度:常考六元素的对应关系
4. ATAM架构权衡分析方法
- 最早全面关注多个质量属性的评估方法
- 主要关注4种质量属性:性能、安全性、可修改性、可用性
- 核心工具:效用树(对质量属性进行分类和优先级排序)
- 评估步骤:
- 描述评估方法
- 描述业务驱动
- 描述架构
- 识别架构方法
- 生成质量属性效用树
- 分析架构方法
- 头脑风暴和场景优先级排序
- 再次分析架构方法
- 生成评估报告
- 输出:敏感点、权衡点、风险点、非风险点
- 敏感点:影响一个质量属性的参数
- 权衡点:影响多个质量属性的参数
- 风险点:可能导致风险的架构决策
5. SAAM架构可修改性分析方法
- 最早形成文档并广泛使用的架构分析方法
- 主要关注:可修改性
- 核心过程:
- 形成场景
- 描述架构
- 对场景进行分类(直接场景/间接场景)
- 对间接场景进行评估
- 与ATAM对比:SAAM关注可修改性,ATAM关注多质量属性权衡
6. CBAM成本效益分析法
- 在ATAM基础上增加成本评估
- 核心:将架构决策与成本效益关联
真题考点映射
| 真题 | 考点 | 章节 | |------|------|------| | 2024上选择题第28题 | ATAM关注4种质量属性 | 08-质量属性 | | 2024上选择题第29题 | SAAM是最早文档化的方法 | 08-质量属性 | | 2024上选择题第34题 | 开发期/运行期质量属性 | 08-质量属性 | | 2024上选择题第35题 | 质量属性场景描述手段 | 08-质量属性 | | 2024上选择题第36题 | 响应(场景六元素之一) | 08-质量属性 | | 2024上选择题第41题 | 可用性定义(正常工作时间占比) | 08-质量属性 | | 2024上选择题第42题 | 互操作性定义 | 08-质量属性 | | 2024上案例题一 | 12个需求→质量属性识别(12分) | 08-质量属性 | | 2025上案例题一 | 12个需求→质量属性识别(12分) | 08-质量属性 | | 2024下案例题一 | 质量属性识别 | 08-质量属性 |
易错点/陷阱
- 性能 vs 可用性:
- "快速响应"看时间要求是否具体(具体时间→性能,"不影响"→可用性)
- "故障恢复能力"是可用性,不是性能
- 可修改性 vs 可用性:
- "扩展新功能"→可修改性
- "故障切换"→可用性
- 安全性 vs 可用性:
- "远程访问限制"→安全性
- "故障不影响其他用户"→可用性
- SAAM是最早形成文档的,ATAM是最早全面关注多质量属性的——两者区别常考
- **质量属性场景的"响应"**描述激励到达后采取的行动,不是刺激源
记忆口诀
- 六大质量属性:性可安易互(性能、可用性、安全性、可修改性、易用性、互操作性)
- 质量属性场景六元素:源刺环制响度(刺激源、刺激、环境、制品、响应、响应度量)
- ATAM四属性:性安可修(性能、安全性、可用性、可修改性)
- ATAM核心工具:效用树
- SAAM关注:可修改性
- 识别技巧:故障→可用性、速度→性能、权限→安全、扩展→可修改、界面→易用