改善型软件故障树分析

2016-05-18 09:23谢轶吕镇邦
电子产品可靠性与环境试验 2016年2期
关键词:故障树可靠性安全性

谢轶,吕镇邦

(1.江南机电设计研究所,贵州 贵阳 550009;2.中航工业西安航空计算技术研究所,陕西 西安 710068)



改善型软件故障树分析

谢轶1,吕镇邦2

(1.江南机电设计研究所,贵州贵阳550009;2.中航工业西安航空计算技术研究所,陕西西安710068)

摘要:作为一种典型的可靠性与安全性分析方法,软件故障树分析(SFTA:Software Fault Tree Analtis)得到了广泛的使用。然而SFTA的实施很大程度上依靠于个人经验,没有清晰的分析线索来追溯失效原因,这导致了在对复杂系统进行分析时,会有巨大的难度和工作强度。为了解决这一问题,提出了一种改善的SFTA方法,通过应用控制流程图来辅助构建故障树,以便缓解分析复杂系统时的难度和减小工作量。最后,通过一个飞行控制系统的实例来证明方法的可行性,该实例显示了改善后的SFTA方法在对复杂系统进行分析时,能够提供清晰的分析线索,有效地提高分析效率。

关键词:软件;故障树;控制流程图;可靠性;安全性

0 引言

软件故障树分析(SFTA:Software Fault Tree Analtsis)是一种典型的可靠性与安全分析方法,被广泛地应用于安全、关键的软件系统中[1]。SFTA采用自顶向下的方法来逐层地确定不期望的事件,可以在软件开发过程的早期就发现软件需求中的错误与缺陷。然而,传统的SFTA具有一些典型的缺陷,例如:对中间事件与底层事件的分析不充分、没有清晰的分析线索来追溯顶事件的失效原因,以及分析的结果在很大程度上取决于个人经验等。这些问题都导致了传统的SFTA的客观性较差、效率较低,因此如何改善SFTA方法受到了很大的关注。

本文提出了一种利用控制流程图来辅助进行SFTA的方法[2],首先,介绍了如何利用控制流程图来辅助构建故障树的原理;其次,给出了利用本文提出的方法对飞行控制系统进行故障树分析的例子,证明了该方法的可行性。

1 改善型SFTA的原理

构建故障树是SFTA的核心环节。在本章中,我们主要讨论如何利用控制流程图来辅助构建故障树[3]。

控制流程图包含了3种结构:长方形代表了任务处理,菱形代表了判断条件,箭头代表了控制流。通过任务处理过程、判断条件和控制流,控制流程图能够描述出软件的逻辑处理过程[4]。通过控制流程图,软件的执行过程能够被清晰地描述出来,这为追溯失效的产生过程提供了清晰的分析线索。根据软件需求,我们可以得到软件的功能结构,在软件功能结构中,统一层次的功能之间具有控制流关系。因此,我们可以为功能结构图的每一层构建出控制流程图,然后将各层次的控制流程图综合在一起,组成整个软件系统的控制流程图。

控制流程图描述了功能模块的执行流程,在控制流程中任何一个模块出现故障都会在一定程度上对软件的执行结果造成影响。如果软件失效了,那么肯定是控制流程图中的某一个环节出现了问题。在控制流程图中,前一个模块的故障会影响到它之后的模块,最后一个模块的输出直接导致了顶事件的发生。因此,我们可以沿着控制流程图从后向前分析这些功能模块,以确定其可能的失效原因。首先,分析控制流程图中最后一个模块,并将其可能的故障原因作为故障树的事件。如果最后一个模块没有故障,那么可能是该模块的前一个模块出现了子故障,沿着控制流程图追溯到前一个模块,分析该模块的潜在故障,并将其作为故障树的事件。遵循这种分析方法,我们可以得到控制流程图中自顶向下所有层次中的所有模块的故障模式。低层次的模块的故障作为上一层次的模块故障的原因,便可以构建起完整的故障树,控制流程图辅助构建故障树的一般过程如图1所示。因此,控制流程图为我们分析顶事件的故障原因提供了清晰的分析线索,依据这样的线索,我们可以自顶向下逐层地得到故障树中所有的事件[5]。

图1 控制流程图辅助构建故障树

在图1中,可能是F1、F2或F3的故障造成了顶事件的发生,根据上述方法,首先分析F2的故障,并将其可能的故障模式作为顶事件的下一层中间事件,然后分析F3的故障并将其可能的故障模式作为顶事件的下一层中间事件,最后分析F1的故障。

这里我们假设是F2的一种失效模式作为了中间事件2,然后我们便应该追溯中间事件2发生的原因。在F2的控制流程图中,有2个并行的部分:F2.1和F2.2,因此可能是F2.1和F2.2的故障造成了F2的故障。分析F2.1与F2.2并将它们可能的故障原因作为中间事件2的下一层原因事件,由此我们可以得到基本事件2.2.1和2.2.2。

另外,控制流程图还描述了功能模块之间的逻辑关系,一些模块之间是顺序执行的关系,一些模块之间是并行关系,另一些模块之间是冗余关系。所有的这些逻辑关系,决定了故障树中相应的事件之间的逻辑门。例如:在图1中,F1、F2和F3之间是顺序执行关系,它们中的任何一个失效都会造成顶事件的发生,因此它们对应的事件之间的逻辑为或门;F2.1与F2.2是并行关系,他们都失效才会造成F2的失效,因此它们对应的事件之间的逻辑关系为与门。

控制流程图描述了软件功能模块的执行顺序及模块之间的逻辑关系,能够帮助确定故障树中的事件及事件之间的逻辑门。

2 实例分析

在本章中,会通过将该改善后的故障树分析法运用到一个飞行控制系统中来对该方法的可行性进行验证。飞行控制系统是对飞机的飞行状态进行控制的软件系统,是飞机最重要的组成部分之一。飞行控制系统通常包括了系统管理模块、控制律计算模块、BIT模块、故障处理模块和其他一些模块。由于飞行控制系统十分复杂,因而对其进行SFTA分析是一项非常困难和繁重的任务。在本实例中,我们利用上述的方法对该系统实施SFTA,以验证该方法的可行性,分析过程如下所述。

2.1定义系统

飞行控制系统包含了安全关键性软件,这对整个系统的安全性与可靠性具有重要的作用。飞行控制系统的主要功能是收集飞机飞行状态数据及驾驶指令,计算和分析得到飞行控制律,并根据控制律将飞行控制指令发送给各个执行器。由于飞行控制系统的复杂性及庞大性,不可能对整个系统进行分析,因而在本文中对飞行控制系统进行了简化,主要对BIT系统进行分析。

2.2确定顶事件

大多数飞行事故都发生在起飞阶段,飞机处于健康状态是起飞能够成功的重要因素。然而,如果一些功能模块的失效不能被有效地检测到,或没有进行报警,就会造成飞机在非健康状态下起飞,极可能造成起飞事故。因此,本文将“无起飞故障告警”作为本次SFTA的顶事件进行分析。

2.3获取控制流程图

首先,根据软件需求,我们可以得到飞行控制系统的控制流程图,如图2所示,且将其定义为初始层次的控制流程图。在该流程图中,起飞任务发生在“地面循环任务”阶段。然后,我们可以在软件需求中得到“地面循环任务”的控制流程图,如图3所示。PBIT(Pre takeoff BIT)是对飞行前飞机的健康状态进行检测的功能模块,它的检测结果决定着飞行是否可以起飞,其控制流程图如图4所示。

图2 飞行控制系统控制流程图

图3 地面循环任务控制流程图

图4 PBIT控制流程图

2.4构建故障树

如上面所述,将“无起飞故障告警”作为顶事件。按照本文所提供的方法对图2所示的控制流程图进行分析,确定地面循环任务失效、PUBIT功能丧失、无告警和初始化异常是可能会造成顶事件的失效模式,将这些失效模式作为顶事件下的第一层中间事件,由于它们之间是顺序执行的关系,故将它们之间的逻辑门定为或门。

在图3中,通过分析这些相关的模块,确定PBIT功能丧失、串行信号检测异常和故障处理失效为可能造成地面循环任务失效的原因事件。由于它们之间任何一个失效都会造成地面循环任务失效,因此将它们之间的逻辑门定为或门。

如图4所示,PBIT的检测内容包括了CPU、RAM、电源、油压、舵机、副翼伺服和传感器等。通过对这些模块进行分析,确定舵机检测功能异常、舵机故障无告警、副翼伺服检测功能异常、副翼伺服故障无告警、传感器检测功能异常、传感器故障无告警和故障告警失效可能造成PBIT功能丧失,故将这些故障作为PBIT功能丧失的原因事件。最终构建的故障树如图5所示。

图5 飞行控制系统故障树

2.5获取割集

根据所构建的故障树,得到割集:{舵机检测功能异常、舵机故障无告警},{副翼伺服检测功能异常、副翼伺服故障无告警},{传感器检测功能异常、传感器故障无告警},{故障告警失效}。

通过本章的实例,证明了本文所提出的方法的可行性。但限于篇幅,实例并没有对整个的飞控系统进行分析。

3 SFTA辅助工具

为了提高效率,SFTA辅助工具是非常有必要的。我们也调研了诸多此类SFTA工具,其中,美国SoftRel公司的FRESTIMATE是最具专业特色的软件可靠性分析工具,它参照了CMM、IEC 61508、DO-178B和美军罗马实验室标准,能在软件开发的概念阶段对软件的可靠性指标、耗费时间、人力和资源等进行预测,同时将SFTA、SFMEA软件、软件测评和软件可靠性预计等进行了很好的结合,能够预测软件缺陷数、缺陷密度、MTTF、软件严酷故障率、MTTCF、软件可靠性、软件可用性和MTSWR软件平均恢复时间等可靠性指标。

FRESTIMATE具有如下几个特点。

a)以软件测试数据(例如:故障发生时间、数目和类型等)为输入,它提供了8种权威的软件可靠性评估模型:贝叶斯模型、二项式模型、NHPP(非齐次泊松模型)模型、失效-时间模型、故障数目模型、时间对数模型、故障数目对数模型和威布尔模型,并且拥有误差对比功能来选择最适用的模型。

b)不仅能够输出MTTF、失效率、缺陷数目、可靠度和可用度在某一时间点时的值,还可以输出这些可靠性指标的变化趋势图,由此可以确定软件何时能够达到预定的可靠性目标。

c)同时可以对源代码进行度量,输出代码的规模、嵌套复杂度和圈复杂度等。

d)数据库中包含了100个软件开发项目,600多个开发实践,并且将这些与软件可靠性相关联,就能够有效地为用户提供数据与经验支持。

通过对近百个项目的跟踪调查,发现软件预测功能可以减少83%的缺陷,预测误差可以控制在5%之内;可靠性评估功能的准确性可以达到98%以上。

4 结束语

本文提出了一种改善型SFTA,通过将控制流程图应用到故障树的构建中,为故障树的构建提供了清晰的分析线索,能够有效地对失效原因进行追溯。该方法可以有效地降低利用SFTA对复杂性系统进行分析的难度和工作量,提高了分析效率。文章通过将该方法运用到一个飞行系统的实例证明了该方法的可行性。今后希望能够将控制流程图集成到SFT分析工具中,以便实现计算机辅助分析。

参考文献:

[1]故障树指导手册:GJB/Z 768A-1998 [S] .

[2] OH Y,YOO J,CHA S,et al. Software safett analtsis of function block diagrams using fault trees [J] . Reliabilitt Engineering & Ststem Safett,2005,88(3):215-228 .

[3]孙志安,裴晓黎,宋昕.软件可靠性工程[M] .北京:北京航空航天大学出版社,2009:243-256.

[4]沈被娜,刘祖照,姚晓冬.计算机软件技术基础[M] .北京:清华大学出版社,2012:174-206.

[5] ROBYN R Lutz,ROBERT M Woodhouse. Requirements analtsis using forward and backward search [J] . Annals of Software Engineering,1997,3(1)459-475.

[6] WALLACE D R,GALLO A M. Fault tree analtsis for software design [C] // Proceedings of the 27 th Annual NASA Goddard,2003.

An Improved SFTA

XIE Yi1,LV Zhen-bang2
(1. Jiangnan Mechanical and Electrical Design Insititute,Guitang 550009,China;2. Aeronnautics Computing Technique Research Institute,Xi’an 710068,China)

Abstract:As a ttpical reliabilitt and safett analtsis method,SFTA has been widelt used. However,the implementation of SFTA is greatlt based on personal experience,and it can't offer clear analtsis clues to trace failure causes,which brings about great difficultt and working strength while analtzing complex ststems with this method. In order to solve this problem,an improved SFTA is put forward,which builds fault tree with the help of control flow chart so as to alleviate the difficultt and reduce the workload while analtzing complex ststems. In the end,the feasibilitt of the method is proved bt applting the method to a flight control ststem. And the results show that the improved SFTA can provide clear analtsis clues,and can effectivelt improve analtsis efficienct while analtzing complex ststems.

Key words:software;fault tree;control flow chart;reliabilitt;safett

作者简介:谢轶(1978-),男,京族,贵州毕节人,江南机电设计研究所高级工程师,从事综合管理工作。

收稿日期:2016-01-04修回日期:2016-01-18

doi:10.3969/j.issn.1672-5468.2016.02.009

中图分类号:TP 311.522

文献标志码:A

文章编号:1672-5468(2016)02-0041-05

猜你喜欢
故障树可靠性安全性
两款输液泵的输血安全性评估
新染料可提高电动汽车安全性
某既有隔震建筑检测与安全性鉴定
可靠性管理体系创建与实践
合理使用及正确测试以提升DC/DC变换器可靠性
GO-FLOW法在飞机EHA可靠性分析中的应用
5G通信中数据传输的可靠性分析
某型发动机喘振故障的研究
数控机床液压系统故障诊断专家系统的研究
系统安全性分析技术在空空导弹中的应用