JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection

Francesca Arcelli, Fabrizio Perin, Claudia Raibulet, Stefano Ravani

2009

Abstract

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.

References

  1. Arcelli, F., Masiero, S., Raibulet, C., Tisato, F.: A Comparison of Reverse Engineering Tools based on Design Pattern Decomposition. In Proceedings of the IEEE Australian Software Engineering Conference. (2005) 262-269
  2. Arcelli, F., Perin, F., Raibulet, C., Ravani, S.: Behavioral Design Pattern Detection through Dynamic Analysis. In Proceedings of the 4th International Workshop on Program Comprehension through Dynamic Analysis -Tech. Report TUD-SERG-2008-036. (2008) 11-16
  3. Bergenti, F., Poggi, A.: Improving UML Designs Using Automatic Design Pattern Detection. In Proceedings of the 12th International Conference on Software Engineering and Knowledge Engineering. (2000)
  4. Byte-Code Engineering Library (BCEL), http://jakarta.apache.org/bcel/
  5. Cooper, J. W.: The design pattern Java companion. Addison-Wesley (1998)
  6. Demeyer, S., Mens, K., Wuyts, R., Guéhéneuc, Y.-G., Zaidman, A., Walkinshaw, N., Aguiar, A., Ducasse, S:.Workshop on Object-Oriented Reengineering (2005)
  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: elements of reusable object-oriented software, Addison Wesley, Reading MA, USA (1994)
  8. Guéhéneuc, Y.-G., Douence, R., Jussien, N.: No Java without Caffeine. A Tool for Dynamic Analysis of Java Programs. In Proceedings of the 17th IEEE International Conference on Automated Software Engineering. 117-126 (2002)
  9. Guéhéneuc, Y. G.: PTIDEJ: Promoting Patterns with Patterns. In Proceedings of the 1st ECOOP Workshop on Building Systems using Patterns, Springer-Verlag, (2005)
  10. Heuzeroth, D., Holl, T., Löwe, W.: Combining Static and Dynamic Analyses to Detect Interaction Patterns. In Proceedings the 6th World Conference on Integrated Design and Process Technology (2002)
  11. Nickel, U., Niere, J., Zündorf, A.: The FUJABA Environment. In Proceedings of the 22nd International Conference on Software Engineering, 742-745 (2000)
  12. Niere, J., Schäfer, W., Wadsack, J. P., Wendehals, L., Welsh, J.: Towards Pattern-Based Design Recovery. In Proceedings of the 24th International Conference on Software Engineering, 338-348 (2002)
  13. Perin, F., Dynamic analysis to detect the design patterns in Java: gathering information with JPDA. MSc Thesis, University of Milano-Bicocca, Milan, (2007)
  14. Ravani, S.: Dynamic analysis for Design Pattern detecting on Java code: information relationship modelling, MSc Thesis, University of Milano-Bicocca, Milan, (2007)
  15. Pettersson, N.: Measuring Precision for Static and Dynamic Design Pattern Recognition as a Function of Coverage. In Proceedings of the Workshop on Dynamic Analysis, ACM SIGSOFT Software Engineering Notes, Vol. 30, No. 4, 1-7 (2005)
  16. Shawky, D. M.., Abd-El-Hafiz, S. K., El-Sedeek, A.-L.: A Dynamic Approach for the Identification of Object-oriented Design Patterns. In Proceedings of the IASTED Conf. on Software Engineering, 138-143 (2005)
  17. Shi, N., Olsson, R. A.: Reverse Engineering of Design Patterns from Java Source Code. In Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, 123-134 (2006)
  18. Smith, J. McC., Stotts, D.: Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture. In Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop, 183 (2002)
  19. Smith, J. McC., Stotts, D.: SPQR: Flexible Automated Design Pattern Extraction From Source Code. In Proceedings of the 2003 IEEE International Conference on Automated Software Engineering, 215-224 (2003)
  20. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S. T.: Design Pattern Detection Using Similarity Scoring. In IEEE Transactions on Software Engineering, Vol. 32, No. 11, 896-909 (2006)
  21. Verkamo, A. I., Gustafsson, J., Nenonen, L., Paakki, J.: Design patterns in performance prediction. In Proceedings of the ACM Second International Workshop on Software and Performance, 143-144 (2000)
  22. Wendehals, L.: Improving Design Pattern Instance Recognition by Dynamic Analysis. In Proceedings of the ICSE 2003 Workshop on Dynamic Analysis, 29-32 (2003)
  23. Zaidman, A., Hamou-Lhadj, A., Greevy, O.: Program Comprehension through Dynamic Analysis. In Proceedings of the 1st International Workshop on Program Comprehension through Dynamic Analysis Tech. Rep. 2005-12 (2005)
Download


Paper Citation


in Harvard Style

Arcelli F., Perin F., Raibulet C. and Ravani S. (2009). JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection . In Proceedings of the 4th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-811-98-2, pages 95-106. DOI: 10.5220/0001951800950106


in Bibtex Style

@conference{enase09,
author={Francesca Arcelli and Fabrizio Perin and Claudia Raibulet and Stefano Ravani},
title={JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection},
booktitle={Proceedings of the 4th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2009},
pages={95-106},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001951800950106},
isbn={978-989-811-98-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - JADEPT: Dynamic Analysis for Behavioral Design Pattern Detection
SN - 978-989-811-98-2
AU - Arcelli F.
AU - Perin F.
AU - Raibulet C.
AU - Ravani S.
PY - 2009
SP - 95
EP - 106
DO - 10.5220/0001951800950106