基于实证的代码异味检测的研究与实现

来源 :安徽大学 | 被引量 : 0次 | 上传用户:sophia971
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在软件编写过程中,开发人员不良的开发习惯以及经验不足等原因,他们单纯为实现功能而编写代码,忽视程序的结构性和可读性。代码编写上变得越来越混乱,使得整个代码结构变得臃肿不堪。代码异味会造成代码质量下降,会对软件开发人员在理解和维护项目代码时造成困扰,从而产生不必要的维护代价。目前对于代码异味的研究,大多数研究数据都集中在数种特定的代码异味上,很多种代码异味并未引起足够的重视;以及检测工具对代码异味的检测精度并不高。为找出代码异味检测工具究竟能支持检测哪些代码异味,同时尝试支持检测尽可能多种类的代码异味,并提高检测工具的检测精度,以及探索代码异味检测工具能否适用于对工业型项目的检测。本研究做了如下工作:(1)对代码异味进行系统文献审阅研究。通过电子检索,手工检索,滚雪球检索以及质量评估,总共收集到286篇与代码异味相关论文,然后把这些论文整理成数据记录。通过统计分析论文中的数据,我们发现对于代码异味-重复代码,巨类等易于定量分析的代码异味,支持其检测的工具较多,对于代码异味-慵懒类等不易于定量分析代码异味;第二,实验类的论文中选用的软件系统几乎都是实验室类型的,较少工业型项目。(2)本研究提出新的检测工具:DT。DT主要运用两种检测思想:动态规化算法DT和抽象语法树AST。动态规划算法主要运用于代码异味-重复代码的检测,利用求最长公共子序列的方法求得代码行之间的相似度来判定代码行之间是否存在重复代码倾向;抽象语法树AST运用于其他种类代码异味的检测,AST运用树结构来表示源代码,把源代码中的语法结构分解成一个个的树状节点,通过统计分析这些节点的存在情况来判定是否存在代码异味。(3)进行综合性实验。利用本研究提出的检测工具DT,能检测到10种代码异味;同时检测工具DT跟四种著名检测工具Checkstyle,PMD,JDeodorant和iPlasma相比,检测精度比它们更高;另外与DT进行对比的四种著名检测工具无法支持对工业型项目的检测,而检测工具DT可支持对工业型项目的检测。
其他文献
现代互联网技术迅猛发展,在人们的日常生活和工作中网络的作用日益凸显,尤其随着企业、校园等局域网(LAN)内部信息量的增加,人们发现准确高效的获取局域网内的相关信息变得困难,
在商业计算机游戏中,路径搜索的性能直接影响玩家的感受及其对游戏的满意程度。并且游戏中的路径规划常常受到计算机内存和CPU资源的限制。在动态性环境中,角色必须对随时可能
堆栈处理器由于其快速的中断处理能力、极强的过程调用能力、代码尺寸小等优点,一直应用于工业控制和航空航天领域中。自堆栈处理器诞生以来,ALGOL、FORTH这两种语言一直作为堆
脱机手写体汉字切分是脱机手写体汉字识别的基础,其准确率直接影响识别的正确率,该问题的研究对提高识别的系统性能具有重要的意义。本文以脱机手写汉字为研究对象,对汉字投影切
人类视觉系统可以非常容易理解识别三维物体或场景,可以很容易地从二维线图中得到其所表达的三维物体或场景的结构信息。可是对于计算机来说,它很难模拟人类视觉系统,对三维物体
石油管项目质量技术监督管理工作的业务流程与质量检测所得的数据纷繁复杂,现有办公自动化系统仅用于支持事务性处理。随着检测数据的不断积累和用户对管材检测诊断咨询的需求
信息技术日新月异,必然要求信息传输速度更快更强,随着数字化地球的日趋形成,数字化信息存储量呈现爆炸式发展,海量磁盘随之出现,这对海量硬盘数据的快速复制提出了新的要求。本文
雾霾天气下,由于大气中存在的悬浮颗粒对光线具有吸收、散射作用,使得户外捕捉到的图像出现对比度下降,颜色衰减等降质现象,导致物体特征难以辨别,图像的观赏性降低,影响图像
面向方面的程序设计方法把软件系统的功能和非功能需求、平台特性等诸多不同的关注点相互独立,很好地实现了实现阶段横切关注点的模块化。但是,实现阶段的方面从何而来?显然,方面
随着 Internet 的迅速发展和分布式计算在各行各业应用的发展趋势,采用SOA(Service Orientied Architecture 面向服务架构)的Web 服务已经成为互联网应用解决方案的不可缺少