Projects & Tools

Design Pattern Recovery

Object-oriented design patterns describe general reusable and reputable solutions to common recurrent object-oriented design problems. Unfortunately, for many legacy software systems and open-source libraries, design knowledge is largely undocumented and buried in the source-code.

In this project, we are developing a methodology for reverse engineering design patterns from source-code. Thus recovering facts about software design rationale and establishing a basis for understanding the structure and interaction between the key components of a software system.

Due to the abstract nature of design patterns, we are using a semantic-based approach for recovering design patterns. The detection mechanism is based on defining an ontology model that's implemented to describe the patterns in question.

More information about this ontology model can be found in the Design Pattern Ontologies page.

We have also developed an initial semantic-based design recovery tool that utilizes reasoning services over the ontologies. More information about this approach and this tool can be found in this paper.