First-class Compositions--Defining and composing object and aspect compositions with first-class operators


Bergmans, Lodewijk and Havinga, Wilke and Aksit, Mehmet (2011) First-class Compositions--Defining and composing object and aspect compositions with first-class operators. Transactions on Aspect-Oriented Software Development . ISSN 1864-3027

[img] PDF
Restricted to UT campus only
: Request a copy
Abstract:A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques.
This has led to a large number of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms.
This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs.
The proper composition technique to use depends on the particular design problem and its requirements (e.g., with respect to adaptability, reusability, understandability, robustness, etc. of the various elements of the design).
However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model, called Co-op. The model provides dedicated abstractions that can be used to express a wide variety of object composition techniques ("composition operators'').
Examples include various forms of inheritance, delegation, and aspects.
The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens.
Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones.
This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators.
To validate and experiment with the proposed model, we have designed and implemented a simple language, Co-op/I, that we also use in this paper to show concrete examples.
Item Type:Article
Copyright:© 2011 Springer
Electrical Engineering, Mathematics and Computer Science (EEMCS)
Research Group:
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page