Skip to content

考点清单

  • [x] 六大质量属性:性能/可用性/安全性/可修改性/可测试性/易用性
  • [x] 质量属性场景六要素
  • [x] ATAM 架构权衡分析法
  • [x] SAAM 软件架构分析方法
  • [x] 敏感点、权衡点与风险决策
  • [x] 效用树(Utility Tree)
  • [x] 质量属性与架构策略对应关系

笔记

一、质量属性概述

软件系统质量属性(Quality Attribute)是一个系统的可测量或可测试的属性,用来描述系统满足利益相关者需求的程度。

质量属性场景六要素:

  1. 刺激源(Source)— 谁发出的刺激
  2. 刺激(Stimulus)— 触发系统的事件
  3. 环境(Environment)— 事件发生时的条件
  4. 制品(Artifact)— 被影响的系统组成部分
  5. 响应(Response)— 系统对刺激的反应行为
  6. 响应度量(Response Measure)— 可量化的评估指标

简化三要素(场景最小描述):刺激、环境、响应


二、六大核心质量属性 ★

性能(Performance):

  • 系统的响应能力:响应时间(多久响应)、吞吐量(单位时间处理事件个数)
  • 典型场景:"并发 10 万用户时,请求响应时间 < 3 秒"
  • 架构策略:资源调度引入并发、增加计算资源

可用性(Availability):

  • 系统故障后恢复并继续提供服务的能力
  • 指标:MTBF(故障间隔时间)、MTTR(修复时间)
  • 典型场景:"主站宕机后,10 秒内自动切换至备用站点"
  • 架构策略:心跳(故障检测)、主动冗余(主备切换)

安全性(Security):

  • 抵御恶意攻击的能力
  • 典型场景:"防止 99% 黑客攻击"、"对恶意操作进行报警和记录"
  • 架构策略:追踪审计检测攻击权限控制

可修改性(Modifiability):

  • 定位修改点并实施修改的难易程度
  • 典型场景:"二次开发时间不超过 3 个月"、"功能调整不超过 1 人月"
  • 包含:可维护性、可扩展性、结构重构、可移植性
  • 架构策略:抽象接口信息隐藏接口-实现分离

可测试性(Testability):

  • 验证系统行为的难易程度
  • 架构策略:记录/回放、内置监控器

易用性(Usability):

  • 用户使用体验
  • 典型刺激:学习系统特性、有效使用系统、使错误影响最低、适配系统、对系统满意
  • 注意区分:易用性聚焦 "用户使用体验",可用性聚焦 "系统在线时间"

三、质量属性-架构策略速查表 ★

质量属性典型场景关键词首选架构策略
性能响应时间、并发用户数、时延资源调度、引入并发
可用性宕机切换、自动恢复、双机热备心跳主动冗余
安全性防攻击、加密、入侵检测、报警记录追踪审计、检测攻击
可修改性二次开发、功能调整、替换中间件抽象接口、接口-实现分离
可测试性测试、验证记录/回放、内置监控器
易用性操作一致性、用户满意度、学习成本

四、敏感点、权衡点与风险决策 ★

概念定义关键特征
敏感点一个或多个构件/关系的特性,其微小变化会对某个质量属性产生显著影响影响单个质量属性
权衡点影响多个质量属性的特性,是多个质量属性的敏感点涉及多属性取舍
风险点可能导致架构失败的决策潜在负面结果
非风险点对质量属性无显著影响的决策可接受

典型考题:改变加密级别 → 权衡点(影响安全性 ↑ + 性能 ↓)

识别规律:

  • 只涉及一个质量属性 → 敏感点
  • 涉及两个及以上质量属性的取舍 → 权衡点

五、ATAM(架构权衡分析方法)

ATAM 主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。

四大活动阶段:

  1. 场景和需求收集
  2. 架构视图和场景实现
  3. 属性模型构造和分析(核心步骤)
  4. 折中(权衡分析)

效用树(Utility Tree):

  • ATAM 的重要工具,树形结构从根到叶:树根 → 质量属性 → 属性分类 → 质量属性场景
  • 用于系统化分析架构质量属性,从抽象目标到具体场景分解

核心概念: 整个评估过程强调以属性作为架构评估的核心概念。场景从**风险承担者(Stakeholder)**的角度描述。


六、SAAM(软件架构分析方法)

SAAM 是基于场景的架构分析方法。

三大输入:

  1. 问题描述
  2. 需求声明
  3. 体系结构描述(必需的分析对象)

ATAM vs SAAM 对比:

方法核心特点关键输入
ATAM质量属性建模与折中质量需求、场景
SAAM场景驱动的架构评估架构描述、问题声明