ONEPSOFT | 软考学习知识库
speedrun8|第8章 质量属性与架构评估
文件名约定:speedrun_ 第 8 章 质量属性与架构评估.md(教材准确章名:系统质量属性与架构评估)
一、章节定位
一句话概括:本章讲 " 怎么衡量一个架构好不好 "——先分类质量属性,再用场景描述需求,最后用 SAAM/ATAM(尤其是 ATAM 四阶段与效用树)对架构做权衡评估,是案例与论文的核心方法论章。
二、本章在讲什么(系统性阐述)
盖完楼(架构)之后,怎么向业主证明 " 这楼结实、好用、好改、安全 "?这就是质量属性与架构评估要解决的问题。本章先给出质量属性的全景:按生命周期分为 " 开发期属性 "(易理解、可扩展、可重用、可测试、可维护、可移植)和 " 运行期属性 "(性能、安全、可伸缩、互操作性、可靠性、可用性、鲁棒性);再给出 " 架构评估最关注 " 的一组:性能、可靠性、可用性、安全性、可修改性等。需求用 " 质量属性场景六要素 "(刺激源/刺激/环境/制品/响应/响应度量)来精确描述。最后落地到评估方法:SAAM(最早、重可修改性)与 ATAM(权衡分析、重性能/安全/可修改/可用),ATAM 用 " 效用树 " 对质量目标排序,并识别风险、非风险、敏感点、权衡点。
类比:质量属性就像一栋楼的验收指标——性能=电梯等待时间、可用性=全年不停摆比例、安全性=门禁防非法进入、可修改性=以后改用途的难易。ATAM 评估就像第三方检测机构带着 " 检查清单(效用树)" 来验收,标出哪些设计是风险点、哪些是一改就牵一发动全身的权衡点。
三、教材原文精摘(原封不动,逐子章节全覆盖)
下列段落直接摘自官方教材,未做任何改写,逐子章节给出最关键原文并作解析。
【8.1 软件系统质量属性 原文】" 软件系统质量属性(Quality Attribute)是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者(Stakeholders)需求的程度。"(出自:第 8 章 8.1.1 节)
" 基于软件系统的生命周期,可以将软件系统的质量属性分为开发期质量属性和运行期质量属性 2 个部分。"(出自:第 8 章 8.1.1 节)
" 性能(Performance)是指系统的响应能力……可靠性(Reliability)是软件系统在应用或系统错误面前……维持软件系统的功能特性的基本能力。通常用平均失效等待时间(MTTF)和平均失效间隔时间(MTBF)来衡量。"(出自:第 8 章 8.1.2 节)
" 质量属性场景由 6 部分组成:刺激源(Source)、刺激(Stimulus)、环境(Environment)、制品(Artifact)、响应(Response)、响应度量(Measurement)。"(出自:第 8 章 8.1.3 节)
【8.2 系统架构评估 原文】" 敏感点(Sensitivity Point)和权衡点(Tradeoff Point):敏感点是一个或多个构件(和/或构件之间的关系)的特性;权衡点是影响多个质量属性的特性,是多个质量属性的敏感点 "(出自:第 8 章 8.2.1 节)
"SAAM(Scenarios-based Architecture Analysis Method)是卡耐基梅隆大学软件工程研究所于 1983 年提出的一种非功能质量属性的架构分析方法……可修改性是 SAAM 分析的主要质量属性。"(出自:第 8 章 8.2.2 节)
"ATAM 被分为 4 个主要的活动领域(或阶段):场景和需求收集、架构视图和场景实现、属性模型构造和分析、折中。"(出自:第 8 章 8.2.2 节)
"ATAM 采用效用树(Utility tree)这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根—质量属性—属性分类—质量属性场景(叶子节点)。"(出自:第 8 章 8.2.2 节)
【8.3 ATAM 方法架构评估实践 原文】" 使用 ATAM 评估软件体系结构,其工作分为 4 个基本阶段,即演示、调查和分析、测试和报告 ATAM。"(出自:第 8 章 8.3.1 节)
" 阶段 2……第 5 步生成质量属性效用树;第 6 步分析体系结构方法。"(出自:第 8 章 8.3.2 节)
" 效用树以 ' 效用 ' 作为根结点,质量属性构成效用树的辅助级别;沿两个维度进行优先顺序:每个场景对系统成功的重要性以及实现难易程度(高 H、中 M、低 L)。"(出自:第 8 章 8.3.2 节)
" 第 6 步找出风险、非风险、敏感点和权衡点:风险是架构中的一个问题点;非风险是架构的优势;敏感点是对实现给定质量属性至关重要的组件属性;若架构对多个属性敏感则称权衡点。"(出自:第 8 章 8.3.2 节)
" 阶段 3……第 7 步:头脑风暴和优先场景(用例场景、增长场景、探索性场景)。"(出自:第 8 章 8.3.3 节)
" 阶段 4……主要发现通常包括:一种效用树、一组生成的场景、一组分析问题、一套确定的风险和非风险、确定的架构方法。"(出自:第 8 章 8.3.4 节)
逐段讲解(紧贴上面原文,一段一解):
四、核心知识树
第 8 章 质量属性与评估
├── 质量属性
│ ├── 开发期属性
│ └── 运行期属性
├── 场景描述
│ └── 六要素
├── 评估概念
│ ├── 敏感点
│ └── 权衡点
├── 评估方法
│ ├── SAAM
│ └── ATAM
└── ATAM 实践
└── 四阶段 + 效用树
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 质量属性 | 可测量/可测试、满足 stakeholder 需求 | 楼的验收指标 | 选择/案例 |
| 性能 | 响应能力/单位时间处理事件数 | 电梯等待时长 | 选择 |
| 可用性 | 系统正常运行时间比例 | 全年不停摆比例 | 选择 |
| 场景六要素 | 刺激源/刺激/环境/制品/响应/响应度量 | 质量需求句式模板 | 案例/论文 |
| 敏感点 | 对实现某质量属性至关重要的构件特性 | 单属性命门 | 案例/选择 |
| 权衡点 | 影响多个质量属性的特性 | 一动牵全身 | 案例/选择 |
| SAAM | 1983 CMU,重可修改性 | 最早评估法 | 选择 |
| ATAM | 四阶段、效用树做权衡 | 权衡分析法 | 案例/论文 |
| 效用树 | 根 - 质量属性 - 分类 - 场景叶 | 检查清单排序 | 案例/论文 |
七、记忆口诀与类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 敏感点 | 权衡点 | 敏感点影响单一质量属性;权衡点影响多个质量属性(是多个属性的敏感点) |
| SAAM | ATAM | SAAM 最早、重可修改性、轻权衡;ATAM 在 SAAM 上做多属性权衡、用效用树 |
| 开发期属性 | 运行期属性 | 开发期关注易理解/可扩展/可维护等(构造时);运行期关注性能/安全/可靠/可用等(运行时) |
| 风险 | 非风险 | 风险=架构中的问题点;非风险=架构中的优势 |
九、与其他章节的关联
十、考试出题方式