A Machine-learning Based Ensemble Method For Anti-patterns Detection

01/29/2019
by   Antoine Barbez, et al.
0

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. 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. We experiment SMAD on two well known anti-patterns, God Class and Feature Envy, and assess its performances on three open-source Java systems. Our results show that SMAD overcomes the previous limitations. First, our method clearly enhances the performances of the so aggregated approaches and outperforms competitive ensemble methods. Second, we show that such method can be used to generate reliable training data for machine-learning models from a reasonable number of manually-produced examples.

READ FULL TEXT
research
10/17/2019

Deep Learning Anti-patterns from Code Metrics History

Anti-patterns are poor solutions to recurring design problems. Number of...
research
09/05/2020

A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension

Context: Several studies investigated the impact of anti-patterns (i.e.,...
research
07/08/2021

Data-Driven Extract Method Recommendations: A Study at ING

The sound identification of refactoring opportunities is still an open p...
research
09/09/2021

Cataloging Dependency Injection Anti-Patterns in Software Systems

Context: Dependency Injection (DI) is a commonly applied mechanism to de...
research
11/30/2020

Automating Artifact Detection in Video Games

In spite of advances in gaming hardware and software, gameplay is often ...
research
12/12/2019

Automatic Layout Generation with Applications in Machine Learning Engine Evaluation

Machine learning-based lithography hotspot detection has been deeply stu...
research
12/14/2021

Anti-Money Laundering Alert Optimization Using Machine Learning with Graphs

Money laundering is a global problem that concerns legitimizing proceeds...

Please sign up or login with your details

Forgot password? Click here to reset