欢迎来到天天文库
浏览记录
ID:38180029
大小:168.56 KB
页数:4页
时间:2019-05-24
《基于运行序列的软件故障诊断方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛基于运行序列的软件故障诊断方法王毅刚朱小冬甘茂治(石家庄军械工程学院维修工程研究所,050003)SoftwareFaultDiagnosisBasedOnOperationalSequencesWANGYi-Gang,ZHUXiao-Dong,GANMao-Zhi(MaintenanceEngineeringInstitute,OrdnanceEngineeringCollege,Shijiazhu
2、ang,China050003)摘要:在软件失效机理分析的基础上,提出了基于运行序列的软件故障诊断方法。该方法根据最近邻思想,采用编辑距离在大量正常运行中搜索故障运行的最近邻,利用故障运行序列与最近邻序列的对比差异生成程序可疑部分报告,并给出了报告的评价函数。最后设计试验验证了该方法。关键词:软件运行序列;最近邻;编辑距离;软件故障诊断中图分类号:TP311,TP391文献标识码:AAbstract:Afteranalyzingthesoftwarefailuremechanism,themethodofsoft
3、warefaultdiagnosisbasedonoperationalsequencesispresented,whichappliesthethoughtofnearestneighbortosearchingthenearestneighborofthefaultrunbyusingtheeditdistance.Bycomparingthefaultoperationalsequencewithit’snearestneighbor,thedifferencebetweenthemcanbefound,w
4、hichgeneratestheprogramsuspectsreport.Andtheevaluationfunctionispresented.Finallytheexperimentverifiestheapproach.Keywords:SoftwareOperationalSequence;NearestNeighbor;EditDistance;SoftwareFaultDiagnosis1.引言随着软件复杂性和实时性的提高,在某些软件(如,大型复杂软件、实时软件,特别是一些软件密集系统等)中,由于无
5、法获得软件实际运行信息等问题,传统的软件故障诊断方法的应用存在很大困难。因此,我们提出了基于软件黑匣子的集成的软件故障诊断模型[1][2](IntegratedSoftwareFailureDiagnosisModelbasedonSoftwareBlackBox,ISFDM-SBB)。本文是对ISFDM-SBB中核心诊断方法的介绍。2.软件故障分析软件发生故障或失效的原因可能有很多,从软件本身的失效机理来看,软件失效的原因可以描述为“软件错误→软件缺陷→软件故障→软件失效”这一变化过程,即:由于人为的软件错误(
6、softwareerror)会在软件中产生一些缺陷(defect),在一定条件下,计算路径经过某个存在的缺陷,激活该缺陷时,就会出现软件故障(softwarefault),如果故障没有容错[3]措施处理,就会发生软件失效(softwarefailure)。软件故障是软件运行中出现的内部状态,是一种动态行为,而软件失效是由于对软件故障缺乏容错措施而表现的外部结果;解决软件故障(失效)问题的根本途径就是要保证软件产品没有缺陷。因此,软件故障诊断的主要目的就是根据软件运行的内部状态(或外部结果)确定软件中的缺陷。需要说
7、明的是一个缺陷的确切位置很难精确说明,这或是因为有许多方式可以修改缺陷,或是因为修改缺陷需要在代码中多个地方进行变更。在第一种情况,我们可以说缺陷在其中的某一个位置,第二种情况,缺陷存在于这所有的位置。因此,为了叙述方便,在用到课题来源:中国人民解放军总装备部“十五”重点预研项目:软件密集型装备保障技术http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛“缺陷”一词时已经包含它的位置可能是一处也可能是多处,不再分开说明。根据软件失效机理,缺陷是否引起故
8、障取决于程序执行的路径是否经过该缺陷,由此我们可以得到一个结论:软件某个功能发生故障时的执行路径一定经过了程序中与该功能相关的某个缺陷的所有位置。因此,与正常运行相比,软件故障运行的执行路径是有差异的(即[3][4][5][6]故障运行的执行路径是一种例外路径),而这些差异中也包含了软件缺陷的信息。如果在分析软件执行路径时,将分析粒度定义为“基本块”,它可以是程序模块、代
此文档下载收益归作者所有