学位论文 > 优秀研究生学位论文题录展示

基于数字指纹的C程序克隆检测技术的研究

作 者: 黄柳柳
导 师: 黄河燕;王树梅
学 校: 南京理工大学
专 业: 计算机系统结构
关键词: 数字指纹 程序抄袭 克隆检测 相似度检测 程序检测
分类号: TP311.11
类 型: 硕士论文
年 份: 2011年
下 载: 19次
引 用: 0次
阅 读: 论文下载
 

内容摘要


随着科技的发展和自动化教育水平的不断提高,涉及编写代码的地方越来越多。其中,作为培养软件开发人员摇篮的各个高校也纷纷开设了一系列编写代码的课程。由于电子文档易于复制的特性,如何减少或者防止文档拷贝、文档克隆现象的发生,一直都是教师们最为关心的问题,因而也就成为了科研人员的研究热点。为了能够合理、有效的检验学生对编程课的态度以及在课上的真实收获,就迫切需要一种能够检测代码相似度的工具来判断学生代码间是否存在抄袭。本文首先分析和研究了国内外现有的程序克隆检测技术,为了解决在代码相似度检测过程中对比双方源代码特征不明显从而导致特征选取效果不佳的问题,提出一种基于数字指纹的C程序克隆检测方法。该方法主要包含如下六个步骤:①将对比双方的源代码进行预处理,即删除双方源代码中注释、宏命令等与代码语义无关的内容;②将预处理后的双方代码进行分词,即将代码中相邻的不同类型的词之间加上空格;③将分词过后的双方代码进行格式化,即将代码中所含关键词中表征数据类型的词和标识符分别用一个形式化的词进行替换,并删除相邻词与词之间的间隔符,形成格式化代码串;④将双方的格式化代码串利用数字指纹技术转化成一系列的数值,形成数值序列;⑤首先从双方数值序列中去除已训练好的无效数值,然后从有效数值中使用最小Hash法选取出代表双方代码的数字指纹序列;⑥将对比程序双方数字指纹序列之间的相似度值来表征双方源程序之间的相似程度,从而判断出源程序对之间是否存在抄袭。事实上,上述的基于数字指纹的C程序克隆检测方法是在仔细研究数字指纹技术的各个关键环节(包括指纹粒度的大小、指纹选取策略的比较)的基础上提出来的,并最终完成了基于数字指纹的C程序克隆检测系统。实验证明,该方法计算过程简单、易于理解,能够有效的提高整体的计算速度;该方法在去除代码无效片段的基础上选取代码特征,相似度检测结果可信度高,降低了误判的概率;该方法能够识别代码中修改注释、重新排版、标识符重命名和数据类型替换等多种代码抄袭掩饰手段。

全文目录


摘要  3-4
Abstract  4-8
1 绪论  8-12
  1.1 研究背景  8
  1.2 研究现状  8-10
    1.2.1 属性计数方法  9
    1.2.2 结构度量方法  9-10
  1.3 本文研究内容  10-11
  1.4 本文的组织结构  11-12
2 克隆检测方法的研究  12-21
  2.1 著名的检测系统  12-14
    2.1.1 MOSS(Measure of Software Similarity)系统  12
    2.1.2 YAP(Yet Another Plague)系列  12-13
    2.1.3 JPlag系统  13
    2.1.4 三个检测系统之间的异同  13-14
  2.2 常用的相似度检测方法  14-20
    2.2.1 基于串的相似度检测方法  14-16
    2.2.2 基于树的相似度检测方法  16-19
    2.2.3 基于图的相似度检测方法  19
    2.2.4 其他程序克隆检测系统  19-20
  2.3 小结  20-21
3 数字指纹技术  21-32
  3.1 数字指纹  21-25
    3.1.1 指纹的生成  21-22
    3.1.2 指纹粒度  22-23
    3.1.3 指纹分辨率  23
    3.1.4 指纹选取策略  23-25
  3.2 抄袭检测的关键步骤  25-31
    3.2.1 预处理  26-27
    3.2.2 分词  27-28
    3.2.3 格式化  28-29
    3.2.4 数值化  29-30
    3.2.5 指纹化  30
    3.2.6 相似度计算  30-31
  3.3 小结  31-32
4 数字指纹实验研究  32-41
  4.1 指纹粒度选择实验  32-34
    4.1.1 设计思路  32-33
    4.1.2 实验数据  33
    4.1.3 实验结果  33-34
  4.2 指纹选取策略比较实验  34-39
    4.2.1 设计思路  34
    4.2.2 实验数据  34-35
    4.2.3 实验结果  35-39
  4.3 小结  39-41
5 程序克隆检测系统的实现  41-53
  5.1 系统实现  41-46
    5.1.1 基本思路  41-43
    5.1.2 开发环境  43-45
    5.1.3 用户界面  45-46
  5.2 关键算法  46-49
  5.3 实验结果分析  49-52
  5.4 小结  52-53
6 总结与展望  53-55
  6.1 总结  53
  6.2 展望  53-55
致谢  55-56
参考文献  56-59
附录  59

相似论文

  1. 基于协同学和数字指纹的版权保护与追踪技术研究,TP309
  2. 基于量化索引调制的抗共谋指纹技术研究,TP309
  3. 用于重要电子文档保护的分组抗合谋数字指纹算法研究,TP309.7
  4. 基于虚拟执行技术的恶意程序检测系统研究与实现,TP309
  5. 远程森林资源资产评估软件的研究与开发,S757
  6. 一类抗共谋的多媒体数字指纹,TP393.08
  7. 电子图书版权保护技术研究,D913
  8. 用于涉密电子文档保护的数字水印和指纹算法研究,TP309.7
  9. 一种基于XEN半虚拟化技术的沙盒模型的设计与实现,TP309
  10. 正交数字指纹技术的研究,TP391.41
  11. 基于USB的气体传感器检测装置的研究,TP212.2
  12. 基于文档复制检测技术的研究与实现,TP391.1
  13. Web数据挖掘及其在网络新闻文本数据中的应用,TP311.13
  14. 基于Gap-LCR技术建立EGFR基因突变的检测方法,R734.2
  15. 基于XML的C程序相似度研究,TP312.1
  16. 抗合谋数字指纹技术研究,TP391.41
  17. 基于篇章结构的抄袭论文识别系统的研究与实现,TP311.52
  18. 基于组播的E-Learning远程教学安全问题分析与解决方案研究,TP391.6
  19. 理性密码协议及其应用研究,TN918.1
  20. 论文复制检测管理系统的设计与实现,TP311.52

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 程序设计 > 程序设计方法
© 2012 www.xueweilunwen.com