Information Technology Reference
In-Depth Information
in
M 1 , will precede all event
e 2 of
E 2 if
e 1 and
e 2 are localized on the same
object in
M
. The last line is equivalent but for the events of
E 1 which succeed
the detected part.
Let us note that this operator of composition can lead to some situations
where there are several possibilities to order the events. For instance, in Fig. 11,
let us suppose that the messages
update
advice
in the bSD
are sent by the object
A
instead of the object
customer
. Then, when we compose the bSD
base
with
the bSD
advice
, the sending of the message
update
and the message
save bad
attempt
cannot be ordered. In this case, it is the designer who has to specify the
expected order.
6
Implementation with Kermeta
To apply the detection and composition algorithms proposed in this paper on
practical examples, we have implemented them within the Kermeta environment.
This section is divided in three sub-sections. The first one presents the Kermeta
environment and details our motivations for using it. The second details how the
weaving process is implemented, and the third presents the use of our weaver
from a user perspective.
6.1
The Kermeta Environment
Kermeta [19] is an open source meta-modeling language developed by the Triskell
team at IRISA. It has been designed as an extension to the EMOF 2.0 to be the
core of a meta-modeling platform. Kermeta extends EMOF with an action lan-
guage that allows specifying semantics and behaviors of metamodels. The action
language is imperative and object-oriented. It is used to provide an implemen-
tation of operations defined in metamodels. As a result the Kermeta language
can, not only be used for the definition of metamodels but also for implementing
their semantics, constraints and transformations.
The Kermeta action language has been specially designed to process models.
It includes both Object Oriented (OO) features and model specific features.
Kermeta includes traditional OO static typing, multiple inheritance and behavior
redefinition/selection with a late binding semantics. To make Kermeta suitable
for model processing, more specific concepts such as opposite properties (i.e.,
associations) and handling of object containment have been included. In addition
to this, convenient constructions of the Object Constraint Language (OCL), such
as closures (e.g., each, collect, select), are also available in Kermeta.
A complete description of the way the language was defined can be found in
[19]. It was successfully used for the implementation of a class diagram com-
position technique in [25] but also as a model transformation language in [20].
To implement the detection and composition techniques proposed in this paper
we have chosen to use Kermeta for two reasons. First, the language allows im-
plementing composition by adding the algorithm in the body of the operations
defined in the composition metamodel. Second, Kermeta tools are compatible
 
Search WWH ::




Custom Search