摘要:代码异味是软件源代码中存在的不良设计问题, 它影响着代码可维护性, 可读性以及可扩展性. 研究人员可以通过检测代码异味确定待重构的代码, 进而改善代码质量. 过去的研究广泛将机器学习技术应用于代码异味检测, 虽取得一定成果, 但在检测准确性、泛化能力方面仍存在局限. 本文构建两种模型: 直接同构集成CNN和RNCNN (random forest-negative correlation learning-CNN), 来检测4种代码异味(Data class, God class, Feature envy, Long method), 利用基于随机森林的特征选择技术提取更重要的特征, 利用深度学习技术对代码的结构特征进行建模, 再使用负相关学习同构集成深度学习模型方法训练模型, 进行异味检测. 与基线工作相比, 本研究的F1值最高提升4.93%.