【文件属性】:
文件名称:software_evolution
文件大小:13.17MB
文件格式:ZIP
更新时间:2021-07-07 14:03:47
Java
软件进化实验室2:III类代码克隆检测
介绍
基于,我们制作了一个检测 III 型克隆的工具。 因为我们使用基于度量的方法,所以我们检测到传统方法不能的克隆:变量名称无关紧要,语句的顺序无关紧要,可以添加或删除语句。 此工具的预期用途是检测抄袭。
方法概述
我们仅在方法级别分析代码。
对于方法中的每个变量,我们计算预定义情况的出现次数:这个变量在 if 语句中出现的频率如何? 多久添加一次这个变量? 结果表称为计数矩阵。
通过比较两种方法,我们得到一个相似度分数。 如果该分数超过阈值,则该方法被视为克隆。
计算计数矩阵的示例
public static int sumOfSquares( int [] numbers) {
int len = numbers . length;
int sum = 0 ;
for ( int i = 0 ; i != len; i +=