如何改进软件分析中的深度学习(以代码异味检测为例)
软件工程
2022-03-29 v2
摘要
为了减少技术债务并使代码更易维护,能够向程序员预警代码异味十分重要。当前最先进的代码异味检测器使用深度学习者,而未充分探索该技术内部的替代方案。对于软件分析与深度学习,一个颇有前景的替代方案是 GHOST(出自 TSE'21),它依赖于前馈神经网络的超参数优化与一种用于处理类不平衡的新颖过采样技术的结合。TSE'21 提出这种新颖“模糊采样”的先前研究存在一定局限,该方法仅在缺陷预测上进行了测试,而未用于其他任务。与缺陷预测类似,代码异味检测数据集也存在类不平衡(这正是“模糊采样”的动机)。因此,在本工作中我们测试模糊采样是否对代码异味检测有用。本文结果表明,借助模糊过采样,我们能在代码异味检测上取得优于最先进结果的表现。例如,对于“特性嫉妒(feature envy)”,我们在所有数据集上均达到了 99+% 的 AUC,而在“错置类(misplaced class)”的 10 个数据集中有 8 个达到了该水平。尽管我们的具体结果涉及代码异味检测,但它们确实为其他类型的分析提供了启示。例如:(a) 在尝试复杂学习者之前先尝试更好的预处理;(b) 在软件分析中将更简单的学习者作为基线;(c) 将“模糊采样”作为此类基线之一进行尝试。
引用
@article{arxiv.2202.01322,
title = {How to Improve Deep Learning for Software Analytics (a case study with code smell detection)},
author = {Rahul Yedida and Tim Menzies},
journal= {arXiv preprint arXiv:2202.01322},
year = {2022}
}
备注
Accepted to MSR 2022