Achieving adaptability through separation and composition of concerns

This paper discusses separation and composition of concerns as a means for improving adaptability of object-oriented programs. Separation of concerns results in a weak coupling of the concerns and as such satisfies the need for increased flexibility and reusability. We will illustrate the separation of concerns mechanism for the conventional object model and set out the requirements for an enhanced and adaptable object model. We propose the composition filters model as a framework for language extensions. The composition filters model separates the basic application code from the more special purpose concerns such as synchronization, real-time constraints and multiple views. Its applicability to solving various modeling problems is briefly illustrated.

[1]  Ira R. Forman,et al.  Composition of before/after metaclasses in SOM , 1994, OOPSLA 1994.

[2]  Anand R. Tripathi,et al.  Data abstraction mechanisms in SINA/ST , 1988, OOPSLA '88.

[3]  Rachid Guerraoui Atomic Object Composition , 1994, ECOOP.

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Pierre Cointe,et al.  Towards a methodology for explicit composition of metaobjects , 1995, OOPSLA.

[6]  Lodewijk Bergmans,et al.  Composing Synchronization and Real-Time Constraints , 1995, J. Parallel Distributed Comput..

[7]  Uwe Krüger,et al.  Sharing Properties in a Uniform Object Space , 1995, ECOOP.

[8]  Robert J. Stroud,et al.  Using Metaobject Protocols to Implement Atomic Data Types , 1995, ECOOP.

[9]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[10]  Lodewijk Bergmans,et al.  Obstacles in object-oriented software development , 1992, OOPSLA.

[11]  Mehmet Aksit,et al.  Obstacles in object-oriented software development , 1992, OOPSLA 1992.

[12]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[13]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA.

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

[15]  Ian M. Holland,et al.  Specifying Reusable Components Using Contracts , 1992, ECOOP.

[16]  Mario Tokoro,et al.  DROL: an object-oriented programming language for distributed real-time systems , 1992, OOPSLA '92.

[17]  Ira R. Forman,et al.  Composition of Before/After Metaclasses in SOM , 1994, OOPSLA.

[18]  Steve Vestal,et al.  A cursory overview and comparison of four architecture description languages , 1993 .

[19]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[20]  Anand R. Tripathi,et al.  Data abstraction mechanisms in SINA/ST , 1988, OOPSLA 1988.

[21]  M. h. j. Glandrup Extending C++ using the concepts of composition filters , 1995 .

[22]  Louis Marie Johannes Bergmans,et al.  Composing Concurrent Objects , 1994 .

[23]  Jee Mcaaer Meta-level Programming with Coda , 1995 .

[24]  Anand R. Tripathi,et al.  Atomic delegation: object-oriented transactions , 1991, IEEE Software.

[25]  Gregor Kiczales,et al.  An Architecture for An Open Compiler , 1998 .

[26]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[27]  Jan Bosch,et al.  Real-Time Specification Inheritance Anomalies and Real-Time Filters , 1994, ECOOP.

[28]  Oscar Nierstrasz,et al.  Object-oriented software composition , 1995 .

[29]  Dennis Kafura,et al.  ACT++: Building a Concurrent C++ with Actors , 1989 .

[30]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.