Skip to Main Content
Design patterns provide experience reusability and increase quality of object oriented designs. Knowing which design patterns are implemented in a software is important in comprehending, maintaining and refactoring its design. However, despite the interest in using design patterns, traditionally, their usage is not explicitly documented. Therefore, a method is required to reveal this information from some artifacts of the systems (e.g. source codes, models, and executables). In this paper, an approach is proposed which uses the Semantic Web technologies for automatically detecting design patterns from Java source code. It is based on the semantic data model as the internal representation, and on SPARQL query execution as the analysis mechanism. Experimental evaluations demonstrate that this approach is both feasible and effective, and it reduces the complexity of detecting design patterns to creating a set of SPARQL queries.