Title :
Model-driven detection of Design Patterns
Author :
Bernardi, Mario Luca ; Di Lucca, Giuseppe Antonio
Author_Institution :
Dept. of Eng., Univ. of Sannio, Benevento, Italy
Abstract :
Tracing source code elements of an existing Object Oriented software system to the components of a Design Pattern is a key step in program comprehension or re-engineering. It helps, mainly for legacy systems, to discover the main design decisions and trade-offs that are often not documented. In this paper an approach is presented to automatically detect Design Patterns in existing Object Oriented systems by tracing system´s source code components to the roles they play in the Patterns. Design Patterns are modelled by high level structural Properties (e.g. inheritance, dependency, invocation, delegation, type nesting and membership relationships) that are checked, by source code parsing, against the system structure and components. The approach allows to detect also Pattern variants, defined by overriding the Pattern structural properties. The approach was applied to some open-source systems to validate it. Results on the detected patterns, discovered variants and on the overall quality of the approach are provided and discussed.
Keywords :
object-oriented programming; program compilers; program diagnostics; public domain software; reverse engineering; software maintenance; systems re-engineering; design decision; design pattern; high level structural property; legacy system; model-driven detection; object oriented software system; open-source system; pattern structural property; pattern variant; program comprehension; program reengineering; program tracing; source code component; source code element; source code parsing; system component; system structure; Algorithm design and analysis; Computational modeling; Java; Object oriented modeling; Observers; Pattern matching; Unified modeling language; Design Patterns; Software Comprehension; Software Evolution; Software Maintenance; Source Code Analysis;
Conference_Titel :
Software Maintenance (ICSM), 2010 IEEE International Conference on
Conference_Location :
Timisoara
Print_ISBN :
978-1-4244-8630-4
Electronic_ISBN :
1063-6773
DOI :
10.1109/ICSM.2010.5609740