系统架构设计(十八):ATAM
概述
**ATAM(Architecture Tradeoff Analysis Method)**是由美国卡内基梅隆大学 SEI(软件工程研究所)提出的一种用于评估软件架构方案的系统方法,核心目的是:
- 评估架构是否满足质量属性需求(如性能、可用性、安全性等)
- 识别架构决策中的权衡(Tradeoffs)
- 揭示架构的风险、敏感点和权衡点
核心概念
术语 | 含义 |
---|---|
质量属性 | 系统在非功能性方面的要求,如可用性、可扩展性、性能等 |
权衡点 | 某一设计决策会对多个质量属性产生冲突影响的位置 |
敏感点 | 架构中对系统质量属性产生重大影响的设计决策点 |
风险 | 架构中潜在的不确定因素,可能导致质量属性无法满足 |
分析流程(关键步骤)
ATAM 分为 四个阶段,九个步骤,如下所示:
阶段 1:前期准备
- 介绍评估过程(Present ATAM)
- 介绍业务驱动(Present Business Drivers)
- 介绍架构(Present Architecture)
- 确认质量属性目标(Identify Architectural Approaches and Quality Attribute Goals)
阶段 2:分析评估
- 分析架构方法(Generate Quality Attribute Utility Tree)
- 利用“实用树”(Utility Tree)列出系统质量属性的场景(如:系统在高并发下响应时间小于 1 秒)
- 分析架构方案的敏感点和权衡点
- 通过分析发现架构中关键决策对多个属性的影响(例如缓存策略对性能和一致性的影响)
阶段 3:风险识别
- 分析风险、敏感点和权衡点
- 如使用微服务提升可扩展性,但增加了部署和监控复杂度
阶段 4:总结与反馈
- 评估结果总结(Present Results)
- 总结风险清单、敏感点、权衡分析、质量属性满足情况等
- 编写评估报告(Follow-up)
输出成果
- 质量属性实用树
- 架构中的风险项列表
- 敏感点与权衡点说明
- 对架构改进的建议
- 是否满足业务目标的分析报告
典型应用场景
- 在系统架构评审阶段使用
- 比较不同架构方案
- 为后续详细设计提供方向
- 作为决策支持工具,权衡不同的质量属性需求