基于抽象语法树的数据泥团自动检测研究
2017-03-01刘宏韬胡志刚
计算机应用与软件 2017年1期
刘宏韬 刘 伟,2 胡志刚
1(中南大学软件学院 湖南 长沙 410075)2(湖南中医药大学管理与信息工程学院 湖南 长沙 410208)
基于抽象语法树的数据泥团自动检测研究
刘宏韬1刘 伟1,2胡志刚1
1(中南大学软件学院 湖南 长沙 410075)2(湖南中医药大学管理与信息工程学院 湖南 长沙 410208)
数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上,增加了新的数据泥团类型,并加入了剔除冗余数据泥团和提取子数据泥团等步骤。通过对4个开源项目进行数据泥团实验,结果表明方法具有较高的精确率,与Stench Blossom、inFusion等工具的数据泥团自动检测功能相比,能够检测出一些其他工具无法检测的数据泥团。同时,该方法具有较好的性能,执行时间与系统规模成正比。
代码味道 数据泥团 抽象语法树 源代码解析 重构
0 引 言
代码味道是指源代码中存在的一些不良实现方案。软件工程大师Martin Fowler和Kent Beck在文献[1]中初次使用“代码味道”一词来描述这些不良实现方案,文献中定义了22种常见的代码味道,包括数据泥团、重复代码、霰弹式修改等。此后,一些新的代码味道[2]被学者和研究人员陆续提出。检测、去除代码味道对于提高代码质量具有非常重要的意义[3],去除代码味道能够改善代码的可维护性,因此应当对程序代码中的代码味道进行检测和合理重构,在不改变程序外部行为的前提下改善代码的质量。……
登录APP查看全文
