Title :
A model-driven graph-matching approach for design pattern detection
Author :
Bernardi, Mario Luca ; Cimitile, Marta ; Di Lucca, Giuseppe Antonio
Author_Institution :
Dept. of Eng., Univ. of Sannio, Benevento, Italy
Abstract :
In this paper an approach to automatically detect Design Patterns (DPs) in Object Oriented systems is presented. It allows to link system´s source code components to the roles they play in each pattern. DPs are modelled by high level structural properties (e.g. inheritance, dependency, invocation, delegation, type nesting and membership relationships) that are checked against the system structure and components. The proposed metamodel also allows to define DP variants, overriding the structural properties of existing DP models, to improve detection quality. The approach was validated on an open benchmark containing several open-source systems of increasing sizes. Moreover, for other two systems, the results have been compared with the ones from a similar approach existing in literature. The results obtained on the analyzed systems, the identified variants and the efficiency and effectiveness of the approach are thoroughly presented and discussed.
Keywords :
formal specification; graph theory; inheritance; object-oriented programming; pattern matching; public domain software; reverse engineering; type theory; component role; delegation; dependency; design pattern detection; high level structural properties; inheritance; invocation; membership relationship; metamodel; model-driven graph-matching approach; object oriented systems; open-source system; pattern specification; system source code components; system structure; type nesting; Algorithm design and analysis; Containers; DSL; Object oriented modeling; Observers; Software systems; Unified modeling language; Design Patterns Mining; Reverse Engineering; Software Comprehension; Source Code Analysis;
Conference_Titel :
Reverse Engineering (WCRE), 2013 20th Working Conference on
Conference_Location :
Koblenz
DOI :
10.1109/WCRE.2013.6671292