基于SonarQube的学习者代码质量评估与指导方法研究与实现

来源 :国防科技大学 | 被引量 : 0次 | 上传用户:fh2039
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码质量决定了软件的开发、维护成本。高质量的代码,具有可维护性高、鲁棒性强、扩展性好等特征,能够减轻大量开发者的时间和精力。对于编程学习者以及开发者而言,代码质量都十分重要。但是现在的编程教育,无论是传统的编程教育课堂,还是在线编程学习平台,都侧重于学习者的代码是否完成任务以及代码的功能性,而忽视了对学习者代码质量的评估和指导。这致使学习者编程质量缺普遍较低,学习者的代码质量水平与实际工业级软件开发要求的水平之间,存在着巨大的鸿沟。静态代码分析工具就是代码质量提升的关键技术之一,静态代码分析工具能够方便快捷的帮开发者定位到代码中的质量问题,从而提高代码质量。但是它却存在着提示过多代码警报的缺陷,这使得真正对开发者重要的代码警报不易被发现,大大降低了静态代码分析工具的“有效性”。为了使静态代码分析工具更好的发挥其作用,让开发者更节约时间和精力,也为了编程学习者能够得到对其代码质量更全面有效的指导。本文围绕着静态代码分析工具Sonar Qube的警报信息,对学习者代码质量的评估和指导从不同的角度展开了分析和研究,主要工作和贡献总结如下:第一,缺陷相关代码警报重要性评估方法。我们首先设计了一套自动化警报标注方法,包括通过SZZ算法,将项目中的版本分类为缺陷修复版本和包含缺陷版本,通过增量扫描的方式进行分析扫描,再进一步获取到对应行的警报。然后,我们以警报作为特征,版本类型作为分类值,使用三种分类模型算法,在共计约30,000个版本上进行实验,选择最优的Random Forest模型将其特征重要度作为警报排序的依据。该排序能为开发者修复警报时提供优先级参考,并为下一步的学生代码质量评估做出铺垫。第二,编程学习者的代码质量评估和指导方法。我们在前人的基础上,结合Sonar Qube静态代码工具中的警报类别,设计了一套以教学为目的代码质量分类模型。该分类模型包含6个一级分类和9个二级分类,我们以特定的规则筛选了61条Sonar Qube中的警报,将其依次划分到对应的类别。在分类的结果中,我们列举出了每一类中包含的警报,并对部分类别中的警报进行了实例分析。最后,我们将该分类体系具体的运用在线编程项目数据上,定量分析了学生总体的代码质量情况。该代码质量分类评估相比原有的类别,在同样适合静态代码分析警报的情况下,更符合学习者的认知特点。第三,在线编程学习综合能力评估系统设计。我们以Edu Coder平台为基础,围绕学生的代码数据、行为数据等制定了一套在线编程学习综合能力评估方法,该方法包含三种关键指标,分别是基础统计、代码质量评估和编程效率。然后我们设计了该系统的基本层次架构以及相应的界面设计。
其他文献
学位
可视性,是指观察者视点对其他空间目标点的可见程度,所有可见目标点的集合,构成了当前视点下的可视域。可视域分析是空间分析中不可或缺的内容,也是地理空间认知研究的重要组成部分,被广泛应用于路径规划、导弹突防、景观分析、通讯基站选址等领域。随着测绘技术的不断发展和GIS数据的不断丰富,三维场景日渐复杂,技术发展、分析效果和场景应用的综合需求使得复杂三维场景的快速可视域分析成为当前的研究热点,对提高用户的
学位
建模是飞行器进行仿真实验的基础。现代飞行器内在机理复杂,在飞行过程中表现出非线性、强耦合、时变等特性,使得传统的机理建模方法建立的数学模型难以满足应用要求。智能技术的发展为非线性系统建模问题提供了理论基础,研究人员可以从飞行器的半实物仿真试验和飞行试验中获得海量的试验数据,为飞行器数据驱动建模提供了数据基础。本文以小型无人直升机高度控制系统、电动舵机、航空制导炸弹为主要研究对象,围绕在线使用场景和
高光谱图像描述了目标分布的二维空间图像信息和目标光谱特征的一维光谱信息。传统的基于特征提取的高光谱识别方法由于存在特征丢失的弱点导致识别精度不高。基于神经网络的高光谱图像识别方法由于神经网络强大的表示能力可以获得较高的识别精度,但是神经网络只能识别和训练集类别相同的称为已知类的目标,对于来自训练集类别之外的称为未知类的目标,神经网络不能把它们检测出来。针对上述问题,本文研究了高光谱已知目标识别和未
学位
随着核心素养教育理念的推广,如何基于新课标中六要素整合的理念并围绕主题意义进行单元整体教学成为研究热点。本文通过分析传统小学英语教学的“痛点”和“堵点”,试图通过实践探索基于主题意义进行单元整体教学的模式,提出单元整体教学的设计思路和活动流程,并以人教版教材的教学为案例,为开展基于主题意义的小学英语单元整体教学提出建议。
黑盒模糊测试出现三十多年来在漏洞挖掘领域中作出了巨大的贡献,发掘了大量有价值的漏洞。基于覆盖率引导的模糊测试是一种灰盒化的模糊测试,因其在实际测试中展现的优良性能而被广泛使用。但是目前大部分灰盒模糊测试工具是利用编译时插桩和系统模拟来获取路径反馈信息,并且覆盖信息的记录也是在一种粗略的维度上进行的。这种粗粒度的路径记录方式一方面因为有限的记录空间无法避免路径碰撞,另一方面也无法有效地为模糊测试提供
基于MIMU的单兵导航系统可以在多种环境下完成自主导航任务,为单兵提供精准且实时的导航与定位服务。本研究从单兵导航的适应性出发,主要针对三个方面开展研究:一是设计一套基于MIMU的单兵导航设备以及软件算法;二是提升单兵导航系统对不同人和复杂运动的适应性,使得任何作战人员安装上本设备就可以使用,免去复杂的调参过程;三是提升单兵导航系统对环境的适应性,使用基于视觉/惯性组合的单兵导航设备,弥补纯惯性导