系统的可靠性分析与设计

可靠性分析



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. 冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径,不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。

  • 检错技术:在无须在线容错或不能采用冗余设计技术的部分,但又有较高可靠性需要时,一般采用检测性设计,在软件出现故障后能及时发现并报警,明显的缺点是不能自动解决故障。

    •被动式错误检测

    –在程序的若干部位设置检测点,等待错误征兆的出现  

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

    •主动式错误检测

    –对程序状态主动进行检查

  • 避错设计(降低复杂度设计): 软件的复杂性与软件可靠性有密切关系,软件复杂性是产生软件缺陷的重要根源。降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构。
时间: 2024-09-14 06:02:21

系统的可靠性分析与设计的相关文章

Netty系列之Netty可靠性分析

转自http://www.infoq.com/cn/articles/netty-reliability?utm_source=infoq&utm_medium=popular_links_homepage 1. 背景 1.1. 宕机的代价 1.1.1. 电信行业 毕马威国际(KPMG International)在对46个国家的74家运营商进行调查后发现,全球通信行业每年的收益流失约为400亿美元,占总收入的1%-3%.导致收益流失的因素有多种,主要原因就是计费BUG. 1.1.2. 互联网行

电网调度云灾备系统优化分析与设计

电网调度云灾备系统优化分析与设计 李立新,谢巧云,袁荣昌,林静怀,狄方春,李大鹏 智能电网的提出对电网可靠性与容灾能力提出了新的要求,迫切需要建立电网调度自动化灾备系统,以提高电网运行的防灾能力.首先,建立了电网调度灾备系统的评价模型,然后,针对电网系统中存在的各种备用方案进行优化分析,提出了基于统一调度数据网构建集控/调度互备的备用方案.针对一体化互备的方案搭建了基于云平台的灾备系统结构,结合虚拟化.服务化等云计算技术,有效地兼容与保护了现有灾备软硬件资源,并面向灾备基础软件.基础服务.支撑应

uml学习入门 2 面向对象方法分析与设计

1.面向对象分析 面向对象分析的目的是知识客观世界并进行建模. 其实在面向对象的分析过程中也是对需求的分析和理解. 使用面向对象分析的过程一般如下: 获取问题陈述-->确定类-->准备数据字典-->确定关联-->使用继承来细化类型-->完善对象模型-->建立对象动态模型-->建系统功能模型 (1) 获取问题陈述就是与用户一起理解系统,搞清楚系统的业务逻辑,发现用户的需求,在这个时候我们应该以一个用户的身份去看待这些需求.很多设计人员在这个时候没有做足功能,导致最后

从领域、对象、角色、职责、对象交互、场景等方面去分析和设计领域模型(附源码)

好久没有写文章了,最近比较忙,另一方面也是感觉自己在这方面没什么实质性的突破.但是今天终于感觉自己小有所成,有些可以值得和大家分享的东西,并且完成了两个可以表达自己想法的Demo.因此,趁现在有点时间,是写文章和大家分享的时候了. 首先给出这两个Demo的源代码的压缩包的下载地址,因为之前有博友说他没有装VS2010而没办法运行Demo,所以这次我分别用VS2008和VS2010实现了两个版本. http://files.cnblogs.com/netfocus/DCIBasedDDD.rar

使用SLS和ODPS进行系统的性能分析

在对计算机系统,尤其是分布式系统的搭建和验证过程中,性能因素是需要着重考虑的因素之一.更激进一点说,判断架构设计的正确与否,性能的好坏.是否可控.是否可预期绝对是最有效的衡量指标. 不幸的是,现有的性能工具大部分是针对代码级的运行时间进行分析,目标是诊断代码的性能bug.但目前我们并没有(或者我还没见到)针对大型的分布式系统的系统级性能分析工具. 虽然这样,但我们可以发扬DIY精神,卷起袖子自己来做这样的性能分析.通过简单日志服务(SLS)对性能日志进行收集,并使用SLS的离线通道将性能相关的数

黑马程序员 十七、面试题之交通灯管理系统—面向对象的分析与设计、Road 类、Lamp 类、LampController 类、MainClass类)

Java帮帮-IT资源分享网  黑马程序员--面试题之交通灯管理系统 Road 类.Lamp 类.LampController 类.MainClass类   需求: 交通灯管理系统的项目需求 Ø 异步随机生成按照各个路线行驶的车辆. 例如: 由南向而来去往北向的车辆 ---- 直行车辆 由西向而来去往南向的车辆 ---- 右转车辆 由东向而来去往南向的车辆 ---- 左转车辆 ... Ø 信号灯忽略黄灯,只考虑红灯和绿灯. Ø 应考虑左转车辆控制信号灯,右转车辆不受信号灯控制. Ø 具体信号灯控

《面向对象分析与设计》一1.2 面向对象的基本思想

1.2 面向对象的基本思想 面向对象方法已深入到计算机软件领域的几乎所有分支.它不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学.因而,面向对象方法有着自己的基本思想. 面向对象方法解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式从不同的抽象层次和方面来构造软件系统,这与传统开发方法构造系统的思想是不一样的.特别是,面向对象方法把一切都看成是对象.下面

电商研发方案——产品模型业务分析和设计

一.方案概述 <Craft6.cn 电子商务研发方案http://www.aliyun.com/zixun/aggregation/9636.html">产品模型业务分析和设计>是颜超敏就电子商务系统研发编写的其中一份方案,分为共享版和企业版. 本文的针对产品模型中产品基本信息.产品分类.产品规格.产品属性.产品销售类型.产品定价.产品归属和产品包等业务进行 业务分析和设计,并给出ER图的设计. 对于企业版,还给出本模块详细的数据库设计和开发上的关键业务说明.另外还附带数据库设

《面向对象分析与设计》一1.4面向对象方法的主要优点

1.4面向对象方法的主要优点 本节从认识论的角度和软件工程方法的角度看一下面向对象方法带来的益处,并把面向对象方法与传统方法进行比较,看面向对象方法有什么优点. 1. 从认识论的角度面向对象方法改变了开发软件的方式 面向对象方法从对象出发认识问题域,对象对应着问题域中的事物,其属性与操作分别刻画了事物的性质和行为,对象的类之间的继承.关联和依赖关系能够刻画问题域中事物之间实际存在的各种关系.因此,无论是系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射到问题域.这使得运用