当前位置: 首页 > 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…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...