系统架构设计师教程 第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)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145585.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

用户态缓存:高效数据交互与性能优化

目录 1. 用户态缓存区工作背景 1.1 为什么每条连接都需要读写缓存区 1.1.1 读缓存区(Read Buffer) 1.1.2 写缓存区(Write Buffer) 1.2 用户态缓存区的工作流程 1.3 用户态缓存区的重要性 2. UDP 和 TCP 的设计差异 2.1 UD…

Python模块和包:标准库模块(os, sys, datetime, math等)②

文章目录 一、os 模块1.1 获取当前工作目录1.2 列出目录内容1.3 创建和删除目录1.4 文件和目录操作 二、sys 模块2.1 获取命令行参数2.2 退出程序2.3 获取 Python 版本信息 三、datetime 模块3.1 获取当前日期和时间3.2 日期和时间的格式化3.3 日期和时间的运算 四、math 模块4…

私有化聊天软件成为企业内部通讯新趋势

在数字化转型浪潮的推动下,企业对于高效、安全、灵活的内部通讯需求日益增长。传统的电子邮件、电话会议等沟通方式已难以满足现代企业对即时性、协作性和信息安全性的要求。因此,私有化聊天工具作为企业内部通讯的定制化解决方案,正逐渐成为…

我的数据库第一课:从懵懂到启迪

我的数据库第一课:从懵懂到启迪 前言 在数字化浪潮席卷全球的今天,数据库作为IT技术的“活化石”,已经成为不可或缺的基础设施。特别是在国内,随着经济的飞速发展和信息化建设的推进,数据库技术也经历了从无到有、从…

企业微信用户授权与校验完整对接流程

Hello!欢迎各位新老朋友来看小弟博客,祝大家事业顺利,财源广进!! 主题:企业微信用户授权与校验完整对接流程 一:构造第三方应用授权链接 如果第三方应用需要在打开的网页里面携带用户的身份信息…

解锁数字转型新纪元:Vatee万腾平台,您的智能加速与策略智库

在数字经济时代的大潮中,企业的数字化转型已不再是选择题,而是必答题。面对这一挑战,Vatee万腾平台以其卓越的技术实力和前瞻性的战略视野,成为了众多企业加速数字化转型、实现智能化升级的得力助手和智囊团。 加速转型&#xff…

个人量化成功之路-----用代码一键画图Donchian Channel(唐奇安通道指标)

Donchian Channel(唐奇安通道指标)是用于交易突破的最古老、最简单的技术指标之一。是由Richard Donchian 提出的一个由三条线(上阻力线、下支撑线、中心线)组成的通道指标。 一般来说,唐奇安通道的宽度越宽&#xff0…

ISSCC34.7解析一种具备内存编码与刷新功能的eDRAM查找表数字存内计算芯片

一、引言 1. DCIM概述 数字存内计算(Digital Computing-in-Memory, DCIM)是一种将计算操作直接集成到存储单元中的新兴计算架构。传统计算模型(冯诺依曼架构)中的计算和存储是分离的,数据必须频繁在存储器和处理单元…

FastDFS的docker部署及实现头像上传

FastDFS的使用并实现头像上传 一、FastDFS概述二、安装FastDFS1. 拉取镜像2. 安装tracker3. 安装storage4. NGINX服务启动三、配置和依赖配置依赖四、头像上传一、FastDFS概述 概述 上传交互过程 两个服务:Tracker Server 和Storage Server Tracker Server 跟踪服务,负责调…

UNRAID系统忘记密码解决办法

前言 unraid系统自己通过命令修改密码以后,怎么也进不去了。 这次带来如何重置密码 操作

着色器 简介

着色器(Shader)是运行在 GPU 上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间…

C语言进阶【5】---数据在内存中的存储【2】(小数存储很难吗?)

本章概述 本章引要练习 浮点数的存储浮点数的取出小补充题目解析彩蛋时刻!!! 本章引要 常见的浮点数:3.1415,1E10等。其中,1E10是科学计数法的形式,它也就等于1*10^10。小数数据类型&#xff1…

猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案

🐯 猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案 今天猫头虎带您探讨一个开发中常见但让人头疼的错误:Uncaught (in promise) ReferenceError: proxy is not defined。 很多前端开发者在工作中都会遇…

中国书法—孙溟㠭浅析碑帖《爨宝子碑》

中国书法——孙溟㠭浅析碑帖《爨宝子碑》 《爨宝子碑》 全称是《晋故振威将军建宁太守爨宝子之墓》,此碑刻于东晋大亨四年(公元405年)属楷书体。 《爨宝子碑》 《爨宝子碑》 至清朝乾隆四十三年(1778年)在云南南宁&…

基于C#+SQL Server2005(WinForm)图书管理系统

图书管理系统 一、 首先把数据库脚本贴出来(数据库名为library) USE [library] GO /****** Object: Table [dbo].[books] Script Date: 06/12/2016 11:27:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[books]([bNum] [nvarchar](10…

Σ-Δ模数转换器(ADC)揭秘(2)

5. Maxim的Σ-Δ ADC 新型高度集成Σ-Δ ADC以最少数量的外部元件处理小信号。例如,MAX1402芯片包括众多功能,被作为片上系统(图12)。器件在工作模式下的静态电流低至250A(关断模式下为2A),480sps速率时的精度为16位,4800sps速率…

英语六级-学习

01 英语分值比例 02听力学习 听力练习,基础好选择标准VOA和BBC。基础差选择VOA慢速。 听力内容包括不受政治争议的内容,社会生活类(奇闻趣事、日常生活)、经济类(商务、职场相关)、环保类、互联网类---------根据各类主题快速找到录音材料中心点。 研…

基于YOLOv8的RTSP视频流实时目标检测与告警系统设计与实现(超详细)

前言 在训练模型完成后,想把模型应用起来,比如模型可以部署到项目中,实时接收RTSP视频流进行识别检测,一旦达到自己所设置的置信度阈值(例如大于0.5),系统就会实时把报警信息发送给服务端&…

让银河麒麟桌面操作系统V10(SP1)允许ping测

银河麒麟桌面操作系统V10(SP1)使用的防火墙是kylin-firewall,默认情况下“公用网络”是禁ping的,如下图: 可以在“安全中心”->“网络保护”->“配置访问规则”->“专网规则”->找到“icmp”这条规则&…

减少代码错误的方法

最重要的是在写之前多举几个刁钻的例子来理解问题和代码的正确性 如果你给不出反例就说明你还没有理解(有的反例会后来会被证明是错的) 由于递归是把自己的和别人的相关的混合在一起来了,所以举反例的时候要从不同的角度出发。 求割点的&a…