Archives pour: 2007
24.12.06
MODELWARE
MODELWARE is a project sponsored by the EU's sixth framework programme in Information Society Technologies.
MODELWARE has three major objectives:
- Develop a solution to enable a significant increase of software systems development productivity thanks to Model Driven Development (MDD)
- Lead its industrialization
- Ensure its successful adaptation by the industry
Starting date for MODELWARE is the 1st October 2004. The duration is at least 2 years, possibly 4 years.
OCL4Java
This framework allows to design by contract using OCL based constraint JDK5 annotations.
Code:
| @Constraint("context TestClassPerson::setAge(anAge:Integer) inv: age < 120") | |
| public void setAge(int anAge) { | |
| age = anAge; | |
| } |
What to do with these annotations at runtime is configurable.
ATL QVT
ATL aka Atlas Transformation Language is a Model to Model transformation language and framework. It is meant to work directly on models that conform to meta models. Such meta models can be XML, UML, Java, Hibernate, Spring beans, etc ...
The nice thing is that the project also hosts a miriad of ready to use meta models in their zoo. At the time of this writing this zoo contains 73 meta models !
Instead of transforming a PIM UML model directly to a PSM (which is what I've been doing with AndroMDA 3.x for the last two years) and putting everything in a single monolythic code generation cartridge, ATL enables to introduce dedicated intermediate domain specific meta models.
The ATL project aims at providing a set of transformation tools for GMT. These include some sample ATL transformations, an ATL transformation engine, and an IDE for ATL (ADT: ATL Development Tools).
ATL is just amazing, it pushes MDA to a whole new level of moduralization.
What's more, my favorite MDA code generation tool, in its next major milestone (4) will be based entirely on ATL ![]()
Martin Fowler's FluentInterface
Martin Fowlers explains how to write an easy to use "fluent" DSL like Java API without the burden of defining a real full featured DSL.
Creating a textual DSL with xText article: The Pragmatic Code Generator Programmer
openArchitectureWare
openArchitectureWare (oAW) is a modular MDA/MDD generator framework implemented in Java(TM). It supports parsing of arbitrary models, and a language family to check and transform models as well as generate code based on them. Supporting editors are based on the Eclipse platform.
OAW has strong support for EMF (Eclipse Modelling Framework) based models but can work with other models, too (e.g. UML2, XML or simple JavaBeans) At the core there is a workflow engine allowing the definition of generator/transformation workflows.
Full echosystem, there seems to be everything you need to do MDD.
Some design choices are awkward though. Indeed, Model to Model transformations are not based on ATL whereas the project is part of the Eclipse GMT Project which hosts ATL ... oAW uses its own framework for that: Xtend. This seems like a general habit on this project, the validation language also is specialized: Check (instead of OCL)
On the contrary, AndroMDA 4 will be based on ATL
oAW headless build tool integration is limited, oAW is very tailored to Eclipse. A Maven 2 Plugin is in development though.
with syntax highlighting and validation ... nothing less, amazing
. In order to accomplish that, it leverages