Parallel Composition of Aspect Mechanisms: Design and Evaluation

David H. Lorenz, University of Virginia
Sergei Kojarski, University of Virginia and Northeastern University

Abstract: There is a growing interest in the composition of aspect mechanisms. All extant works, however, avoid an important question: what should the semantics of the composed multi-extension language be? The problem is that the semantics for the composition is nowhere specified. Therefore, even if third-party composition of aspect mechanisms were successful, it is difficult to evaluate the correctness of the composition. In this paper, we propose the use of AspectJ 5 as a benchmark for evaluating and comparing composition techniques for integrating pointcut-and-advice mechanisms. If an aspect mechanism X implements the semantics of AspectJ and another mechanism Y implements the semantics of AspectWerkz, then the semantics of the composition X+Y can be checked against the semantics of AspectJ 5. We present a novel parallel composition technique, and illustrate that it passes the AspectJ 5 benchmark.

In Proceedings of the AOSD 2006 Workshop on Open and Dynamic Aspect Languages, Bonn, Germany, AOSD 2006, March 20-24, 2006.


@InProceedings{Lorenz:2006:PCA,
    Author = "David~H. Lorenz and Sergei Kojarski",
    Crossref = "AOSD:2006:ODAL",
    Title = "Parallel Composition of Aspect Mechanisms: Design and Evaluation",
    Year = 2006,
}
---------- AOSD ODAL crossref begin ----------
@String{PROC = "Proceedings of"}
@String{AOSD = "International Conference on Aspect-Oriented Software Development"}
@String{PROC:AOSD2006 = PROC#" the 5$^{th}$ "#AOSD}
@String{AOSD2006 = "AOSD 2006"}
@String{AOSD2006ODAL = "AOSD 2006 Workshop on Open and Dynamic Aspect Languages"}
@Proceedings{AOSD:2006:ODAL,
    Address = {Bonn, Germany},
    Booktitle = AOSD2006ODAL,
    Key = AOSD2006ODAL,
    Month = mar#{ 20},
    Organization = AOSD2006ODAL,
    Title = AOSD2006ODAL,
    Year = 2006,
}
@Proceedings{AOSD:2006,
    Address = {Bonn, Germany},
    Booktitle = PROC:AOSD2006,
    Key = AOSD2006,
    Month = mar#{ 20-24},
    Organization = AOSD2006,
    Publisher = "{ACM} Press",
    Title = PROC:AOSD2006,
    Year = 2006,
}
---------- AOSD ODAL crossref end ----------