Chapter8.Untangling Crosscutting Models with CAESAR


Chapter 8. Untangling Crosscutting Models with CAESAR

MIRA MEZINI AND KLAUS OSTERMANN

Since the structured programming movement in the 1970s, programming language research has concentrated on mechanisms for encoding hierarchical models, that is, mechanisms for viewing a system at more or less detail. This works well if we assume that real-world systems can be organized in mind-independent concept hierarchies. However, different perspectives on a system may yield models that are not hierarchically related to each other. Since it is not possible to represent such crosscutting models in traditional languages, we are forced to structure software systems into hierarchical models by arbitrarily choosing one of the crosscutting models as the primary decomposition criteria. This arbitrary choice of the primary model results in code tangling and scattering.

We argue that aspect-oriented (AO) languages need better support for crosscutting models. We emphasize that join point interception, while an important corner stone to modularizing crosscutting models, does not alone solve these problems.

To alleviate these problems, we propose CAESAR. With CAESAR, it is possible to implement different pieces of software with respect to different crosscutting models (encoded as so-called collaboration interfaces) and later combine them on-demand by means of a special translator called binding. CAESAR'S strengths are in the reuse and componentization of aspects, allowing us to use aspects polymorphically. We introduce the notion of aspectual polymorphism as a generalization of subtype polymorphism to crosscutting models and propose a novel concept for dynamic aspect deployment in order to realize aspectual polymorphism. Static type safety is preserved due to the introduction of virtual classes and family polymorphism.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net