基于数据挖掘技术软件缺陷检测方法研究.docVIP

基于数据挖掘技术软件缺陷检测方法研究.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于数据挖掘技术软件缺陷检测方法研究

基于数据挖掘技术软件缺陷检测方法研究   【摘要】针对经典频繁子图挖掘算法FFSM(Fast Frequent Subgraph Mining)无法处理有向多重图、无法得到有向频繁子图和大量的虚假警报的缺点,在其基础上提出一种新的频繁子挖掘算法HFFSM(Higher-performance Fast Frequent Subgraph Mining)。通过实验对比分析HFFSM和FFSM表明,HFFSM算法能够很好地处理有向多重图并输出有向频繁子图,并且减少了算法应用时的虚假警报,在算法效率上略有提高,而边的方向上的改进大大提高了算法的整体表现和实用性。   【关键词】频繁子图挖掘算法;软件缺陷检测;静态分析;深度优先搜索;程序依赖图   1.引言   随着软件应用规模的日益扩大和软件应用环境的日益复杂,因为软件质量导致的事故给人们造成的损失越来越多,后果也越来越严重,比如IBM360操作系统的失败、阿丽亚娜号航天火箭的爆炸[1]等。为保证软件的质量,必须检测软件缺陷并对其加以控制。   检测软件缺陷,通常指检查代码缺陷,其方法有很多种,包括人工审查、动态测试和静态分析。程序语义分析方法是静态分析常用的一种分析技术。它通过分析程序的控制流和数据流以及函数调用关系等计算程序的多种语义表示,如调用图和依赖图,来辅助软件审查。这种方法最大的优点就是不必执行目标程序,就可以通过扫描并分析程序的源代码并查找代码中的特定模式(可以理解为编程规则)集合,较早地发现程序代码中的缺陷。   最新的静态分析工具将数据挖掘技术(通常是频繁子图挖掘算法)与程序分析相结合。为了构造一个针对某一种类型的软件缺陷的高效的静态分析工具,必须使用适当的频繁子图挖掘算法。而该类静态分析工具的效率、性能的关键也就是频繁子图挖掘算法。   FFSM[5]算法是基于模式增长方法的。它与目前主流的频繁子图挖掘算法AcGM[2]、FSG[3]和gSpan[4]等方法相比,时间复杂度最优、挖掘效率最高。它使用CAM来唯一标识图,使用FFSM-Join和FFSM-Extension来扩展频繁子图,并通过相应的剪枝策略来获得候选子图。在计算支持度时,只对embedding list进行扫描,提高了计算的速度和效率。但是FFSM算法存在一定的局限性,有如下五个主要问题:   ??能处理多重图(即两个节点之间可能存在一条以上的边);   只能处理无向图;   FFSM-Extension需要对边和节点进行枚举,效率低;   无法输出有向频繁子图。   FFSM挖掘得到的频繁子图无法准确地表征规则,无法应用到软件缺陷检测中,实用性差。   针对上述提出的经典频繁子图挖掘算法存在的问题,本文在经典的算法FFSM的基础上,提出了一种新的频繁子图挖掘算法HFFSM(High-performance Fast Frequent Subgraph Mining)。本文的主要工作概述如下:   提出一种将有向标记图等价转换为无向标记图的方法,即该方法可以在有向图转换为无向图之后保留原图边的方向性。而且该方法简单、通用、可移植。   基于经典频繁子图挖掘算法FFSM,提出一个能处理有向多重图并得到有向频繁子图的,比FFSM效率更优的频繁子图挖掘算法HFFSM。   2.FFSM算法介绍   FFSM算法使用邻接矩阵表示图,按照从上到下,从左到右的顺序扫描邻接矩阵的下三角,包括对角线,将得到的串表达式称为图的代码,将最大的代码称为图的规范表示,并把相应的邻接矩阵称为图的CAM(Canonical Adjacency Matrix)。   FFSM算法的基本思想如下:   (1)FFSM算法利用CAM来唯一标识图。   (2)简化输入数据库中的图为无向简单图并利用CAM的性质来解决子图同构问题。   (3)FFSM算法利用FFSM-Join和FFSM-Extension操作来生成候选子图。FFSM-Join根据k-频繁子图所属类型的不同,采用不同的方式进行合并,生成k+1-频繁子图。FFSM-Extension每次在频繁子图上添加一条边和新的节点来获得新的频繁子图。   (4)剪枝:去除既非次优CAM也非频繁的子图。   输入图集中,与k-频繁子图具有子图同构关系的所有图,称为Embedding list。k+1-频繁子图的支持度可以通过扫描Embedding list获得,提高了支持度的计算速度如图1所示。   3.HFFSM算法   针对第一部分提到的FFSM的种种缺陷,本文针对第一部分中提出的HFFSM频繁子图挖掘算法的缺点,对原FFSM算法做出以下几点改进:   (1)问题一解决方案:多重图等价转换为简单图   HFFSM算法无法处理多重图,但是两个顶点之间可能同时存在数据依赖和控制依赖

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档