【新版系统架构】第八章-系统质量属性与架构评估(软件系统质量属性、系统架构评估)

news/2024/7/4 8:00:37 标签: 系统架构, 微服务, 云原生

软考-系统架构设计师知识点提炼-系统架构设计师教程(第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方法


作者其他要推荐的文章,欢迎来学习:
基于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.niftyadmin.cn/n/1006915.html

相关文章

Excel文件导入导出工具类

之前写过一篇导出Excel文件的通用类的文章&#xff0c;当时只实现了导出数据到Excel的功能&#xff0c;这次在上次的基础上&#xff0c;增加从Excel读取数据到List的功能&#xff0c;依旧使用POI读取Excel文件。 代码实现 1.在pom.xml中添加POI相关依赖 <!-- POI --><…

AR急诊急救大平台远程专家会诊方案

随着AR技术的完善&#xff0c;在医院急救中&#xff0c;需要及时把各方面专家汇在一起会诊&#xff0c;在AR这方面有数据采集清晰&#xff0c;资料呈现方便便捷&#xff0c;针对客户需要&#xff0c;我们对业务需求分析&#xff0c;比较市面多种产品&#xff0c;把会议&#xf…

Python 利用深度学习识别空间推理验证码(一)

注意:本文会比较长,因为空间推理验证码本身比较复杂,我会详细的讲解,我是如何一步一步拆分空间推理的思想去实现的,另外,这里只介绍第一种思想来解决空间推理验证码,实际上,解决该验证码的方法也比较多,这第一种,我会讲解的比较简单,通俗易懂。 注意:下面数据集使用…

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库

云服务器系统环境: 华为云 Ubuntu 9.3.0-17ubuntu1~20.04 1.ECS准备docker相关环境 1.1ECS安装docker 一行一行执行 都是从官网找的命令 sudo -i apt update apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL htt…

CTF安全竞赛介绍

目录 一、赛事简介 二、CTF方向简介 1.Web&#xff08;Web安全&#xff09; &#xff08;1&#xff09;简介 &#xff08;2&#xff09;涉及主要知识 2.MISC&#xff08;安全杂项&#xff09; &#xff08;1&#xff09;介绍 &#xff08;2&#xff09;涉及主要知识 3…

【Python入门系列】第四篇:Python网络编程总结

文章目录 前言一、TCP/IP协议与套接字编程1、理解TCP/IP协议栈的基本原理2、使用Python套接字编程实现网络通信3、创建TCP服务器和客户端4、实现基于套接字的UDP通信 二、HTTP与Web编程1、了解HTTP协议的工作原理2、使用Python构建简单的Web服务器3、处理HTTP请求和响应4、实现…

免费搭建一个有脾气的聊天机器人,1行Python代码就够了!

大家好&#xff0c;这里是程序员晚枫。 之前在小破站&#xff1a;Python自动化办公社区给大家免费分享了用Python制作一个wx机器人&#xff0c;1行代码人人可用&#xff0c;很多人还想要免费的智能聊天功能。 今天终于开发出来了&#xff0c;让我们一起看一下&#xff0c;如何…

【485. 最大连续 1 的个数】

目录 一、题目解析二、算法思路三、代码实现 一、题目解析 二、算法思路 三、代码实现 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int ret0;int left0,right0;for(;right<nums.size();right){if(nums[right]!1){retmax(ret,right…