系统的稳定性和健壮性是特定软件自身的要求(特定软件指的是所有的架构设计),也是软件处理的一部分。系统的稳定性和健壮性是软件规划时所确定的目标,如果该软件的实现未达到原定目标,则说明软件的健壮性和稳定性健壮性不好或者不够。
一、系统稳定性(Reliability)
系统稳定性定义:当一个实际的系统处于一个平衡的状态时,如果受到外来作用的影响时,系统经过一个过渡过程仍然能够回到原来的平衡状态,我们称这个系统就是稳定的,否则称系统不稳定。
对于系统稳定性而言,它是架构设计的基石,并且应该能更好地实现自我修复。
二、系统健壮性(Robustness)
系统健壮性定义:计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件健壮性的具体表现。用通俗地话解释则是一个系统容错能力强,运行不易被干扰,安全性好,这样的系统我们称之为具有良好的健壮性。
系统的健壮性的度量标准:
- 一个软件可以从错误的输入推断出正确合理的输入
- 一个软件可以正确的运行在不同环境下
- 一个软件能够检测自己内部的设计或者编码错误,并得到正确的结果
三、架构质量
架构设计的质量是如何衡量的呢?以下是几个常用的衡量标准:
- 拓展性(易于拓展新功能)
- 维护性(发现问题可以快速修复)
- 可管理(架构设计能进行合理的管控,而不是不可控的)
- 高可用(故障修复、容灾、降级、熔断)
在日常开发过程中又该如何衡量架构质量呢?以下是几个衡量措施:
理解难度
对开发而言应易于理解。
接入依赖的成本
当软件设计在接入依赖的时候,若需要变动到整体设计的核心内部,或者说需要大量的变动核心代码,则这种架构设计是有问题的。正常而言,架构设计应当是可拓展的,便于接入依赖的。
崩溃率和错误率的指标
异常指标应低于千分之几或者万分之几。
开发效率
若软件设计降低了开发者的开发效率,则这种设计是不合理的。
错误上报和信息收集等功能
良好的设计应当具有丰富的错误上报和信息收集功能,以便快速定位到问题。
参考资料