UMLAUT
Introduction
The UMLAUT framework [1] is a model transformation tool. From
the point of view of Aspect Oriented Software Development, UMLAUT can be seen
as a framework for building application specific weavers to weave multi-dimentional
high level UML design models (functional, dynamic, deployment, and static aspects
annotated with design pattern occurences, stereotypes and tag values) into detailed
design models suitable for either implementation, simulation or validation.
In addition to the manipulation of UML models, UMLAUT is
able to manipulate any kind of models on any kind of
repositories. A transformation can be run on any repository
that has compatible metamodels. The metamodels are defined
using the MOF (Meta Object Facility). UMLAUT is composed of
a transformation language compiler and a framework of
transformations written in this language. It allows complex
model transformations far beyond MDA classical PIM to PSM
mappings. A major idea that drove UMLAUT evolution is that a
transformation is a kind of program so it must be possible
to apply the MDA approach to itself. Experience shows that
aspect oriented techniques are also useful to design
transformations themselves, which are complex entities
managing various concerns.
Since 1998, Umlaut has been used it in the UML context to demonstrate several
concepts, such as weaving design patterns, supporting the design by contract approach
[3], weaving model aspects, generating code, generating test
cases and interfacing with validation tools on the model. UMLAUT transformation
operations are written in the MTL transformation
language.
AOD language
UMLAUT supports aspect oriented design with libraries of reusable transformation operations.
These operations include user-defined algorithms for identifying pointcuts in models and then applying modifications to the model.
Specific AOD languages can thus be defined by building a specific framework, organized with design patterns
(which are really design patterns at a metamodel level).
UMLAUT includes some prototypes of AOD languages.
A first prototype was designed within the QCCS european project (www.qccs.org).
Pointcuts and advices are defined using an UML extended template notation. The general weaving algorithm uses extended template parameter bindings to match model fragments.
Specific statecharts bound to model items such as operations specify the weaving of the various behaviours gathered from the models fragments.
Because of its separation between model fragments and weaving advice, this AOD technique is symmetric
in nature.
A graphically oriented technique for specifying pointcuts and advices was produced
from QCCS' results [2].
UMLAUT supports another protocol oriented AOD technique. The associated AOD notation
aims at formally defining the behaviour of a set of model fragments. Each fragment's
behaviour is defined by HMSC (hierarchical message sequence charts: automata of
partially ordered event sets). HMSC makes it possible to specify model behaviours
at any level of abstraction while retaining a clear semantics. The weaver merges
model fragments using a set of HMSC that build correspondances between events
from the fragments' HMSC [4].
This technique provides compositions with well-defined behaviours [5].
AOD process
Apart from the two AOD languages mentioned above, UMLAUT aims at supporting research and experiments on AOD languages and frameworks.
Through metamodel extensions and libraries of transformation operations, specialized designers can build domain specific
aspect notations and weaving algorithms.
Therefore the underlying AOD process identifies various designer roles and activities: users of aspects, designers of aspects, designers of weavers and aspect languages.
----- References ----------
[1] W.M. Ho, J.-M. Jézéquel, F. Pennaneac'h, and N. Plouzeau.
A toolkit for weaving aspect oriented UML designs. -- In Proceedings
of 1st ACM International Conference on Aspect Oriented Software Development, AOSD
2002, Enschede, The Netherlands, April 2002.
[2] Weis, T. Ulbrich, A. Geihs, K. , Model metamorphosis,IEEE
Software, vol. 20:5, p. 46-51, 2003.
[3] J.-M. Jézéquel, N. Plouzeau, T. Weis, and K. Geihs, From
Contracts to Aspects in UML Designs, in Workshop of the AOSD conference,
2002.
[4] Jacques Klein and Noel Plouzeau. -- Transformation
of behavioral models based on compositions of sequence diagrams. -- In Proceedings
of Model-Driven Architecture: Foundations and Applications 2004 (MDAFA), page
255, Linkoping, Sweden, june 2004.
[5] Jacques Klein, Benoît Caillaud, Loïc Hélouët, Merging
Scenarios, Proc. of FMICS'04 (Formal Methods for industrial and critical
systems), Linz, September 2004.