软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)
- 第一章-绪论
- 第二章-计算机系统基础知识(一)
- 第二章-计算机系统基础知识(二)
- 第三章-信息系统基础知识
- 第四章-信息安全技术基础知识
- 第五章-软件工程基础知识(一)
- 第五章-软件工程基础知识(需求工程和系统分析与设计)
- 第五章-软件工程基础知识(软件测试、净室软件工程、基于构件的软件工程、 软件项目管理)
- 第六章-数据库设计基础知识(数据库基本概念、关系数据库)
- 第六章-数据库设计基础知识(数据库设计)
- 第七章-系统架构设计基础知识(基于架构的软件开发方法)
- 第七章-系统架构设计基础知识(架构风格、复用)
软件系统质量属性
软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。
从管理角度,可将影响软件质量的主要因素划分为:功能性、可靠性、易用性、效率、维护性和可移植性
功能性:适合性、准确性、互操作性、依从性、安全性
可靠性:容错性、易恢复性、成熟性
易用性:易学性、易理解性、易操作性
效率:资源特性、时间特性
维护性:可测试性、可修改性、稳定性、易分析性
可移植性:适用性、易安装性、一致性、可替换性
可以将软件系统的质量属性分为开发期质量属性和运行期质量属性。
开发期关注的质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性
运行期关注的质量属性:性能、安全性、可伸缩性、和操作性、可靠性、可用性、鲁棒性
一、面向架构评估的质量属性
架构评估过程中,评估人员说关注的是系统的质量属性,包括:
- 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件个数
- 可靠性(容错、健壮性):指软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的能力,用平均失效等待时间(MTTF)、平均失效间隔时间(MTBF)来衡量。
- 可用性:指系统能够正常运行的时间比例,用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
- 安全性:指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力
- 可修改性(可维护性、可扩展性、结构重组、可移植性):指能够快速地以较高的性价比对系统进行变更的能力
- 功能性:指系统能完成所期望的工作的能力
- 可变性:指架构经扩充或变更而成为新架构的能力
- 互操作性:不是独立存在的,通常与其他系统或自身环境相互作用
二、质量属性场景
质量属性场景主要关注:可用性、可修改性、性能、可测试性、易用性、安全性
- 可用性:关注系统故障发生的频率、出现故障时发生的情况、允许系统有多长是正常运行、什么时候可以安全地出现故障、如何防止故障的发生、发生故障时要求进行哪种通知
- 可修改性:关注系统在改变功能、质量属性时需要付出的成本和难度,可修改性质量属性场景可能发生在系统设计、编译、构建、运行等多种情况和环境下
- 性能:主要关注系统的响应速度,可以通过效率、响应时间、吞吐量、负载来客观评价性能的好坏
- 可测试性:主要关注系统测试过程中的效率,发现系统缺陷或故障的难易程度
- 易用性:主要关注用户在使用系统时的容易程度,包括系统的学习曲线、完成操作的效率、对系统使用过程的满意程度
- 安全性:主要关注系统在安全性方面的要素,衡量系统在向合法用户提供服务的同时,阻止非授权用户使用的能力
系统架构评估
系统架构评估的方法通常分为3类:基于调查问卷或检查表的方式、基于场景的方式、基于度量的方式
一、系统架构评估方法
SAAM(软件架构分析方法)方法:包括5个步骤,场景开发、架构描述、单个场景评估、场景交互和总体评估
ATAM(架构权衡分析法)方法:采用效率树对质量属性进行分类和优先级排序,其关注的质量属性:性能、安全性、可修改性和可用性
CBAM方法:在ATAM结束时开始,使用了ATAM评估的结果
其他评估方法:SAEM方法、SAABNet方法、SACMM方法、SASAM方法、ALRRA方法、AHP方法
二、ATAM 方法架构评估实践
其工作分为4个基本阶段:演示、调查和分析、测试和报告ATAM
作者其他要推荐的文章,欢迎来学习:
基于Spring Boot 3.1.0 系列文章
- Spring Boot 源码阅读初始化环境搭建
- Spring Boot 框架整体启动流程详解
- Spring Boot 系统初始化器详解
- Spring Boot 监听器详解
- Spring Boot banner详解
- Spring Boot 属性配置解析
- Spring Boot 属性加载原理解析
- Spring Boot 异常报告器解析
- 使用GraalVM 构建 Spring Boot 3.0 原生可执行文件
- Spring Boot 3.x微服务升级经历
Prometheus 系列文章
- Prometheus 的介绍和安装
- 直观感受PromQL及其数据类型
- PromQL之选择器和运算符
- PromQL之函数
- Prometheus 告警机制介绍及命令解读
- Prometheus 告警模块配置深度解析
- Prometheus 配置身份认证
- Prometheus 动态拉取监控服务
- Prometheus 监控云Mysql和自建Mysql
Grafana 系列文章,版本:OOS v9.3.1
- Grafana 的介绍和安装
- Grafana监控大屏配置参数介绍(一)
- Grafana监控大屏配置参数介绍(二)
- Grafana监控大屏可视化图表
- Grafana 查询数据和转换数据
- Grafana 告警模块介绍
- Grafana 告警接入飞书通知
Spring Boot Admin 系列
- Spring Boot Admin 参考指南
- SpringBoot Admin服务离线、不显示健康信息的问题
- Spring Boot Admin2 @EnableAdminServer的加载
- Spring Boot Admin2 AdminServerAutoConfiguration详解
- Spring Boot Admin2 实例状态监控详解
- Spring Boot Admin2 自定义JVM监控通知
- Spring Boot Admin2 自定义异常监控
- Spring Boot Admin 监控指标接入Grafana可视化