系统架构评估_2.SAAM方法

        SAAM(Scenarios-based Architecture Analysis Method)是卡耐基梅隆大学软件工程研究所(SEI at CMU)的Kazman等人于1983年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛使用的软件架构分析方法。最初它用于比较不同软件体系的架构,以分析系统架构的可修改性,后来实践证明它也可用于其他质量属性如可移植性、可扩充性等,最终发展成了评估一个系统架构的通用方法。

        (1)特定目标。

        SAAM的目标对描述应用程序属性的文档,验证基本的架构假设和原则。此外,该分析方法有利于评估架构固有的风险。SAAM指导对架构的检查,使其主要关注潜在的问题点,如需求冲突,或仅从某一参与者观点出发得出的不全面的系统设计。SAAM不仅能够评估架构对于特定系统需求的使用能力,也能被用来比较不同的架构。 

        (2)评估技术。

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

        (3)质量属性。

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

        (4)风险承担者。

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

        (5)架构描述。

        SAAM用于架构的最后版本,但早于详细设计。架构的描述形式应当被所有参与者理解。功能、结构和分配被定义为描述架构的3个主要方面。 

        (6)方法活动。

        SAAM的主要输入问题描述、需求声明和架构描述。图1描绘了SAAM分析活动的相关输入及评估过程。

图1 SAAM输入与评估过程 

        SAAM分析评估架构的过程包括5个步骤,即场景开发、架构描述、单个场景评估、场景交互和总体评估。

        通过各类风险承担者协商讨论,开发一些任务场景,体现系统所支持的各种活动。 

        用一种易于理解的、合乎语法规则的架构描述软件架构,体现系统的计算构件、数据构件以及构件之间的关系(数据和控制)。对场景(直接场景和间接场景)生成一个关于特定架构的场景描述列表。通过对场景交互的分析,能得出系统中所有场景对系统中的构件所产生影响的列表。最后,对场景和场景间的交互作一个总体的权衡和评价。

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

        (8)方法验证:SAAM是一种成熟的方法,已被应用到众多系统中,这些系统包括空中交通管制、嵌入式音频系统、WRCS(修正控制系统)、KWIC(根据上下文查找关键词系统)等。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是物联网?

2024年4月7日,周日下午 物联网(Internet of Things,IoT)是指利用各种信息传感器、设备、物体等,通过网络互联和通信技术,实现对物理世界中各种对象的智能化感知、识别、定位、追踪、监控、控制、管理和服务…

RabbitMQ Docker 安装与应用

1.官方镜像 该镜像包含用户操作界面 2.Docker运行,并设置开机自启动 docker run -d --restartalways --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.10-management 默认登录账户和密码 guest 3、使用 队列和交换机绑定

【CicadaPlayer】视频切换/音视频同时切换

G:\CDN\all_players\CicadaPlayer-github-0.44\mediaPlayer\SuperMediaPlayer.hCicadaPlayer https://github.com/alibaba/CicadaPlayer可以clone 整个仓库的历史 git clone --bare https://github.com/username/project.git整体架构 :根据这个更容易理解:切换就是judgeFunc…

A Random Walk Based Anonymous Peer-to-Peer

一、 背景 匿名性一直是P2P系统等自组织环境中最具挑战性的问题之一。在本文中,我们提出了一个匿名协议,称为基于随机漫步的匿名协议(RWAP),在分散的P2P系统。我们通过全面的轨迹驱动模拟来评估RWAP。结果表明,与现有方法相比,RWAP显著降低了流量成本和加密开销。 二、 …

zookeeper中的znode节点的一些功能和应用

zookeeper是一个挺好玩的东西 有着独特的选举机制,一般在中小型集群中,zookeeper一般装在三个节点 其中只有一个节点对外提供服务,处于leader状态,另外两台未follower状态 这得益于zookeeper独特的选举机制,可以保证le…

Springboot 在使用RabbitMQ 传送数据 发现 字符串 传递 没问题,但是 传送对象接收不到数据解决方案

springboot集成RabbitMQ后能通过RabbitTemplate很方便的传送对象。 注意!! 如果发送方和接收方在同一项目中,且发送使用的对象为同一个包导入,那么发送和接受都没有问题。 但是如果发送方和接收方在两个独立的子模块下&#xff…

Ubuntu22.04平台编译完美解决问题“error: GLSL 4.5 is not supported.”【GLSL(OpenGL着色器语言)】

GLSL介绍 GLSL(OpenGL着色器语言)是用于编写OpenGL着色器程序的语言。GLSL 4.5 是 GLSL 的一个版本,引入了许多新的特性和改进,旨在提高着色器编程的灵活性和性能。GLSL 4.5 工具通常是用于编写、调试和优化 GLSL 4.5 着色器代码…

【TI毫米波雷达】官方工业雷达包的生命体征检测环境配置及避坑(Vital_Signs、IWR6843AOPEVM)

【TI毫米波雷达】官方工业雷达包的生命体征检测环境配置及避坑(Vital_Signs、IWR6843AOPEVM) 文章目录 生命体征基本介绍IWR6843AOPEVM的配置上位机配置文件避坑上位机start测试距离检测心跳检测呼吸频率检测空环境测试 附录:结构框架雷达基…

如何在 Node.js 中使用 bcrypt 对密码进行哈希处理

在网页开发领域中,安全性至关重要,特别是涉及到用户凭据如密码时。在网页开发中至关重要的一个安全程序是密码哈希处理。 密码哈希处理确保明文密码在数据库受到攻击时也难以被攻击者找到。但并非所有的哈希方法都是一样的,这就是 bcrypt 突…

AcWing刷题-公约数

公约数 代码 from math import gcd a, b map(int, input().split()) p int(input()) max_gcd gcd(a, b) res []for i in range(1, int(max_gcd**0.5)1):if max_gcd % i 0:res.append(i) res.append(max_gcd//i) res sorted(set(res))for _ in range(p):l, r map(int,…

绘图工具 draw.io / diagrams.net 免费在线图表编辑器

拓展阅读 常见免费开源绘图工具 OmniGraffle 创建精确、美观图形的工具 UML-架构图入门介绍 starUML UML 绘制工具 starUML 入门介绍 PlantUML 是绘制 uml 的一个开源项目 UML 等常见图绘制工具 绘图工具 draw.io / diagrams.net 免费在线图表编辑器 绘图工具 excalidr…

2024 蓝桥打卡Day34

20240406蓝桥杯备赛 1、学习蓝桥云课省赛冲刺课 【1-手写与思维】【2-递归与递推】2、学习蓝桥云课Java省赛无忧班 【1-语言基础】3、代码练习字符串排序大小写转换 (ccfcsp之前要是学了我就能上200了 啊啊啊啊 错过啊)斐波那契数列 递归解法纸张尺寸问题…

mac老版本如何升级到最新版本

mac老版本如何升级到最新版本 老macbook升级新版本(Big sur、Monterey) 首先介绍我的电脑的机型及情况: 2015年初的MacBook Air 处理器是1.6Hz 双核Interl Core i5 内存4G 老版本只能升到10.13 想要升到最高版本的原因:想要注册…

1085: 【C3】【高精度】大整数加法

题目描述 求两个不超过200位的非负整数的和 输入 有两行&#xff0c;每行是一个不超过200位的非负整数 输出 一行&#xff0c;即相加后的结果 样例输入 22222222222222 33333333333333333333 样例输出 33333355555555555555 Code: #include<bits/stdc.h> usin…

JJVM类的加载过程

类的加载过程 一个java文件从被加载到被卸载这个生命过程&#xff0c;总共要经理五个阶段&#xff0c;JVM将类加载过程分为&#xff1a;&#xff08;加链初使卸&#xff09; 1. 加载 首先通过一个类的全限定名来获取此类的二进制字节流&#xff1b;其次将这个字节流所代表的静…

【JVM性能调优】- 合理分配堆空间

1、合理的堆空间该如何分配 Java内存各分区的大小对JVM的性能影响很大&#xff0c;不恰当的空间大小可能会埋下很多故障隐患&#xff0c;同时也会直接或间接影响JVM的提升速率、分配速率&#xff0c;所以如何将各分区调整到合适的大小就成了一个棘手的问题。大部分不具备线上JV…

Centos7下docker删除容器与镜像

个人记录 查看容器 docker ps -a停止容器运行 docker stop jenkins卸载容器 docker rm jenkins查看镜像 docker images卸载镜像 docker rmi IMAGE ID查看容器与镜像是否卸载完毕 docker images docker ps -a

avro c++编译与使用

一、arvo介绍 Avro 是 Hadoop 中的一个子项目&#xff0c;也是一个数据序列化系统&#xff0c;其数据最终以二进制格式&#xff0c;采用行式存储的方式进行存储。 Avro提供了&#xff1a; 1)、丰富的数据结构。 2)、可压缩、快速的二进制数据格式。 3)、一个用来存储持久化数据…

海外媒体宣发,穿透与世界的交流 - “保姆级”教程 - 大舍传媒

1. 引言 在当今高度信息化的世界&#xff0c;境外媒体宣发已经成为企业、品牌和政府机构推广自身形象、扩大影响力的重要手段。如何在国际舞台上有效传播信息&#xff0c;提高国际知名度&#xff0c;成为了许多组织面临的重要课题。大舍传媒凭借多年的境外媒体宣发经验&#x…

TYPE-C PD协议 OTG - 开启充电与数据传输

TYPE-C PD协议&#xff0c;作为一种先进的充电与数据传输协议&#xff0c;正以其卓越的性能引领着充电与数据传输技术的发展。它通过USB Type-C接口&#xff0c;实现了充电与数据传输的完美结合&#xff0c;为用户带来了前所未有的便捷体验。 TYPE-C PD协议的一大亮点在于其支…