源代码查重软件开发开题报告
2022-01-14 21:58:21
全文总字数:2620字
1. 研究目的与意义及国内外研究现状
本课题的目的:设计并完成源代码查重软件的开发。该软件能够高效、准确地计算学生提交的源代码与代码样本的相似度,并且根据任课教师预先设置的阈值判定源代码是否有抄袭嫌疑,减少学生之间的抄袭现象,遏制不良学风,有效提高教学质量,促进学生编程能力的提高。
本课题的研究意义:信息技术的不断发展,给人类工作生活带来便利的同时,也带来了一系列的负面影响,比如日益严重的抄袭现象严重影响了学生的健康成长和学术氛围的健康发展。在程序代码在线评测系统中,学生相互抄袭的现象也普遍存在。日益严重的抄袭现象已经严重地破坏了正常的教学秩序,影响了教学质量和学生素质的提高。为了扼制不良学风,维护教学秩序,促进学生动手能力的培养,快速、高效、准确的源代码查重软件的开发显得愈发必要。本软件能够完成评测抄袭代码的任务,更好地服务于任课教师的日常教学工作,有利于教学工作的正常开展。国内外研究现状
本课题研究的是源代码查重,而程序代码抄袭检测技术一直是计算机研究领域中一个重要的科学问题。国外的研究者早于国内研究者开始程序代码抄袭检测技术的研究。目前常用的程序代码抄袭检测技术主要分为两类,即基于属性计数(attribute counting,AC)的方法和基于结构度量(structure metrics,SM)的方法。属性计数法通过统计处理程序代码包含的各种属性,将这些属性映射到向量空间,再计算两者之间的相似度来进行抄袭检测。这种方法计算出的相似度不会因变量名、方法名、类名等的改变而变化,但容易导致语义信息丢失和效率低下。为了提高检测精度,结构度量法被研究者广泛采用,结构度量法先将程序代码格式化成特殊的数据序列,再利用相似度计算方法求得相似度值。由于结构度量法的程序代码格式化过程加入了更多的程序内部结构信息和隐含的语义信息,检测精度得到了提高。
目前大部分研究都基于程序源码层面进行相似度比较,不需要对代码进行语法分析,故而检测准确率低,对稍加结构修改的抄袭检测行为也无法有效地检测出来。因此,本课题尝试深入到代码的语法层面,开发一款在语法层面对源代码进行查重的软件。2. 研究的基本内容
1研究思路:掌握软件开发设计流程,熟练使用相关开发工具,查阅相关文献资料,分析对比现有的查重算法,加以改进并且运用到软件中,完成源代码查重软件的分析、设计和实现。
2研究方法:分析参考现有的开源代码查重系统,在此基础上进行针对学生提交的源代码查重这一应用场景进行设计上的改造,归纳总结查重系统的特点,并利用基于语法层面的代码查重算法实现此功能。
3研究技术:利用mysql工具建立数据库,综合运用awt基本组件进行系统的开发,使用jdbc连接数据库,实现存取代码样本库的功能,研究相关的代码查重算法,根据需求选择合适的算法并稍加改进应用到系统中以完成源代码查重功能。
3. 实施方案、进度安排及预期效果
实施方案:
本系统采用awt进行页面的开发及控制流程的跳转,运用基于语法树的相似度检测方法来计算代码相似度。硬件采用inter core i5和8g内存的pc机,软件主要使用eclipse和mysql数据库进行开发。
进度安排:
4. 参考文献
[1]殷丹平.基于cnn的代码相似度检测研究与代码查重系统[d].北京:北京邮电大学,2018.
[2]朱林琴.c语言查重与自动评分算法研究[d].湘潭:湘潭大学,2017.
[3]黄松,黄玉,惠战伟.基于javacc的抽象语法树的构建与实现[j].计算机工程与设计,2016,37(04):938-943.