Authors
Mohammad Ghazi Al-Obeidallah
Publication date
2018/1
Institution
University of Brighton, UK
Description
Design patterns have a key role in software development process. They describe both structure and the behavior of classes and their relationships. Maintainers can benefit from knowing the design choices made during the implementation. This thesis presents a Multiple Level Detection Approach (MLDA) to recover design pattern instances from the Java source code. MLDA is able to recover 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 recover 23 design patterns with a reasonable detection accuracy. Furthermore, this thesis presents a metrics-based approach to address the impact of design pattern instances on software understandability and maintainability. This approach classifies system classes into two groups: pattern classes and non-pattern classes. The experimental results show that pattern classes have better inheritance and size metrics than do nonpattern classes. Unfortunately, no safe conclusion can be drawn regarding the impact of design patterns on software understandability and maintainability, since non-pattern classes have better coupling and cohesion metrics than do pattern classes.
Total citations
20192020202111