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

安全性

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

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

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

可修改性

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

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

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

功能性

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

可变性

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

互操作性

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

相关推荐
旧物有情28 分钟前
游戏开发常用架构 #MVP,MVC
游戏·unity·架构·mvc
浩哥学JavaAI1 小时前
2026年最新AI agent面试(07)_大模型架构基础
人工智能·面试·架构
运维行者_1 小时前
如何查看每个IP的带宽使用情况?NetFlow 技术实战指南
开发语言·网络·分布式·后端·架构·带宽
杨充2 小时前
4.接口而非实现编程
java·后端·架构
2601_954526752 小时前
【硬核架构】打破 IT 与 OT 的数据孤岛!基于 Rust 异步协程的工业 IoT 网关重构,兼谈顶级自动化智能仪表厂家选型指南
物联网·架构·rust
郑州光合科技余经理3 小时前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
玖玥拾3 小时前
Unity 3D 笔记(十一)UI 框架进阶:栈弹窗交互、BasePanel 基类虚方法、DoTween 界面动画
笔记·3d·unity
FellAveal3 小时前
【Go语言入门学习笔记】Part13.结构体与接口
笔记·学习·golang
李福春3 小时前
SpecCoding + Harness:把 Vibe Coding 从「灵感」钉成「可交付」
架构
kisshyshy3 小时前
《川剧变脸 × React 状态管理?我在浏览器里跑了个端侧大模型》
前端·react.js·架构