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.