Object Oriented Design Pattern Extraction From Java Source Code
Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
In case of software architecture reconstruction, design pattern detection plays a vital role since its presence reflects the point of design decision. Currently most of the studied approaches only focus on the Gang of Four (GOF) design patterns so those tools are not flexible enough to identify other proprietary pattern instances. Moreover, the GOF design pattern can be implemented in various ways which many of the tools suffers to detect. Apart from that not only design pattern is of vital importance for software architecture reconstruction but other patterns like anti-patterns and presence of bad smell code are also equally important. So the approach discussed here is a solution for detecting any pattern instances (not only GOF patterns) from the source code provided that relevant information is extracted during the static analysis phase.
Our approach is based on the graph pattern matching technique where the source code is modeled as a graph and the pattern to search for is provided as a graph query pattern. For the detection of patterns we focus on structural and behavioral analysis of source code as in the case of a tool called PINOT. The novelty of our approach compared to PINOT is that the choice of behavioral analyzers can be provided as a constraint in the graph query pattern unlike hardcoded in PINOT. Moreover, we can provide more than one constraint in the graph query pattern at node, edge or complete graph level hence, we can compose our query pattern as we want which helps us to specify different kind of new patterns and handle varying implementations of design patterns as well.
Place, publisher, year, edition, pages
IT, 13 065
Engineering and Technology
IdentifiersURN: urn:nbn:se:uu:diva-207394OAI: oai:DiVA.org:uu-207394DiVA: diva2:647998
Master Programme in Computer Science
Christoff, IvanChristoff, Ivan