CN106844194B - 一种多层次软件故障诊断专家系统的构建方法 - Google Patents

一种多层次软件故障诊断专家系统的构建方法 Download PDF

Info

Publication number
CN106844194B
CN106844194B CN201611193242.2A CN201611193242A CN106844194B CN 106844194 B CN106844194 B CN 106844194B CN 201611193242 A CN201611193242 A CN 201611193242A CN 106844194 B CN106844194 B CN 106844194B
Authority
CN
China
Prior art keywords
case
failure
fault
subsystem
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611193242.2A
Other languages
English (en)
Other versions
CN106844194A (zh
Inventor
杨顺昆
边冲
李星
谭麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201611193242.2A priority Critical patent/CN106844194B/zh
Publication of CN106844194A publication Critical patent/CN106844194A/zh
Application granted granted Critical
Publication of CN106844194B publication Critical patent/CN106844194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种多层次软件故障诊断专家系统的构建方法,步骤如下:1、搜集大量与被诊断软件相关的故障案例;2、结合软件缺陷分类方法构建缺陷属性分类模型;3、构建软件缺陷分类模型并进行形式化描述;4、构建适用于被诊断对象的其他故障属性分类模型;5、利用F‑CBR技术对故障案例库的案例进行操作;6、结合F‑CBR技术构建浅层故障分系统;7、对结合F‑CBR技术的浅层故障分系统进行具体实现;8、构建深层分系统;9、对深层故障分系统进行构建与实现;10、对浅层分系统与深层分系统构建连接,从而完成故障案例库数据共享功能;通过上述步骤,完成对多层次软件故障诊断专家系统的构建从而完成软件故障诊断。

Description

一种多层次软件故障诊断专家系统的构建方法
技术领域
本发明提供一种多层次软件故障诊断专家系统的构建方法,它涉及一种多层次软件故障诊断专家系统的实现,属于软件可靠性、软件故障诊断领域。
背景技术
专家系统是一门应用型边缘学科,其理论基础涉及多门学科,如现代控制理论、计算机工程、数理统计等,它能够在诊断对象发生故障时,根据对象中的各种变量(可测的或不可测的)及其中部分变量表现出的与正常状态不同特性,找出故障缺陷的特征描述,并根据缺陷进行分类,进一步实现故障的检查与预测。
由于软件变得越来越复杂,一个软件故障可能是由多个原因共同组合引发的,而故障表现出的问题也可能是多个现象共同造成的。对于这种类型故障,目前的故障诊断专家系统并不能进行有效解决。针对这一状况,我们将提出一种包含浅层与深层的多层次诊断专家系统的构建方法,在该系统中,对于软件中发生过的或与之相似的组合故障,可利用基于失效模式与影响分析形式的案例推理技术(即““F-CBR”)获取故障诊断信息,完成浅层故障诊断。对于软件中未知的、复杂的、随机发生的组合故障,可采用贝叶斯网络获取推理数据,完成深层故障诊断。利用这一系统不仅可以有效地追溯软件故障的来源,还可以对故障进行分析,得到准确的诊断结果。
该故障诊断专家系统分别从浅层与深层对故障进行分析推理,融合故障诊断、故障分析、故障隔离与故障处理等相关理论、方法和技术进行构建,形成较为全面的多层次软件故障诊断系统,在提高软件维护性的同时,达到提高软件可靠性、安全性、可用性的目的。
发明内容
(一)本发明目的:根据知识组织方式与推理机制的不同,目前常用的故障诊断专家系统大致分为:基于规则的诊断专家系统、基于模型的诊断专家系统、基于模糊推理的诊断专家系统、基于事例的诊断专家系统以及基于网络的诊断专家系统等,每一种专家系统都有其局限性,并不能作为通用的诊断系统对绝大部分软件使用,并且对于组合类型的故障并不能进行有效诊断。因此本发明将克服现有技术的不足,提供一种多层次故障诊断专家系统的构建方法对上述问题进行解决。该系统的构建分为两层,其中浅层分系统是基于案例的诊断专家系统,深层分系统是基于模型、模糊推理的故障诊断专家系统,对浅层与深层分系统进行整合后,形成的基于网络的多层次故障诊断专家系统。可以看出该系统的构建对现有的故障诊断专家系统进行了整合与创新,形成了通用型多层次的软件故障诊断专家系统。
(二)技术方案
本发明技术方案:多层次软件故障诊断专家系统的构建方法过程如下:
本发明所述方法中,引入故障属性分类模型的概念来表述对案例故障属性字段进行一系列操作后所转化的模型,引用F-CBR来表述基于案例推理(即“CBR”)与失效模式与影响分析(即“FMEA”)相结合的技术。
本发明一种多层次软件故障诊断专家系统的构建方法,其步骤如下:
步骤1、搜集大量与被诊断软件相关的故障案例,针对被诊断软件系统的特点,采取合适的方法对故障案例进行分析,在分析完成后,筛选出合适的案例集加入至创建的故障知识案例库;
步骤2、根据被诊断软件所有可能发生的原因、现象以及其他故障属性(如故障所在位置、故障严酷度等),结合软件缺陷分类方法构建缺陷属性分类模型,该模型可以辅助贝叶斯诊断网络的构建及各层次分系统的连接;
步骤3、构建软件缺陷分类模型并进行形式化描述;
步骤4、针对被诊断对象的特点,构建适用于被诊断对象的其他故障属性分类模型;
步骤5、利用F-CBR技术对故障案例库的案例进行操作;
步骤6、结合F-CBR技术构建浅层故障分系统;
步骤7、采用开源搜索引擎工具并结合相似匹配算法,对结合F-CBR技术的浅层故障分系统进行具体实现;
步骤8、构建深层分系统,该系统提供故障探测、故障识别、贝叶斯故障分析,形成深层故障分析与故障管理协议,指导故障处理策略的制定与选择;对于深层分系统,首先要实现其核心技术,即基于案例库数据的故障属性分类模型转换为贝叶斯网络算法;深层分系统可利用该算法进行贝叶斯网络因果结构学习,并将案例库中的自然语言形式的数据转换为0-1化数据,进行贝叶斯网络参数数据学习;
步骤9、结合即基于案例库数据的故障属性分类模型转换为贝叶斯网络算法对深层故障分系统进行构建与实现;
步骤10、对浅层分系统与深层分系统构建连接,完成多层次故障诊断专家系统的构建,以实现基于故障案例库实现浅层、深层分系统的数据上传与下载,从而完成故障案例库数据共享功能。
其中,在步骤2中所述的“结合软件缺陷分类方法构建故障缺陷分类模型”,其作法如下:即参照目前已有的软件缺陷分类方法,结合目前主流软件缺陷分类方法的优点,同时结合软件缺陷本身的特点,尤其是软件缺陷的发现、定位、排除和预防过程,完成软件缺陷分类方法的定义与划分,并在此缺陷分类方法的基础上,根据被诊断对象自身的特点,对其故障现象、故障所发生的分系统等一系列待分析的故障属性进行归类总结,完成故障属性分类模型的构建;
其中,在步骤2中所述的“贝叶斯诊断网络”,是指深层诊断分系统中的核心技术,即贝叶斯网络。贝叶斯网络是一种概率网络,它是基于概率推理的图形化网络,所谓概率推理就是通过一些变量的信息来获取其他的概率信息的过程,基于概率推理的贝叶斯网络是为了解决不定性和不完整性问题而提出的,它对于解决待诊断对象不确定性和关联性引起的故障有很大的优势;
其中,在步骤3中所述的“构建软件缺陷分类模型并进行形式化描述”,其作法如下:对适用于本发明的故障缺陷分类进行定义及划分,在必要的情况下,可将已定义与划分的缺陷类型继续细化,直到缺陷类型相对完整为止。缺陷分类模型并不存在一个最终形式,当有新的缺陷类型出现时,这一缺陷类型就会添加至相应缺陷类型下进行更新。为了更好地利用缺陷分类模型,我们对该分类网的缺陷类型作出尽可能的细化,以最大限度地对案例进行匹配。在得出的缺陷分类模型后,我们可以使用超文本标记语言HTML或可扩展标记语言XML对缺陷模型中的分类进行表示,例如可以将编码错误这一缺陷类型表示为CodingError或ce等;
其中,在步骤4中所述的“针对被诊断对象的特点,构建适用于被诊断对象的其他故障属性分类模型”,其作法如下:对于不同被诊断对象,故障的发生现象、发生的位置这类属性都有其各自特点,因此这些属性并不能像故障缺陷一样进行整合分类。因此,我们需要在进行FMEA分析时,对这些故障属性信息进行概括总结,进一步完成其他故障属性分类模型的建立(模型建立方法同故障缺陷分类模型);
其中,在步骤5中所述的“F-CBR技术”,是基于失效模式与影响分析形式的案例推理技术,其作法如下:
我们将案例看作一个集合
c={name,phenomenon,cause,measure,keywords},其中name为案例的名称;measure表示案例中问题措施措施的集合,该属性一般是故障解决方法的描述;cause是案例发生的所有相关根源属性的集合;phenomenon是故障现象属性的集合,一个故障通常有一个或多个现象;keywords是从故障各属性中提取的关键词。由于案例库是由多个案例组合的,我们用CL表示案例库,则CL={c1,c2,...,ci,...,cn}。当有新问题出现时,浅层分系统会根据问题的描述从案例库CL中找到与之最为相似的一个或多个案例,作为解决问题的依据,这一过程称为案例检索。利用案例检索,我们可以有效地计算出案例间的相似度。因此,当一个问题引入时,我们就能得到问题与案例库CL中任意案例间的相似度,并从中选取相似度最高的案例作为分析根据,如果该故障症状不存在匹配案例,则将其加入至失败案例库中,随后转交给深层诊断分系统进行处理。
其中,在步骤6中所述的“结合F-CBR技术构建浅层故障分系统”,其作法如下:主要分为三部分:
(1)案例库的构建:根据诊断对象的不同,案例库的表现形式也有所不同。我们采用一种通用的分层结构对案例库进行表示,即失效原因-失效模式-失效影响的分层次的案例库体系,并以此构建基于案例库。对具有关联关系的案例,则需要对案例库进行二次分析、抽象提取,并结合已有的专家分析经验,建立各案例结构的关联规则库。
(2)推理框架的构建:采用基于知识匹配的推理技术对推理框架进行构建,该技术能够对相似的规则实例进行判断,若查找到相似实例则输出结果信息,若未找到相似实例则利用相似匹配技术对规则库进行匹配,获取相似规则。该技术可以克服框架、语义网络等模型仅能表达处理信息的弱点和神经网络等方法不直观的缺点。
(3)学习框架的构建:对于检索案例库中不存在的案例,不仅要给出相关记录,还应将其存入知识库中,以便下次使用;而对于不恰当或者不正确的推理结果时,应当将其纠正、改进,并重新入库复用,为后续故障分析和故障恢复处理及时提供证据、提供必要的故障相关信息;
其中,在步骤8中所述的“贝叶斯故障分析”,是指利用深层故障诊断分系统中的贝叶斯网络对被诊断对象中复杂的,未知的故障进行概率推理,利用推理结果对故障进行分析。
其中,在步骤8中所述的“贝叶斯网络参数”,是指贝叶斯网络从历史数据或专家经验中获得必要的条件概率表;
其中,在步骤9中所述的“结合即基于案例库数据的故障属性分类模型转换为贝叶斯网络算法对深层故障分系统进行构建与实现”,其作法如下:
1)利用贝叶斯网络转换算法生成诊断序列,进行探索式诊断测试,加快故障再现;
2)在贝叶斯网络模型的基础上,进行故障推理研究。为了能够对随机故障进行推理,为每个待分析组件分配故障概率,表征其发生故障的可能性,及在故障时却表现出正常行为的特征。拟采用极大似然值估计方法估计出观测到的故障现象发生概率最大时每个概率的值,并同时利用贝叶斯方法获得候选分析的后验概率,建立基础的贝叶斯分析推理框架;
3)当被诊断系统复杂且含有多个故障的时候,贝叶斯网络可能会面对一个节点过多产生的所谓“组合爆炸”问题,影响推理的有效性;因此,对于一个具体的诊断对象而言,我们有时需要考虑被诊断对象体系结构等一些特征对在诊断模型进行优化处理,如采用程序谱等弱故障模型,减少不必要的关联性;
4)对组合故障进行推理,利用前述贝叶斯方法结合最小命中集等集合算法对故障的组合情况进行推理排序;
5)实现对多态故障(既包括随机故障也包括非随机故障)的分析。在贝叶斯随机推理框架基础上,拟借鉴多态系统理论,对故障概率进行动态贝叶斯估算,探索对多态故障分析推理优化。
通过上述步骤,可以完成对多层次软件故障诊断专家系统的构建,对于被诊断对象中已发生或类似的组合故障,可采用浅层故障诊断分系统的相似匹配搜索方式进行解决,对于被诊断对象中未发生或未知类型的组合故障,可采用深层故障诊断分系统的贝叶斯诊断网络进行推理预测完成诊断。对于不同类型的故障采取不同的解决措施,从而完成软件故障诊断。
本发明与现有技术相比的优点在于:目前,大部分专家系统只能进行对故障进行演绎推理,而本发明能够利用经验知识与历史数据对软件故障进行归纳推理,并且在数据匮乏的情况下,能够结合深层故障诊断技术进行不确定性推理完成诊断。同时,系统的诊断能力会随着案例集的丰富而不断提升,即系统具有自我完善能力。
附图说明
图1为本发明的总体步骤流程图。
图2为本发明的基于失效模式与影响分析形式的案例推理技术(即“F-CBR”)的工作流程。
图3为本发明的浅层故障诊断分系统实现流程。
图4为本发明的浅层故障诊断分系统的软件框架。
图5为本发明贝叶斯网络转换算法流程。
图6为本发明深层故障诊断分系统的实现技术方法。
图7为本发明中多层次诊断专家系统的整体软件框架。
图中序号、符号、代号说明如下:
图1中的“步骤1~10”即技术方案中对应的步骤;
图1中的“F-CBR”即基于失效模式与影响分析形式的案例推理技术;
图1,4,7中的“CBR”即基于案例的推理方法;
图1,2,3,4,6,7中的“FMEA”即失效模式与影响分析方法;
图3中的“XML”即可扩展标记语言;
图4,7中的“Lucene”即构建诊断浅层故障诊断分系统所使用的开源全文检索引擎工具包
图4,7中的“TF-IDF”即构建诊断浅层故障诊断分系统所使用的相似度匹配算法;
图5中的“BN”即贝叶斯网络;
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图进行详细描述。
本发明提出了一种多层次软件故障诊断专家系统的构建方法,利用该方法构建的系统能够根据不同故障的类型采用对应的机制进行诊断。对于被诊断对象中已出现过的软件故障,已知其故障机理及可能的故障表现,有相关的成功分析经验。可使用浅层故障诊断分系统,通过案例库进行相似匹配推理的方式,实现快速的故障分析。对于被诊断对象中发生的未知故障,其故障机理和故障表征事先未知,无现成可用的专家经验可借鉴时,可将故障转交给深层故障诊断分系统,利用贝叶斯诊断网络进行相关推理分析。
本发明一种多层次软件故障诊断专家系统的构建方法,如图1所示,其具体构建步骤如下:
步骤一:搜集被诊断对象的故障案例,进行FMEA分析后,即可利用案例构建案例库。
步骤二:构建故障属性分类模型。对于故障属性分类模型的建立,首先是创建故障原因分类模型,即故障缺陷分类模型,而故障缺陷分类模型的建立,则需要结合软件缺陷分类法。传统的软件缺陷分类方法,有的分类方法简单,但缺陷信息量不足,无法有效帮助进行缺陷的修复;有的没有考虑缺陷发生的过程原因,不适用于软件过程改进活动;有的分类又过于复杂,导致难以把握分类标准。因此,我们需要结合目前主流软件缺陷分类方法的优点,同时结合软件缺陷本身的特点,尤其是软件缺陷的发现、定位、排除和预防过程,提出适用于绝大部分软件缺陷分类方法,指导软件缺陷的分类,为软件缺陷定位、修复及预防提供准确、完整的信息。
步骤三:对适用于本发明的故障缺陷分类模型进行定义及划分,根据实际的使用需求,我们定义该分类网由11个大类组成,分别为:编码错误;接口错误;结构错误;测试错误;数据错误;性能缺陷;功能缺陷;设计阶段缺陷;软件集成错误;需求分析缺陷;其他缺陷等。
在这11种缺陷类型中,每个类型都可以继续进行分化。在此,我们利用数据结构中“树”的定义,将继续分化的类型看作其“树叶”,即缺陷类型的分支。这些细化出的树叶也可以继续分化,直到缺陷类型相对完整为止。
可以看出,该分类模型并不存在一个最终形式,当有新的缺陷类型出现时,这一缺陷类型就会根据分类模型添加逻辑准则,添加至相应树叶下进行更新。为了更好地利用缺陷分类模型,我们对该分类网的缺陷类型作出尽可能的细化,以最大限度地对案例进行匹配,最后得出的缺陷分类模型。
对于缺陷分类模型,我们也能使用例如JSP、HTML、XML等语言进行表示,为便于表示,需要将每种缺陷类型表示为特定的英文缩略语或字母,例如可以将编码错误表示CodingError或ce等。
步骤四:对于不同被诊断对象,故障的发生现象、发生的位置这类属性都有其各自特点,因此这些属性并不能像原因属性一样进行整合分类。因此,我们需要在进行FMEA分析时,对这些故障属性信息进行概括总结,进一步完成其他故障属性分类模型的建立(模型建立方法同缺陷属性分类模型)。
步骤五:为了实现CBR与FMEA的结合使用,必须首先使用准确的形式将案例表示出来,在不影响知识表现形式的基础上,将FMEA的失效模式和影响信息融合到案例中,采用FMEA形式的案例表示形式,实现两者的融合应用。
我们可以把这两种结合后的技术称为F-CBR(FMEA-style CBR)技术,利用F-CBR技术建立的案例库可以应用到后面深层故障诊断的贝叶斯网络中。F-CBR的优势在于,在完成故障输入后,可以快速高效地从案例库中检索到相似案例。并且,通过修改案例库的方式,F-CBR可以轻松地应用于其诊断对象中。由于案例库的数据会随着案例的加入而不断丰富,F-CBR对于故障的诊断也会更加准确。
F-CBR技术方法如下:对于案例,我们可以将其看作一个集合c={name,phenomenon,cause,measure,keywords},其中name为案例的名称;measure表示案例中问题措施措施的集合,该属性一般是故障解决方法的描述;cause是案例发生的所有相关根源属性的集合;phenomenon是故障现象属性的集合,一个故障通常有一个或多个现象;keywords是从故障各属性中提取的关键词。
由于案例库是由多个案例组合的,我们用CL表示案例库,
则CL={c1,c2,...,ci,...,cn}。
当有新问题出现时,浅层分系统会根据问题的描述从案例库CL中找到与之最为相似的一个或多个案例,作为解决问题的依据,这一过程称为案例检索。利用案例检索,我们可以在CBR中有效地计算出案例间的相似度。因此,当一个问题引入时,我们就能得到问题与案例库CL中任意案例间的相似度,并从中选取相似度最高的案例作为分析根据,如果该故障症状不存在匹配案例,则将其加入至失败案例库中,随后转交给深层诊断分系统进行处理,F-CBR技术的工作流程如图2所示。
步骤六:结合F-CBR技术构建浅层诊断分系统,浅层诊断分系统的实现流程如图3所示。根据诊断对象的不同,案例库的表现形式也有所不同。这里,我们采用一种通用的分层结构对案例库进行表示,即失效原因-失效模式-失效影响的分层次的案例库体系,并以此构建基于案例库。对具有关联关系的案例,则需要对案例库进行二次分析、抽象提取,并结合已有的专家分析经验,建立各案例结构的关联规则。
在浅层故障诊断分系统中,知识规则库不是一个必要的选项,单独利用案例库也可以进行案例检索,但为能够最大化地利用案例中所携带的有益信息,作为一个可选项对其进行进一步加工提炼,形成能够体现一定模式的故障传播链条,便于对相似故障进行分析推理;也可以为后续的深层故障推理提供可能的故障原因来源。从实现的角度,我们将以一个单独的模块接口,提供各种逻辑关系便于相应的知识规则。
核心推理模块采取知识匹配的方法对知识库进行搜索,这也符合常规的故障分析思路,并可以克服框架、语义网络等模型仅能表达处理信息的弱点和神经网络等方法不直观的缺点。
对于检索案例库中不存在的案例,不仅要给出相关记录,还应将其存入知识库中,以便下次使用;而对于不恰当或者不正确的推理结果时,应当将其纠正、改进,并重新入库复用,为后续故障分析和故障恢复处理及时提供证据、提供必要的故障相关信息。
步骤七:基于开源搜索引擎实现浅层诊断分系统。本发明采用了开源搜索引擎,并进行适应性改进,实现对交联相关案例的有效匹配。
案例表示主要是指对案例的特征进行抽取,是指抽取待求解问题的特征及特征间的关系,并将其输入系统。什么是案例以及案例如何表示,如何在案例库中存放案例是基于案例的推理中要解决的首要问题。在基于案例的推理系统中,所谓案例就是问题求解的状态及对其求解的策略。一般的,一个案例包含问题的初始状态,问题求解的目标状态以及求解的方案。案例的内容随具体求解领域不同可能略有差异,对于简单的情况,一个案例就是导致特定结果的一系列特征。但对于一个复杂的问题,案例所含的内容就很复杂,一个复杂的案例甚至可以是若干个子案例的组合。在本发明中,我们使用了开源搜索引擎Lucene并结合相似度匹配算法TF-IDF,实现了对案例库中类似案例的匹配,效果十分良好。本发明的浅层分系统软件框架如图4所示。
步骤八:建立深层故障诊断分系统的贝叶斯网络。在浅层故障诊断分系统中,本发明结合案例案例库,结合F-CBR技术实现了相似案例匹配推理的故障诊断。在深层故障诊断技术中,我们可以再次利用该案例库,并结合故障属性分类模型,实现贝叶斯网络的参数学习。在本发明中将使用一种创新的贝叶斯网络的算法,该算法可以提高贝叶斯网络的构建效率,并能自动将FMEA形式的案例库转化为贝叶斯网络。
该算法具体实现如下所示:在这里,我们利用案例库中的故障原因、故障现象及配置项/分系统属性作举例,以实现贝叶斯网络的构建。
完成了贝叶斯网络的结构学习。下一步骤就是利用贝叶斯网络进行参数学习,即利用贝叶斯网络从历史数据或专家经验中获得必要的条件概率表。为便于进行参数学习,需要参照属性归类映射表,将故障案例属性数据转换为故障频谱的形式。
该算法的流程图如图5所示
步骤九:本发明的深层故障诊断分系统的实现技术方法如图6所示。其构建方法是:
1)利用改进的算法生成诊断序列,进行探索式诊断测试,加快故障再现;
2)在贝叶斯网络模型的基础上,进行故障推理研究。为了能够对随机故障进行推理,为每个待分析组件分配故障概率,表征其发生故障的可能性,及在故障时却表现出正常行为的特征。拟采用极大似然值估计方法估计出观测到的故障现象发生概率最大时每个概率的值,并同时利用贝叶斯方法获得候选分析的后验概率,建立基础的贝叶斯分析推理框架;
3)当被诊断系统复杂且含有多个故障的时候,贝叶斯网络可能会面对一个节点过多产生的所谓“组合爆炸”问题,影响推理的有效性;因此,对于一个具体的诊断对象而言,我们有时需要考虑被诊断对象体系结构等一些特征对在诊断模型进行优化处理,如采用程序谱等弱故障模型,减少不必要的关联性;
4)对组合故障进行推理,利用前述贝叶斯方法结合最小命中集等集合算法对故障的组合情况进行推理排序;
5)实现对多态故障(既包括随机故障也包括非随机故障)的分析。在贝叶斯随机推理框架基础上,拟借鉴多态系统理论,对故障概率进行动态贝叶斯估算,探索对多态故障分析推理优化。
步骤十:浅层与深层分系统整合。在本发明中,案例库中的数据可以自动更新也可以人工更新。并且,案例库对浅层与深层分系统提供了一些接口,两个分系统可以利用这些接口实现与案例库的连接,完成数据的上传与下载,通过这些接口使得系统具有一定的开放性和扩展性,便于与其他更多的系统集成使用。整合浅层与深层分系统的软件实现框架如图7所示。
其中,在步骤七中所述的Lucene,是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎;
在步骤七中所述的TF-IDF算法是一种相似度统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级;
在步骤八中所述的BN是贝叶斯网络的缩写英文名称;
通过上述步骤,可以完成对多层次软件故障诊断专家系统的构建,对于被诊断对象中已发生或类似的组合故障,可采用浅层故障诊断分系统的相似匹配搜索方式进行解决,对于被诊断对象中未发生或未知类型的组合故障,可采用深层故障诊断分系统的贝叶斯诊断网络进行推理预测完成诊断。对于不同类型的故障采取不同的解决措施,从而完成软件故障诊断。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种多层次软件故障诊断专家系统的构建方法,其特征在于:其步骤如下:
步骤1、搜集大量与被诊断软件相关的故障案例,针对被诊断软件系统的特点,采取合适的方法对故障案例进行分析,在分析完成后,筛选出合适的案例集加入至创建的故障知识案例库;
步骤2、根据被诊断软件所有可能发生的原因、现象以及其他故障属性,结合软件缺陷分类方法构建缺陷属性分类模型,该模型能辅助贝叶斯诊断网络的构建及各层次分系统的连接;
步骤3、构建软件缺陷分类模型并进行形式化描述;
步骤4、针对被诊断对象的特点,构建适用于被诊断对象的其他故障属性分类模型;
步骤5、利用F-CBR技术对故障案例库的案例进行操作;
步骤6、结合F-CBR技术构建浅层故障分系统;
步骤7、采用开源搜索引擎工具并结合相似匹配算法,对结合F-CBR技术的浅层故障分系统进行具体实现;
步骤8、构建深层分系统,该系统提供故障探测、故障识别、贝叶斯故障分析,形成深层故障分析与故障管理协议,指导故障处理策略的制定与选择;对于深层分系统,案例库数据的故障属性分类模型转换为贝叶斯网络算法;深层分系统利用该算法进行贝叶斯网络因果结构学习,并将案例库中的自然语言形式的数据转换为0-1化数据,进行贝叶斯网络参数数据学习;
步骤9、结合案例库数据的故障属性分类模型转换为贝叶斯网络算法对深层故障分系统进行构建与实现;
步骤10、对浅层分系统与深层分系统构建连接,完成多层次故障诊断专家系统的构建,以实现基于故障案例库实现浅层、深层分系统的数据上传与下载,从而完成故障案例库数据共享功能;
完成对多层次软件故障诊断专家系统的构建,对于被诊断对象中已发生及类似的组合故障,采用浅层故障诊断分系统的相似匹配搜索方式进行解决,对于被诊断对象中未发生及未知类型的组合故障,采用深层故障诊断分系统的贝叶斯诊断网络进行推理预测完成诊断;对于不同类型的故障采取不同的解决措施,从而完成软件故障诊断;
在步骤2中所述的结合软件缺陷分类方法构建故障缺陷分类模型,其作法如下:即参照目前已有的软件缺陷分类方法,结合目前主流软件缺陷分类方法的优点,同时结合软件缺陷的发现、定位、排除和预防过程的特点,完成软件缺陷分类方法的定义与划分,并在此缺陷分类方法的基础上,根据被诊断对象自身的特点,对其故障现象、故障所发生的分系统一系列待分析的故障属性进行归类总结,完成故障属性分类模型的构建;
在步骤3中所述的构建软件缺陷分类模型并进行形式化描述,其作法如下:对适用于故障缺陷分类进行定义及划分,将已定义与划分的缺陷类型继续细化,直到缺陷类型相对完整为止;缺陷分类模型并不存在一个最终形式,当有新的缺陷类型出现时,这一缺陷类型就会添加至相应缺陷类型下进行更新;对该分类网的缺陷类型作出尽可能的细化,以最大限度地对案例进行匹配;在得出的缺陷分类模型后,使用超文本标记语言HTML及扩展标记语言XML对缺陷模型中的分类进行表示;
在步骤4中所述的针对被诊断对象的特点,构建适用于被诊断对象的其他故障属性分类模型,其作法如下:对于不同被诊断对象,故障的发生现象、发生的位置这类属性都有其各自特点,在进行FMEA分析时,对这些故障属性信息进行概括总结,进一步完成其他故障属性分类模型的建立;
在步骤5中所述的F-CBR技术,是基于失效模式与影响分析形式的案例推理技术,其作法如下:
将案例看作一个集合c={name,phenomenon,cause,measure,keywords},其中name为案例的名称;measure表示案例中问题措施措施的集合,该属性是故障解决方法的描述;cause是案例发生的所有相关根源属性的集合;phenomenon是故障现象属性的集合,一个故障有一个及多个现象;keywords是从故障各属性中提取的关键词;由于案例库是由多个案例组合的,用CL表示案例库,则CL={c1,c2,...,ci,...,cn};当有新问题出现时,浅层分系统会根据问题的描述从案例库CL中找到与之最为相似的一个及多个案例,作为解决问题的依据,这一过程称为案例检索;利用案例检索,能有效地计算出案例间的相似度;当一个问题引入时,就能得到问题与案例库CL中任意案例间的相似度,并从中选取相似度最高的案例作为分析根据,如果该故障症状不存在匹配案例,则将其加入至失败案例库中,随后转交给深层诊断分系统进行处理;
在步骤6中所述的结合F-CBR技术构建浅层故障分系统,其作法如下:主要分为三部分:
6.1、案例库的构建:根据诊断对象的不同,案例库的表现形式也有所不同;采用一种通用的分层结构对案例库进行表示,即失效原因-失效模式-失效影响的分层次的案例库体系,并以此构建基于案例库;对具有关联关系的案例,则需要对案例库进行二次分析、抽象提取,并结合已有的专家分析经验,建立各案例结构的关联规则库;
6.2、推理框架的构建:采用基于知识匹配的推理技术对推理框架进行构建,能够对相似的规则实例进行判断,若查找到相似实例则输出结果信息,若未找到相似实例则利用相似匹配技术对规则库进行匹配,获取相似规则;
6.3、学习框架的构建:对于检索案例库中不存在的案例,不仅要给出相关记录,还应将其存入知识库中,以便下次使用;而对于不恰当及不正确的推理结果时,应当将其纠正、改进,并重新入库复用,为后续故障分析和故障恢复处理及时提供证据、提供必要的故障相关信息;
在步骤8中所述的贝叶斯故障分析,是指利用深层故障诊断分系统中的贝叶斯网络对被诊断对象中复杂的,未知的故障进行概率推理,利用推理结果对故障进行分析;
在步骤9中所述的结合案例库数据的故障属性分类模型转换为贝叶斯网络算法对深层故障分系统进行构建与实现,其作法如下:
9.1、利用贝叶斯网络转换算法生成诊断序列,进行探索式诊断测试,加快故障再现;
9.2、在贝叶斯网络模型的基础上,进行故障推理研究;为每个待分析组件分配故障概率,表征其发生故障的可能性,及在故障时却表现出正常行为的特征;拟采用极大似然值估计方法估计出观测到的故障现象发生概率最大时每个概率的值,并同时利用贝叶斯方法获得候选分析的后验概率,建立基础的贝叶斯分析推理框架;
9.3、当被诊断系统复杂且含有多个故障的时候,贝叶斯网络可能会面对一个节点过多产生的所谓组合爆炸问题,影响推理的有效性;对于一个具体的诊断对象,需要考虑被诊断对象体系结构特征采用程序谱弱故障模型对在诊断模型进行优化处理;
9.4、对组合故障进行推理,利用前述贝叶斯方法结合最小命中集等集合算法对故障的组合情况进行推理排序;
9.5、实现对多态故障,既包括随机故障也包括非随机故障的分析;在贝叶斯随机推理框架基础上,应用多态系统理论,对故障概率进行动态贝叶斯估算,探索对多态故障分析推理优化。
CN201611193242.2A 2016-12-21 2016-12-21 一种多层次软件故障诊断专家系统的构建方法 Active CN106844194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611193242.2A CN106844194B (zh) 2016-12-21 2016-12-21 一种多层次软件故障诊断专家系统的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611193242.2A CN106844194B (zh) 2016-12-21 2016-12-21 一种多层次软件故障诊断专家系统的构建方法

Publications (2)

Publication Number Publication Date
CN106844194A CN106844194A (zh) 2017-06-13
CN106844194B true CN106844194B (zh) 2018-06-15

Family

ID=59136026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611193242.2A Active CN106844194B (zh) 2016-12-21 2016-12-21 一种多层次软件故障诊断专家系统的构建方法

Country Status (1)

Country Link
CN (1) CN106844194B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299381A (zh) * 2018-10-31 2019-02-01 哈尔滨工程大学 一种基于语义概念的软件缺陷检索和分析系统及方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423219B (zh) * 2017-07-21 2018-05-18 北京航空航天大学 一种基于静态分析的软件故障预测技术的构建方法
CN107590506B (zh) * 2017-08-17 2018-06-15 北京航空航天大学 一种基于特征处理的复杂设备故障诊断方法
CN109558258B (zh) * 2017-09-27 2023-01-24 国家计算机网络与信息安全管理中心 一种分布式系统根源故障定位的方法及装置
CN109597392A (zh) * 2017-09-30 2019-04-09 西门子公司 有助于故障诊断的方法、装置和设备以及机器可读介质
CN107808202A (zh) * 2017-10-27 2018-03-16 国家电网公司 电力设备故障判断指导方法及终端设备
CN107957928B (zh) * 2017-11-16 2019-06-07 南京轩世琪源软件科技有限公司 一种软件同步运行检测分析及故障排除方法
CN107992408B (zh) * 2017-11-16 2019-06-07 广东马上到网络科技有限公司 一种软件探测器的软件探测方法
CN107819507B (zh) * 2017-11-21 2020-06-05 上海航天测控通信研究所 一种针对卫星测控系统的多层次测试系统的配置方法及测试方法
CN108171334B (zh) * 2018-01-24 2021-08-27 北京航空航天大学 一种基于混合推理的自然环境效应知识推理方法
WO2020047779A1 (zh) * 2018-09-05 2020-03-12 西门子(中国)有限公司 故障分析方法、装置和计算机可读介质
CN111198924B (zh) * 2018-11-19 2022-11-25 长鑫存储技术有限公司 产品失效知识库建立方法与失效分析方法、装置、介质
CN109657797B (zh) * 2018-12-24 2021-05-04 中国人民解放军32181部队 基于混合诊断贝叶斯网络的故障诊断能力分析方法
CN109919574A (zh) * 2019-01-28 2019-06-21 江苏徐工工程机械研究院有限公司 一种基于数据融合的工程机械失效模式分析系统及方法
CN109936479B (zh) * 2019-03-18 2020-09-01 浙江大学 基于差分检测的控制平面故障诊断系统及其实现方法
CN110119355B (zh) * 2019-04-25 2022-10-28 天津大学 一种基于知识图谱向量化推理通用软件缺陷建模方法
CN109991951B (zh) * 2019-04-28 2020-10-02 齐鲁工业大学 多源故障检测与诊断方法和装置
CN110109835B (zh) * 2019-05-05 2021-03-30 重庆大学 一种基于深度神经网络的软件缺陷定位方法
CN111045904A (zh) * 2019-11-06 2020-04-21 南京富士通南大软件技术有限公司 基于开源os版本迭代中性能问题的定位方法
CN111597374B (zh) * 2020-07-24 2020-10-27 腾讯科技(深圳)有限公司 图像分类方法、装置及电子设备
CN112069058A (zh) * 2020-08-11 2020-12-11 国网河北省电力有限公司保定供电分公司 一种基于专家库和自学习技术的缺陷处置方法
CN112463642B (zh) * 2020-12-16 2021-08-03 北京京航计算通讯研究所 一种基于故障模式的软件设计缺陷核查方法及系统
CN113296994B (zh) * 2021-05-18 2024-08-06 北京计算机技术及应用研究所 一种基于国产计算平台的故障诊断系统及方法
CN113257414B (zh) * 2021-07-14 2021-11-16 北京好欣晴移动医疗科技有限公司 基于贝叶斯结构学习的信息归类方法、装置和系统
CN113328898B (zh) * 2021-08-02 2021-11-09 中国人民解放军国防科技大学 一种具有自主学习能力的故障诊断方法和系统
CN113828638B (zh) * 2021-09-07 2022-06-03 北京科技大学 一种轧钢工艺流程复合故障追溯方法
CN114461784A (zh) * 2022-01-18 2022-05-10 中国科学院大学 一种非结构化设备故障知识的分类及知识萃取方法
CN114690747B (zh) * 2022-05-31 2022-08-26 深圳市星卡软件技术开发有限公司 一种排查诊断设备问题的方法、装置、设备以及存储介质
CN114780732B (zh) * 2022-06-22 2022-09-13 天津市天锻压力机有限公司 基于贝叶斯分类模型的锻造液压机预测性维护方法及系统
CN116149992B (zh) * 2022-12-16 2024-07-02 中国航空综合技术研究所 航空机载软件安全性分析规则的关联推送方法及其系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412802A (en) * 1990-05-11 1995-05-02 Hitachi, Ltd. Reasoning method and fault diagnosis method and system implementing the same
CN105225049A (zh) * 2015-10-09 2016-01-06 清华大学深圳研究生院 一种高可扩展性故障诊断专家系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412802A (en) * 1990-05-11 1995-05-02 Hitachi, Ltd. Reasoning method and fault diagnosis method and system implementing the same
CN105225049A (zh) * 2015-10-09 2016-01-06 清华大学深圳研究生院 一种高可扩展性故障诊断专家系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299381A (zh) * 2018-10-31 2019-02-01 哈尔滨工程大学 一种基于语义概念的软件缺陷检索和分析系统及方法
CN109299381B (zh) * 2018-10-31 2020-04-24 哈尔滨工程大学 一种基于语义概念的软件缺陷检索和分析系统及方法

Also Published As

Publication number Publication date
CN106844194A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
CN106844194B (zh) 一种多层次软件故障诊断专家系统的构建方法
Fenton et al. Fault diagnosis of electronic systems using intelligent techniques: A review
Zhang et al. Active and dynamic information fusion for multisensor systems with dynamic Bayesian networks
CN101063643B (zh) 飞机故障智能诊断方法及系统
Liu et al. Evolutionary optimization of software quality modeling with multiple repositories
CN112859822A (zh) 基于人工智能的设备健康分析及故障诊断的方法及系统
CN116771576B (zh) 水电机组故障综合诊断方法
Catal et al. An artificial immune system approach for fault prediction in object-oriented software
CN111931936A (zh) 一种协同案例推理与语义模型推理的设备故障诊断方法
Prentzas et al. Combinations of case-based reasoning with other intelligent methods
CN113743461B (zh) 无人机集群健康度评估方法及装置
Jones et al. Perceptually grounded self-diagnosis and self-repair of domain knowledge
Cohrs et al. Large Language Models for Constrained-Based Causal Discovery
CN117687824A (zh) 基于质量问题知识图谱的卫星故障诊断系统
Fenton et al. Fault diagnosis of electronic system using artificial intelligence
Elwakil Knowledge discovery based simulation system in construction
CN110780660A (zh) 一种基于生产状态的烟草生产工业控制系统故障诊断方法
Strasser et al. An empirical evaluation of Bayesian networks derived from fault trees
Shekar et al. Fault diagnostics in industrial application domains using data mining and artificial intelligence technologies and frameworks
Saraph et al. Test set generation and reduction with artificial neural networks
CN112147974A (zh) 基于化工过程知识自动化的报警根原因诊断方法
Esmaeili Development of equipment failure prognostic model based on logical analysis of data (lad)
CN118394561B (zh) 服务器故障的诊断方法、装置、存储介质及电子设备
Terawong et al. XGBoost Learning of Dynamic Wager Placement for In-Play Betting on an Agent-Based Model of a Sports Betting Exchange
Sheppard et al. Combining model-based and case-based expert systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant