-
题名面向大规模多版本软件系统的代码克隆检测加速技术
- 1
-
-
作者
方维康
吴毅坚
赵文耘
-
机构
复旦大学软件学院
复旦大学上海市数据科学重点实验室
-
出处
《计算机应用与软件》
北大核心
2022年第4期14-20,共7页
-
基金
上海市科技发展基金项目(18DZ1112100,18DZ1112102)。
-
文摘
在软件系统中,相同或相似的代码片段称为代码克隆。目前研究人员已经提出了一些克隆检测方法。这些方法通常仅针对软件系统单个版本进行克隆检测,而在部分场景下,如构建克隆演化谱系时,需要对系统每个版本进行克隆检测,则尤为耗时。为此,提出一种针对多版本软件系统的克隆检测加速技术,可以快速得到每个版本的克隆情况。该技术通过版本间方法映射技术为不同版本代码内容高度相似的同一方法构建方法版本组,选取每个方法版本组中最早的版本作为样本方法,样本方法的集合构成历史映像,对历史映像进行克隆检测,同时建立样本方法和方法版本组间的方法索引。根据历史映像克隆检测结果及方法索引恢复原始的全量克隆关系。采用该克隆检测加速技术在251个开源项目的3 234个版本共计3亿行代码上进行克隆检测实验,与未加速相比,效率提升了近4倍。
-
关键词
代码克隆
克隆检测
历史映像
方法版本组
-
Keywords
Code clone
Clone detection
Historical image
Method version group
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-