系统可靠性


1. 可靠性的定义

在规定的条件下,在规定的时间内,软件不引起系统失效的概率。

1.1 影响要素

可靠度,失效率,使用条件,规定时间,系统输入,系统使用,软件缺陷等

失效率(风险函数/条件失效强度)- 系统未出现失效的此刻情况下,单位时间系统出现失效的概率。

1.2 子特性

成熟性,容错性,易恢复性,依从性


2 可靠性技术

2.1 避错技术

2.2 降低复杂度设计

保证实现软件功能的基础上,简化软件结构


2.3 检错技术

一般采用“查出故障,停止软件运行,报警”的实现方式,根据故障的不同情况,采用不停止或部分停止软件系统运行。

检错技术实现的代价低于容错技术,但缺点是不能自动解决故障,需要人工干预。

实现方式:

判断返回结果;计算运行时间;自检法(置状态标志位)


2.4 容错技术

2.4.1 结构冗余

(1)静态冗余

N版本程序设计 - 通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决。

其中N版本的程序由不同的人独立设计,使用不同的方法,设计语言,开发环境和工具来实现。


(2)动态冗余 (主动冗余)

恢复快设计方法 - 选择一组操作作为容错设计单元,从而把普通的程序块变为恢复块。一个恢复块包含若干功能相同,设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则用备份程序块予以替换。

按照备用模块在待机时是否与主模块一起工作分为热备份系统(双重系统),冷备份系统(双工系统,双份系统)。


2.4.2 冗余设计

采用多种不同路径,不同算法,不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。


2.4.3 防卫式程序设计 

通过程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。

2.4.4 双机双备 (集群系统)

2.4.5 信息冗余 (校验码)

2.4.6 时间冗余 (重复多次相同的计算)


3 可靠性设计的基本原则

  • 要在软件的总体设计框架中使用,并且不能与其他设计原则相冲突
  • 前提是满足提高软件质量的要求下,最终提高软件可靠性
  • 确定软件的可靠性目标,不能无限扩大,并且排在功能,用户需求,开发费用之后考虑


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页