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

架构评估方法相关知识总结

一、架构评估中的重要概念

        定义:软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。

        常用系统架构评估的方式:

                1. 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表。缺点是在很大

                   程度上依赖于评估人员的主观判断。问卷用于通用领域,检查表用于特定领域。

                2. 基于场景的评估方法:通过分析软件架构对场景的支持程度,较客观
                3. 基于度量的评估方法:建立在软件架构度量的基础上,设计三个基本活动:1. 首先需

                    要建立架构属性和度量之间的映射原则,2. 然后从软件架构文档中获取度量消息,3.

                    根据映射原则推导出系统的质量属性,较客观

        敏感点:一个或多个构件的特性,能够影响系统的某个质量属性

        权衡点:影响多个质量属性的特性,是多个质量属性的敏感点
        风险点:架构设计中潜在的、存在问题的架构决策所带来的隐患
        非风险点:不会带来隐患的架构决策

        风险承担者:也称为利益相关人。保证架构设计能够满足自己的目标

        质量属性场景相关概念

                场景:一个具体的质量属性需求,是利益相关者与系统的交互的简单陈述,是一种面向

                           特定质量属性的需求。

                刺激源:某个生成该刺激的实体
                刺激当刺激达到系统是需要考虑的条件
                环境:该刺激在某些条件内发生,刺激发生时系统可能处于的运行情况
                制品:被激励的系统,也可能是系统的一部分

                响应:激励达到后制品的采取的行动

                响应度量:响应发生时,能够以某种发生对其进行度量

二、SAAM架构评估方法(软件结构分析法)

        SAAM最初用于比较不同软件体系的架构,以分析系统架构的可修改性。后来扩展到其他属性。

        1. 特定目标:SAAM的目标是对描述应用程序属性的文档,验证其基本的架构设计假设和原则。不仅能评估架构对于特定系统需求的使用能力,也能用于比较不同的架构。

        2. 评估技术:SAAM采用的评估技术是场景技术

        3. 质量属性:SAAM把任何形式的质量属性都具体化为场景,主要质量属性是可修改性

        4. 风险承担者:SAAM协调不同参与者之间感兴趣的共同方面

        5. 架构描述:SAAM用于架构的最后版本,但早于详细设计

        6.方法活动:SAAM的主要输入是:问题描述、架构描述、需求声名 ,SAAM分析评估架构的过程有五个步骤:1. 场景开发,2. 架构描述,3. 单个场景评估, 4. 场景交互评估, 5. 总体评估

        

三、ATAM架构评估方法(架构权衡分析法)

        ATAM是在SAAM的基础上发展起来的,主要针对性能、实用性、可靠性、安全性和可修改性。

        1. 特定目标:在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。

        2. 质量属性:ATAM方法分析多个相互竞争的质量属性

        3. 风险承担者:ATAM需要所有系统相关人员参与

        4. 架构描述:从架构的4+1视图派生而来

        5. 评估技术:集成了许多优秀的单一理论模型

        6. 活动方法1. 场景和需求的收集,2. 架构视图和场景的实现,3. 属性模型的构建, 4. 分析和折中

                场景和需求收集阶段:1. 收集场景,2. 收集需求分析/约束/环境

                架构视图和场景实现阶段:3. 描述体系结构视图,4.实现场景 

                属性模型的构建阶段:5. 特定属性分析(休息的单一理论)

                分析和折中阶段:6. 标志折中,7. 标志敏感度

        ATAM对质量属性分析的工具:质量效用树。质量效用树对质量属性进行分类和优先级排序,结构为:树根——质量属性——属性分类——质量属性场景主要关注:性能,安全性,可修改性,可用性。

四、CBAM架构评估方法(成本效益分析法)

        定义:从经济角度建立成本、收益、风险和进度等方面的软件的经济模型。

        核心思想:质量属性为项目干系人带来的收益,根据投资回报比(ROI)选择架构策略。

CBAM在ATAM结束后开始,主要步骤为:

        1. 场景整理, 2. 对场景进行求精, 3. 确定场景的优先级, 4. 分配效用, 5. 架构策略设计哪些质量属性及响应级别,6. 使用内插法确定期望的质量属性效用级别的效用,7. 计算各种架构策略的总收益, 8. 根据受成本限制影响的ROI选择架构策略

五、其他评估方法

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

        SAABNet方法:依赖于专家知识,该方法来愿意AI,允许不确定、不完整的知识的推理。只用了BBN来表示和使用开发中的知识。

        SACMM方法:是一种软件架构修改的多方案。

        SASAM:通过对预期架构和实际架构进行映射和比较来静态的评估软件架构,并将静态评估于架构评估方法结合。

        ALRRA方法:架构可靠性风险评估的方法。

        AHP:层次分析法,是多种架构评估度量方法的基础理论。

        COSMIC+UML方法:基于面向对象系统源代码的可维护性的度量。

相关文章:

架构评估方法相关知识总结

一、架构评估中的重要概念 定义:软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。 常用系统架构评估的方式: 1. 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表。缺点是在很大 程度上依赖于评…...

常用ES标准

ES2015: 1.块级作用域const、let const声明对象可修改属性,但不能重新赋值对象。 2.解构赋值 const arr [a1, a2, a3]; const [a1, ...rest] arr; // rest [a2, a3];3.模板字符串 const date "星期一"; console.log(今天是${date};);4…...

Http中Host,Referer,Origin和Access-Control-Allow-Origin

Http中Host,Referer,Origin和Access-Control-Allow-Origin 文章目录 Http中Host,Referer,Origin和Access-Control-Allow-OriginHost定义特性作用 Referer定义特性作用 Origin定义特性作用 Access-Control-Allow-Origin定义特性作用…...

UDP实现聊天室

现象&#xff1a; 源码&#xff1a; 服务器&#xff1a; #include<myhead.h>struct sockaddr_in serveraddr,caddr; enum type_t//枚举 {Login,Chat,Quit, }; typedef struct MSG {char type;//L C Qchar name[32];//char text[128];// }msg_t;typedef struct NODE//链…...

排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序

冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;冒泡排序是一种简单的排序算法。它通过反复交换相邻的元素&#xff0c;将最大的元素逐步“浮”到数组的末尾。基本思想是每次比较相邻的两个元素&#xff0c;如果顺序不对就进行交换&#xff0c;直到整个数组有序。时间…...

深度学习pytorch——GPU加速(持续更新)

使用 .to(device)&#xff0c;以前使用 .cuda() &#xff0c;但是现在基本不使用了。 代码示例&#xff1a; 查看电脑GPU运行情况&#xff1a; 使用Ctrl Shift ESC快捷键&#xff1a;...

StringRedisTemplate

Redis快速入门 3.2.3.StringRedisTemplate 为了节省内存空间&#xff0c;我们可以不使用JSON序列化器来处理value&#xff0c;而是统一使用String序列化器&#xff0c;要求只能存储String类型的key和value。当需要存储Java对象时&#xff0c;手动完成对象的序列化和反序列化。…...

Linux cp、mv命令显示进度条

1.advcpmv 平常使用cp 拷贝大文件时&#xff0c;看不到多久可以完成&#xff0c;虽然加上-v参数也只能看到正在拷贝文件&#xff0c;那就使用以下方法实现 git clone https://github.com/jarun/advcpmv.git cd advcpmv/ bash install.shmv ./advcp /usr/local/bin/ mv ./advmv …...

在Java中使用Apache POI保留Excel样式合并多个工作簿

背景 在日常工作中&#xff0c;我们经常需要将多个Excel文件合并成一个&#xff0c;同时保留原有的样式和格式。Apache POI是一个流行的Java库&#xff0c;用于读取和写入Microsoft Office格式的文件&#xff0c;包括Excel。然而&#xff0c;仅仅使用Apache POI的基本功能进行…...

Nomachine远程黑屏通用处理方法

Nomachine远程黑屏通用处理方法 文章目录 前言正文解决步骤 总结 前言 NoMachine是一种远程桌面软件&#xff0c;它允许用户通过互联网或局域网连接到远程计算机&#xff0c;并在本地计算机上使用远程计算机的桌面环境和应用程序。它提供了高性能的图形渲染和低延迟的响应&…...

基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频

基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0072 讲解视频 基于51单片机数控直流电压源proteus仿真程序…...

[Linux]文件缓冲区

文件fd 输出重定向除了用dup2()改变数组下标外&#xff0c;还可以用命令来完成 所有的命令执行&#xff0c;都必须有操作系统将其运行起来变成进程&#xff0c;然后根据>>, <<来判断是输入重定向&#xff0c;还是输出重定向。 缓冲区 之所以有缓冲区&#xff0…...

ARM:按键中断

key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI…...

JavaScript高级(五)--柯西化函数

柯里化 定义 首先&#xff0c;我们参照维基百科给出的定义&#xff1a; 在计算机科学中&#xff0c;柯里化&#xff08;英语&#xff1a;Currying&#xff09;&#xff0c;又译为卡瑞化或加里化&#xff0c;是把接受多个参数的函数变换成接受一个单一参数&#xff08;最初函数…...

带3090显卡的Linux服务器上部署SDWebui

背景 一直在研究文生图&#xff0c;之前一直是用原始模型和diffuser跑SD模型&#xff0c;近来看到不少比较博主在用 SDWebui&#xff0c;于是想着在Linux服务器上部署体验一下&#xff0c;谁知道并没有想象的那么顺利&#xff0c;还是踩了不少坑。记录一下过程&#xff0c;也许…...

37、Linux中Xsync数据同步备份工具

37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注&#xff1a;本文全程在普通用户下操作&#xff0c;…...

网络基础:构建你的数字世界之桥

I. 引言 A. 什么是网络&#xff1f; 网络是由各种电子设备通过通信线路或无线电波连接起来&#xff0c;以便彼此之间进行数据交换和资源共享的系统。在当今数字化时代&#xff0c;网络已经成为我们生活和工作中不可或缺的一部分&#xff0c;无论是互联网、局域网还是无线通信…...

Python 全栈系列236 rabbit_agent搭建

说明 通过rabbit_agent, 以接口方式实现对队列的标准操作&#xff0c;将pika包在微服务内&#xff0c;而不必在太多地方重复的去写。至少在服务端发布消息时&#xff0c;不必再去考虑这些问题。 在分布式任务的情况下&#xff0c;客户端本身会启动一个持续监听队列的客户端服…...

管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】

管理自由&#xff0c;体验简单&#xff0c;使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】 哈喽小伙伴们好&#xff0c;我是Stark-C~。今天我们来解决一个之前评论区多次被提及的问题--多用户权限管理。 对于我们NAS用户来说&#xff0c;基本都会面临这…...

【Redis】优惠券秒杀

全局唯一ID 全局唯一ID生成策略&#xff1a; UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略&#xff1a;每天一个key&#xff0c;方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...