Faculty of Computer Science and Information Technology >
Masters Dissertations: Computer Science >
Please use this identifier to cite or link to this item:
|Title: ||DESIGN PATTERNS DETECTION TOOL|
|Authors: ||Fares, Wael M.K|
|Keywords: ||Design patterns|
|Issue Date: ||Aug-2008 |
|Abstract: ||Design patterns represent an important evolutionary step in software abstraction and
reuse. Design patterns are solutions to general software development problems. One
interesting area in this field is the automatic detection of design pattern in existing code.
This could be of significant help to the process of reverse engineering software systems.
Thus, the main objective of this research is to create a tool that detects design patterns.
This involves studying the unique characteristics (rules) of each of the design patterns in
order to detect them and built these rules into the tool. The tool also produces visualization
of the detected patterns in terms of UML class diagram.
The scope of this study is to detect design patterns that fall under the Structural
category. These patterns are Adapter, Bridge, Composite, Decorator, Façade, Flyweight,
and Proxy. Besides, it is focusing on detecting design patterns in Java code.
This study resulted in a tool called Design Pattern Detection and Visualization (DPDV).
DPDV accepts Java files as inputs from users. It then extracts the static and structural
relationships between classes and objects that existed in the Java code. The tool uses the
Reflection technique in order to do that. The tool then arranges the extracted information in
a data structure defined as a class. After that, the tool examines the extracted information
and compared them with the rules of each of the design patterns to determine the possible
design pattern that existed in the Java code. The pattern can be detected since each
structural pattern has a unique structure that differentiates it from other structural patterns.
The tool achieved a detection/accuracy rate that exceeded 85% that indicates that it is
The analysis, design, implementation and testing of DPDV, its strengths and
weaknesses are also discussed in this study. As a conclusion, this study has achieved its
objectives. This will definitely benefit similar future study and developers of such a system.|
|Description: ||Master of Software Engineering|
|Appears in Collections:||Masters Dissertations: Computer Science|