接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(82)
第150题
体系结构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是一种常见的系统架构评估框架,该框架主要关注系统的(),针对性能、()、安全性和可修改性,在系统开发之前进行分析、评价与折中。
第1空
A. 架构视图
B. 架构描述
C. 需求说明
D. 需求建模
正确答案:C(似乎应是B)。 易答错选项:A。
第2空
A. 可测试性
B. 可用性
C. 可移植性
D. 易用性
正确答案:B。
解析:
架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
参考:软考 系统架构设计师系列知识点之系统架构评估(3)_架构权衡中属性模型构造分析做什么-CSDN博客
2. ATAM方法
架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是在SAAM(Scenarios-based Architecture Analysis Method,基于场景的架构分析方法)的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
(1)特定目标
ATAM的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。对于特定的软件架构,在系统开发之前,可以使用ATAM方法确定在多个质量属性之间折中的必要性。
(2)质量属性
ATAM方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改性、安全性、性能和可用性。
(3)风险承担者
在场景、需求收集相关活动中,ATAM方法需要所有系统相关人员的参与。
(4)架构描述
架构空间受到历史遗留系统、互操作性和以前失败的项目约束。架构描述基于5种基本结构来进行,这5种结构是从Kurchten的4+1视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个架构。
用一组消息顺序图表示运行时的交互和场景,对架构描述加以注释。ATAM方法被用于架构设计中,或被另一组分析人员用于检查最终版本的架构。
(5)评估技术
可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。它集成了多种优秀的单一理论模型,其中每种都能够高效、实用地处理属性。该方法使用了场景技术。从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖那些可能会对系统造成过载的极端修改)。
ATAM还使用定性的启发式分析方法(Qualitative Analysis Heuristics),在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。
(6)方法的活动
ATAM被分为4个主要的活动领域(或阶段),分别是场景和需求收集、架构视图和场景实现、属性模型构造和分析、折中。
属性专家独立地创建和分析他们的模型,然后交换信息(澄清和创建新的需求)。属性分析是相互依赖的,因为每个属性都会涉及其它属性。获得属性关联的方法有两种,即使用敏感度分析来发现折中点和通过检查假设。
在架构设计中,ATAM提供了迭代的改进。除了通常从场景派生而来的需求,还有很多对行为模式和执行环境的假设。由于属性之间存在着折中,每一个假设都要被检查、验证和询问,以此作为ATAM方法的结果。在完成所有这些操作之后,把分析的结果和需求进行比较;如果系统预期的行为大多接近于需求,设计者就可以继续进行下一步更为详细的设计或实现。
第2空参考:软考 系统架构设计师系列知识点之杂项集萃(67)-CSDN博客
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考查这些变更的代价衡量可修改性。可修改性包含四个方面。
(1)可维护性(maintainability)
可维护性主要体现在问题的修复上,在错误发生后“修复”软件系统。为可维护性做好准备的软件体系结构往往能做局部性的修改并能使对其它构件的负面影响最小化。
(2)可扩展性(extendibility)
可扩展性关注的是使用新特性来扩展软件系统,以及使用改进版本来替换构件,并删除不需要或不必要的特性和构件。为了实现可扩展性,软件系统需要松散耦合的构件。其目标是实现一种体系结构,它能使开发人员在不影响构件客户的情况下替换构件。支持把新构件集成到现有的体系结构中也是必要的。
(3)结构重构(reassemble)
也称结构重组。这一点处理的是重新组织软件系统的构件及构件间的关系,例如通过将构件移动到一个不同的子系统而改变它的位置。为了支持结构重组,软件系统需要精心设计构件之间的关系。理想情况下,它们允许开发人员在不影响实现的主体部分的情况下灵活地配置构件。
(4)可移植性(portability)
可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。为了实现可移植,需要按照硬件无关的方式组织软件系统,其它软件系统和环境被提取,出。可移植性是系统能够在不同计算环境下运行的能力。这些环境可能是硬件、软件,也可能是两者的结合。在关于某个特定计算环境的所有假设都集中在个构件中时,系统是可移植的。如果移植到新的系统需要做些更改,则可移植性就是一种特殊的可修改性。