系统架构的评估的系统的质量属性

体系结构苹果可以针对一个体系结构,也可以针对一组体系结构。

体系结构评估过程中,评估人员所关注的是系统的质量属性,所有评估方法所普遍关注的质量属性有以下几个:性能、可靠性(容错,健壮性)、可用性、安全性、可修改性(可维护性、可扩展性、结构重组、可移植性)、功能性、可变性、互操作性。

系统的质量属性:

1.性能 (Performance)

指系统的响应能力,常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。常使用基准测试程序。如响应时间、吞吐量。

提升性能设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
2.可靠性(Reliability)

是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力。可靠性通常用平均失效等待时间 (Mean Time To Failure,MTTF ) 和平均失效间隔时间 (Mean Time Between Failure,MTBF) 来衡量。在失效率为常数和修复时间很短的情况下, MTTF 和 MTBF几乎相等。

MTTF = ΣT1/N。这里的T1指的是每次正常运行的时间,N是故障次数。

公式为:

  • 参数说明 ‌:
    • T1:每次从启动到故障发生前的正常运行时长;
    • N:统计周期内的故障次数‌23。
指标 适用对象 包含修复时间? 核心意义
MTTF 不可修复产品 首次故障前的平均运行时间 ‌16
MTBF 可修复系统 是(含维修) 两次故障间的平均间隔时间 ‌45
MTTR 可修复系统 --- 故障后平均修复耗时 ‌23

MTBF:

  • 计算 MTBF(平均时间故障间隔)的方法是使用以下公式:

    MTBF = 总运行时间 / 故障次数

    例如,如果一个测试自动化套件运行了 1000 小时并经历了 10 次故障,那么 MTBF 将为:

    MTBF = 1000 小时 / 10 次故障 = 100 小时

    这意味着,在平均情况下,系统可以在故障之间运行 100 小时。需要注意的是,MTBF 是一个统计性的度量,应与其他可靠性指标一起使用以进行全面的分析。在大量时间和测试周期的情况下进行计算时,它的实用性最高。

  • 统计原理‌:MTBF的估计值符合卡方分布,常用于工程可靠性分析‌。

MTBFMTTRMTTF三个指标的区别

1、MTBF,全称是Mean Time Between Failure,即平均无故障工作时间。就是从新的产品在规定的工作环境条件下开始工作到出现第一个故障的时间的平均值。MTBF越长表示可靠性越高正确工作能力越强。

2、MTTR,全称是Mean Time To Repair,即平均修复时间。是指可修复产品的平均修复时间,就是从出现故障到修复中间的这段时间。MTTR越短表示易恢复性越好。

3、MTTF,全称是Mean Time To Failure,即平均失效时间。系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。 可靠性是最初是确定一个系统在一个特定的运行时间内有效运行的概率的一个标准。可靠性的衡量需要系统在某段时间内保持正常的运行。

目前,使用最为广泛的一个衡量可靠性的参数是,MTTF(mean time to failure,平均失效前时间),定义为随机变量、出错时间等的"期望值"。但是,MTTF经常被错误地理解为,"能保证的最短的生命周期"。MTTF的长短,通常与使用周期中的产品有关,其中不包括老化失效。

可靠性可以分为两个方面:

1)容错 :错误发生时确保系统正确的行为,并进行内部"修复"。

2)健壮性 :错误发生时保证软件按照某种已经定义好的方式终止执行。

设计策略:软件体系结构通过在应用程序内部包含冗余,或集成监控构件和异常处理,来支持可靠性。

其他,可靠性设计技术主要有容错设计、检错设计和降低复杂度设计。

3.可用性 (Availability)

是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。

设计策略:心跳、Ping/Echo、冗余、选举。
4.安全性 (Security)

是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。

设计策略:入侵检测、用户认证、用户授权、追踪审计。
5.可修改性 (Modifiability)

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

包含以下4个方面:

1)可维护性 (Maintainability) : 这主要体现在问题的修复上,在错误发生后"修复"软件系统。

2)可扩展性 (Extendibility) :新特性来扩展软件系统。

3)结构重组 (Reassemble)

4)可移植性 (Portability) :系统能在不同计算环境下运行的能力。

实现可移植按照硬件无关方式组织软件系统,其他软件系统和环境被提取出。在关于某个特定计算环境的所有假设都集中在一个构件中是,系统是可移植的。

如果移植到新的系统需要做些更改,则可移植性就是一种特殊的可修改性。

todo:

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

6.功能性(functionality)

是系统能完成所期望的工作的能力。
7.可变性(changeability)

是指架构经扩充或变更而成为新架构的能力。
8.互操作性(inter-operation)

程序和用其他编程语言编写的软件系统的交互。

相关推荐
sq80024 分钟前
EFCore ORM 数据库数据表迁移
数据库·后端·orm
蝸牛ちゃん1 小时前
设计模式(二十三)行为型:模板方法模式详解
设计模式·系统架构·软考高级·模板方法模式
小徐不徐说1 小时前
深入理解 Qt 信号与槽机制的底层逻辑
数据库·c++·qt·面试
蝸牛ちゃん1 小时前
设计模式(十七)行为型:迭代器模式详解
设计模式·系统架构·迭代器模式·软考高级
一只小小汤圆1 小时前
qt 心跳包
服务器·数据库·qt
巴里巴气1 小时前
MongoDB事务和隔离级别的原理
数据库·mongodb
蝸牛ちゃん1 小时前
设计模式(十五)行为型:命令模式详解
设计模式·系统架构·软考高级·命令模式
什么半岛铁盒1 小时前
MySQL的常用数据类型详解
linux·数据库·mysql·adb
rannn_1112 小时前
【MySQL学习|黑马笔记|Day1】数据库概述,SQL|通用语法、SQL分类、DDL
数据库·后端·学习·mysql
mrbone112 小时前
C++-关于协程的一些思考
开发语言·数据库·c++·c++20·协程·异步·coroutines