Hello fellow committers,

today it has been a beautiful summer day in Meckenheim, Germany, and
my wife and I have spent a day in the garden, removing old plants
and replacing them by new ones.

That inspired me to start the same with AndroMDA! Are you all ready to
join?

As you may possibly know, I have been analyzing model transformations
and the OMG's new QVT spec during the last few weeks and I feel it is
time to act, now. I had a short email contact with Frédéric Jouault
from the ATL (Atlas transformation language) team. He said they will
release ATL with the sources at the end of the summer. This would be
an open source model transformation engine, quite close to the QVT
spec, a good opportunity for us to jump on the QVT wagon ourselves.

What would be the advantage for us if we use an explicit PSM and model
transformation from PIM to (possibly several) PSMs in AndroMDA? I see
two advantages for us:

* It will enable us to do model change propagation (see my Confluence
page on that exciting feature). Change a class name in the UML model
and watch Eclipse rename all kinds of artifacts, for example!

* It will make our cartridges much more maintainable and reusable
across different PSMs.

After thinking about Frédéric's statement that ATL will still take
some time, I realized that we should not wait but do our homework
(which is quite a lot). Until ATL becomes available, we can write
model transformations in Java that translate from one metamodel to
another (for example, from UML to 3GL). I remember that Pieter van
Gorp once said he has a metamodel for Java so we could possibly start
using that one as a starting point.

All this can and should be done based on MOF, e.g. Netbeans MDR. An
old test case in the AndroMDA core once showed how to create model
elements in MDR (I do not know whether that one is still part of the
code base or has been thrown away in the meantime).

The main things for us to do would be the following:

---Begin vision statement---

1) Create a branch for 4.0, enabling us to rearrange things
arbitrarily and still be able to ship bug fixes for 3.x.

2) Introduce one or more new metamodels for PSMs. We would use UML to
design the metamodels and use the UML2MOF utility of Netbeans MDR to
transform the UML models into true metamodels based on MOF as a
meta-meta-model.

3) Make all cartridges translate from the UML AST to the PSM AST
(based on that new metamodel) or from the PSM AST to source code,
using the template engine. Or, the cartridge can even translate from
one intermediate PSM to another, passing it to another cartridge,
etc., etc. The possibilities are endless. We will have to throw away
almost all the methods in our current metafacades and replace them by
methods which contain model transformations.

4) Let's make everything work again. AndroMDA should work perfectly as
it does today, just as a proof of concept.

5) Then, let's really press the "ignition" button of the rocket: Let's
generate code in C# for the Mono platform
(http://www.mono-project.com/Main_Page) with NHibernate as a
persistence mechanism (see their Confluence pages at
http://wiki.nhibernate.org/display/NH/Home). Let's write a C#
cartridge such that our transformations in the Hibernate cartridge
work identically for Java and C# without changing one single line of
code in the Hibernate cartridge! That way, we can show that our
transformations are truly platform-independent. The Hibernate cartrige
would transform into the (also to be developed) "3GL" metamodel, and
the Java and C# cartridges would translate from 3GL to code, making
the persistent entities run in J2EE as well as Mono or dot-Net.

6) As soon as step 4 works, we can develop model change propagation in
parallel to step 5!

---End of vision statement---

This will take us a year or so but it's worth it! We will be able to
throw away all kinds of duplicate template code that we have today,
and our metafacades will become more systematic and maintainable, even
when the complexity of future requirements from our user base
increases.

What do you think: Are you all ready to join? Feel free to ask
questions before you dare to say yes! :-)

Cheers...
Matthias

P.S.: By the way: AndroMDA will even become more componentized and
portable: We will be able to exchange metamodels and model
transformation rules with other MDA tools because everything will
still be entirely based on OMG standards (at least when ATL will
completely conform to QVT). We could export or import metamodels in
XMI and transformations in QVT language. (At least if the other MDA
tools adhere to the standards!).

---

Matthias Bohlen
"Beratung, die Projekte erfolgreich macht..."

Internet:
   http://www.mbohlen.de/
   [EMAIL PROTECTED]






-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
Andromda-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/andromda-devel

Reply via email to