代码异味是指源代码中任何违反设计原则或实现的症状或异常。及早发现不良代码异味可以提高软件质量。如今,几种人工神经网络 (ANN) 模型已用于软件工程的不同主题:软件缺陷预测、软件漏洞检测和代码克隆检测。使用 ANN 模型时,无需了解数据来源,但需要大量训练集。数据不平衡是人工智能技术在检测代码异味方面面临的主要挑战。为了克服这些挑战,本研究的目标是基于一组 Java 项目,提出具有合成少数过采样技术 (SMOTE) 的深度卷积神经网络 (D-CNN) 模型来检测不良代码异味。我们考虑了四个代码异味数据集,即 God 类、数据类、特征嫉妒和长方法,并根据不同的性能指标对结果进行了比较。实验结果表明,所提出的具有过采样技术的模型可以为代码异味检测提供更好的性能,并且当使用更多数据集训练模型时,预测结果可以进一步改善。此外,更多的时期和隐藏层有助于提高模型的准确性。
主要关键词