高级系统架构师笔记——系统质量属性与架构评估(1)软件系统质量属性

(1)软件系统质量属性

软件系统质量属性

质量属性的概念

软件系统的质量就是"软件系统与明确地和隐含地定义的需求相一致的程度"。根据GB/T16260.1定义,从管理角

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

开发期质量属性

开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含6个方面。
开发期质量属性 易理解性 可扩展性 可重用性 可测试性 可维护性 可移植性

运行期质量属性

运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含7个方面。
运行期质量属性 性能 安全性 可伸缩性 互操作性 可靠性 可用性 鲁棒性

面向架构评估的质量属性

为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有以下几种。
面向架构评估的质量属性 性能 可靠性 可用性 安全性 可修改性 功能性 可变性 互操作性 容错 健壮性 机密性 完整性 不可否认性 可控性 可维护性 可扩展性 结构重组 可移植性

性能

定义:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数。

常用指标:响应时间、吞吐量

设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度

可靠性

定义:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

常用指标:平均失效等待时间(Mean Time To Failure,MTTF)、平均失效间隔时间(Mean Time Between Failure,MTBF)。在失效率为常数和修复时间很短的情况下,MTTF和MTBF几乎相等。

设计策略:心跳、Ping/Echo、冗余、选举、异常处理、监听机制。

可用性

定义:系统能够正常运行的时间比例。

常用指标:故障间隔时间

设计策略:心跳、Ping/Echo、冗余、选举、异常处理、监听机制。

安全性

定义:系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。

常用指标:机密性、完整性、不可否认性、可控性

设计策略:入侵检测、用户认证、用户授权、追踪审计

可修改性

定义:指能够快速地以较高的性价比对系统进行变更的能力。

常用指标:可移植性、可扩展性、结构重组、可移植性

设计策略:接口-实现分类、抽象、信息隐蔽

功能性

定义:系统能完成所期望的工作的能力

可变性

定义:指架构经扩充或变更而成为新架构的能力

互操作性

定义:作为系统组成部分的软件不是独立存在的,通常与其他系统或自身环境相互作用。为了支持互操作性,软件架构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件架构。

相关推荐
星恒随风2 小时前
Linux库的底层原理:ELF文件格式、静态链接、程序加载、虚拟地址空间与GOT/PLT详解
linux·运维·笔记·学习·状态模式
罗西的思考2 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 — (7)— 混合机制
笔记·学习
滑翔的企鹅2 小时前
从用户需求看 CMS:同一份内容如何服务网页、APP、搜索与 AI?
架构
姜鱼问生3 小时前
Docker Volume 备份与恢复实战:不停机迁移数据
后端·算法·架构
姜鱼问生3 小时前
服务器磁盘满了?从告警到清理的完整排查
后端·算法·架构
ClinicTech3 小时前
婴儿培养箱技术笔记:温控、报警与数据记录的三层架构
笔记
xiaominngtongxue3 小时前
从一次接触网实训课看中职实训教学的组织逻辑
笔记
xier_ran4 小时前
【infra之路】AI 编译器学习笔记(四):PatternRewriter 与贪心 driver
人工智能·笔记·学习
JAVA_AI人工智能项目实战4 小时前
Agent核心架构(四层架构、ReAct、OTAC、自主决策、Multi-Agent)
人工智能·语言模型·自然语言处理·架构
一心同学4 小时前
Hermes架构拆解之Environment
架构·environment·agent·hermes