论文部分内容阅读
随着软件的规模变得越来越庞大,大量的软件数据随之产生。为了从这些数据中挖掘出感兴趣的知识,帮助软件开发者更好地理解和维护软件,数据挖掘正在被广泛地应用到软件行为分析中。从大量的动态执行轨迹中挖掘用户感兴趣的行为模式为分析系统行为、定位系统故障、优化关键路径、查找系统瓶颈等应用提供了量化的依据与可靠的保证。本文主要从动态角度出发,将序列模式挖掘应用到软件执行轨迹中,挖掘软件的行为模式,从而帮助软件人员更好地理解和分析软件,主要工作如下。首先,提出了一种软件执行图中加权频繁遍历模式挖掘算法WFTPMiner。将软件动态执行轨迹转化为软件执行图,定义了加权软件执行图。采用深度优先遍历把加权软件执行图转化为软件路径遍历,提出了一种潜在频繁后缀序列树结构PFSS-Tree和一种最小计数剪枝策略MPS,用来提高算法WFTPMiner的效率。其次,提出了一种软件执行图中Top-k高效用路径模式挖掘算法TUPP。对软件执行图中的节点的效用进行了公式化定义,设计了一种表结构PUAList对模式的效用和索引信息进行存储。为了尽快地挖掘出前k个高效用模式,提出了预先插入和项扩展两种提升阈值的策略来提高TUPP算法的效率。再次,提出了一种直接从软件执行轨迹中挖掘高效用行为模式算法HUPPMiner。由于软件中有循环调用,提出了一种连续迭代模式化简算法CRPE来简化软件执行轨迹。设计了一种存储潜在高效用模式的树HUPP-PL Tree和带效用值的索引表PL-Index-List。利用索引表,一个新的邻接路径模式扩展策略被提出,利用这个策略可以更快地找到高效用的路径模式。最后,对本文提出的算法在Windows平台下用Java语言进行编程实现。通过实验验证算法在运行效率、算法可扩展性、模式数量等方面的性能。