体系结构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)包含 4 个主要的活动领域,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。
二、体系结构权衡分析方法(Architecture Tradeoff AnalysisMethod,ATAM)是在 SAAM 的基础上发展起来的,主要针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
(1)特定目标:ATAM 的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件体系结构的能力的方法。对于特定的软件体系结构,在系统开发之前,可以使用 ATAM 方法确定在多个质量属性之间折中的必要性。

(2)质量属性:ATAM 方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改性、安全性、性能和可用性。
(3)风险承担者:在场景、需求收集有关的活动中, ATAM 方法需要所有系统相关人员的参与。
(4)体系结构描述:体系结构空间受到历史遗留系统、互操作性和以前失败的项目约束。在五个基本结构的基础上进行体系结构描述,这五个结构是从 Kruchten 的 4 + 1 视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个体系结构。
用一组消息顺序图显示运行时的交互和场景,对体系结构描述加以注解。ATAM 方法被用于体系结构设计中,或被另一组分析人员用于检查最终版本的体系结构。
(5)评估技术:可以把 ATAM 方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。
它集成了多个优秀的单一理论模型,其中每一个都能够高效、实用地处理属性。该方法使用了场景技术。从不同的体系结构角度,有三种不同类型的场景,分别是用例(包括对系统典型的使用,还用于引出信息)、增长场景(用于涵盖与它的系统修改)、探测场景(用于涵盖那些可能会对系统造成压迫的极端修改)。
三、在对一个软件系统的架构进行设计与确认之后,需要进行架构复审。架构复审的目的是为了标识潜在的风险,及早发现架构设计中的缺陷和错误。在架构复审过程中,主要由用户代表与领域专家决定架构是否满足需求、质量需求是否在设计中得到体现。
架构复审一词来自于 ABSD。在 ABSD 中,架构设计、文档化和复审是一个迭代过程。从这个方面来说,在一个主版本的软件架构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。
复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误,包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表达是否明确、构件的设计是否满足功能与性能的要求等等。
由外部人员进行复审的目的是保证架构的设计能够公正地进行检验,使组织的管理者能够决定正式实现架构。
四、识别风险、非风险、敏感点和权衡点是进行软件架构评估的重要过程。“改变业务数据编码方式会对系统的性能和安全性产生影响”是对权衡点的描述,“假设用户请求的频率为每秒 1 个,业务处理时间小于 30 毫秒,则将请求响应时间设定为 1 秒钟是可以接受的”是对非风险的描述。
敏感点是一个或多个构件(和/或构件之间的关系)的特性。研究敏感点可使设计人员或分析员明确在搞清楚如何实现质量目标时应注意什么。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
风险点与非风险点不是以标准专业术语形式出现的,只是一个常规概念,即可能引起风险的因素,可称为风险点。某个做法如果有隐患,有可能导致一些问题,则为风险点;而如果某件事是可行的可接受的,则为非风险点。
五、ATAM:Architecture Tradeoff Analysis Method(架构权衡分析方法),它是评价软件构架的一种综合全面的方法。这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系——即如何权衡诸多质量目标。
ATAM 是针对软件架构的评估方法,其层次较高,不会涉及到具体代码质量的评估。而对于软件系统需求的正确性评价,应是需求验证的主要工作,也非 ATAM 所关注的内容。集成测试是在软件开发的测试阶段需要完成的任务,此时,架构设计,架构评审(即用 ATAM,SAAM 进行软件架构评审),软件详细设计,编码,单元测试工作都已完成,所以该工作,也非 ATAM 所关注的内容。
六、识别风险点、非风险点、敏感点和权衡点是软件架构评估过程中的关键步骤。针对某系统所作的架构设计中,“系统需要支持的最大并发用户数量直接影响传输协议和数据格式”描述了系统架构设计中的一个敏感点;“由于系统的业务逻辑目前尚不清楚,因此现有系统三层架构中的第二层可能会出现功能重复,这会影响系统的可修改性”描述了系统架构设计中的一个风险点。
.