【新版系统架构】第八章-系统质量属性与架构评估

news2024/10/6 18:29:34

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)

  1. 第一章-绪论
  2. 第二章-计算机系统基础知识(一)
  3. 第二章-计算机系统基础知识(二)
  4. 第三章-信息系统基础知识
  5. 第四章-信息安全技术基础知识
  6. 第五章-软件工程基础知识(一)
  7. 第五章-软件工程基础知识(需求工程和系统分析与设计)
  8. 第五章-软件工程基础知识(软件测试、净室软件工程、基于构件的软件工程、 软件项目管理)
  9. 第六章-数据库设计基础知识(数据库基本概念、关系数据库)
  10. 第六章-数据库设计基础知识(数据库设计)
  11. 第七章-系统架构设计基础知识(基于架构的软件开发方法)
  12. 第七章-系统架构设计基础知识(架构风格、复用)

软件系统质量属性

软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。

从管理角度,可将影响软件质量的主要因素划分为:功能性、可靠性、易用性、效率、维护性和可移植性
功能性:适合性、准确性、互操作性、依从性、安全性
可靠性:容错性、易恢复性、成熟性
易用性:易学性、易理解性、易操作性
效率:资源特性、时间特性
维护性:可测试性、可修改性、稳定性、易分析性
可移植性:适用性、易安装性、一致性、可替换性

可以将软件系统的质量属性分为开发期质量属性和运行期质量属性。
开发期关注的质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性
运行期关注的质量属性:性能、安全性、可伸缩性、和操作性、可靠性、可用性、鲁棒性

一、面向架构评估的质量属性
架构评估过程中,评估人员说关注的是系统的质量属性,包括:

  • 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件个数
  • 可靠性(容错、健壮性):指软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的能力,用平均失效等待时间(MTTF)、平均失效间隔时间(MTBF)来衡量。
  • 可用性:指系统能够正常运行的时间比例,用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
  • 安全性:指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力
  • 可修改性(可维护性、可扩展性、结构重组、可移植性):指能够快速地以较高的性价比对系统进行变更的能力
  • 功能性:指系统能完成所期望的工作的能力
  • 可变性:指架构经扩充或变更而成为新架构的能力
  • 互操作性:不是独立存在的,通常与其他系统或自身环境相互作用

二、质量属性场景
质量属性场景主要关注:可用性、可修改性、性能、可测试性、易用性、安全性

  • 可用性:关注系统故障发生的频率、出现故障时发生的情况、允许系统有多长是正常运行、什么时候可以安全地出现故障、如何防止故障的发生、发生故障时要求进行哪种通知
  • 可修改性:关注系统在改变功能、质量属性时需要付出的成本和难度,可修改性质量属性场景可能发生在系统设计、编译、构建、运行等多种情况和环境下
  • 性能:主要关注系统的响应速度,可以通过效率、响应时间、吞吐量、负载来客观评价性能的好坏
  • 可测试性:主要关注系统测试过程中的效率,发现系统缺陷或故障的难易程度
  • 易用性:主要关注用户在使用系统时的容易程度,包括系统的学习曲线、完成操作的效率、对系统使用过程的满意程度
  • 安全性:主要关注系统在安全性方面的要素,衡量系统在向合法用户提供服务的同时,阻止非授权用户使用的能力

系统架构评估

系统架构评估的方法通常分为3类:基于调查问卷或检查表的方式、基于场景的方式、基于度量的方式

一、系统架构评估方法
SAAM(软件架构分析方法)方法:包括5个步骤,场景开发、架构描述、单个场景评估、场景交互和总体评估

ATAM(架构权衡分析法)方法:采用效率树对质量属性进行分类和优先级排序,其关注的质量属性:性能、安全性、可修改性和可用性

CBAM方法:在ATAM结束时开始,使用了ATAM评估的结果

其他评估方法:SAEM方法、SAABNet方法、SACMM方法、SASAM方法、ALRRA方法、AHP方法

二、ATAM 方法架构评估实践

其工作分为4个基本阶段:演示、调查和分析、测试和报告ATAM
在这里插入图片描述


作者其他要推荐的文章,欢迎来学习:
基于Spring Boot 3.1.0 系列文章

  1. Spring Boot 源码阅读初始化环境搭建
  2. Spring Boot 框架整体启动流程详解
  3. Spring Boot 系统初始化器详解
  4. Spring Boot 监听器详解
  5. Spring Boot banner详解
  6. Spring Boot 属性配置解析
  7. Spring Boot 属性加载原理解析
  8. Spring Boot 异常报告器解析
  9. 使用GraalVM 构建 Spring Boot 3.0 原生可执行文件
  10. Spring Boot 3.x微服务升级经历

Prometheus 系列文章

  1. Prometheus 的介绍和安装
  2. 直观感受PromQL及其数据类型
  3. PromQL之选择器和运算符
  4. PromQL之函数
  5. Prometheus 告警机制介绍及命令解读
  6. Prometheus 告警模块配置深度解析
  7. Prometheus 配置身份认证
  8. Prometheus 动态拉取监控服务
  9. Prometheus 监控云Mysql和自建Mysql

Grafana 系列文章,版本:OOS v9.3.1

  1. Grafana 的介绍和安装
  2. Grafana监控大屏配置参数介绍(一)
  3. Grafana监控大屏配置参数介绍(二)
  4. Grafana监控大屏可视化图表
  5. Grafana 查询数据和转换数据
  6. Grafana 告警模块介绍
  7. Grafana 告警接入飞书通知

Spring Boot Admin 系列

  1. Spring Boot Admin 参考指南
  2. SpringBoot Admin服务离线、不显示健康信息的问题
  3. Spring Boot Admin2 @EnableAdminServer的加载
  4. Spring Boot Admin2 AdminServerAutoConfiguration详解
  5. Spring Boot Admin2 实例状态监控详解
  6. Spring Boot Admin2 自定义JVM监控通知
  7. Spring Boot Admin2 自定义异常监控
  8. Spring Boot Admin 监控指标接入Grafana可视化

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

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

相关文章

(六)python实战——使用Redis库完成redis基本数据类型数据的操作案例

前言 本节内容主要介绍一下在python环境下,使用Redis库实现redis基本数据类型String、List、Set、Zset、Hash等数据的操作,通过案例的演示,学习python环境下,redis缓存数据库的基本使用和操作。 正文 ①使用pip命令安装Redis依…

Redis10大性能优化点(上)

1.Redis真的变慢了吗? 对 Redis 进行基准性能测试 例如,我的机器配置比较低,当延迟为 2ms 时,我就认为 Redis 变慢了,但是如果你的硬件配置比较高,那么在你的运行环境下,可能延迟是 0.5ms 时就…

计算机基础--->数据结构(6)【AVL树(平衡二叉树)】

文章目录 AVL(平衡二叉树)树性质AVL树的操作(Java)节点的创建AVL树的插入1.判断平衡2.保持树的平衡3.判断是否AVL树4.删除节点 全部代码 AVL(平衡二叉树)树 平衡二叉树是一种特殊的二叉搜索树,他…

不再担心代码丢失!掌握同步代码到两个git仓库的绝妙方法!

最近,我手里的项目由于某些原因,需要从一个代码仓库把所有的代码复制到另一个代码仓库中,并且以后再同步代码的时候,需要同时把本地的代码同步到两个代码仓库。为了满足这一需求,我将为大家介绍两种方案。方案一可以实…

飞行动力学 - 第4节-part1-螺旋桨式飞机的最大最小速度 之 基础点摘要

飞行动力学 - 第4节-part1-螺旋桨式飞机的最大最小速度 之 基础点摘要 1. 最小功率和最大/最小速度概念2. 最小功率2.1 手工推导2.2 PPT推导 3. 最大速度和最小速度函数关系4. 参考资料 1. 最小功率和最大/最小速度概念 最小功率:类似抛物线底部斜率为零的位置最大…

Qt-事件(下)(事件过滤、自定义事件)

文章目录 事件过滤自定义事件 事件过滤 event()函数是一个protected的函数,这意味着我们要想重写event(),必须继承一个已有的组件类,——重写其event()函数。event()函数的确有一定的控制,不过有时候我的需求更严格一些&#xff…

使用Python+Autogluon对“员工自评”进行机器学习建模分析

建模核心代码 #员工自评AutoML from autogluon.tabular import TabularDataset, TabularPredictor import warnings warnings.filterwarnings(ignore) train_data TabularDataset(train_df2)# 预测标签 label 员工自评# 模型保存文件名 save_path ../data/AUO-train/model/…

一种快速拓扑聚类算法

使用场景,节点编号不重叠,可以缺损,确定每个节点的相互关系和最大的节点编号,对节点进行聚类。如下图所示,分三个簇,计算每个簇包含的元素。 插入代码,暂时没有继续优化的空间 // TopologicalC…

嵌入式软件开发面试题(一)

目录 1.用预处理指令表示一年有多少秒 2.写出float x 与“零值”比较的if语句 3.为什么说if(0x)比if(x0)好? 4.将地0x8000中存放的整形变量,清除bit1。 5.linux下用shell命令在当前目录下创建myfolder目录,并将此目录的权限设为拥有者可读写群组和…

携手共赢!润建股份与科士达达成战略合作

7月4日(今日),润建股份有限公司(以下简称”润建股份“)与深圳科士达科技股份有限公司,在科士达光明工业园正式签署战略合作框架协议,双方将发挥各自领域的技术优势,在新能源与数字科…

Android开发之屏幕尺寸的兼容

屏幕尺寸和密度 本部分提供了具有特定屏幕配置(由屏幕尺寸和密度定义)的设备的相对数量数据。为了简化针对不同屏幕配置设计界面的过程,Android 将实际屏幕尺寸和密度的范围划分为多个区间(如下表所示)。 ldpi mdpitv…

MySQL之数据库引擎详解(内附面试题:InnoDB和MyISAM的联系与区别)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于MySQL数据库引擎的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 数据库引擎是什么&#xff…

【kubernetes系列】Kubernetes之生命周期和重启策略

概述 Pod 遵循一个预定义的生命周期,起始于 Pending 阶段,如果至少 其中有一个主要容器正常启动,则进入 Running,之后取决于 Pod 中是否有容器以 失败状态结束而进入 Succeeded 或者 Failed 阶段。 在 Pod 运行期间,k…

(30)精准降落和悬停(IRLock)

文章目录 30.1 概述 30.2 哪里可以买到 30.3 连接到自动驾驶仪 30.4 安装到框架上 30.5 通过任务规划器进行设置 30.6 飞行和测试 30.1 概述 Copter 支持使用 IR-LOCK 传感器(IR-LOCK sensor)和声纳或激光雷达(sonar or lidar)进行精确着陆。使用该系统,当飞行…

畅谈RocketMQ重复消费7个根源问题

在众多关于MQ的面试八股文中有这么一道题,“如何保证MQ消息消费的幂等性”。 为什么需要保证幂等性呢?是因为消息会重复消费。 为什么消息会重复消费? 明明已经消费了,为什么消息会被再次被消费呢? 不同的MQ产生的…

0基础学习VR全景平台篇 第56篇:专业版功能-故事线

功能位置示意 一、本功能将用在哪里? 故事线功能,支持将多个VR视频片段,自由设置剧情,在故事中设置多个路线结局,实现VR视频创作新玩法。 区别传统VR视频单项输出内容,促使用户主动思考,参与剧…

windows、linux部署seata1.3.0

前提:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明Spring Cloud AlibabaSpring CloudSpring BootNacosSeata2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.0.31.3.0背景:seata配合nacos使用,并开启nacos,nacos使用默认的namespace,mysql5.7 s…

在Jetpack Compose中使用SurfaceView

在 Android 开发中,SurfaceView 是一种特殊的视图,它拥有自己的专用绘图表面,可以在后台线程中更新,非常适合需要频繁和快速绘制的地方,如游戏和视频播放。然而,在Jetpack Compose(Google的新的…

dxf文件怎么转成dwg格式?分享几种简单的转换方法

将DXF文件转成DWG格式可以提高CAD文件的兼容性和功能性,使其更易于在不同的CAD软件之间传输和共享。如果我们需要与其他人共享CAD图纸,或者想要更好地利用CAD编辑软件的各种功能和工具,将文件转换为DWG格式会更好一些,那么怎么进行…

佳明手表APP开发系列02——汉字和图标的标准显示

前言 使用点阵字库的方式来汉化或者增强佳明App的显示是一种传统的方法,操作繁琐,效果也一般。笔者通过进一步的学习,发现佳明的MonkeyC支持一种新的方式,即 BmpFont文件的显示,可以像使用普通字符一样对包括汉字在内…