系统的可靠性分析与设计

可靠性分析


SFTA(Software Fault  Tree Analysis) 软件故障树分析。

软件故障树分析(SFTA)是一种自顶向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全及可靠性产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件),从而确定软件故障原因的各种可能组合方式和(或)发生概率。 

割集:它是导致顶上事件发生的基本事件的集合。最小割集就是引起顶上事件发生必须的最低限度的割集。

布尔代数法求计算机软件求取最小割集和最小径集。

故障树:


T=A1+A2
    =X1 X2 A3+X4 A4
     =X1 X2 (X1+X3)+ X4 (X5+X6)
     =X1 X2 A1+X1 X2 A3+ X4 X5+X4 X6
     =X1 X2+ X4 X5+X4 X6
    所以最小割集为{X1,X2},{X4,X5},{X4,X6}。结果得到三个交集的并集,这三个交集就是三个最小割集E1={X1,X2},E2={X4,X5},E3={X4,X6}。用最小割集表示故障树的等效图如图:


Reference: http://www.safe001.com/anping/ap_zhishi/8_fenxi.htm


可靠性设计



  • 容错设计技术:常用的软件容错技术主要有恢复快设计N版本程序设计冗余设计
    1. 恢复快设计中包含有若干功能相同、设计差异的程序块,每一时刻有一个处于运行状态,一旦某程序出现故障,则用备份程序块予以替换。
    恢复块法适合只有一台计算机的情况;
    允许只对较为复杂、容易出故障的程序段进行冗余;
    基本块与替换块的设计应尽可能相异
    接收测试的作用非常重要,应能检测程序执行结果与预期结果的偏离,或检测和防止能触发安全事故的输出
    2. N版本设计的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)。
    3. 冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径,不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。
  • 检错技术:在无须在线容错或不能采用冗余设计技术的部分,但又有较高可靠性需要时,一般采用检测性设计,在软件出现故障后能及时发现并报警,明显的缺点是不能自动解决故障。
    被动式错误检测
    在程序的若干部位设置检测点,等待错误征兆的出现  

    看门狗的设计:看门狗技术是控制运行时间的一种有效方法。看门狗实际上是一种计时装置,当计时启动后看门狗在累计时间,当累计时间到了规定值时触发到时中断(即狗叫)。

    主动式错误检测
    对程序状态主动进行检查
  • 避错设计(降低复杂度设计): 软件的复杂性与软件可靠性有密切关系,软件复杂性是产生软件缺陷的重要根源。降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/significantfrank/p/4875842.html