健壮性和可靠性
系统的健壮性(robustness)也称为系统的坚固性或坚实性,这是衡量一个系统能否从各种出错条件下恢复能力的一种测度。
引起出错的条件可以是来自系统内部,也可以是系统外部的。比如:一个健壮的系统可以容许数据输入的错误,也可以允许内部组成部件的故障。
虽然在健壮性与可靠性之间有着一定的联系,但是两者是不同的测度。
提高可靠性的技术一般可以分为两类,一类是避免故障,在开发过程中,尽可能不让差错和缺陷潜入软件,这类常用的技术有:
算法模型化,把可以保证正确实现需求规格的算法模型化。
模拟模型化,为了保证在确定的资源条件下的预测性能的发挥,使软件运行时间、内存使用量及控制执行模型化。
可靠性模型,使用可靠性模型,从差错发生频度出发,预测可靠性。
正确性证明,使用形式符号及数学归纳法等证明算法的正确性。
软件危险分析与故障树分析:从设计或编码的结构出发,追踪软件开发过程中潜入系统缺陷的原因。
分布接口需求规格说明:在设计的各阶段使用形式的接口需求规格说明,以便验证需求的分布接口实现可能性与完备性。
这些技术一般都需要比较深厚的数学理论知识和模型化技术。
另一类就是采用冗余思想的容错技术。
容错技术的基本思想是使软件内潜在的差错对可靠性的影响缩小控制到最低程度。
软件的容错从原理上可分为错误分析、破坏程度断定、错误恢复、错误处理四个阶段。
常用的软件容错技术有N-版本技术、恢复块技术、多备份技术等。
N-版本程序设计是依据相同规范要求独立设计N个功能相等的程序(即版本)。独立是指使用不同的算法,不同的设计语言,
不同的测试技术,甚至不同的指令系统等。恢复块技术是使用自动前向错误恢复的故障处理技术。
健壮性和稳定性是特定的软件自身的要求, 不同软件不能就健壮性做对比, 健壮性和稳定性是
软件处理逻辑的一部分, 不同软件的处理逻辑需求可以不一样.
软件架构的健壮性和稳定性是该软件规划时所确定的目标, 如果软件的实现没有达到原先规定
的目标, 则我们可以说该软件的健壮性和稳定性不够或不好!