基于贝叶斯网络技术的软件缺陷预测与故障诊断

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Microcomputer Applications Vol. 25, No.11, 2009 技术交流 微型电脑应用 2009年第25卷第11期 ·31·
文章编号:1007-757X(2009)11-0031-03
基于贝叶斯网络技术的软件缺陷预测与故障诊断
王科欣,王胜利
摘 要:如何进一步地提高软件的可靠性和质量是我们十分关注的问题,而前期软件缺陷和后期软件故障的诊断都是控制质量的关键手段,由此我们提出了基于贝叶斯的神经网络。

基于对贝叶斯网络和神经网络理论的分析,发现贝叶斯网络和神经网络各自的优点与不足,利用贝叶斯具有前向推理的优势进行故障诊断,利用神经网络学习算法能够处理更复杂网络结构的优势来积累专家知识,最后提出了贝叶斯网络与概率神经网络相结合的模型,该模型可以更好地兼顾软件缺陷与故障诊断两个方面。

关键词:贝叶斯;神经网络;测试;缺陷预测;故障诊断
中图分类号:TP311.5 文献标志码:A
0 引言 如何进一步提高软件的可靠性和质量是我们十分关注的问题,软件可能存在缺陷,我们在软件的整个生命周期中始终期望能及早发现重要错误,并及时诊断。

这就告诉我们,在进行软件前期预测时,就应该重视和记录重要缺陷,以便在故障发生时能通过早期预测的记录表找到故障原因。

这就说明软件缺陷预测和故障诊断不应该是两个独立的过程,而应该有所联系。

本文就通过贝叶斯网络和模糊神经网络对两项工作进行了整合。

通过贝叶斯的在推理规则上的优势,尤其是前向推理的特点进行故障诊断,利用神经网络学习和训练函数的复杂多样性,可以更好地拟合复杂情况。

1 软件缺陷预测与故障诊断
1.1 软件缺陷预测的两个方面 1.1.1 对于软件可靠性早期预测 对于开发者而言,在开发软件之前或者设计软件中,主要作用是进行风险控制,验证其设计可行性。

由于贝叶斯网络可以在信息不完全的情形下进行不确定性和概率性事件的推理,所以对于复杂软件的早期预测具有先天的优势。

软件缺陷数量属于动态度量元素,需要通过对软件产品进行完整的测试后才能获得。

针对特定模块进行完整测试成本比较高,并且必须在软件开发完成之后才能进行集成测试,这样在前期很难控制软件产品缺陷数量。

为了更好地提高软件质量,对软件模块中包含的缺陷进行预测是一个可行的方法。

软件缺陷预测方法的前提假设是软件的复杂度和软件的缺陷数量有密切关联。

复杂度高的软件模块产生的缺陷比复杂度低的模块产生的缺陷多。

软件缺陷预测的思路是使用静态度量元素表征软件的复杂度,然后预测软件模块可能的缺陷数量或者发生缺陷的可能性。

通过进行软件缺陷预测,能够以较低的成本在项目开发的早期预测产品的缺陷分布状况,可以更好的调整有限的资源,集中处理可能出现较多缺陷的高风险模块,从而从整体上提高软件产品的质量。

1.1.2 对于软件残留缺陷的预测
对于测试者而言,通过质量预测,可将软件的各个组成部分按预测的质量水平进行分类,明确测试的重点,避免在进行测试时同等对待,而是有所侧重,这对节约有限资源和缩短开发周期都有着十分重要的意义。

软件的测试和修改是一个螺旋式上升的过程。

由于资源和时间的有限投入,什么时候软件达到了要求的质量水平从而能够投入实际使用是一个十分关键的问题。

对残留缺陷进行预测,目的就是为了确保代码中的缺陷数量维持在一个安全水平。

对测试经理来说,估计目前软件的测试到了哪个阶段、还应该继续做到什么样水平,这都是尤其重要的。

从软件经济学的观点上来看,它关系到产业界的投入产出比、测试过度,不能再检查出太
多错误,或者说检查耗费很长的时间和很多的人力,但最终是一个细微的错误,这是不经济的;但是如果残留缺陷还比较多,就停止测试工作,那么会使得这些缺陷在未排除的情
况下交付给用户,等到用户发现错误时,维护的成本就会更
高。

因此,正确预测软件残留缺陷对于交付使用后的软件维护也具有重要意义。

1.2 软件故障诊断技术
软件故障诊断是根据软件的静态表现形式和动态信息查找故障源,并进行分析,给出相应的决策。

其中静态形式包括程序、数据和文档,动态信息包括程序运行过程中的一系列状态,人在参与软件生存周期的各个阶段工作时,都有可能由于各种疏忽和不可预料的因素,出现各种各样的错误。

因而,从广义上说,软件故障诊断的工作涉及到软件的整个生命周期——需求分析、设计、编码、测试、使用、维护等各阶段所造成的缺陷。

软件故障诊断,“诊”的主要工作是对状态检测,包括使用各种度量和分析方法;“断”的工作则更为具体,它需要确定:(1)软件故障特性;(2)软件故障模式;(3)软件故障发生的模块和部位;(4)说明软件故障产生的原因,并且提出相应的纠正措施和避免下一次再发生该类错误的措———————————
作者简介:王科欣(1982-)
,男,湖南长沙人,暨南大学计算机科学系,硕士研究生,软件设计师,广东体育职业技术学院助教,主要研究方向为软件工程、数据库与知识工程,广东 广州,510632;王胜利(1984-),男,湖南衡阳人,暨南大学计算机科学系,硕士
研究生,研究方向为软件工程、数据挖掘,广东 广州,510632
Microcomputer Applications Vol. 25, No.11, 2009 技术交流 微型电脑应用 2009年第25卷第11期 ·32·
施,最后一点是软件诊断技术的关键所在。

软件故障诊断是
有很强的目的性的,他要通过寻找和发现软件故障状态而进
行诊断。

软件故障诊断的过程包括故障的检测与发现、故障
模块的定位、故障的排除、故障排除后进行回归测试、系统
继承测试和用户交付验证测试等几个阶段。

软件故障检测是
软件故障诊断的第一步,通过静态检查、动态运行等方法获
取软件中的各种信息,及时识别可能出现软件故障的征兆,
发现软件是否能正常运行或存在故障,并为软件故障定位提
供依据。

软件故障定位,是指根据软件故障检测提供的能反映软
件特征参数的异动情况,或与某故障状态参数进行比对,并
进一步收集软件的历史信息,通过历史记录,重现软件故障
过程,通过重现来诊断软件故障的性质和程度、发生部位或
产生原因,定位缺陷模块,为纠正缺陷、排除各类故障做好
各项准备。

软件故障排除是指当诊断出软件中存在缺陷,分析产生
的原因、查找出故障部位,估计其危险程度,决定纠正缺陷、
排除故障的方法,具体包括修改程序源代码、数据或说明文
档等。

从软件工程的角度来看,软件故障排除属于软件维护
的范畴。

传统的软件缺陷与软件故障诊断都是分离的,以往对于
这两部分都是分开研究的,而在我们进行故障诊断时,往往
可以用到当初在前期已经预测时发现的缺陷,但我们把预测
所得的内容用网络保留,把这块经验知识进行加工后,对我
们后面的故障诊断是非常有利的。

实现诊断一方面是需要前
向推理的机制和实现技术,另一方面就是宝贵的经验知识,
而我们所做的就是把经验知识进行保留和积累,所以我们把
缺陷预测与故障诊断相结合。

2 基于贝叶斯的软件缺陷预测与诊断技术
2.1 贝叶斯概率
贝叶斯概率是通过已知的先验知识和统计现在拥有的
数据,使用概率的手段对未来某一事件可能发生的概率进行
预计。

我们假设下式为观测样本。

{}n n x X x X x X D ====,...,,2211 (1)
其中X 为事件变量,x 为变量值或状态,θ为事件X =x 发生
的先验概率,()ζθ|p 为概率的密度函数,其中ζ为先验知
识。

贝叶斯概率计算就是已知先验概率密度()ζθ|p 和样
本D ,求第n +1次事件11++=n n x X 发生的概率为
()ζθ,|11++=n n x X p 。

由全概率公式得:
()
()()()()()θθζθθθζθζθζθζθ,|1111,|,|,,|,|d p n n n n E d D p d D p D x X p x X p =====∫∫++++ (2) 根据贝叶斯的规则,给定先验概率ζ和样本D ,后验概率为()ζθ,|D p 为 ()()()()ζζθζθζθ|,||,|D p D p p D p = (3) 其中()()()∫=θζθζθζθd p D p p |,||()ζθθ,|p 为似然度函数,验概率在先θ已知,样本D 中各事件条件独立,事件变量X 取值为有限个,即X 有r X L x x ,,,21共r 个可能的值,r L θθθθ,,,21=。

其中
()ζθθ,|k k x X p ==,k =1,2,…,r (4) 设Ni 为样本D 中事件X =xi 发生的次数,i =1,2,…,r 。

假设先验概率为 ()()()()∏∏−===11321,...,,,||k k r k r a a a a Dir p αθατατθζθ (5) 其中∑==r k k 1αα,且k α>0, k =1,2,…,r 。

后验概率为()()r r N N N Dir D p +++=αααθζθ,...,|,|2211 (6) 预测事件的贝叶斯概率为: ()()N N d N N N Dir x X p k k r r k n ++=+++==∫+ααθαααθθζθ,...,|,|22111 (7) 2.2 贝叶斯网络 在上面的数学基础上,我们把它应用到计算机领域,形成了贝叶斯网络,贝叶斯网络由两个成分定义它——有向无环图和条件概率表的集合。

其中结点代表样本中的一个随机变量,变量可以是离散的或连续值的。

可对应于给定数据中的实际属性,或对应与相信形成的“隐藏变量”,而有向弧代表变量的关系,变量之间的关系强弱由结点与其父结点之间的条件概率来表示。

通过贝叶斯网络的条件概率表(CPT )可以准确地反映实际应用中变量之间的依赖关系。

我们假设()n x x x D ,...,,21=是一组变量,同时给定变量的双亲,每个变量都有条件的独立于网络图中它的非后代。

这使得网络用下式提供了存在的联合概率的完全表示: ()()∏==n i i i n i Y Parents x P x x x x P 121),(|,,...,,|ζζ (8) 贝叶斯网络的优势就在于可以完成以下三种推理:(1)因果推理;(2)诊断推理;(3)支持推理。

根据上述可以对这些推理进行应用。

因果推理是指自顶向下推理,根据原因推知结果。

用于缺陷的预测;诊断推理自底向上推理,根据结果推知原因。

这在故障诊断中最为需要,往往我们在发生故障后,都要都故障进行调查,找出故障产生的原因,从而杜绝故障的再次发生;支持推理可以得到输入各元素的因果关系,对于分析输入的样本元素的关系有很大的意义,而最大的不足就是无法应对复杂网络的机器学习。

3 基于模糊神经网络的软件预测与诊断技术 3.1 模糊逻辑与神经网络 模糊逻辑是在多值逻辑的基础上演变而来的,它模糊集合中引入渐变的隶属度的概念,用以描述不精确、不确定、不完全和含糊的信息。

模糊逻辑的主要功能是处理语言变量、语言修饰词、命题模糊逻辑、模糊规则和近似推理。

模糊逻辑模型技术已成为当代软件开发过程建模的统计和机械学习技术的非常有效的补充。

除此之外,模糊逻辑还可以用来有效支持软件项目预测的过程。

作为人工神经网络则是
采用工程技术手段模拟人脑神经网络的结构和功能的一种
技术系统。

它以计算机系统为基础,从人脑简单抽象出来,
在人脑中有很多节点,称为处理单元,以网状结构互相连接,
形成神经网络。

它可以通过对若干样本的学习,建立网络输
入变量与输出变量之间的全局非线性映射关系。

把这良种技
术相结合形成模糊神经网络体系。

3.2 模糊神经网络的体系结构
神经网络包括输入层、隐含层和输出层,隐含层可以有
一层或多层,一般情况下采用一层,每一层可以有若干个神
Microcomputer Applications Vol. 25, No.11, 2009 技术交流 微型电脑应用 2009年第25卷第11期 ·33·
经元,不同层间神经元用权重连接,数据从输入层输入,从
输出层输出。

我们现在是要构建一个基于多个模糊输入的神经网络
软件可靠性评测系统。

首先要定义一个隶属度函数。

然后将
SQ :说明书质量;DL :开发人员水平;SC :软件复杂性;
DS :设计规模;CQ :代码质量;ID :初始缺陷数;RD :
残留缺陷数;DD :检测缺陷数;TE :测试力度;TL :测试
人员水平作为输入变量,SR(Software Reliability )作为模型
的输出变量。

3.3 神经网络的学习算法
神经网络通过样本数据进行训练,在训练过程中,样本
数据作为神经元的激活值,从输入层经中间层向输出层传
播,在输出层的各种神经元获得网络的输入响应。

计算得到
实际输出与期望输出之间的误差,然后按照减小实际输出与
期望输出误差的方向,逆向逐层调整各连接权值,最后回到
输入层,重复上述过程,随着这种误差逆向转播修正的多次
进行,神经网络的输出正确率不断提高。

从效果上来说,神
经网络从不断输入的样本数据中提炼规则,形成知识,而知
识作为神经网络参数形式得以保存,当已训练好的神经网络
遇到未知问题时,能给出与神经网络的知识相关的答案。

从以上可以看出,神经网络有很强的学习和训练能力,
学习和训练算法也非常丰富,与贝叶斯网络相比有更好的拟
合能力。

4 改进的新模型 我们发现贝叶斯网络学习算法的简单,直接运用专家经验知识库进行初始化权值,在简单的网络结构中学习算法更简单,它具有更好的适用性,但在要确定变量顺序中就不一样了,变量顺序的确定是贝叶斯网模型中重要的问题之一,因为一个合适的顺序不仅使贝叶斯网成为好的知识表达,而且会大大降低计算的复杂度,并减少网络结构学习的搜索空间。

对于关系清晰、结构简单的网络,只依靠专家经验便可确定变量顺序,而对复杂的情况,就需要一定的算法来学习。

所以在复杂情况下,我们构造一个模糊神经网络,通过进化算法来进行学习和训练。

我们建立模型如下:
图1 改进模型
这样我们就可以把缺陷预测与故障诊断放在一个平台上整合,知识的积累可以实现共享,采用贝叶斯网络由于兼具前向推理(诊断推理)、后向推理(因果推理),可以完整的把预测和诊断两方面的知识都加以积累和应用。

一方面可以增加预测和诊断的准确性,另一方面也可以更好地调整网络内部的权值和关联概率,减少误差。

5 总结与展望 本文根据贝叶斯网络和神经网络在当前软件缺陷与故障诊断的应用,根据软件质量保证的需要,利用贝叶斯和神经网络技术相结合,提出一个既可以对软件缺陷进行预测,又可以对软件故障进行诊断的模型,而且两项工作所产生的数据现场都会通过训练和学习的方式记录在神经网络中,不断提高该网络的拟合能力。

本文只是对贝叶斯网络和神经网络作了比较浅显的分析,提出了一个改进模型,后续工作可以通过Agenarisk 对该模型进行仿真,提供更加准确可靠的研究数据。

参考文献 [1] Heckeman D. Bayesian Networks for Data Mining [ J ].
Data Mining and Knowledge Discovery,1997,(1):79-119.
[2] Heckeman D, Geiger D, Chickering D.Learning Bayesian
Networks: the Combination of Knowledge and Statistical
Data[J].Machine Learing, 1995,20(3):197-243.
[3] 申光刚. 软件测试过程度量研究及应用[D]. 北京:中国
航天第二研究院,2004.
[4] 单锦辉,徐克俊. 软件故障诊断探讨[ J ]. 北京化工大学
学报,2007, l24,(9).
[5] 王 青,伍书剑,李明树. 软件缺陷预测技术[ J ].软件学
报,2008,118(9):1571-1573.
[6] 汪 浩. 基于数据挖掘技术的软件可靠性模型研究[D].北
京:北京航空航天大学,2002.
[7] 罗云锋,贲可荣. 基于BBNs 的软件故障预测方法[J].电
子学报,2006,134(12).
[8] 王铁江,郦萌. 软件可靠性的模糊综合评估模型.计算机
工程与应用,2003,24(20):37-39.
(收稿日期:2009-03-23)
敬请广大读者、订户抓紧办理2010年
《微型电脑应用》期刊订阅手续
Microcomputer Applications Vol. 25, No. 11, 2009ABSTRACTS & KEYWORDS 微型电脑应用2009年第25卷第11期already been used. It focused on studying the most important mechanism in all data exchanges: the subscription and publication. It discussed the specific structure of order and designed an implementation of the subscription and publication based on orders. Finally, it listed detailed experimental data, which show that this method significantly improved the real-time property and effectiveness of data exchange.
Keywords: IEC 61970; Component interface specification (CIS); Data acquisition from industrial systems (DAIS); High speed data access (HSDA); Data access (DA)
Design and Implementation of GSM Network Optimization Expert System (23)
YANG Yun, FENG Ya (College of Electric and Information Engineering, Shanxi University of Science and Technology, Xi'an 710021,China)
Abstract: In view of the existing problems of GSM network optimization, with C# technology, GSM network optimization expert system is established. With decision tree knowledge expression, this system collects the experience knowledge about assess existing network performance, finds defect and optimizes the source program based on expert knowledge, and with the fuzzy and mixed reasoning strategy based on rules, achieves the functions of data integration, network-wide quality assessment, self-learning, network presentation, monitoring and performance prediction. This efficient system also provides a user-friendly interface, a simple and intuitive operation and an easy maintenance.
Keywords: Expert system; Network optimization; Decision tree; Mixed reasoning; Knowledge representation
Communication Control Unit Used for Airborne Scout and Rescue Equipment Test Based on W77E58 (26)
ZHANG Zhi-ming1, ZHAO Ang1, LIU Lin-fa2, WANG Li2, WANG Lei1, LI Li-bing1(1. College of Electronics and Information Engineering, Tongji University, Shanghai 200092, China; 2. China Airborne Missile Academy, Luoyang 471009, China)
Abstract: To solve the integrated connection and cooperated operation problems in the airborne optoelectronic scout and rescue equipment test system, the communication control unit should be designed with high reliability. Consdering on the equipment’s test standards, the main structure, hardware solution and software process of the dual-serial port MCU based communication control unit are proposed and discussed in detail. The running results in practice show that it could simplify the hardware connection and code programming, improve the reliability of the system.
Keywords: Airborne electro-optical scout and rescue equipment; Communication control unit; Dual-serial port mcu; RS-422 communication protocol Technical Communication
Design and Realization of Electronic Speed Governor for Diesel Generator (28)
FENG Jun, TIAN Zuo-hua(Department of Automation, Shanghai Jiaotong University, Shanghai 200240, China)
Abstract: An analog electronic speed governor for a diesel generator is improved into a multifunctional speed governor which is based on S3C2440 ARM9 and embedded operating system Linux, using the tool of device drivers and Qt/Embedded. Experimental results show that the new electronic speed governor can govern speed, monitor the diesel generator and manage data effectively.
Keywords: Diesel generator; Electronic speed governor; S3C2440 ARM9; Linux
Software Defect Prediction and Fault Diagnosis Based on Bayesian Network Technology (31)
WANG Ke-xin1,2, WANG Sheng-li1(1. Computer Science Department, Jinan University, Guangzhou 510632,China; 2. Guangdong Sports Vocational Education and Technical College, Guangzhou 510663,China)
Abstract:Software reliability and quality has always been our great concern.Based on Priori reasoning of Bayesian network theory analysis, we found the characteristics of Bayesian networks, which can be carried out in software reliability prediction.Because Bayesian network also has the incomplete data sets in under the reasoning of the advantages,it can be applied precisely the complexity of the software development process with the prediction, software defecting, risk control. Moreover,by Bayesian network having a capacity of the results derived from the reasons,it can be applied to the software failure has occurred to classify, analyzing its possible reasons for the failure.
Keywords: Bayesian network; Software; Testing; Reliability prediction; Fault diagnosis
Floor-tile Quality Control by Using Color Image Cluster Analysis (34)
LIN Sen (Computer Science Department, Shanghai Jiaotong University, Shanghai 200240, China)
Abstract: The paper provided questions from the different color detection of floor-tile and presented a method that use color image cluster analysis as a substitute of manual detection. The method extracts color and texture as its characteristics description based on color image, selects the initial cluster center the principle of maximizing minimum discrepancy on the basis of SCA algorithm, and completes clustering with Center of Gravity Method. The experimental results show that the method is useful, rapid and satisfactory.
Keywords: Cluster analysis; Color image; Color difference; SCA
Application of Wavelet Coefficient and its Variance in Detection Speech (36)
GUO Yong-liang, SHI Yu-xia (College of Automation Engineering, NanJing University of Aeronautics and Astronautics, NanJing 210016, China)
Abstract: In the process of speech recognition,accurate endpoint detection is crucial for good speech recognition accuracy.In this paper,we propose a novel algorthm based on wavelet sub-band energy and wavelet coefficient variance.In the comparison of the algorthm to the other traditional method such as energy,ZCR etc., the algorthm proved effective.The SA is shown to be well suited for the detection of speech endpoint,especially for lowsignal-to-noise ratio(SNR).
Keywords: Endpoint detection; Wavelet; SNR
Design of Grammar for Defining the Template of Dynamic Report (38)
WANG Liu-ping1, Wu Jian-feng2 (1. College of Mathematics and Computer Science, Hunan Normal University, Hunan 410081, China; 2. Guangxi Administrative Cadre Institute of Politics and Law, Guangxi 530023, China)
Abstract: Report is the necessary function in software, and the dynamic report is one of the representing of the software's performances, for it makes it possible that users create or modify reports at any moment. This Paper gives a grammar of defining data source and filling data, in designing template of dynamic report by spreadsheet, the grammar is simple, powerful and wieldy, by it, user can design any report.
III。

相关文档
最新文档