论文部分内容阅读
随着计算机应用技术的日益发展和互联网的普遍应用,软件系统也日趋复杂。在开放的网络环境下,软件的开发、维护以及软件行为的监测、预测也越来越困难。因此,如何有效地挖掘软件的执行路径,分析软件的行为特性,是软件安全性和可靠性的重要保证,也有助于软件在各个领域的广泛应用和发展。本文利用数据挖掘技术,将序列模式挖掘算法进行改进,并应用于软件执行路径中,以挖掘用户感兴趣的行为模式,更好地应用于软件行为分析、软件错误定位、软件漏洞挖掘等多个领域。首先,基于在软件序列中挖掘用户感兴趣的模式问题,提出获取软件动态执行序列的方法,给出详细的获取步骤,基于函数的粒度,通过追踪软件的动态执行轨迹,得到软件函数调用图,并一一对应地转化为函数调用序列,即为软件执行序列。其次,为了寻找软件执行过程中的关键路径,以应用于后续的软件行为分析和软件测试等,提出一种基于软件执行路径的高效用序列模式挖掘算法。该算法采用了HUI-Miner算法中的Utility List结构,并添加了位置属性,用于存储序列模式的效用信息和位置信息。还设计了一个分区列表(PartitionList)数据结构来降低模式扩展的搜索空间和连接次数,基于分区的效用信息进而提出新的效用修剪策略来降低序列模式的搜索空间。在构建含有位置信息的效用列表和分区列表时,为了进一步提高算法效率,提出了新的修剪策略。再次,由于大部分高效用模式挖掘算法都是基于静态数据库的,而在软件后期维护中常常会有加入新的函数等行为,为了解决在动态数据库中挖掘高效用模式的问题,提出一种基于模式增长的高效用模式挖掘算法。设计一个新的数据结构HUP-Trie用来存储来自原始的模式数据库中的高效用模式,以便可以快速更新它们的效用得到更新的高效用模式。最后,将本文提出的算法在Windows平台下用Java语言进行编程。通过得出的实验结果,对算法在运行时间、模式的可扩展性、内存使用等方面的性能进行分析。