Design Pattern Detection in Java Systems: A Dynamic Analysis Based Approach | SpringerLink
Skip to main content

Design Pattern Detection in Java Systems: A Dynamic Analysis Based Approach

  • Conference paper
Evaluation of Novel Approaches to Software Engineering (ENASE 2009, ENASE 2008)

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 the behavioral design patterns based on dynamic analysis of Java software systems. The idea behind our solution 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 the design patterns. The tool has been validated with positive results on different implementations of design patterns and on systems such as JADEPT itself.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 5719
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 7149
Price includes VAT (Japan)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Abd-El-Hafiz, S.k., Shawky, D.M., El-Sedeek, A.-L.: Recovery of Object-Oriented Design Patterns Using Static and Dynamic Analyses. International Journal of Computers and Applications (2008)

    Google Scholar 

  2. Arcelli, F., Masiero, S., Raibulet, C., Tisato, F.: A Comparison of Reverse Engineering Tools based on Design Pattern Decomposition. In: 2005 IEEE Australian Software Engineering Conference, pp. 262–269. IEEE Press, Los Alamitos (2005)

    Chapter  Google Scholar 

  3. Arcelli, F., Perin, F., Raibulet, C., Ravani, S.: JADEPT: Behavioural Design Pattern Detection through Dynamic Analysis. In: 4th International Conference on Evaluation of Novel Approaches to Software Engineering, pp. 95–106. INSTICC Press (2009)

    Google Scholar 

  4. Arcelli, F., Perin, F., Raibulet, C., Ravani, S.: Behavioural Design Pattern Detection through Dynamic Analysis. 4th International Workshop on Program Comprehension through Dynamic Analysis, Technical report TUD-SERG-2008-036, 11–16 (2008)

    Google Scholar 

  5. Bergenti, F., Poggi, A.: Improving UML Designs Using Automatic Design Pattern Detection. In: 12th International Conference on Software Engineering and Knowledge Engineering, pp. 336–343 (2000)

    Google Scholar 

  6. Birkner, M.: Object-Oriented Design Pattern Detection Using Static and Dynamic Analysis of Java Software. Master Thesis, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany (2007)

    Google Scholar 

  7. Byte-Code Engineering Library (BCEL), http://jakarta.apache.org/bcel

  8. Cooper, J.W.: The Design Pattern Java Companion. Addison-Wesley, Reading (1998)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Fan, L., Qing-shan, L., Yang, S., Ping, C.: Detection of Design Patterns by Combining Static and Dynamic Analyses. Journal of Shanghai University (English Edition) 11(2), 156–162 (2007)

    Article  Google Scholar 

  11. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: elements of reusable object-oriented software. Addison Wesley, Reading (1994)

    MATH  Google Scholar 

  12. Guéhéneuc, Y.-G., Douence, R., Jussien, N.: No Java without Caffeine. A Tool for Dynamic Analysis of Java Programs. In: 17th IEEE International Conference on Automated Software Engineering, pp. 117–126. IEEE Press, Los Alamitos (2002)

    Chapter  Google Scholar 

  13. Guéhéneuc, Y.G.: PTIDEJ: Promoting Patterns with Patterns. In: 1st ECOOP Workshop on Building Systems using Patterns, pp. 1–9. Springer, Heidelberg (2005)

    Google Scholar 

  14. Heuzeroth, D., Holl, T., Löwe, W.: Combining Static and Dynamic Analysis to Detect Interaction Patterns. In: 6th World Conference on Integrated Design and Process Technology (2002)

    Google Scholar 

  15. Hu, L., Sartipi, K.: Dynamic Analysis and Design Pattern Detection in Java Programs. In: 20th International Conference on Software Engineering & Knowledge Engineering, pp. 842–846 (2008)

    Google Scholar 

  16. Java documentation, http://java.sun.com/j2se/1.4.2/docs/api/java/util/Observer.html

  17. Lee, H., Youn, H., Lee, E.: Automatic Detection of Design Pattern for Reverse Engineering. In: 5th ACIS International Conference on Software Engineering Research, Management & Applications, pp. 577–583 (2007)

    Google Scholar 

  18. Nickel, U., Niere, J., Zündorf, A.: The FUJABA Environment. In: 22nd International Conference on Software Engineering, pp. 742–745 (2000)

    Google Scholar 

  19. Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards Pattern-Based Design Recovery. In: 24th International Conference on Software Engineering, pp. 338–348 (2002)

    Google Scholar 

  20. Perin, F.: Dynamic analysis to detect the design patterns in Java: gathering information with JPDA. MSc Thesis, University of Milano-Bicocca, Milan (2007)

    Google Scholar 

  21. Ravani, S.: Dynamic analysis for Design Pattern detecting on Java code: information relationship modelling, MSc Thesis, University of Milano-Bicocca, Milan (2007)

    Google Scholar 

  22. Pettersson, N.: Measuring Precision for Static and Dynamic Design Pattern Recognition as a Function of Coverage. In: Workshop on Dynamic Analysis, ACM SIGSOFT Software Engineering Notes, vol. 30(4), pp. 1–7 (2005)

    Google Scholar 

  23. Shawky, D.M., Abd-El-Hafiz, S.K., El-Sedeek, A.-L.: A Dynamic Approach for the Identification of Object-oriented Design Patterns. In: IASTED Conference on Software Engineering, pp. 138–143 (2005)

    Google Scholar 

  24. Shi, N., Olsson, R.A.: Reverse Engineering of Design Patterns from Java Source Code. In: 21st Conference on Automated Software Engineering, pp. 123–134. IEEE Press, Los Alamitos (2006)

    Google Scholar 

  25. Smith, J.M.C., Stotts, D.: Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture. In: 27th Annual NASA Goddard Software Engineering Workshop, pp. 183 (2002)

    Google Scholar 

  26. Smith, J.M.C., Stotts, D.: SPQR: Flexible Automated Design Pattern Extraction From Source Code. In: 2003 IEEE International Conference on Automated Software Engineering, pp. 215-224, IEEE Press (2003)

    Google Scholar 

  27. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design Pattern Detection Using Similarity Scoring. IEEE Transactions on Software Engineering 32(11), 896–909 (2006)

    Article  Google Scholar 

  28. Verkamo, A.I., Gustafsson, J., Nenonen, L., Paakki, J.: Design patterns in performance prediction. In: ACM 2nd Workshop on Software and Performance, pp. 143–144 (2000)

    Google Scholar 

  29. Wendehals, L.: Improving Design Pattern Instance Recognition by Dynamic Analysis. In: ICSE 2003 Workshop on Dynamic Analysis, pp. 29–32. IEEE Press, Los Alamitos (2003)

    Google Scholar 

  30. Wendehals, L., Orso, A.: Recognizing Behavioral Patterns at Runtime using Finite Automata. In: 4th International ICSE Workshop on Dynamic Analysis, pp. 33–39 (2006)

    Google Scholar 

  31. Zaidman, A., Hamou-Lhadj, A., Greevy, O.: Program Comprehension through Dynamic Analysis. In: 1st International Workshop on Program Comprehension through Dynamic Analysis, Technical report 2005-12 (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arcelli, F., Perin, F., Raibulet, C., Ravani, S. (2010). Design Pattern Detection in Java Systems: A Dynamic Analysis Based Approach. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE ENASE 2009 2008. Communications in Computer and Information Science, vol 69. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14819-4_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14819-4_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14818-7

  • Online ISBN: 978-3-642-14819-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics