Wiki

Clone wiki

morel / XMU

News

XMU: Bidirectional Model Transformation Language

In Model-Based Software Engineering (MBSE), various models are created to describe the software system under development from different aspects. These models are usually interrelated, but may evolve independently. If one of the models is updated, the changes should be propagated to the related models. How to keep these models synchronized becomes a crucial issue in MBSE.

XMU is a putback-based bidirectional model transformation language. The following picture shows the architecture of XMU. We employ XMU to define the BX rules over models. Then, the BX rules are deployed on the XMU interpreter, which can interpret the BX rules in two directions based on the core language of BiFlux.

xmuarch.jpeg

The following picture shows the core syntax of XMU. XMU is a pattern-based language. It employs model patterns to specify the shapes of model fragments to be converted and/or to be created. XMU is equipped with two types of bidirectional statements and three types of unidirectional statements to create the updated source model during put and the view during get.

xmusyntax.jpg

Showcases

UMLtoRDBMS Example (from QVT-R)

Institutional Address Book Example (from the paper of BiFlux)

Social Address Book Example (from the paper of BiFlux)

Bookmark Example (from the paper of BiFlux)

Nested Section Example (from the website of BiFlux)

Address Book Example (from the website of BiFlux)

Bookstore Example (from the zip file of BiFlux)

HSM to FSM Example

Download

To download the source code of our tool support, please click here.

Video

Please click here to watch/download the video.

Screenshot

editor.jpg

config.jpg

Updated