基于故障树的软件故障诊断方法研究

(整期优先)网络出版时间:2023-03-14
/ 1

基于故障树的软件故障诊断方法研究

胡杨建

江南机电设计研究所  550009

摘要  软件在国民经济和国防事业中发挥着重要作用,软件出现故障给人民生活、科研工作带来不便, 甚至造成严重危害。本文提出一种基于故障树和案例相似性的故障诊断方法,该方法是建立一种新的具有数据联系的故障树模型和案例库,其中包括基于故障树模型的诊断方法以及基于案例库的相似度诊断方法和故障树更新方法,实现在故障树模型诊断成功后对案例库数据进行更新以及在案例相似性方法诊断成功后对故障树模型数据进行更新,该方法克服了故障树难以更新和案例相似性方法需重复计算的问题。

关键词: 软件故障; 故障树; 案例库; 相似性

1 引 言

随着高新技术突飞猛进的发展,计算机软件技术在现代军事国防中不断发展和更新,软件系统的规模不断增长,其内部的系统逻辑也变着越发复杂,如何构造可靠性的计算机软件成为当今研究的热点。计算机软件中存在的潜在故障是引发软件失效的重要原因,这些潜在的故障给软件造成了不利的影响,现实中因为计算机软件故障造成的损失不胜枚举。在此背景下使计算机软件在可用性、可靠性和可维护性等方面面临更多的挑战,如何提高较大软件故障诊断效率,进行有针对性的软件故障诊断,并快速、有效定位故障原因,提高软件可靠性和安全性,仍然面临诸多挑战。

2 技术背景

在早期对复杂系统故障问题进行诊断的过程中,产生了基于故障树的诊断方法,故障树将故障现象分为顶事件、中间事件及底事件并使用与、或逻辑门进行连接,构成了自顶向下的诊断流程,这十分切合人们对系统故障诊断专家知识的表示形式。然而随着系统复杂性的提升,构建较为完备的故障树需要工程人员对系统的全面了解和长时间调试,这将耗费大量的工作时间和精力。复杂系统的使用过程中会产生大量故障案例,利用这些案例可以在没有故障诊断专家知识的情况下,仅仅依靠算法得到相似案例,对故障原因做出判断,但是该方法需要重复计算且案例拥有相似性的本质仍然是因系统本身构造而产生的故障事件间的因果关系,可以寻求在案例相似性算法计算过程中找到更新故障树知识的方法。

3 软件故障诊断方法

3.1 故障诊断流程

1、根据已有软件案例,初步建立案例库和故障树模型数据;

2、在故障诊断时根据提供的若干故障现象,首先使用故障树模型进行诊断,如诊断成功,则更新案例库数据;

3、如故障树模型无有效诊断,则使用案例相似性方法进行诊断,如诊断成功,则依据计算结果对故障树模型数据进行更新。具体诊断步骤如下图1所示。

图1 基于故障树和案例相似性的故障诊断方法的流程图

3.2 故障树模型及案例库特征

故障树模型数据与案例库数据存在联系,案例库数据可划分为案例集C、现象集P、原因集R三部分,同一案例对应一至多个现象和原因,在诊断时使用案例和现象进行相似性匹配后使用相似案例对应原因进行诊断;故障树模型的要素主要分为顶事件、中间事件及底事件,一棵故障树包含一个顶事件和若干中间事件及底事件,其顶事件及中间事件数据对应于数据库中的现象集P,底事件对应于数据库中的原因集R,将树中的上下层事件关系简化为引用关系,实现在不同故障树中可以引用同一子树,降低了模型的重复数据和更新复杂度,故障树模型和案例库的结构和数据集关系如图2所示。

图2 故障树模型和案例库的结构和数据集关系图

4 结论

 本论文针对大型软件在使用和维护过程中出现故障之后,提出了一种基于故障树和案例相似性的故障诊断方法,其克服了故障树难以更新处理和故障重复出现之后需要反复进行处理的一个弊端,依据故障案例之间的联系,大大提高了其诊断的准确率,为未来软件故障诊断以及预防提出了一种新的思路。

参考文献

[1] 虞凯, 林梦香. 自动化软件错误定位技术研究进展[J]. 计算机学报,2011,34(8),1411-1422.

[2] 曹鹤玲, 姜淑娟, 鞠小林. 软件错误定位研究综述[J]. 计算机科学, 2014, 41(2):1-6.