JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection

In the context of reverse engineering, the recognition of design patterns provides additional information related to the rationale behind the design. This paper presents our approach to the recognition of design patterns based on dynamic analysis of Java software. The idea behind our approach is to identify a set of rules capturing information necessary to identify a design pattern instance. Rules are characterized by weights indicating their importance in the detection of a specific design pattern. The core behavior of each design pattern may be described through a subset of these rules forming a macrorule. Macrorules define the main traits of a pattern. JADEPT (JAva DEsign Pattern deTector) is our software for design pattern identification based on this idea. It captures static and dynamic aspects through a dynamic analysis of the software by exploiting the JPDA (Java Platform Debugger Architecture). The extracted information is stored in a database. Queries to the database implement the rules defined to recognize design patterns. The tool has been validated with positive results on different academic implementations of design patterns and on systems as JADEPT itself.

[1]  Francesco Tisato,et al.  A comparison of reverse engineering tools based on design pattern decomposition , 2005, 2005 Australian Software Engineering Conference.

[2]  P. David Stotts,et al.  SPQR: flexible automated design pattern extraction from source code , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[3]  Lothar Wendehals Improving Design Pattern Instance Recognition by Dynamic Analysis , 2003 .

[4]  Salwa K. Abd-El-Hafiz,et al.  A Dynamic Approach for the Identification of Object-oriented Design Patterns , 2005, IASTED Conf. on Software Engineering.

[5]  Federico Bergenti IMPROVING UML DESIGNS USING AUTOMATIC DESIGN PATTERN DETECTION , 2001 .

[6]  Abdelwahab Hamou-Lhadj,et al.  Program COmprehension through Dynamic Analysis , 2006, 2006 13th Working Conference on Reverse Engineering.

[7]  Ronald A. Olsson,et al.  Reverse Engineering of Design Patterns from Java Source Code , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[8]  J. McC Smith,et al.  Elemental design patterns: a formal semantics for composition of OO software architecture , 2002, 27th Annual NASA Goddard/IEEE Software Engineering Workshop, 2002. Proceedings..

[9]  Alexander Chatzigeorgiou,et al.  Design Pattern Detection Using Similarity Scoring , 2006, IEEE Transactions on Software Engineering.

[10]  Jukka Paakki,et al.  Design patterns in performance prediction , 2000, WOSP '00.

[11]  Dirk Heuzeroth,et al.  COMBINING STATIC AND DYNAMIC ANALYSES TO DETECT INTERACTION PATTERNS , 2002 .

[12]  Claudia Raibulet,et al.  Behavioural Design Pattern detection through dynamic analysis , 2008 .

[13]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[14]  Yann-Gaël Guéhéneuc,et al.  No Java without caffeine: A tool for dynamic analysis of Java programs , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[15]  W. Schafer,et al.  Towards pattern-based design recovery , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[16]  Niklas Pettersson,et al.  Measuring precision for static and dynamic design pattern recognition as a function of coverage , 2005 .

[17]  Yann-Gaël Guéhéneuc Ptidej : Promoting Patterns with Patterns , 2005 .