系统质量属性

软件架构的基本需求是在满足功能属性的前提下,关注软件系统的质量属性 。在精准描述软件质量场景后,可通过对架构的评估决定架构策略以及架构评审。

一、软件系统质量属性

基于软件系统生命周期,将软件系统质量属性分为开发期质量属性和运行期质量属性。

1、开发期质量属性

易理解性:指设计被开发人员理解的难易程度
可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称灵活性
可重用性:指重用软件系统或某一部分的难易程度
可测试性:对软件测试以证明其满足需求规范的难易程度
可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度
可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度


2、运行期质量属性

性能:软件系统及时提供相应服务的能力,如速度、吞吐量和容量等
安全性:软件系统同时兼顾向合法用户提供服务,以及组织非授权使用的能力
可伸缩性:当用户数和数据量增加时,软件系统维持高服务质量的能力
互操作性:软件系统与其他系统交换数据和相互调用服务的难易程度
可靠性:软件系统在一定的时间内持续无故障运行的能力
可用性:系统在一定时间内正常工作的时间所占比例
鲁棒性:软件系统在非正常情况(用户进行非法操作、相关软硬件系统发生故障)下仍正常运行的能力,也称健壮性或容错性


二、面向架构评估的质量属性

1、相关属性介绍

性能:处理任务所需时间或单位时间内的处理量

可靠性:分为容错与健壮性。容错即出现错误后仍能保证系统争取运行,且自行修正错误;健壮性即错误不对系统产生影响,按既定程序忽略错误
可用性:正常运行的时间比例
安全性:系统向合法用户提供服务并阻止非法用户的能力
可修改性:分为可维护性、可扩展性、结构重组、可移植性。
功能性:需求的满足程度
可变性:总体架构可变
互操作性:通过可视化或接口方式提供更好的交互操作体验


2、提升或保证质量属性的应对措施

①提升可用性:
错误检测:心跳、Ping/Echo、异常。
错误恢复:表决、主动冗余、被动冗余、重新同步、内测、检查点/回滚。
错误避免:服务下线、事务、进程监控器。
②提升性能:
资源的需求:减少处理事件时对资源的占用、减少处理事件的数量、控制资源的使用。
资源管理:并发机制、增加资源。
资源仲裁:先来先服务、固定优先级、动态优先级、静态调度。
③提升可修改性:
局部化修改:高内聚低耦合、预测变更、使模块通用。
防止连锁反应:信息隐藏、维持现有接口、限制通信路径、使用中介。
推迟绑定时间:运行时注册、多态、配置文件。
④提升安全性:
抵抗攻击:用户身份验证、用户授权、维护数据机密性与完整性、限制暴露、限制访问。
检测攻击:入侵检测系统。
从攻击中恢复:恢复状态、识别攻击者

3、质量属性场景描述

质量属性场景是一种面向特定质量属性的需求,由刺激源、刺激、环境、制品、响应、响应度量组成。
(1)刺激源(Source):某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
(2)刺激(Stimulus):指当刺激到达系统时需要考虑的条件。
(3)环境(Environment):指该刺激在某些条件内发生。当激励发生时,系统可能处于过载、
运行或者其他情况。
(4)制品(Artifact):某个制品被激励,可能是整个系统,也可能是系统的一部分。
(5)响应(Response):指在激励到达后所采取的行动。
(6)响应度量(Measurement):当响应发生时,应当能够以某种方式对其进行度量,以对需
求进行测试。

相关推荐
Ashlee_code17 小时前
BSS供应商:电信与金融领域的幕后支撑者
大数据·网络·金融·系统架构·跨境·金融机构·场外期权
武子康2 天前
Java-166 Neo4j 安装与最小闭环 | 10 分钟跑通 + 远程访问 Docker neo4j.conf
java·数据库·sql·docker·系统架构·nosql·neo4j
Ashlee_code2 天前
经纪柜台系统解析:从今日国际金融动荡看证券交易核心引擎的变革
python·架构·系统架构·区块链·vim·柜台·香港券商
qqxhb3 天前
系统架构设计师备考第66天——系统安全架构
系统架构·安全架构·技术/组织/管理·wpdrrc·osi安全·多点防御·支撑设施
qqxhb3 天前
系统架构设计师备考第63天——通信系统架构
5g·系统架构·局域网·通信系统·sdn·广域网·存储网络san/nas
qqxhb3 天前
系统架构设计师备考第67天——数据库系统的安全&系统架构的脆弱性
数据库·安全·系统架构·访问控制·完整性·脆弱性·身份鉴别
小鱼儿LY3 天前
系统架构设计师论文-论软件体系结构的演化
系统架构·软件体系结构·架构设计师·体系结构演化
qqxhb4 天前
系统架构设计师备考第64天——网络构建关键技术
网络·系统架构·mtbf·mttr·冗余硬件·软件热备·快速检测
爱好读书4 天前
一键生成系统架构图
系统架构·毕业设计·课程设计
zhmhbest4 天前
Qt 全球峰会 2025:中国站速递 —— 技术中立,拥抱更大生态
开发语言·qt·系统架构