Roles and Aspects: Similarities, Differences, and Synergetic Potential

Both, the role concept and aspect-oriented programming are techniques which permit a flexible adaptation of object-oriented constructs and therefore can be used to adjust existing software to new challenges. While the former one is already well known in the objectoriented world, the latter was only recently introduced. Currently, both techniques co-exist without affecting each other and therefore concrete software projects either use the one or the other approach. There are some situations where the result of utilizing the one or the other is approximately the same. Therefore, it is reasonable to analyze each approach in respect to its underlying philosophy and its impact on the implementation level and to compare them on the basis of those observations. This paper discusses the equivalences and differences between the role concept and aspect-oriented programming and reveals potential synergies between both approaches.

[1]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[2]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[3]  Urs Hölzle,et al.  Binary Component Adaptation , 1997, ECOOP.

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

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

[6]  Robert E. Filman,et al.  What Is Aspect-Oriented Programming , 2001 .

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

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

[9]  Peter Wegner,et al.  The Object-Oriented Classification Paradigm , 1987, Research Directions in Object-Oriented Programming.

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

[11]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[12]  Martin Fowler,et al.  Dealing with Roles , 1997 .

[13]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[14]  Stefan Hanenberg,et al.  A Proposal For Classifying Tangled Code , 2002 .

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

[16]  Gustaf Neumann,et al.  Enhancing object-based system composition through per-object mixins , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

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

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

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

[20]  Roles Conceptual Abstraction Theory Practical Language Issues , 1996 .