返回
Code smell detection and identification in imbalanced environments
DOI:10.1016/j.eswa.2020.114076.png)
摘要
En 中文
Context: Code smells are sub-optimal design choices that could lower software maintainability. Objective: Previous literature did not consider an important characteristic of the smell detection problem, namely data imbalance. When considering a high number of code smell types, the number of smelly classes is likely to largely exceed the number of non-smelly ones, and vice versa. Moreover, most studies did address the smell identification problem, which is more likely to present a higher imbalance as the number of smelly classes is relatively much less than the number of non-smelly ones. Furthermore, an additional research gap in the literature consists in the fact that the number of smell type identification methods is very small compared to the detection ones. Research gap: The main challenges in smell detection and identification in an imbalanced environment are: (1) the structuring of the smell detector that should be able to deal with complex splitting boundaries and small disjuncts, (2) the design of the detector quality evaluation function that should take into account data imbalance, and (3) the efficient search for effective software metrics' thresholds that should well characterize the different smells. Furthermore, the number of smell type identification methods is very small compared to the detection ones. Method: We propose ADIODE, an effective search-based engine that is able to deal with all the above-described challenges not only for the smell detection case but also for the identification one. Indeed, ADIODE is an EA (Evolutionary Algorithm) that evolves a population of detectors encoded as ODTs (Oblique Decision Trees) using the F-measure as a fitness function. This allows ADIODE to efficiently approximate globally-optimal detectors with effective oblique splitting hyper-planes and metrics' thresholds. We note that to build the BE, each software class is parsed using a particular tool with the aim to extract its metrics' values, based on which the considered class is labeled by means of a set of existing advisors; which could be seen as a two-step construction process. Results: A comparative experimental study on six open-source software systems demonstrates the merits and the outperformance of our approach compared to four of the most representative and prominent baseline techniques available in literature. The detection results show that the F-measure of ADIODE ranges between 91.23 % and 95.24 %, and its AUC lies between 0.9273 and 0.9573. Similarly, the identification results indicate that the F-measure of ADIODE varies between 86.26 % and 94.5 %, and its AUC is between 0.8653 and 0.9531.
Keyword:
Code smells detection
Smell type identification
Imbalanced data classification
Oblique decision tree
Evolutionary algorithm
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
IF:
7.5
论文数:
2.9W
被引数:
10.2W
机构
引用论文
A Multi-objective hybrid filter-wrapper evolutionary approach for feature selection一种用于特征选择的多目标混合过滤器-包装器进化方法
MEMETIC COMPUTING
IF2.3
Comparing and experimenting machine learning techniques for code smell detection比较和实验用于代码气味检测的机器学习技术
The impact of class imbalance in classification performance metrics based on the binary confusion matrix
PATTERN RECOGNITION
IF7.6
Identification of extract method refactoring opportunities for the decomposition of methods识别方法分解的提取方法重构机会

