Zásuvný modul do programu SonarQube umožňující detekci návrhových vzorů ve zdrojovém kódu

Abstract

Design patterns are widely recognized as proven solutions to common problems in software design. However, the automatic detection of design patterns in source code remains a challenge. This work presents a comprehensive approach to detecting design patterns in Java code using a combination of attribute detection and integration into existing static code analysis tools. The proposed solution involves two main steps. Firstly, an initial analysis examines individual objects and searches for attributes, methods, and relationships characteristic of specific design patterns. This initial pass assigns a probability score to each potential pattern instance. In the second step, relationships between classes are further analyzed to confirm the presence of design pattern structures. This approach was evaluated on various test cases, from textbook implementations of design patterns to real-world projects with open-source code. The results demonstrate the ability to identify design pattern structures in code. The benefits of this work include solution for design pattern detection and insights into practical issues associated with their detection. The acquired knowledge can serve as a foundation for developing more robust tools for design pattern detection, supporting activities related to software understanding, refactoring, and quality assurance.

Description

Subject(s)

Automated design pattern detection, Static code analysis, Java code analysis, Software design, Software comprehension, Software quality assurance, Design pattern taxonomy, Design pattern heuristics, Structural analysis of design patterns, Design pattern implementation challenges, Software engineering tools, Software maintenance and evolution

Citation