体系架构设计师备考第39天——ATAM方法架构评估实践
一、ATAM评估概述
ATAM(Architecture Tradeoff Analysis Method)是一种针对软件架构的评估办法,聚焦性能、可用性、安全性、可修改性等质量属性的权衡分析。评估过程分为四个阶段:
- 阶段1:演示(Presentation)
- 阶段2:调查和分析(Investigation & Analysis)
- 阶段3:测试(Testing)
- 阶段4:报告ATAM(Reporting)
二、阶段1:演示(Presentation)
目标
向利益相关者介绍评估流程、业务目标和架构架构,建立共识。
核心步骤
介绍ATAM流程
- 评估负责人说明技术方法(如场景分析、效用树)、预期输出(风险点、权衡点)。
- 解答参与者疑问,明确评估边界。
阐述业务驱动因素
- 关键内容:系统机制、核心利益相关者(用户、架构师、开发人员)、业务目标(如处理效率)、约束条件(如手艺兼容性)。
- 案例:事件处理框架(如Hoover架构)中,定义框架功能(事件队列管理)、利益相关者诉求(用户需易用界面,开发人员需扩展性)。
介绍待评估架构
- 重点描述:架构设计、质量属性要求(性能、可靠性)、技术约束、外部系统交互。
- 案例对比:
- Hoover架构:事件管理器动态绑定事件与处理程序,承受高灵活性(可修改性优)。
- Banking架构:事件管理器暴露给应用层,组件耦合度高(可修改性差)。
三、阶段2:调查与分析(Investigation & Analysis)
目标
识别关键架构方法,分析质量属性实现情况。
核心步骤
确定架构方法
- 分析架构如何满足核心需求(如流程控制、错误处理)。
- Hoover案例:
- 输入事件→事件队列→主进程调度→事件管理器绑定处理程序→执行事件。
- 质量属性:组件低耦合(高可修改性)、明确接口(易扩展)。
- Banking案例:
- 输入验证→事件队列→事件管理器匹配处理程序。
- 质量缺陷:事件管理器未封装(安全性风险)、组件高依赖(可重用性差)。
生成质量属性效用树(Utility Tree)
- 结构:根节点(质量属性)→分支(属性分类)→叶节点(具体场景)。
- 优先级排序:按场景重要性(H/M/L)和实现难度(H/M/L)标记,例如
[H, L]表示关键且易实现场景。
分析架构方法
- 敏感点(Sensitivity Point):影响单个质量属性的决策(如Hoover的事件队列大小影响性能)。
- 权衡点(Tradeoff Point):影响多个属性的决策(如加密级别提升安全性但降低性能)。
四、阶段3:测试(Testing)
目标
通过场景验证架构对质量属性的协助程度。
核心活动
场景优先级排序
- 筛选不超过50个高优先级场景(基于效用树)。
- 场景类型:
- 用例场景:典型用户执行(如事件处理)。
- 增长场景:预期功能扩展(如新增事件类型)。
- 探测场景:极端情况测试(如事件队列溢出)。
架构分析
- 定性分析:专家启发式评估(如Banking架构暴露事件管理器的风险)。
- 定量模型:构造性能/可靠性模型(如事件队列处理延迟计算)。
五、阶段4:报告ATAM(Reporting)
目标
汇总评估结果,向利益相关者交付结论。
报告内容
- 效用树:优先级排序后的质量属性场景。
- 场景分析结果:架构对各场景的拥护程度(如Hoover满足可修改性,Banking存在安全缺陷)。
- 风险与非风险:
- 风险点:Banking架构组件高耦合(影响可维护性)。
- 非风险点:Hoover的明确接口设计(保障可扩展性)。
- 架构手段总结:关键决策(如事件管理器的封装设计)对质量属性的影响。
六、本章要点总结
| 概念 | 定义 | 案例/说明 |
|---|---|---|
| 敏感点 | 影响单一质量属性的架构决策(如队列大小) | Hoover事件队列影响性能 |
| 权衡点 | 影响多个属性的决策(如加密级别) | 加密提升安全性但降低性能 |
| 效用树 | 质量属性→分类→场景的树状结构,用于优先级排序 | 叶子节点为具体测试场景 |
| 场景类型 | 用例场景(常规运行)、增长场景(功能扩展)、探测场景(压力测试) | 事件队列溢出属探测场景 |
| Hoover架构优势 | 事件管理器动态绑定处理程序,组件低耦合 | 高可修改性、易扩展 |
| Banking架构缺陷 | 事件管理器暴露,组件高依赖 | 可修改性差、安全性风险 |
注:ATAM的核心价值是通过多属性权衡分析,在架构设计早期识别风险,避免后期成本高昂的修改。重点掌握效用树构建、场景分类及敏感点/权衡点分析。
浙公网安备 33010602011771号