ATAM是评价软件构架的一种综合全面的方法。这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系——即如何权衡诸多质量目标。
体系结构权衡分析方法 (ATAM)
体系结构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM)是在SAAM的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
在软件工程中,体系结构权衡分析方法 (ATAM) 是一种在软件开发生命周期早期使用的风险缓解的方法。 它的目的是通过发现权衡和敏感点来帮助为软件系统选择合适的架构。 ATAM 在软件开发生命周期的早期完成时最有益,此时更改架构的成本最低。
作用
- 在生命周期的早期识别风险
- 加强利益相关者之间的沟通
- 明确的质量属性要求
- 改进的架构文档
- 架构决策的文件化基础
特定目标
ATAM的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件体系结构的能力的方法。对于特定的软件体系结构,在系统开发之前,可以使用ATAM方法确定在多个质量属性之间折中的必要性。
质量属性
ATAM方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改性、安全性、性能和可用性。
风险承担者
在场景、需求收集有关的活动中,ATAM方法需要所有系统相关人员的参与。
体系结构描述
体系结构空间受到历史遗留系统、互操作性和以前失败的项目约束。在5个基本结构的基础上进行体系结构描述,这5个结构是从Kruchten的4+1视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个体系结构。
用一组消息顺序图显示运行时的交互和场景,对体系结构描述加以注解。ATAM方法被用于体系结构设计中,或被另一组分析人员用于检查最终版本的体系结构。
评估技术
可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。它集成了多个优秀的单一理论模型,其中每一个都能够高效、实用地处理属性。该方法使用了场景技术。从不同的体系结构角度,有三种不同类型的场景,分别是用例(包括对系统典型的使用,还用于引出信息)、增长场景(用于涵盖与它的系统修改)、探测场景(用于涵盖那些可能会对系统造成压迫的极端修改)。
ATAM还使用定性的启发式分析方法(Qualitative Analysis Heuristics),在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。
方法的活动
ATAM被分为4个主要活动领域(或阶段)。它们分别是:场景和需求收集、体系结构视图和场景实现、属性模型构造分析、折中。图3描述了与每个阶段相关的步骤,还描述了体系结构设计和分析改进中可能存在的迭代。
属性专家独立地创建和分析他们的模型,然后交换信息(澄清和创建新的需求)。属性分析是相互依赖的,因为每个属性都会涉及其他属性。获得属性交互的方法有两种,即使用敏感度分析来发现折中点和通过检查假设。
在体系结构设计中,ATAM提供了迭代的改进。除了通常从场景派生而来的需求,还有很多对行为模式和执行环境的假设。由于属性之间存在着折中,每一个假设都要被检查、验证和提问,以此作为ATAM方法的结果。在完成所有这些操作之后,把分析的结果和需求进行比较;如果系统预期的行为大多接近于需求,设计者就可以继续前进,进行下一步更为详细的设计或实现。
领域知识库的可重用性:领域知识库通过基于属性的体系结构风格(Attribute-Based Architectare Style)维护。ABAS有助于从体系结构风格的概念转向基于特定质量属性模型的推理能力。获取一组基于属性的体系结构风格的目标在于要把体系结构设计变得更为惯例化、更可预测,并得到一个基于属性的体系结构分析的标准问题集合,使设计与分析之间的联系更为紧密。
方法验证
该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件体系结构分析与评价已经取得了很大的进步,但是在某些方面也存在一些问题。例如,体系结构的描述、质量特征的分析、场景不确定性的处理、度量的应用体系结构分析和评价支持工具等,这些都影响和制约着分析评估技术的发展。Clement认为在未来的5~10年内,体系结构的分析是体系结构发展的5个方向之一。
参考文献
- 《系统架构设计师教程》
- Architecture tradeoff analysis method
相关文章
Q.E.D.