软考 系统架构设计师系列知识点之系统架构评估(3)

接前一篇文章:

所属章节:

第8章. 系统质量属性与架构评估

第2节. 系统架构评估

8.2.2 系统架构评估方法

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方法的结果。在完成所有这些操作之后,把分析的结果和需求进行比较;如果系统预期的行为大多接近于需求,设计者就可以继续进行下一步更为详细的设计或实现。

(7)领域知识库的可重用性

领域知识库通过**基于属性的架构风格(Attribute Based Architecture Style,ABAS)**维护。ABAS有助于从架构风格的概念转向基于特定质量属性模型的推理能力。获取一组基于属性的架构风格的目标在于要把架构设计变得更为惯例化和更可预测,并得到一个基于属性的架构分析的标准问题集合,使设计与分析之间的联系更为紧密。

(8)方法验证

该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件架构分析与评价已经取得了很大的进步,但是在某些方面也存在一些问题。例如,架构的描述、质量特征的分析、场景不确定性的处理、度量的应用架构分析和评价支持工具等,这些都影响和制约着分析评估技术的发展。

ATAM方法采用效用树(Utility tree) 这一工具来对质量属性进行分类和优先级排序 。效用树的结构包括:树根------质量属性------属性分类------质量属性场景(叶子结点) 。需要注意的是,ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性 ,因为这4个质量属性是利益相关者最为关心的。

得到初始的效用树后,需要修剪这棵树,保留重要场景(通常不超过50个),再对场景按重要性给定优先级 (用H/M/L的形式),再按场景实现的难易程度 来确定优先级(用H/M/L的形式),这样对所选定的每个场景就有一个优先级对(重要度、难易度),如(H、L)表示该场景重要且易实现。

相关推荐
我命由我123453 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
Vitaliy Kostrov(柯维远)11 小时前
客户端如何检查直播流:从流内标记到停止播放
android·运维·服务器·驱动开发·网络安全·系统架构·cdn
黄俊懿1 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
黄鹂鸟科技1 天前
软件定制开发设计要点:从需求梳理、原型确认到敏捷交付与持续维护
后端·物联网·系统架构
奔跑的架构师2 天前
[A-51]ARMv9/v8-SCMI系统架构
linux·arm开发·架构·系统架构·arm
黄鹂鸟科技2 天前
进销存系统设计要点:从采购计划、库存监控到成本核算
后端·物联网·系统架构
吴建旭 智宅焕2 天前
智能家居全国交付中异地高并发管理带宽的系统架构与AI半自动化实现
人工智能·系统架构·智能家居
金陵驿2 天前
【3GPP核心网】精讲5G核心网系统架构
5g·系统架构
荆棘鸟智能3 天前
果蔬AI分选系统架构设计:视觉识别、边缘推理与气阀时序控制
人工智能·系统架构
Liaiyang663 天前
空圈容错视角 · 多维切面篇:我们生活的世界,不止三维
人工智能·算法·系统架构·前沿技术·哲学·认知科学