Introduction

authors : Julien Ruchaud
Florian Desbois
Jean Couteau
contact : eugene-devel@list.nuiton.org or eugene-users@list.nuiton.org
revision : $Revision$
date : $Date$

What is MDA (Model Driven Architecture)

EUGene is based on MDA technology. MDA's main principle is the software development based on models. It consists in abstracting technical choices by modeling the needs, and then transform this model according to the target platform. One of many examples is java code generation from an UML model.

To make models (M1), it is necessary to define a modeling language which is called meta-model (M2). To make transformations between languages, it is necessary to have in common a meta-language, which is called meta-meta-model (M3). To do not have another language in top of the meta-meta-model, this one needs to be self-descriptive, i.e. it is possible to write a meta-model describing the meta-meta-model. The last level is the model application (M0) in the real world.

Here are some examples :

M3 MOF Grammar UML M2 UML Language Flying specific language M1 Java Sentence Airport definition M0 Objet Speech The airport

It exists two strategies in manipulating models : either defining transformation rules from a meta-model to another, either by a template representing the target model and manipulating the source model.

What is EUGene (Efficient Universal Generator) ?

EUGene allows manipulating and generating models. It features :

  • reading UML class model in XMI independent from modeling.

  • generation templates

  • models transformation

  • integration in project build

  • independence in developer code and generated code

  • independence from development tools

Numerous solutions are available on the market, EUGene position itself, compared to its competitors, as easy to use and to put into place, independent from development tools and full-JAVA with no other language to learn.

Comparison

Comparison to other solutions existing on the market :

Generator

Independence

Build

Plugin

Output format

EUGene

java template

Development tools

Maven

Eclipse

All

Acceleo

specific template

Linked to Eclipse platform

Not possible

Eclipse

All

ATL

Model transformation in QVT

Linked to Eclipse platform

Not possible

Eclipse

Model