高级软考-系统架构设计师知识点3
什么是效用树?
效用树(Utility Tree) 是 ATAM 方法中用于组织、分层表示质量属性及其重要性的树状结构。
它帮助项目组 确定最重要的质量目标、分解为可量化的场景,
并在评估时聚焦于最关键的架构风险。
📘 一句话理解:
效用树是 ATAM 评估时用来**“把模糊的质量目标具体化、层次化、可讨论化”**的工具。
🧱 二、效用树的层次结构
效用树一般包含 三层结构:
Utility(效用) ├── Quality Attributes(质量属性,如性能、可用性、安全性) │ ├── Attribute Refinement(属性细化) │ │ ├── Scenarios(具体质量场景) │ │ └── ... │ └── ... └── ...
🌳 举例:
Utility(系统总体效用) ├── 性能(Performance) │ ├── 吞吐量(Throughput) │ │ └── 场景:系统在高峰期每秒可处理1000请求 │ ├── 响应时间(Response Time) │ │ └── 场景:90%的请求响应时间 < 1s ├── 可用性(Availability) │ ├── 故障恢复(Recovery) │ │ └── 场景:节点故障后5分钟内自动恢复 ├── 可修改性(Modifiability) │ ├── 功能扩展(Extensibility) │ │ └── 场景:新增支付方式无需修改核心模块 └── 安全性(Security) ├── 认证(Authentication) │ └── 场景:用户登录需双因素认证
⚙️ 三、效用树的构建步骤(ATAM 第5步核心)
效用树的构建是 ATAM 第5步(生成质量属性场景) 的主要产出。
一般包括以下 4 个步骤:
| 步骤 | 说明 |
|---|---|
| ① 明确质量属性类别 | 确定系统相关的质量目标,如性能、可用性、安全性、可修改性、可测试性等。 |
| ② 分层细化属性 | 将大类拆分为更细粒度的子属性,如“性能→响应时间、吞吐量”;“安全性→认证、授权”。 |
| ③ 为每个子属性设计具体场景 | 每个场景描述“在什么条件下系统要达到什么表现”。 |
| ④ 赋权与优先级排序 | 根据业务驱动,为每个场景分配“重要性”和“风险级别”,指导后续分析重点。 |
🎯 四、效用树的应用作用
| 应用阶段 | 作用 | 示例 |
|---|---|---|
| 1️⃣ 质量需求澄清阶段 | 把抽象的“高性能、高安全”等目标具体化为可测试场景 | 把“高性能”定义为“峰值1秒内处理1000请求” |
| 2️⃣ 架构风险识别阶段 | 聚焦高优先级场景,找出可能存在的设计风险 | 性能和可用性场景冲突时,找到“权衡点” |
| 3️⃣ 决策与权衡分析阶段 | 分析各场景之间的冲突关系(Tradeoff Points) | 缓存提高性能但降低一致性 |
| 4️⃣ 输出评估结果阶段 | 形成量化的分析依据,支撑改进建议 | 在报告中列出“最高风险的3个质量场景” |
📊 五、效用树在 ATAM 中的地位(流程对应)
| ATAM 步骤 | 内容 | 效用树作用 |
|---|---|---|
| 第2步 | 陈述业务驱动因素 | 明确哪些质量目标最重要 |
| 第5步 | 生成质量属性场景 | 构建效用树,组织和量化这些场景 |
| 第6-8步 | 分析、识别风险与权衡点 | 使用效用树中“高权重场景”作为重点分析对象 |
| 第9步 | 输出结果 | 将效用树作为评估文档的重要组成部分 |
🧩 六、效用树场景的 6 个组成部分(考试常考)
每个“叶子节点”(质量属性场景)通常用 6 个部分描述:
| 元素 | 说明 | 举例 |
|---|---|---|
| 刺激源(Source) | 触发事件的主体 | 用户、外部系统 |
| 刺激(Stimulus) | 系统接收到的事件或请求 | 用户发起搜索请求 |
| 环境(Environment) | 事件发生时的条件 | 高并发、系统正常运行 |
| 构件(Artifact) | 受影响的系统部分 | Web 服务器 |
| 响应(Response) | 系统应对的行为 | 返回搜索结果 |
| 响应度量(Response Measure) | 可量化的性能标准 | 响应时间 ≤ 1 秒 |
📘 口诀记忆:
源—激—环—构—响—量
(Source, Stimulus, Environment, Artifact, Response, Measure)
🧠 七、效用树的优势与特点
| 特点 | 说明 |
|---|---|
| 🧩 结构化组织质量目标 | 用层次树形结构展示不同质量属性的关系 |
| 🎯 突出重点 | 通过“重要性+风险”排序聚焦关键问题 |
| 🔍 便于沟通 | 让开发者、架构师、客户都能直观看到质量需求 |
| 📈 指导后续分析 | 高风险场景直接进入 ATAM 后续分析阶段 |
| 🧠 支持决策与权衡 | 明确冲突属性(如性能 vs 安全),为取舍提供依据 |
📘 八、软考常见考点示例
| 题型 | 示例 |
|---|---|
| 选择题 | “ATAM 方法中,用于表示质量属性及其场景的工具是?”(答:效用树) |
| 简答题 | “说明效用树的构成与作用。” |
| 综合题 | “在某系统ATAM评估中,请绘制简要效用树并标明高优先级场景。” |
✅ 九、总结一句话
效用树(Utility Tree)是 ATAM 方法中的核心分析工具,
用于分层展示质量属性及其具体场景,并通过重要性与风险排序,
帮助架构师聚焦最关键的系统质量问题。
