 |
 |
 |
 |
|
Home
|
| |
|
Managers
|
|
|
| |
|
Architects, Developers
|
|
|
| |
|
Organisation
|
|
|
|
 |
 |
 |
 |
|
|
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.
| 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.
|
| 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 |
|