Describing and Composing Patterns Using Role Diagrams

Design patterns are patterns of classes and objects that represent solutions to recurring design problems. They are usually described using class diagrams. Class diagrams, however, often intertwine the actual solution with efficient ways of implementing it. This paper uses role diagrams to describe and compose patterns. Role diagrams help designers focus on the collaborations and distribution of responsibilities between objects. Role diagrams also are a better starting point for composing patterns. This paper presents several examples and reports on first experiences with using role diagrams for composing patterns which have been promising.

[1]  Tony Hoare,et al.  Hierarchical Program Structures , 1972 .

[2]  Kasper Østerbye,et al.  Roles: Conceptual Abstraction Theory and Practical Language Issues , 1996, Theory and Practice of Object Systems.

[3]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[4]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[5]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[6]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[7]  Roel Wieringa,et al.  Using Dynamic Classes and Role Classes to Model Object Migration , 1995, Theory Pract. Object Syst..

[8]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[9]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[10]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[11]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[12]  James M. Coggins,et al.  Subject-Oriented Programming , 1996 .

[13]  Trygve Reenskaug,et al.  Working with objects , 1995 .

[14]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[15]  Dirk Riehle,et al.  A pattern language for tool construction and integration based on the tools and materials metaphor , 1995 .

[16]  Erich Gamma,et al.  ET++—a portable, homogeneous class library and application framework , 1995 .

[17]  Walter Zimmer,et al.  Relationships between design patterns , 1995 .

[18]  Mark A. Linton,et al.  Unidraw: a framework for building domain-specific graphical editors , 1990, TOIS.

[19]  Harold Ossher,et al.  Subjectivity in object-oriented systems , 1994, OOPSLA '94.

[20]  Dirk Riehle,et al.  The Event Notification Pattern - Integrating Implicit Invocation with Object-Orientation , 1996, Theory Pract. Object Syst..

[21]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[22]  James O. Coplien,et al.  Pattern languages of program design , 1995 .