AbstractDesign 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
|Date of Award||Jan 2018|
|Supervisor||Stelios Kapetanakis (Supervisor)|