软考笔记--系统架构评估

系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数据或逻辑分析技术,针对系统的一致性,正确性,质量属性,规划结果等不同方面,提供描述性,预测性和指令性的分析结果。

系统结构评估的方法通常可以分为3类:基于调查问卷或检查表的方式,基于场景的方式和基于度量的方式。

(1)基于调查问卷或检查表的方法。该方法的关键是要设计好问卷或检查表,充分利用系统相关人员的经验和知识,获得对架构的评估。该方法的缺点是在很大程度上依赖于评估人员的主观推断。

(2)基于场景的评估方法。基于场景的方法是通过分析结构对场景的支持程度,从而判断该架构对这一场景所代表的指令需求的满足程度。

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

一.系统架构评估中的重要概念

1.敏感点和权衡点。敏感点和权衡点是关键的架构决策。敏感点是一个或多个构件的特性。研究敏感点可使设计人员或分析人员明确在搞清楚如何实现质量目标是应该注意什么。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

2.风险承担者或者称为利于相关人。系统的架构涉及很多人的利益,这些人都对架构施加各种影响,以保证自己的目标能够实现。

3.场景。在进行架构评估时,一般首先要精确地得出具体的质量目标,并以之作为判断该架构优劣的标准。

二.系统架构评估方法

1.SAAM方法

SAAM方法最初用于比较不同软件体系的架构,以分析系统架构的可修改性,后来实践证明它也可以用于其他质量属性如可移植性、可扩充性等,最终发展成可评估一个系统架构的通用方法。

(1)特定目标。SAAM的目标是对描述应用程序属性的文档,验证基本的架构假设和原则。此外,该分析方法有利于评估架构固有的风险。SAAM指导对结构的检查,使其主要关注潜在的问题点。SAAM不仅能够评估架构对于特定系统需求的使用能力,也能被用来比较不同的架构。

(2)评估技术。SAAM所使用的评估技术是场景技术。场景代表了描述架构属性的基础,描述了各种系统必须支持的活动和可能存在的状态变化。

(3)质量属性。这一方法的基本特点是把任何形式的质量属性都具体化为场景,但可修改性是SAAM分析的主要质量属性。

(4)风险承担者。SAAM协调不同参与者之间感兴趣的共同方面,作为后续决策的基础,达成对架构的共识。

(5)架构描述。SAAM用于架构的最后版本,但早于详细设计。架构的描述形式应当被所有参与者理解。

(6)方法活动。SAAM的主要输入是问题描述、需求声明和架构描述。

(7)已有知识库的可重用性:SAAM不考虑这个问题。

(8)方法验证:SAAM是一种成熟的方法,已被应用到众多系统中。

2.ATAM方法

架构权衡分析方法ATAM是在SAAM的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。

(1)特定目标。ATAM的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。对于特定的软件架构,在系统开发之前,可以使用ATAM方法确定在多个质量属性之间的折中的必要性。

(2)质量属性。ATAM方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改性,安全性,性能和可用性。

(3)风险承担者。在场景、需求手机相关活动中,ATAM方法需要所有系统相关人员的参与。

(4)架构描述。架构空间受到历史遗留系统、互操作性和以前失败的项目约束。架构描述基于5种基本结构来进行。

(5)评估技术。可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。

(6)方法的活动。ATAM 被分为4个主要的活动领域(或阶段),分别是场景和需求收集、 架构视图和场景实现、属性模型构造和分析、折中。

(7)领域知识库的可重用性。领域知识库通过基于属性的架构风格 (Attribute Based Architecture Style) 维护。 ABAS有助于从架构风格的概念转向基于特定质量属性模型的推理能力。

(8)方法验证。该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件架构分析与评价已经取得了很大的进步,但是在某些方面也存在一些问题。

ATAM 方法采用效用树 (Utility tree) 这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根---质量属性---属性分类---质量属性场景(叶子节点)。

三.CBAM方法

在大型复杂系统的构建过程中,经济性通常是需要考虑的首要因素。因此,需要从经济角度建立成本、收益、风险和进度等方面软件的"经济"模型。成本效益分析法 (the Cost Benefit Analysis Method,CBAM) 是在ATAM上构建,用来对架构设计决策的成本和收益进行建模,是优化此类决策的一种手段。 CBAM在 ATAM 结束时开始,它实际上使用了 ATAM评估的结果。CBAM方法分为八个步骤:

(1)整理场景。整理 ATAM 中获取的场景,根据商业目标确定这些场景的优先级,并选取

优先级最高的1/3的场景进行分析。

(2)对场景进行求精。为每个场景获取最坏情况、当前情况、期望情况和最好情况的质量属性响应级别。

(3)确定场景的优先级。项目关系人对场景进行投票,其投票是基于每个场景"所期望的" 响应值,根据投票结果和票的权值,生成一个分值(场景的权值)。

(4)分配效用。对场景的响应级别(最坏情况、当前情况、期望情况和最好情况)确定效用表。

(5)架构策略涉及哪些质量属性及响应级别,形成相关的"策略一场景一响应级别"的对应关系。

(6)使用内插法确定"期望的"质量属性响应级别的效用。即根据第4步的效用表以及第5步的对应关系,确定架构策略及其对应场景的效用表。

(7)计算各架构策略的总收益。根据第3步的场景的权值及第6步的架构策略效用表,计算出架构策略的总收益得分。

(8)根据受成本限制影响的 ROI选择架构策略。根据开发经验估算架构策略的成本,结合第7步的收益,计算出架构策略的ROI, 按 ROI排序,从而确定选取策略的优先级。

四。其他评估方法

1.SAEM方法

SAEM方法将软件架构看作一个最终产品以及设计过程中的一个中间产品,从外部质量属性和内部质量属性两个角度来阐述它的评估模型,旨在为软件架构的质量评估创建一个基础

框架。

2.SAABnet方法

软件架构定性的评估技术依赖于专家知识,包括某些特定类型问题的解决方案以及可能的诱导因素、统计知识(如60%的系统消耗花费在维护上)、审美观等,这些定性的知识比较含糊且难以文档化。 SAABNet是一种用来表达和使用定性知识以辅助架构的定性评估。

3.SACMM方法

SACMM 方法是一种软件架构修改的度量方法,首先基于图内核定义差异度量准则来计算两个软件架构之间的距离,图内核的基本思想是将结构化的对象描述为它的子结构的集合,通过子结构的配对比较来分析对象之间的相似性。

相关推荐
Yawesh_best1 天前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
Ccjf酷儿1 天前
操作系统 蒋炎岩 3.硬件视角的操作系统
笔记
习习.y1 天前
python笔记梳理以及一些题目整理
开发语言·笔记·python
在逃热干面1 天前
(笔记)自定义 systemd 服务
笔记
DKPT1 天前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
QT 小鲜肉1 天前
【孙子兵法之上篇】001. 孙子兵法·计篇
笔记·读书·孙子兵法
星轨初途1 天前
数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
c语言·开发语言·数据结构·经验分享·笔记·算法·排序算法
QT 小鲜肉1 天前
【孙子兵法之上篇】001. 孙子兵法·计篇深度解析与现代应用
笔记·读书·孙子兵法
love530love1 天前
【笔记】ComfUI RIFEInterpolation 节点缺失问题(cupy CUDA 安装)解决方案
人工智能·windows·笔记·python·插件·comfyui
愚戏师1 天前
MySQL 数据导出
数据库·笔记·mysql