Jacques Klein, Franck Fleurey, and Jean Marc Jézéquel (2007)
Weaving Multiple Aspects in Sequence Diagrams
Transactions on Aspect-Oriented Software Development (TAOSD) LNCS 4620:167-199.
Handling aspects within models looks promising for managing crosscutting
concerns early in the software life-cycle, up from programming to
design, analysis and even requirements. At the modeling level, even
complex behavioral aspects can easily be described for instance as
pairs of sequence diagrams: one for the pointcut specifying the behavior
to detect, and the second one for an advice representing the wanted
behavior at the join point. While this is fine for informal documentation
purposes, or even intuitive enough when a single aspect has to be
woven, a more precise semantics of both join point detection and
advice weaving is needed for using these modeling artifacts for Model
Driven Engineering activities such as code generation or test synthesis.
This paper proposes various interpretations for pointcuts that allow
multiple behavioral aspects to be statically woven. The idea is to
allow join points to match a pointcut even when some extra-messages
occur in between. However, with this new way of specifying join points,
the composition of the advice with the detected part cannot any longer
be just a replacement of the detected part by the advice. We have
to consider the events (or the messages) of the join point, but also
the events which occur between them, and merge them with the behavior
specified within the advice. We thus also propose a formal definition
of a new merge operator, and describe its implementation on the Kermeta
platform.