论文部分内容阅读
互联网技术的发展及人类需求的驱动,并且数据库技术的齐头并进,这让人类有能力存储和高效管理海量数据。人类积累的数据越来越多,所谓的大数据时代因此产生。面对海量数据,能否从中找出有用信息进而对人类行为进行指导呢?答案是肯定的,数据挖掘技术要解决的就是这个问题。数据挖掘已经在各行各业得到了广泛应用。本文研究工作就是在上述大背景及需求下展开。由于C++语言兼容C语言,同时不同的开发语言语法及架构不同,API序列提取的方法不同,本文选择比较主流的语言-C/C++语言,即C/C++代码库作为本文数据挖掘研究的输入。C/C++开发人员对API使用都基于手工查找和搜索引擎查找,要找到真正需要的内容十分困难。现在的代码搜索技术虽然可以找到API使用相关的代码,但通过这种方式可以找到的代码片段非常多,逐一分析也很费时。本文工作就是基于C/C++代码库的API调用模式的挖掘研究及系统软件实现。主要工作如下:1.对C/C++语言的序列提取技术进行研究提出了一种有效的序列提取方法。2.通过设计了本应用场景下的数据库,可以远程访问数据库,为系统的并行处理打下基础。3.对聚类算法进行了研究,设计并实现了本应用下的聚类算法。4.研究了聚类效果评判的相关标准,大胆提出合理的假设,提出了本应用场景下聚类结果的评判标准。5.设计并实现搜索模块,该模块可以快速高效的对聚类结果进行查询,将查询结果返回给用户。6.设计并实现了基于C/C++代码库API调用模式挖掘系统工具。本文设计及实现的系统挖掘工具具备4种特性,如下:1.高性能,该工具能够5分钟内完成100K C/C++代码的API序列提取,平均每一万个API使用模式搜索响应时间小于2s。2.处理大数据,API挖掘工具能完成百万行级C/C++代码的API使用模式挖掘,并完成聚类分析。3.特殊功能,支持重载函数和函数作用域等C++语法分析。4.模块化模式,聚类功能不与其他功能耦合,可单独使用,支持对多个代码片段做模式挖掘和聚类分析。本文研究并实现了挖掘系统,该系统对API序列的提取是完整且有效的。该系统能够完成聚类分析,并且聚类精度较高,能够满足实际应用需求。