Design patterns have a key role in software development process. They describe both structure and the behaviour of classes and their relationships. Maintainers can benefit from knowing the design choices made during the implementation. Moreover, Design patterns can improve software documentation, speed up the development process and enable large-scale reuse of software architectures.
This thesis presents a Multiple Levels Detection Approach (MLDA) to recover design pattern instances from Java source code. MLDA is able to extract design pattern instances based on a generated class level representation of an investigated system. Specifically, MLDA presents what is the so-called Structural Search Model (SSM) which incrementally builds the structure of each design pattern based on the generated source code model. Moreover, MLDA uses a rule-based approach to match the method signatures of the candidate design instances to that of the subject system. As the experiment results illustrate, MLDA is able to extract 23 design patterns with reasonable detection accuracy. The use of a rule-based system enhances the accuracy of design patterns recovery which relies on the relationship matching (i.e. the rule-based system is able to reduce the number of false positive design instances).
Email address: firstname.lastname@example.org
Timeframe: 3 years