A role-based metamodeling approach to specifying design patterns

Design patterns describe solutions to recurring design problems in the development of software designs. To encourage the use of design patterns, we are investigating tool support for incorporating patterns into UML models. The development of such tools requires patterns to be specified at the metamodel level. Patterns may be specified using roles, where a role is played by model elements. However, the notion of role in the object-oriented community is strictly based on objects, and does not allow the use of the word "role" in any other place where the context is not object-based. In this paper, we propose a notion of role that can be used to specify design patterns at the metamodel level. We survey the characteristics of object-based roles and generalize them. Based on the generalized notion of a role define a new notion of a model role which is played by a model element. We illustrate the use of model roles with a specification of a variant of the Observer design pattern.

[1]  Bernhard Rumpe,et al.  The UML profile for framework architectures , 2002, Addison Wesley object technology series.

[2]  L. Stein,et al.  Clovers: The Dynamic Behavior of Types and Instances , 1989 .

[3]  Michael Schrefl,et al.  Extending object-oriented systems with roles , 1996, TOIS.

[4]  Dae-Kyoo Kim,et al.  Metarole-Based Modeling Language (RBML) Specification V1. 0 , 2002 .

[5]  Edward Sciore,et al.  Object specialization , 1989, TOIS.

[6]  Charles W. Bachman,et al.  The Role Concept in Data Models , 1977, VLDB.

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  Ulrich Frank Delegation: An Important Concept for the Appropriate Design of Object Models , 2000 .

[9]  Marco Meijers,et al.  Tool Support for Object-Oriented Patterns , 1997, ECOOP.

[10]  Wiebren de Jonge,et al.  The Identification of Objects and Roles - object identifiers revisited - , 1991 .

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

[12]  Alain Pirotte,et al.  A Generic Role Model for Dynamic Objects , 2002, CAiSE.

[13]  Jean-Marc Jézéquel,et al.  Precise Modeling of Design Patterns , 2000, UML.

[14]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[15]  Barbara Pernici Objects with roles , 1990 .

[16]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[17]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .