系统架构设计师教程 第8章 8.2 系统架构评估 笔记

8.2 系统架构评估 ★★★★★

系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、 预测性和指令性的分析结果。
系统架构评估的方法通常可以分为3类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。
(1)基于调查问卷或检查表的方法。该方法的关键是要设计好问卷或检查表,充分利用系统相关人员的经验和知识,获得对架构的评估。
缺点是在很大程度上依赖于评估人员的主观推断。

(2)基于场景的评估方法。由卡耐基梅隆大学软件工程研究所首先提出 并应用在架构权衡分析法 (Architecture Tradeoff Analysis Method,ATAM) 和软件架构分析方法 (Software ArchitectureAnalysis Method,SAAM) 中。通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。

(3)基于度量的评估方法。它是建立在软件架构度量的基础上的,涉及3个基本活动,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。

8.2.1 系统架构评估中的重要概念 ★★★★★

(1) 敏感点 (Sensitivity Point) 和权衡点 (Tradeoff Point) 。敏感点和权衡点是关键的架构决策。
敏感点是一个或多个构件(和/或构件之间的关系)的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
(2)风险承担者 (Stakeholders) 或者称为利益相关人。 系统的架构涉及很多人的利益,这些人都对架构施加各种影响,以保证自己的目标能够实现。
(3) 场景 (scenarios)。在进行架构评估时, 一般首先要精确地得出具体的质量目标,并以之作为判定该架构优劣的标准。为得出这些目标而采用的机制称之为场景。场景是从风险承担者的角度对与系统的交互的简短描述。
在架构评估中, 一般采用刺激 (Stimulus)、 环境 (Environment) 和响应 (Response) 三方面来对场景进行描述。

8.2.2 系统架构评估方法 ★★★★★

1 . SAAM 方法 ★★★★★
基于场景的架构分析方法 SAAM(Scenarios-based Architecture Analysis Method) 是一种非功能质量属性的架构分析方法。
(1)特定目标。SAAM 的目标是对描述应用程序属性的文档,验证基本的架构假设和原则。此外,该分析方法有利于评估架构固有的风险。
(2)评估技术。使用的评估技术是场景技术。场景代表了描述架构属性的基础,描述了各种系统必须支持的活动和可能存在的状态变化。
(3)质量属性。基本特点是把任何形式的质量属性都具体化为场景,但可修改性是 SAAM 分析的主要质量属性。
(4)风险承担者。SAAM 协调不同参与者之间感兴趣的共同方面,作为后续决策的基础, 达成对架构的共识。
(5)架构描述。SAAM 用于架构的最后版本,但早于详细设计。架构的描述形式应当被所有参与者理解。功能、结构和分配被定义为描述架构的3个主要方面。
(6)方法活动。 SAAM 的主要输入是问题描述、需求声明和架构描述。

SAAM分析评估架构的过程包括5个步骤,即场景开发、架构描述、单个场景评估、场景交互和总体评估。

(7)已有知识库的可重用性:SAAM不考虑这个问题。
(8)方法验证:SAAM是一种成熟的方法,已被应用到众多系统中

2.ATAM 方法 ★★★★★
架构权衡分析方法 (Architecture Tradeoff Analysis Method,ATAM) 是在 SAAM的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
(1)特定目标。在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。对于特定的软件架构,在系统开发之前,可以使用ATAM方法确定在多个质量属性之间折中的必要性。
(2)质量属性。分析多个相互竞争的质量属性。
(3)风险承担者。在场景、需求收集相关活动中, 需要所有系统相关人员的参与。
(4)架构描述。架构空间受到历史遗留系统、互操作性和以前失败的项目约束。架构描述基于5种基本结构来进行,这5种结构是从Kruchten 的4+1视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个架构。

(5)评估技术。可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。它集成了多种优秀的单一理论模型,其中每种都能够高效、实用地处理属性。该方法使用了场景技术。从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖 那些可能会对系统造成过载的极端修改)。
ATAM 还使用定性的启发式分析方法 (Qualitative Analysis Heuristics), 在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。
(6)方法的活动。ATAM 被分为4个主要的活动领域 (或阶段),分别是场景和需求收集、 架构视图和场景实现、属性模型构造和分析、折中。

获得属性关联的方法有两种,即使用敏感度分析来发现折中点和通过检查假设。
在架构设计中, ATAM提供了迭代的改进。除了通常从场景派生的需求,还有很多对行为模式和执行环境的假设。由于属性之间存在着折中,每一个假设都要被检查、验证和询问, 以此作为 ATAM方法的结果。在完成所有这些操作之后,把分析的结果和需求进行比较;如果系统预期的行为大多接近于需求,设计者就可以继续进行下一步更为详细的设计或实现。
(7) 领域知识库的可重用性。领域知识库通过基于属性的架构风格 (Attribute Based Architecture Style) 维护。ABAS有助于从架构风格的概念转向基于特定质量属性模型的推理能力。
(8)方法验证。该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件架构分析与评价已经取得了很大的进步,但是在某些方面也存在一些问题。

ATAM 方法采用效用树 (Utility tree) 来对质量属性进行分类和优先级排序。效用树的结构包括:树根—质量属性—属性分类—质量属性场景(叶子节点)。需要注意的是,
ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。
得到初始的效用树后,需要修剪这棵树,保留重要场景(通常不超过50个),再对场景按重要性给定优先级(用 H/M/L 的形式),再按场景实现的难易度来确定优先级(用 H/M/L的形 式),这样对所选定的每个场景就有一个优先级对(重要度、难易度),如 (H、L) 表示该场景重要且易实现。

3 . CBAM 方法
从经济角度建立成本、收益、风险和进度等方面软件的“经济”模型。成本效益分析法 (the Cost Benefit Analysis Method,CBAM) 是在ATAM 上构建,用来对架构设计决策的成本和收益进行建模,是优化此类决策的一种手段。CBAM的思想就是架构策略影响系统的质量属性,反过来这些质量属性又会为系统的项目干系人带来一些收益(称为“效用”), CBAM协助项目干系人根据其投资回报(Return On Investment,ROI) 选择架构策略。CBAM在ATAM结束时开始,它实际上使用了ATAM评估的结果。
CBAM 方法分为以下8个步骤。
(1)整理场景。整理 A T A M 中获取的场景,根据商业目标确定这些场景的优先级,并选取优先级最高的1/3的场景进行分析。
(2)对场景进行求精。为每个场景获取最坏情况、当前情况、期望情况和最好情况的质量属性响应级别。
(3)确定场景的优先级。项目关系人对场景进行投票,其投票是基于每个场景“所期望的” 响应值,根据投票结果和票的权值,生成一个分值(场景的权值)。
(4)分配效用。对场景的响应级别(最坏情况、当前情况、期望情况和最好情况)确定效 用表。
(5)架构策略涉及哪些质量属性及响应级别,形成相关的“策略一场景一响应级别”的对应关系。
(6)使用内插法确定“期望的”质量属性响应级别的效用。即根据第4步的效用表以及第5步的对应关系,确定架构策略及其对应场景的效用表。
(7)计算各架构策略的总收益。根据第3步的场景的权值及第6步的架构策略效用表,计算出架构策略的总收益得分。
(8)根据受成本限制影响的 ROI选择架构策略。根据开发经验估算架构策略的成本,结合第7步的收益,计算出架构策略的ROI, 按 ROI排序,从而确定选取策略的优先级。

4.其他评估方法
1)SAEM方法
SAEM方法将软件架构看作一个最终产品以及设计过程中的一个中间产品,从外部质量属性和内部质量属性两个角度来阐述它的评估模型,旨在为软件架构的质量评估创建一个基础框架。
2)SAABNet 方法
SAABNet是一种用来表达和使用定性知识以辅助架构的定性评估。
变量可分为3类,即架构质量属性变量(如可维护性、灵活性等)、 质量属性的度量准则变量 (如容错性、响应性等)和架构特征变量 (如继承深度、编程语言等),
SAABNet 度量的对象包括架构属性、质量准则和质量因素3部分
变量可分为3类,即架构质量属性变量(如可维护性、灵活性等)、 质量属性的度量准则变量 (如容错性、响应性等)和架构特征变量 (如继承深度、编程语言等),
SAABNet 度量的对象包括架构属性、质量准则和质量因素3部分

3 ) SACMM 方法
SACMM 方法是一种软件架构修改的度量方法,基于图内核定义差异度量准则来计算两个软件架构之间的距离,
4 ) SASAM 方法
SASAM 方法通过对预期架构(架构设计阶段的相关描述材料)和实际架构(源代码中 执行的架构)进行映射和比较来静态地评估软件架构,并将静态评估与架构开发方法PuLSE- DSSA结合,识别出10种不同的目的和需求来指导静态的架构评估。
5)ALRRA 方法
ALRRA是 一种软件架构可靠性风险评估方法,该方法使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素,
动态复杂度准则在某个场景的执行中分析组件的动态行为来度 量组件的复杂性,
动态耦合度准则在某个场景的执行中分析连接件的消息传递协议来度量连接件的复杂性。
6)AHP 方法
层次分析法 (Analytical Hierarchy Process,AHP) 是多种架构评估度量方法的基础理论。
7)COSMIC+UML 方法
软件功能规模度量方法,原理是通过识别“数据移动”的个数来度量软件规模,每个数据移动计为一个COSMIC功能规模单位(CFP),四种数据移动类型分别为:输入(Entry)、输出(eXit)、读(Read)和写(Write)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值