高级系统架构师笔记——系统质量属性与架构评估(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、冗余、选举、异常处理、监听机制。

安全性

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

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

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

可修改性

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

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

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

功能性

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

可变性

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

互操作性

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

相关推荐
ray_liang5 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Java编程爱好者5 小时前
字节二面:被问“大模型知识过时了怎么解?”,我答“微调”,面试官当场黑脸:“听说过 RAG 吗?”
架构
葫芦的运维日志9 小时前
从手动部署到GitOps只需四步
架构
sumuve9 小时前
从100行到1行:我是如何重构IoT设备实时数据通信的?
架构·响应式设计
刀法如飞9 小时前
从程序员到架构师:6大编程范式全解析与实践对比
设计模式·系统架构·编程范式
koddnty10 小时前
c++协程控制流深入剖析
后端·架构
Mintopia10 小时前
Vite 与 Uni-App X 的协作原理:从前端开发到多端运行的桥梁
架构
louiX1 天前
深入理解 Android BLE GATT 回调机制:从“回调地狱”到高可靠 OTA 架构
架构
aircrushin1 天前
轻量化大模型架构演进
人工智能·架构
天蓝色的鱼鱼1 天前
你的项目真的需要SSR吗?还是只是你的简历需要?
前端·架构