A machine-learning based ensemble method for anti-patterns detection - Barbez, Antoine; Khomh, Foutse; Guéhéneuc, Yann-Gaël (The Journal of systems and software, 2020)
•Different anti-pattern detection tools can be aggregated to improve the detection.•Our method significantly improves the overall detection performances of the so aggregated tools for God Class and Feature Envy.•Our method significantly outperforms other ensemble methods.•None of the competing ensemble method can improve the performances for both anti-patterns. Anti-patterns are poor solutions to recurring design problems. Several empirical studies have highlighted their negative impact on program comprehension, maintainability, as well as fault-proneness. A variety of detection approaches have been proposed to identify their occurrences in source code. However, these approaches can identify only a subset of the occurrences and report large numbers of false positives and misses. Furthermore, a low agreement is generally observed among different approaches. Recent studies have shown the potential of machine-learning models to improve this situation. However, such algorithms require large sets of manually-produced training-data, which often limits their application in practice. In this paper, we present SMAD (SMart Aggregation of Anti-patterns Detectors), a machine-learning based ensemble method to aggregate various anti-patterns detection approaches on the basis of their internal detection rules. Thus, our method uses several detection tools to produce an improved prediction from a reasonable number of training examples. We implemented SMAD for the detection of two well known anti-patterns: God Class and Feature Envy. With the results of our experiments conducted on eight java projects, we show that: (1) Our method clearly improves the so aggregated tools; (2) SMAD significantly outperforms other ensemble methods.