Support vector machines for anti-pattern detection

  • Authors:
  • Abdou Maiga;Nasir Ali;Neelesh Bhattacharya;Aminata Sabané;Yann-Gaël Guéhéneuc;Giuliano Antoniol;Esma Aïmeur

  • Affiliations:
  • Université de Montréal, Canada;École Polytechnique de Montréal, Canada;École Polytechnique de Montréal, Canada;École Polytechnique de Montréal, Canada;École Polytechnique de Montréal, Canada;École Polytechnique de Montréal, Canada;Université de Montréal, Canada

  • Venue:
  • Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Developers may introduce anti-patterns in their software systems because of time pressure, lack of understanding, communication, and--or skills. Anti-patterns impede development and maintenance activities by making the source code more difficult to understand. Detecting anti-patterns in a whole software system may be infeasible because of the required parsing time and of the subsequent needed manual validation. Detecting anti-patterns on subsets of a system could reduce costs, effort, and resources. Researchers have proposed approaches to detect occurrences of anti-patterns but these approaches have currently some limitations: they require extensive knowledge of anti-patterns, they have limited precision and recall, and they cannot be applied on subsets of systems. To overcome these limitations, we introduce SVMDetect, a novel approach to detect anti-patterns, based on a machine learning technique---support vector machines. Indeed, through an empirical study involving three subject systems and four anti-patterns, we showed that the accuracy of SVMDetect is greater than of DETEX when detecting anti-patterns occurrences on a set of classes. Concerning, the whole system, SVMDetect is able to find more anti-patterns occurrences than DETEX.