架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是在SAAM的基础发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
(1)特定目标。
ATAM的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。对于特定的软件架构,在系统开发之前,可以使用ATAM方法确定在多个质量属性之间折中的必要性。
(2)质量属性。
ATAM方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改性、安全性、性能和可用性。
(3)风险承担者。
在场景、需求收集相关活动中,ATAM方法需要所有系统相关人员的参与。
(4)架构描述。
架构空间受到历史遗留系统、互操作性和以前失败的项目约束。架构描述基于5种基本结构来进行,这5种结构是从Kruchten的4+1视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个架构。
用一组消息顺序图表示运行时的交互和场景,对架构描述加以注解。ATAM方法被用于架构设计中,或被另一组分析人员用于检查最终版本的架构。
(5)评估技术。
可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。它集成了多种优秀的单一理论模型,其中每种都够高效、实用地处理属性。该方法使用了场景技术。从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖那些可能会对系统造成过载的极端修改)。
ATAM还使用定性的启发式分析方法(Qualitative Analyse Heuristics),在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。
(6)方法的活动。
ATAM被分为4个主要的活动领域(或阶段),分别是场景和需求收集、架构视图和场景实现、属性模型构造和折中。图1描述了与每个阶段相关的步骤,还描述了架构设计和分析改进中可能存在的迭代。
图1 ATAM分析评估过程
(7)领域知识库的可重用性。
领域知识库通过基于属性的架构风格(Attribute Based Architecture Style)维护。ABAS有助于从架构风格的概念转向基于特定质量属性模型的推理能力。
(8)方法验证。
该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件架构分析与评价已经取得了很大的进步,但是在某些方面也存在一些问题。例如,架构的描述、质量特征的分析、场景不确定性的处理、度量的应用架构分析和评价支持工具等,这些都影响和制约着分析评估技术的发展。
ATAM方法采用效用树(Utility tree)这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根——质量属性——属性分类——质量属性场景(叶子节点)。需要注意的是,ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。