An enhanced role model for alleviating the role‐binding anomaly

Roles and role models have received much attention as useful concepts for developing highly reusable and dynamically evolvable systems. Role models belong to the category of collaboration‐based development techniques, but most of the existing approaches to role models do not explicitly incorporate the core principle of collaboration‐based developments as an essential property of their primary design goals. Consequently, the existing approaches still suffer from a problematic phenomenon that the structural and behavioral constraints defined in a role system can be violated during the role‐binding stage. We call such a problematic phenomenon the role‐binding anomaly. In order to alleviate the role‐binding anomaly, we propose an enhanced role model, in which all role instances and core objects can exist by themselves, namely, they can be developed, executed, and tested independently. Roles and core classes can be bound to each other at the instance level. In addition, the role system describes and encapsulates the behavior for dynamic reconfigurations among role instances. The enhanced role model is designed so as to be meaningful with respect to software engineering principles, rather than dynamic evolution. It also facilitates role model implementation using general programming languages (i.e. not supporting dynamic specialization) such as Java. To illustrate how the proposed role model makes such benefits, we develop a set of Java classes necessary for implementing the enhanced role model in the form of a Java package role, and present a simplified automatic teller machine system as an example application. Copyright © 2002 John Wiley & Sons, Ltd.

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

[2]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[3]  Bent Bruun Kristensen Object-Oriented Modelling with Roles , 1995, OOIS.

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

[5]  HelmRichard,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990 .

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

[7]  Harold Ossher,et al.  Subject-oriented composition rules , 1995, OOPSLA.

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

[9]  Mira Mezini,et al.  Component Integration with Pluggable Composite Adapters , 2002 .

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

[11]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[12]  David Notkin,et al.  Using C++ Templates to Implement Role-Based Designs , 1996, ISOTAS.

[13]  OssherHarold,et al.  Subject-oriented programming , 1993 .

[14]  Elizabeth A. Kendall,et al.  Role model designs and implementations with aspect-oriented programming , 1999, OOPSLA '99.

[15]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[16]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[17]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[18]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[19]  Don Batory,et al.  Implementing large-scale object-oriented components , 1999 .

[20]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[21]  Bent Bruun Kristensen Subject Composition by Roles , 1997, OOIS.

[22]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

[23]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[24]  B. Pernici,et al.  Objects with roles , 1990, COCS '90.

[25]  Doo-Hwan Bae,et al.  Towards Coping with Role-Binding Anomaly , 2001, Reflection.

[26]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[27]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

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

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

[30]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).