Experimental evaluation and comparison of anti-pattern detection tools by the gold standard
Somayeh Kalhor, Mohammad Reza Keyvanpour, Afshin Salajegheh · 2022
Every symptom in the source code or design of software that violates object-oriented principles such as maintainability, reusability, and integrity is called an anti-pattern. Poor design or programming in the software development process can lead to anti-patterns that may cause further problems in software maintenance, so they should be removed by refactoring. The first and most crucial step in software refactoring is anti-pattern detection. Different approaches and tools have been proposed to do this, which provide different results in the same program due to the informal definition of anti-patterns. In this paper, four antipattern detection tools have been compared, namely Checkstyle, PMD, iPlasma, and Jspirit. These tools are implemented on opensource software systems that have been presented as a gold standard in previous studies in this field. The detection results of three anti-patterns are compared: Large Class, Long Method, and Feature Envy. By comparing tools output and the gold standard, we are sure our calculated precision and recall values are correct.