Skip to main content

Tool support for object-oriented patterns

  • Conference paper
  • First Online:
ECOOP'97 — Object-Oriented Programming (ECOOP 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1241))

Included in the following conference series:

Abstract

A software (design) pattern describes a general solution for a recurring design problem. The solution is mostly described in terms of an abstract design structure expressed in design elements such as classes, methods and relationships (inheritance, associations).

This paper describes a prototype tool that supports working with design patterns when developing or maintaining object-oriented programs. The tool provides three integrated views on a program: the code (classes, methods, etc.), a design view (abstraction of the code plus additional information not in the code) and occurrences of design patterns in the program.

The tool assists developers using patterns in three ways:

  1. Generating program elements (e.g. classes, hierarchies) for a new instance of a pattern, taken from an extensible collection of “template” patterns

  2. Integrating pattern occurrences with the rest of the program by binding program elements to a role in a pattern (e.g. indicating that an existing class plays a particular role in a pattern instance)

  3. Checking whether occurrences of patterns still meet the invariants governing the patterns and repairing the program in case of problems

Through the use of an existing refactoring package, the tool supports the use of patterns both in forward engineering and in backwards engineering, i.e. documenting occurrences of patterns in existing programs and modifying the program to better reflect the pattern's structure.

The tool is implemented in Smalltalk and has been applied to identify pattern occurrences in several non-trivial (Smalltalk) applications and to reorganize these subsequently.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. E. Gamma et.al., Design Patterns — Elements of Reusable Object-Oriented Software, Addison Wesley, 1995

    Google Scholar 

  2. F. Buschmann, et. al. Pattern-Oriented Software Architecture — A System of Patterns, Wiley and Sons Ltd., 1996.

    Google Scholar 

  3. Richard Helm, Ian M. Holland and Dipayan Gangopadhyay, “Contracts: Specifying Behavioral Compositions in Object-Oriented Systems,” pp. 169–180 in Proceedings of the 1990 OOPSLA/ECOOP Conference, ed. Norman Meyrowitz (October 1990).

    Google Scholar 

  4. Jung. J. Kim and Kevin M. Benner, “An Experience Using Design Patterns: Lessons Learned and Tool Support”, Theory and Practice of Object Systems, Vol. 2, No. 1, 1996, pp. 61–74.

    Article  Google Scholar 

  5. F.J. Budinsky et.al., “Automatic code generation from design patterns”, IBM Systems Journal, Vol 35, No. 2, 1996.

    Google Scholar 

  6. Marco Meijers, Tool Support for Object-Oriented Design Patterns, Master's Thesis, Utrecht University, CS Dept, INF-SCR-96-28, August 1996.

    Google Scholar 

  7. Pieter van Winsen, (Re)engineering with Object-Oriented Design Patterns, Master's Thesis, Utrecht University, CS Dept, INF-SCR-96-43, Novemberl996.

    Google Scholar 

  8. William F. Opdyke, Refactoring object-oriented frameworks, University of Illinois, Urbana Champaign, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehmet Akşit Satoshi Matsuoka

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Florijn, G., Meijers, M., van Winsen, P. (1997). Tool support for object-oriented patterns. In: Akşit, M., Matsuoka, S. (eds) ECOOP'97 — Object-Oriented Programming. ECOOP 1997. Lecture Notes in Computer Science, vol 1241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053391

Download citation

  • DOI: https://doi.org/10.1007/BFb0053391

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63089-0

  • Online ISBN: 978-3-540-69127-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics