当前位置: 首页 > news >正文

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

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

系统结构评估的方法通常可以分为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 方法是一种软件架构修改的度量方法,首先基于图内核定义差异度量准则来计算两个软件架构之间的距离,图内核的基本思想是将结构化的对象描述为它的子结构的集合,通过子结构的配对比较来分析对象之间的相似性。

相关文章:

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

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

AI产品摄影丨香水

AI电商产品拍摄丨(可指定产品) 均为概念图 可换产品 可指定产品,可换logo 工具:StartAI 搭配“手机摄影”风格使用效果更佳哦 咒语:anha perfume in bottle on stone surface, in the style of everyday american…...

Linux系统——tee命令

目录 一、命令简介 二、命令使用 1.命令帮助 2.查看块设备列表并记录到文件存档 3.重复多次标准输入内容 4.将文件复制多份 5.静默输出到文件 6.使用追加方式写入文件 7.将错误信息也输出到文件 8.直接通过键盘往文件输入 9.参数使用案例 三、选项 一、命令简介 t…...

Java agent技术的注入利用与避坑点

什么是Java agent技术? Java代理(Java agent)是一种Java技术,它允许开发人员在运行时以某种方式修改或增强Java应用程序的行为。Java代理通过在Java虚拟机(JVM)启动时以"代理"(agent…...

Linux每日练习

第一部分 1.打开桌面的主文件夹,在图片文件夹下新建一个名为111的文件夹,在视频文件夹下创建一个名为222的文件夹 [rootxcz7 desk]# mkdir -p ./pic/111 [rootxcz7 desk]# mkdir -p ./video/2222.在桌面打开终端,先切换到根目录下&#xff…...

【Python】6. 基础语法(4) -- 列表+元组+字典篇

列表和元组 列表是什么, 元组是什么 编程中, 经常需要使用变量, 来保存/表示数据. 如果代码中需要表示的数据个数比较少, 我们直接创建多个变量即可. num1 10 num2 20 num3 30 ......但是有的时候, 代码中需要表示的数据特别多, 甚至也不知道要表示多少个数据. 这个时候,…...

【C++庖丁解牛】C++内存管理 | new和delete的使用以及使用原理

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1. C/C内存分布2. C语…...

go调用 c++中数组指针相关

要在Go语言中调用C编译的DLL(动态链接库)并传递数组,你需要遵循以下步骤: 编写C代码:首先,你需要有一个C的DLL,它提供了你想要在Go中调用的函数。为了确保Go可以调用它,你需要使用C…...

NTFS Disk by Omi NTFS for mac v1.1.4中文版

NTFS Disk by Omi NTFS for Mac:NTFS文件系统的无缝桥梁 软件下载:NTFS Disk by Omi NTFS for mac v1.1.4中文版 🌐 跨平台访问,文件无阻 NTFS Disk by Omi NTFS for Mac 为您的Mac提供了对NTFS文件系统的无缝访问。无论您是在Win…...

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行 目录 Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行前言1 使用GUI-Guider设计UI1.1 创建工程1.2 设计UI 2 ESP工程导入UI2.1 移植LVGL2.2 移植UI文件2.3 调用UI文件2.4 烧录测试 结束语 前言 GU…...

前端WebRTC局域网1V1视频通话

基本概念 WebRTC(Web Real-Time Communications) 网络实时通讯,它允许网络应用或者站点,在不借助中间媒介的情况下,建立点对点(Peer-to-Peer)的连接,实现视频流和音频流或者其他任…...

设计模式之构建者模式

构建者模式(Builder) 定义 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示 使用场景 主要角色 产品 Product建造者接口 Builder具体的建造者 Concrete Builder指挥者 Director:组织构建过程 示例代码 Data p…...

【PCIe 链路训练】之均衡(equalization)

1、概述 这篇文章简单介绍一下PCIE phy的均衡原理和过程,USB phy,ethernet phy这些高速的串行serdes也有相同或者相似的结构。可以不用太关注其中的细节,等到debug的时候可以查询协议,但是需要了解这个故事讲的大概内容。整个equalization过程是controller和phy一起配合完成…...

P1059 [NOIP2006 普及组] 明明的随机数

题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着…...

【每日一问】Cookie、Session 和 Token 有什么区别?

Cookie、Session 和 Token 通常都是用来保存用户登录信息的技术,但三者有很大的区别,简单来说 Cookie 适用于简单的状态管理,Session 适用于需要保护用户敏感信息的场景,而 Token 适用于状态无关的身份验证和授权。 具体来说&…...

智能合约语言(eDSL)—— proc_macro实现合约init函数

我们通过属性宏来实现合约的init函数,call函数其实和init是类似的; GitHub - XuHugo/xwasm 构建属性宏,要在cargo.toml里面设置一些参数,这是必须的。一般来说,过程宏必须是一个库,或者作为工程的子库&…...

如何使用 ArcGIS Pro 制作三维地形图

伴随硬件性能的提高和软件算法的优化,三维地图的应用场景会越来越多,这里为大家介绍一下在ArcGIS Pro怎么制作三维地形图,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的DEM和影像数据,除了DEM和影像数据…...

服务器配置禁止IP直接访问,只允许域名访问

联网信息系统需设置只允许通过域名访问,禁止使用IP地址直接访问,建议同时采用云防护技术隐藏系统真实IP地址且只允许云防护节点IP访问服务器,提升网络安全防护能力。 一、Nginx 修改配置文件nginx.conf,在server段里插入正则表达式…...

#14vue3生成表单并跳转到外部地址的方式

1、背景 后端返回的json数据中包含一个json数组,此数组中是目标跳转地址所需要的form表单的数据。 2、跳转前的页面 const goto () > {finish.value true;request.post(/xxx/yyy,{zzz: zzz.value}).then(res > {const url res.data.submitUrlconst params…...

航测管家:智能化革新航测作业流程

在信息时代的浪潮中,倾斜摄影作为一种高效的航测技术,对于城市规划、土地管理、环境监测等领域的重要性日益凸显。然而,航测作业中的数据管理和设备操作复杂性一直是行业面临的挑战。深圳赛尔智控推出的赛尔航测管家,凭借其智能化…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...