南开大学计算机与控制工程学院.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南开大学计算机与控制工程学院.doc

南 开 大 学 工程硕士生开题报告登记表 学 号:2220091605 姓 名:啊杨杰 学 位 论 文 (设计)题目 程序代码相似度比较的研究与实现 课题来源及类型 程序设计是高等学校计算机教学中必不可少的环节,需要通过大量的编程练习来提高学生的程序设计能力,以便为将来从事软件开发或相关工作打下坚实的基础。编程作业可以最全面、最客观地检查学生的学习情况,然而,现行作业环节中部分学生对待作业敷衍了事、极不认真,抄袭现象严重。这一现象极大地破坏了教学效果,影响了学生对知识的掌握。因而,急需高效的剽窃检测技术帮助教师对学生作业 的抄袭情况实施监督检测。 本课题国内、外的研究动态以及课题意义: 课题的目的,国内外研究现状和发展趋势: 在计算机教学过程中,负责批阅作业的老师在批阅过程中总是要面对大量的程序代码,工作相当的繁重,而且人工校对效率非常低下,同时在检查中也会因为疲劳等原因出现很多疏漏。而且部分学生由于没有学好课程或者出于其他目的,会抄袭其他学生的作业。为了保证实践教学的质量,必须有一定的措施来对源代码进行抄袭检测。本毕业设计旨在实现一个程序代码相似度的比较程序,检查学生作业与给定答案的接近程度,并给出比较结果。 程序代码相似度度量技术主要应用在代码的剽窃检测上。同时,还可以根据度量值判断学生所写程序代码的标准化程度,从而辅助实现作业批改的自动化或试卷评阅的自动化。 1、国外研究情况 早在20世纪70年代初,就有学者研究防止大规模拷贝程序的技术和软件,出现了一批比较典型的程序源代码剽窃检测系统。Halstead提出的软件科学度量方法是最早和最典型的属性计数法。Halstead度量方法以程序中出现的操作符和操作数为计数对象,以它们的出现次数作为计数目标来计算程序容量和工作量。Rottenstone在1976年首次将Halstead的软件科学度量方法投入应用,实现了第一个针对Fortran代码的剽窃检测系统。但是,单纯的属性计数法抛弃了太多的程序结构信息,导致检测结果的错误率太高。Verso和Wise在1996年指出,对于仅仅使用属性计数法的检测算法,增加向量维数并不能改善错误率。改进属性计数法的措施就是加入程序的结构信息,结合结构度量来检测剽窃。McCabe提出的圈复杂度方法是一种典型的结构度量法。它通过计算执行路径的数量来衡量一个程序中的控制流。圈复杂度只给出了程序的一个结构特征即控制流,往往需要与其它特征结合使用,因此常作为属性计数法中的一个度量指标。其它的结构度量法还有分析控制结构、计算代码嵌套深度、分析数据依赖关系等。在实际应用中,很多代码剽窃检测系统将两种度量方法相结合。Donaldsonetal开发的ACCUSE系统结合属性计数法和结构度量法来实现对Fortran程序代码的剽窃检测。最近提出的系统大都是通过对表达源程序结构的字符串进行比较来达到剽窃检测的目的,如:Plague,JPlag,SIM,MOSS,YAP系列等。 另外,Faith和Robinson提出使用24个分量来评估代码的相似程度,前10个是主要针对初学者的低级的剽窃,其它的用于有经验的剽窃;Jankowitz方法通过对代码中的主程序和方法进行语法分析,得到静态执行树,用于对代码的分析等。 2、国内研究情况 从1998年开始,中国人民警官大学研制了PASCAL程序抄袭判定系统,能够检测PASCAL程序的相似度。将PASCAL语言结构分为四大类属性:控制类、变量类、运算符类及标准过程类。该系统的统计模块接受PASCAL源程序,并统计程序的各种属性。在比较模块中,首先比较所有程序的四个总属性值,如果两个程序有相似可能,标上“可能相似”标记,其次比较有相似可能的程序的各个属性值,如果来那个程序的相应属性之差的绝对值小于该属性的标准偏差,则将该属性值与其对应权值求和。比较完两个程序的所有属性,计算出最后的属性值hit,用hit除以比较的属性的个数,便得到程序间相似程度。 2006年,内蒙古师范大学在程序代码属性方法的代码相似度识别的研究中,通过统计两个程序代码的多种属性特征,运用空间向量之间的距离计算公式来得到程序代码的相似度。但是,在研究过程中没有考虑到各个属性之间的关系以及由于重要性不同导致权重不同的影响因素,舍弃了许多有用的信息,降低了识别的准确度和精度,因此有待于进一步改进和完善。 从研究现状可以发现,国内自1998年应用属性检测程序相似度以后,对这个课题所做得研究很少。近年来,程序代码相似度的检测都是用各种方法综合属性计数和程序结构度量。最近,出现了从程序设计角度进行度量的方法。此外,还有人提出用神经网络来检测程序的相似度。 总之,目前以源代码相似性识别方法研究进展并不明显,更多的是提出和讨论关于重复代码检测和优化方法,这对代码相

文档评论(0)

18273502 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档