第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. 质量属性场景(六元素)

  • 精确描述质量属性的手段
  • 六元素
    1. 刺激源:谁产生刺激(人、外部系统、硬件)
    2. 刺激:什么事件到达系统
    3. 环境:刺激发生时系统状态(正常、过载、降级)
    4. 制品:被刺激的系统部分(系统、子系统、构件)
    5. 响应:系统对刺激的反应
    6. 响应度量:响应是否满足要求的度量标准
  • 考试角度:常考六元素的对应关系

4. ATAM架构权衡分析方法

  • 最早全面关注多个质量属性的评估方法
  • 主要关注4种质量属性:性能、安全性、可修改性、可用性
  • 核心工具效用树(对质量属性进行分类和优先级排序)
  • 评估步骤
    1. 描述评估方法
    2. 描述业务驱动
    3. 描述架构
    4. 识别架构方法
    5. 生成质量属性效用树
    6. 分析架构方法
    7. 头脑风暴和场景优先级排序
    8. 再次分析架构方法
    9. 生成评估报告
  • 输出:敏感点、权衡点、风险点、非风险点
    • 敏感点:影响一个质量属性的参数
    • 权衡点:影响多个质量属性的参数
    • 风险点:可能导致风险的架构决策

5. SAAM架构可修改性分析方法

  • 最早形成文档并广泛使用的架构分析方法
  • 主要关注:可修改性
  • 核心过程
    1. 形成场景
    2. 描述架构
    3. 对场景进行分类(直接场景/间接场景)
    4. 对间接场景进行评估
  • 与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关注:可修改性
  • 识别技巧:故障→可用性、速度→性能、权限→安全、扩展→可修改、界面→易用