Anti-Pattern Detection: Methods, Challenges, and Open Issues FABIO PALOMBA, GABRIELE BAVOTA, ROCCO OLIVETO, ANDREA DE LUCIA Abstract Anti-patterns are poor solutions to recurring design problems. They occur in object-oriented systems when developers unwillingly introduce them while designing and implementing the classes of their systems. Several empirical studies have highlighted that anti-patterns have a negative impact on the comprehension and maintainability of a software systems. Consequently, their identification has received recently more attention from both researchers and practitioners who have proposed various approaches to detect them. This chapter discusses on the approaches proposed in the literature. In addition, from the analysis of the state of the art, we will (i) derive a set of guidelines for building and evaluating recommendation systems supporting the detection of anti- patterns; and (ii) discuss some problems that are still open, to trace future research directions in the field. For this reason, the chapter provides a support to both researchers, who are interested in comprehending the results achieved so far in the identification of anti-patterns, and practitioner, who are interested in adopting a tool to identify anti-patterns in their software systems. Keywords Anti-pattern, Code Bad Smells, Linguistic Anti-pattern, Software Metrics. ________________________ Fabio Palomba ! Andrea De Lucia Department of Management and Information Technology University of Salerno, Fisciano (SA) - Italy Fabio Palomba e-mail:
[email protected] Andrea De Lucia e-mail:
[email protected] URL: http://www.unisa.it/docenti/deluciaa/index Gabriele Bavota Department of Engineering University of Sannio, Benevento – Italy e-mail:
[email protected] URL: http://www.dmi.unisa.it/people/bavota/www/index.html Rocco Oliveto Department of Bioscience and Territory University of Molise, Pesche (IS) - Italy e-mail:
[email protected] URL: http://distat.unimol.it/people/oliveto ! ANTI-PATTERN DETECTION: METHODS, CHALLENGES, AND OPEN ISSUES 1.