Skip to main content
Log in

An approach for reverse engineering of design patterns

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

For the maintenance of software systems, developers have to completely understand the existing system. The usage of design patterns leads to benefits for new and young developers by enabling them to reuse the knowledge of their experienced colleagues. Design patterns can support a faster and better understanding of software systems. There are different approaches for supporting pattern recognition in existing systems by tools. They are evaluated by the Information Retrieval criteria precision and recall. An automated search based on structures has a highly positive influence on the manual validation of the results by developers. This validation of graphical structures is the most intuitive technique. In this paper a new approach for automated pattern search based on minimal key structures is presented. It is able to detect all patterns described by the GOF [15]. This approach is based on positive and negative search criteria for structures and is prototypically implemented using Rational Rose and Together.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Antoniol G, Fiutem R, Cristoforetti L (1998) Design pattern recovery in object-oriented software. In: 6th International Workshop on Program Comprehension, June, pp 153–160

  2. Bansiya J (1998) Automatic Design-Pattern Identification. Dr. Dobb’s Journal. Available online at: http://www.ddj.com

  3. Bergenti F, Poggi A (2000) Improving UML design using automatic design pattern detection. In: Proc. 12th. International Conference on Software Engineering and Knowledge Engineering (SEKE 2000), pp 336–343

  4. Brown K (1996) Design reverse-engineering and automated design pattern detection in Smalltalk. Master’s thesis. Department of Computer Engineering, North Carolina State University. Available online at: http://www.ncsu.edu/

  5. Keller RK, Schauer R, Robitaille S, Page P (1999) Pattern-based reverse engineering of design components. In: Proc. Of the 21st International Conference On Software Engineering. IEEE Computer Society Press, pp 226–235

  6. Kim H, Boldyreff C (2000) A method to recover design patterns using software product metrics. In: Proc. of the 6th International Conference on Software Reuse (ICSR6). Available online at: http://www.soi.city.ac.uk/∼hkim69/publications/icsr6.pdf

  7. Kraemer C, Prechelt L (1996) Design recovery by auto-mated search for structural design patterns in object-oriented software. In: Proc. of the Working Conference on Reverse Engineering, pp. 208–215

  8. Salton G, McGill M (1983) Introduction to Modern Information Retrieval. McGraw-Hill, New York

  9. Naumann S (2001) Reverse Engineering of Design Patterns. Diploma Thesis. Technical University of Ilmenau (in German)

  10. Niere J, Wadsack JP, Wendehals L (2001) Design pattern recovery based on source code analysis with fuzzy logic. Technical Report tr-ri-01-222, University of Paderborn. Available online

  11. Prechelt L, Unger B, Philippsen M (1997) Documenting Design Patterns in Code Eases Program Maintenance. In: Proc. Of the ICSE Workshop on Process Modeling and Empirical Studies of Software Evolution, pp 72–76

  12. Rational (2000) Using the Rose Extensibility Interface Rational Rose 2001 Rational Rose Software Corporation

  13. Tatsubori M, Chiba S (1998) Programming Support of Design Patterns with compile-time Reflection. OOPSLA 98 Workshop Reflective Programming in C++ and Java, Vancouver, Canada

  14. West R (1993) Reverse Engineering – An Overview, HMSO, London

  15. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design Patterns – Elements of Reusable Object-Oriented Software, Addison Wesley

  16. Shull F, Melo WL, Basili VR (1996) An inductive method for discovering design patterns from object-oriented software systems. Technical Report UMIACS-TR-96-10, University of Maryland

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ilka Philippow.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Philippow, I., Streitferdt, D., Riebisch, M. et al. An approach for reverse engineering of design patterns. Softw Syst Model 4, 55–70 (2005). https://doi.org/10.1007/s10270-004-0059-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-004-0059-9

Keywords

Navigation