Information Technology Reference
In-Depth Information
Weaving Multiple Aspects in Sequence
Diagrams
Jacques Klein 1 , Franck Fleurey 1 , and Jean-Marc Jezequel 2
1 IRISA/INRIA, Campus de Beaulieu,
35042 Rennes cedex, France
jacques.klein@irisa.fr ,
franck.fleurey@irisa.fr
2 IRISA/ Universite de Rennes 1, Campus de Beaulieu,
35042 Rennes cedex, France
jezequel@irisa.fr
Abstract. Handling aspects within models looks promising for manag-
ing crosscutting concerns early in the software life-cycle, up from pro-
gramming to design, analysis and even requirements. At the modeling
level, even complex behavioral aspects can easily be described for in-
stance 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 docu-
mentation 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 synthe-
sis. 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 com-
position 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.
1
Introduction
The idea of encapsulating crosscutting concerns into the notion of aspects looks
very promising for complementing the usual notion of modules available in most
languages. By localizing these crosscutting concerns, the software engineer can
get a better control over variations, either in the product line context or for soft-
ware evolutions. The need to isolate these crosscutting concerns has been popu-
larized by the AspectJ programming language, but there is a growing interest in
This work has been partially supported by the European Network of Excellence on
Aspect-Oriented Software Development (AOSD-Europe), 2004-2008.
 
Search WWH ::




Custom Search