系统质量属性

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

一、软件系统质量属性

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

1、开发期质量属性

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


2、运行期质量属性

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


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

1、相关属性介绍

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

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


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

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

3、质量属性场景描述

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

相关推荐
半夏映浮光2 分钟前
系统架构设计师知识点1-20
系统架构
彷徨的蜗牛19 小时前
智能AI自动化协同发文系统架构设计:从理论到实践的完整指南
人工智能·系统架构·自动化
x2lab1 天前
软考架构-需求工程备考主线框架
系统架构·软考高级
LONGZETECH2 天前
新能源汽车充电设备装配与调试仿真教学软件 技术解析与教学落地
开发语言·系统架构·汽车·汽车教学软件·智能网联汽车软件
xcLeigh2 天前
飞算 JavaAI 智能突破:从效率工具到开发范式的革新
ai·系统架构·代码生成·java开发·飞算javaai炫技赛·飞算
2501_933329552 天前
媒介宣发技术中台架构实践:基于AI多模态的舆情处置与智能分发系统设计
人工智能·架构·系统架构
luoshanxuli20102 天前
ESP-IDF 简介
嵌入式硬件·物联网·系统架构
xht08322 天前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
2301_766558653 天前
‘小批量快反’为何成功能母粒新护城河?福尔蒂柔性产线调度系统架构图首度开源
系统架构·动态规划·宽度优先
JGDT_4 天前
筑牢数字底座,驱动智慧未来——全方位数据中台解决方案
大数据·人工智能·科技·系统架构