services for a model driven world

Metamodeling and Transformations

The advanced course for the experienced!

You want to generate code for your own target platform or specific technical architecture? You expect that your metamodels will be quite rich? Then, this course is for you!

Here you get to know how to give the right structure to your metamodels and transformations so that they are easy to maintain even when your generator framework grows with the requirements.

As a prerequisite for this course you need basic knowledge about AndroMDA 4.0, as delivered in the AndroMDA 4.0 Quickstart course or in Migrating from AndroMDA 3 to AndroMDA 4, if you have been an AndroMDA 3.x user, already.

For this training, we will use the brandnew release 4.0 of AndroMDA.

Course modules
1. Installing AndroMDA
We revisit the installation procedure for AndroMDA once more (although you will already know it), simply to make sure that all participants have the same configuration on every machine.

2. The basics of Metamodeling
A PIM (platform independent model) is the input for an MDA-like code generator. This PIM has a metamodel (UML or a custom DSL). During the code generation workflow, AndroMDA can transform the PIM through several transformations down a whole stack of intermediate platforms, each of them described by a possibly different metamodel. At the end, several model-to-text transformation produce the generated code. In this module, you learn how to create metamodels in a way that they...
  • are easy to understand
  • capture all platform concepts correctly
  • are easy to maintain
  • express each concept exactly once (normalization)
  • make the models easy to transform

3. Creating metamodels in practice
In this module, you experience the different possibilities to create and use metamodels:
  • type them in manually using EMF
  • model them in UML 2.0 and convert them to EMF automatically
  • package and deploy them inside a cartridge

4. The basics about Transformations
Model-to-model and model-to-text transformations are the building blocks of today's MDA methodology. Learn in this module about...
  • QVT as a vision of the OMG (and which part of it has become true!)
  • Transformation languages and styles (declarative, imperative, hybrid)
  • ATL: the Atlas Transformation Language
  • How to express transformation rules for metamodels
  • Testing and debugging transformations
  • MOFScript: the language for model-to-text transformations
  • Developing and testing transformations using MOFScript in Eclipse
  • Leveraging hierarchically nested and polymorphic transformationen
  • Compiling, packaging and deploying transformations in cartridges

5. Putting metamodels and transformations to work

Having laid out the foundation, we will now create metamodels for domain specific languages (DSLs) in the team and write model-to-model transformations to compose a platform stack of DSLs. In the class, we also develop the necessary model-to-text transformations to get the generated executable source code.

At the end of this module, you will know how all the pieces fit together.


6. Letting your generator framework grow

Suppose you have created a successful code generator for your architecture or business domain and that you have releases it to your application programming project teams. What if new requirements for the generator come from those project teams and require the code generation framework to grow? How do you make sure that your chain of metamodels and transformations is strong enough to support the new requirements?

The answer is near: In this module, you see how to make minimally invasive changes to your metamodels and transformations to keep them maintainable and scalable over time.

Terms and conditions
Duration: 4 days
Prerequisites: object oriented development, UML, Java, experience with AndroMDA 4.0
Style: Highly interactive training in a team environment
Price per person: EUR 2500 + VAT
Next date: upon request

Copyright © 2004-2008 Matthias Bohlen <mbohlen@mbohlen.de>

Valid HTML 4.01!