会议专题

基于序列模式挖掘和贝叶斯算法的代码克隆检测

随着应用软件功能的不断扩展,项目规模也随之迅速增大,同时也给整个代码工程增加了巨大的维护和重构成本代码克隆检测作为减少软件维护成本,提升软件重构效率的重要手段,已成为众多高效维护和重构工作中不可或缺的一部分如何有效地检测出克隆代码是工程师们亟待解决的问题本文提出一套完整的基于机器学习算法来检测代码克隆的方法(Sequence Pattern Mining and Bayes,SPMB)尤其是对实现相似或相同功能逻辑的克隆代码集合进行序列模式挖掘,利用挖掘出的特征序列构造出基于朴素贝叶斯算法的分类器进行测试代码的功能分类,通过分类的结果来判断克隆代码的业务逻辑此外,该方法还包含反馈机制,通过不断优化训练集,使其具有不断自我学习的能力将SPMB方法应用于IJaDataset 2.0数据集的实验结果表明,通过不断调优阈值,将F1-Score从0.65提高到了0.96,为代码克隆提供了一种有效的检测手段.

软件维护 序列模式挖掘 贝叶斯算法 代码克隆

徐博文 夏鑫 才振功 张芸 李善平

浙江大学计算机科学与技术,浙江杭州310027

国内会议

第十四届全国软件与应用学术会议

武汉

中文

1-9

2015-11-06(万方平台首次上网日期,不代表论文的发表时间)