高级系统架构师笔记——系统质量属性与架构评估(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 小时前
Agent 上下文爆炸:200 万退款事故复盘
架构
杉氧6 小时前
副作用 (Side Effects) 全攻略:如何像大师一样掌控 Composable 的生命周期?
android·架构·android jetpack
徐小夕7 小时前
jitword 协同文档3.2发布:打造浏览器中最强word编辑器
前端·架构·github
玉宇夕落10 小时前
Harness Engineering 核心四层一:记忆模块的简单学习
架构
BothSavage10 小时前
OpenHarness源码研究-3-codex配置到输出对话
后端·架构
杉氧1 天前
深入理解 Compose 重组机制:快照系统如何驱动 UI 精准刷新?
android·架构·android jetpack
杉氧1 天前
深度解析:Jetpack Compose 核心架构与底层原理 —— 十年安卓老兵的“破茧重生”
android·架构·android jetpack
Lion091 天前
ReAct 循环:Agent 的思考引擎 — Think → Act → Observe
架构
得物技术1 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
自珍JAVA1 天前
Superpowers AI编码秩序
架构