Lime: A Model to Identify Antipatterns

Thumbnail Image
Issue Date
Herrera Lopez, Gibran
Journal Title
Journal ISSN
Volume Title
Software designing is a technique that is not well-engineered as developers are still being involved with their experience and knowledge in order to create compelling solutions for complex problems. Two schools of thought were created to overcome the issue, antipatterns, and patterns. Antipatterns are an effort to avoid proven not suitable solutions to common issues, even though, their identification process also involves developer time and human error factors that may lead to accidental bugs and underperformance solutions. The lime model is a code-based tool that makes usage of ASTs (Abstract Syntax Trees) to identify syntax Python code following its features and rules, as well as the Flake8 API to create node visitors for the trees to check if an antipattern was introduced, and if so, the model provides a compelling explanation of the problem and a possible solution for the antipattern. The results of the lime model are impressive as the average time to check for three antipatterns in four open-source projects with several lines of code was 9.86 seconds with a precision of 98.35 percent. The lime model can be implemented as a static analysis tool within IDEs, and CI/CD pipelines. Also, it opens the possibility to enforce coding guidelines and grammar checking for several human languages.
antipatterns , software design , software development , design patterns
Attribution-NonCommercial-NoDerivs 3.0 United States , openAccess