基于软件演化数据挖掘的代码坏味道检测

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:zhufeng19791123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
大量的研究表明,代码坏味道的存在对于软件质量有极大的影响,甚至会导致软件系统失败。所以,如何发现代码中的坏味道吸引了大量研究者和实践者的注意力,成为软件工程的研究热点之一。研究者们已提出了一系列代码坏味道检测方法,但这些方法仅仅基于从源代码中所提取的静态结构化信息。本文观察发现,有一些代码坏味道具有能够从软件演化的变更历史特征来进行检测的特性;还有一些代码坏味道,在以往使用的是代码结构信息进行静态检测,但是演化历史数据可以帮助改进检测效果。基于这个发现,本文提出了一种基于软件演化数据挖掘的代码坏味道检测方法BADE,它从软件的版本管理系统的演化信息中,提取变更事务集,运用机器学习方法进行代码变更的频繁模式发现和关联规则挖掘,在此基础上,利用启发式的算法来检测6种典型的代码坏味道――重复代码、霰弹式修改、发散式变化、并行继承、大对象和依恋情结。具体地,本文的贡献包括:1)代码变更的关联规则挖掘。本文定义了代码演化耦合度的概念,以代表代码实体之间的演化联系。BADE从版本管理系统的历史版本数据中,根据演化耦合概念构建变更事务集,过滤分支合并。接着采用自顶向下的搜索方法、剪枝策略和并行化运算的方式改进了关联规则挖掘算法FP-Growth,从代码演化的变更事务集中发现代表代码实体之间的耦合关系的频繁模式。2)基于启发式算法的代码坏味道检测。根据演化历史中代码实体之间的关联规则,设计启发式的算法来进行代码坏味道的检测。同时本文对代码进行静态检测获取代码的结构,来辅助启发式算法更准确地发现代码坏味道。3)实验。本文选取了5个开源软件项目,采用BADE和其他现有方法进行了对比实验。实验结果表明:BADE能够获得较高的准确率和召回率,F-measure值在64%到92%之间;对于本身具有演化特性的坏味道,例如霰弹式修改,发散式变化和并行继承,BADE胜过现有基于单个代码快照的静态分析技术;对于重复代码、大对象和依恋情结等代码坏味道,BADE表现也较好;通过将演化数据挖掘和代码静态分析技术结合起来,能获得更好的检测性能。
其他文献
随着工业4.0时代的到来,智能制造的发展和应用极大的促进了人类社会的进步与发展。制造执行系统(MES)是制造业企业在生产车间用于管理和监控工作流程的智能控制系统,它是上层
随着GPU等硬件设备的发展和大型标注数据集的公开,深度学习在计算机视觉领域展现了突出的性能。通过层层堆叠神经元,深度学习构建包含大量可训练参数的深度神经网络模型,并利
注意的空间-数字联合效应(Attention Spatial-Numerical Association of Response Codes Effect,简称注意SNARC效应)是指个体对数字进行较浅的知觉加工时,也能够自动激活相应的空间表征。注意SNARC效应具体表现为当小数作为线索时,被试对左侧目标的反应更快;当大数作为线索时,被试对右侧目标的反应更快。近年来,注意SNARC效应受到越来越多
手指动作识别是实现基于手势的人机交互的关键技术之一,目前主要有两类识别方法,其一是基于视觉传感器的手指动作识别,另一种则是基于运动传感器的手指动作识别。这两种方法
高精度二维角度传感器是三坐标测量机(CMMs)、探头、原子力显微镜和精密加工等仪器的重要组成部分,其测量稳定性是仪器测量精度的重要一环。环境中存在的温度、振动等干扰因
在商品检测与识别任务中,数据的采集与标注非常耗时耗力。商品种类繁多、新旧商品的不断更新换代、不同商品间差异性参差不齐,以及拍摄角度、光照、遮挡等各种不确定性因素的
基于IP网络技术,由电池供电,资源严格受限且要求低功耗的无线嵌入式设备是物联网发展的趋势之一。这些无线嵌入式设备采用分布式的方式大量部署,组成无线传感网络(WSN)。目前
由于相机的光学镜头景深往往有限,导致使用这些设备采集的图像无法对场景中所有物体做到清晰成像。为了获取整个场景中对每个物体都清晰成像的全聚焦图像,多聚焦图像融合是一种常用技术。它通过融合同一场景中两幅或多幅部分聚焦图像,来生成一幅全聚焦图像。该任务的核心是源图像间聚焦区域的精确检测。为此,本文基于深度神经网络,对多聚焦图像融合问题进行了深入研究。在此基础上,提出两种新算法。论文主要工作如下:首先,针
在工业生产中,数控机床处在生产线的关键位置,其正常、高效的加工是生产线正常运行的重要保证。数控机床的精度,决定了产品的精度。热误差极大地影响了机床的精度,占据机床总
在MBR(膜生物反应器)系统处理污水时,膜污染现象不仅会缩短膜组件的使用寿命,同时会增加系统的运行费用。而污泥产量和系统产水量是衡量MBR膜污染的重要参数,本文通过建立智