返回
Multi-label learning for identifying co-occurring class code smells
DOI:10.1007/s00607-024-01294-x.png)
摘要
En 中文
Code smell identification is crucial in software maintenance. The existing literature mostly focuses on single code smell identification. However, in practice, a software artefact typically exhibits multiple code smells simultaneously where their diffuseness has been assessed, suggesting that 59% of smelly classes are affected by more than one smell. So to meet this complexity found in real-world projects, we propose a multi-label learning-based approach to identify eight code smells at the class-level, i.e. the most sever software artefacts that need to be prioritized in the refactoring process. In our experiments, we have used 12 algorithms from different multi-label learning methods across 30 open-source Java projects, where significant findings have been presented. We have explored co-occurrences between class code smells and examined the impact of correlations on prediction results. Additionally, we assess multi-label learning methods to compare data adaptation versus algorithm adaptation. Our findings highlight the effectiveness of the Ensemble of Classifier Chains and Binary Relevance in achieving high-performance results.
Keyword:
Multi-label learning
Class code smells
Problem transformation
Algorithm adaptation
期刊
C
IF:
2.8
论文数:
2.3K
被引数:
3.5K
机构
引用论文
Comparing and experimenting machine learning techniques for code smell detection比较和实验用于代码气味检测的机器学习技术

