z-logo
Premium
Design pattern detection using a DSL‐driven graph matching approach
Author(s) -
Bernardi Mario Luca,
Cimitile Marta,
Di Lucca Giuseppe
Publication year - 2014
Publication title -
journal of software: evolution and process
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.371
H-Index - 29
eISSN - 2047-7481
pISSN - 2047-7473
DOI - 10.1002/smr.1674
Subject(s) - computer science , tracing , software design pattern , source code , parsing , program comprehension , nesting (process) , data mining , software engineering , programming language , software system , materials science , software , metallurgy
Knowledge about design pattern (DP) instances improves program comprehension and reengineering of object‐oriented systems. Effectively, it helps to discover developer design decisions and trade‐offs that often are not documented. This work describes an approach to automatically detect DPs in existing object‐oriented systems by tracing systems' source code components with the roles they play in the patterns. In the proposed approach, DPs are modeled based on their 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. Moreover, the approach can also detect pattern variants, defined by overriding the pattern properties. This paper presents a description of the approach, provides a brief description of the supporting tool, and discusses the results from the experiments carried out to validate it. The approach was validated on seven systems of an open benchmark that contains systems of increasing sizes. For five additional systems, the results have been compared with the ones from a similar approach existing in the literature. The obtained results, the identified DP variants, and the effectiveness of the approach are thoroughly presented and discussed. Copyright © 2014 John Wiley & Sons, Ltd.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here