ATAM软件架构评估方法
一. 为什么要评估?
- ⼤型项⽬经常迟交和超支
- 项目进行过程中有时候要重新设计
- 能够帮助尽早发现问题,尽早发现的解决成本是很低的
- 传播架构设计的最佳实践
- 提供优秀项目技术管理
二. 如何评估?
- 发现风险点
- 识别出错误的架构选择
- 保证解决了质量属性
有很多成型的方法来解决这个问题,大部分都是基于场景进行的。
可以帮助涉众(stakeholder)去尽早的问出合适的问题来:
- 找到风险, 找到对所需质量属性有消极影响的架构决定
- 找到敏感点: 对于特定质量属性敏感的架构决定(小改动、造成很大影响)
- 找到权衡点(tradeoffs): 影响多个质量属性的架构决定
三. ATAM过程:
Phase 0 :参与者和准备阶段
参与者: 评估小组长和关键的项⽬决策者
输⼊:架构文档
输出: 评估计划: 谁、什么时间、提供什么样子的评估报告
Phase 1:评估(1)
参与者:评估小组和项目设计决策者(肯定包括了项目经理和架构师)
输出: 架构简要展示、业务目标、质量属性和相关场景、效用树、风险和非风险点、敏感点、权衡点
Step 1: 介绍ATAM方法(评估小组长)
Step 2: 介绍商业动机(项目经理或系统客户)
Step 3: 介绍架构(首席架构师)
Step 4:识别使用的架构方法(评估小组)
Step 5:生成质量属性效用树(评估小组和项目设计决策者) 决定性的一步
Step 6:分析架构方法(评估小组) 确保方法是正确的 获得风险点、非风险点、敏感点和权衡点列表
Phase 2:评估(2)
参与者: 评估小组、项目设计决策者和架构涉众
输出: 从涉众群体获得的一个优先级场景列表、风险主题和商业动机
Step 1: 介绍ATAM方法和之前的结果(评估小组长) 重复以确保涉众也知道方法并回顾分享之前2~6步的结果
Step 7:头脑风暴、场景划分优先级(评估小组问涉众) 与质量属性效用树进行比对
Step 8:分析架构方法(评估小组、架构师) 使用新产生的优先级靠前的场景、架构师解释与之相关的架构决定
Step 9:展示结果(评估小组)
Phase 3:后续工作 Follow up
参与者:评估小组和主要涉众
输出:最终的评估报告
ATAM 输出
架构简要介绍
业务目标
以质量属性场景表示的带优先级的质量属性需求
效用树
一系列风险点和非风险点
风险主题
架构决定与质量需求之间的映射
敏感点、权衡点
最终评估报告