论文部分内容阅读
针对并发程序中存在的主要缺陷类型,目前的研究包括单一类型的缺陷检测的技术和通用的多种类缺陷检测技术,而这些技术均存在各自的不足之处,例如会产生组合爆炸问题,虚假警报率较高,还不能很好地达到并发程序中缺陷检测的要求。并且现在对并发程序缺陷检测的研究大多停留在单一类型的缺陷检测,对于通用的缺陷检测技术研究仍然不足。把序列模式挖掘方法应用于并发程序的缺陷检测中,使得能够对多种程序缺陷进行检测,并有效解决算法效率不高的问题,提高缺陷检测的效率。为了提高并发程序的安全性和可靠性,方便程序调试,本文提出一种基于序列模式挖掘的并发程序缺陷检测技术的整体框架,主要工作如下:首先,本文介绍了使用基于序列模式挖掘的并发程序缺陷检测的总体框架,分析了并发程序执行序列获取和基于序列模式挖掘的缺陷检测,实验设计等部分的关系,概括了各部分的主要目的与设计思路。其次,本文研究了获取并解析程序执行序列集的具体方法。使用动态标记迁移算法探索线程所有的交错执行情况,并使用AspectJ在执行时记录线程、事件的信息反映程序执行轨迹,获取程序执行结果,最后根据执行结果划分为成功执行序列集和失效执行序列集。再次,本文研究了如何利用序列模式挖掘得到程序缺陷的模式。在获取程序执行序列集之后,研究如何对程序执行序列集进行数据挖掘得到缺陷模式,并对序列模式挖掘的算法做了改进,提出了改进ISPAM算法(Improved Sequential PAttern Mining,ISPAM)解决了算法效率不高和缺陷检测效果不佳等问题。最后,针对上述方法在真实数据集和人工数据集上进行多次实验。本文研究作为实验的理论基础,得到满足条件的实验环境进行实验,分析并发程序序列获取中本文算法和DPOR算法在探索率和执行时间上的结果对比,分析并发程序模式挖掘中本文算法与SPAM算法在执行时间和存储空间需求上的对比和缺陷检测效果的对比,验证本文提出的算法进行缺陷检测的优越性。