[发明专利]一种对于在线编程考试中所提交的代码的度量方法在审
申请号: | 202011038003.6 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112148609A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 刘钦;范佳杰;王立巍;吴林漾 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F40/194;G06F40/253 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 对于 在线 编程 考试 提交 代码 度量 方法 | ||
一种对于在线编程考试中所提交的代码的度量方法,利用SonarQube来进行代码质量度量并获取数据结果、通过封装的SonarQube API获取项目的质量度量数据并展示到前端页面;通过代码相似度检测算法对代码与其他代码进行对比并将重复情况展示到前端页面;对代码与其他代码进行对比的过程是:对获取的代码进行预处理、对处理代码生成抽象语法树、对语法树进行处理并转换成线性结构、对线性结构进行相似度计算、对结果进行数据展示等个步骤。
技术领域
本发明属于软件代码分析技术领域,尤其是代码分析中的针对Java语言的代码重复率度量和代码质量度量。其目的在于为代码编写人员(学生)和代码检测人员(老师)提供代码的质量度量结果以及代码重复率检查情况,从而提高对代码编写人员能力检测的质量,判断代码是否存在抄袭现象。
技术背景
在已有的在线编程考试系统之中,对于学生编程行为和所写代码的反馈仅仅通过结合测试用例来评判其正确性,无法度量学生代码的一些质量属性,比如可维护性,复杂度等等。并且线上考试使得教师不需要参与阅卷过程,只关注学生通过了多少测试用例即其最终的考试成绩。这就导致如果有学生在考试过程中存在代码抄袭行为很难被发现。通过代码质量度量,可以及时了解自己所写代码的质量属性,以便养成良好的编程习惯、提高自身编程技巧和能力,让考试也变成学习的一个重要环节。
学生抄袭代码一方面会导致编程考试无法有效反应学生的真实水平,另一方面也非常不利于学生的能力成长。因此代码相似度度量也是教学过程中极其重要的一个环节。一般来说,在进行相似度度量的过程中,如果提交了n份代码,那么需要进行两两比对,也就是要进行n(n-1)/2次比对,才能完成代码度量。而计算机相关课程的一场考试人数通常会达到一两百。这就意味着,需要进行上千次甚至上万次的比对才能检查出一场考试所有学生代码之间的相似情况。在这种情形下,采用人工比对的方式是十分耗时耗力且不切实际的。
发明内容
本发明目的是,解决现有的问题:代码度量的方法,包括代码质量度量和代码重复率度量。本发明主要是提出一种对于在线编程考试中所提交的代码的度量方法。
本发明的技术方案是,一种对于在线编程考试中所提交的代码的度量方法、以及数据结果展示,其流程主要是:利用SonarQube来进行代码质量度量并获取数据结果、通过封装的SonarQube API获取项目的质量度量数据并展示到前端页面。
对代码进行质量度量以及获取数据结果,指对代码进行相似度度量以及获取数据结果,即通过代码相似度检测算法对代码与其他代码进行对比并将重复情况展示到前端页面。
对代码与其他代码进行对比的过程是:对获取的代码进行预处理、对处理代码生成抽象语法树、对语法树进行处理并转换成线性结构、对线性结构进行相似度计算、对结果进行数据展示等个步骤。
本发明的特点:1、利用SonarQube来进行代码质量度量、通过封装的SonarQubeAPI获取项目的质量度量数据并展示到前端页面等2种特征。2、对获取的代码进行预处理、对处理代码生成抽象语法树、对语法树进行处理并转换成线性结构、对线性结构进行相似度计算、对结果进行数据展示等5种特征。
本发明的有益效果:可以指导代码编写人员查看自己代码的各项指标度量和质量属性,并且对代码进行重复率度量,减少代码抄袭。
附图说明
图1为本发明的工作流程视图。
图2所示,除已经被过滤掉的叶子结点以外,其他节点均参与哈希值计算得到自身哈希值的示意图;
如图3所示,将抽象语法树的所有节点转换为图中的HashMap。
图4为本发明质量计算流程图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011038003.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:淤泥原位固化系统
- 下一篇:电动汽车的车载钻机装置及其钻孔方法