September 10, 2004

Personal iQgen Extension

Today I've done some experiments that I envision for quite some time.

Applying Model Driven Architecture or a simple model-based generative approach to real world projects forces you to follow strict processes in order to ensure that your development steps stay repeatable.

While in early stages of development the forward engineering approach is extremely powerful, it becomes somewhat inappropriate when going to latter phases of projects. The temptation to abandon the generative approach and do all changes in the code increases. (For more information of forward engineering you could consider this short introductory part of the iQgen doc.)

The reason for that is a shift of scope in the development activities. While the common approach follows a push model (commonly model changes are pushed into code through generators), it would be more appreciated to use a pull model (that is, "update code fragments x, y, z from model with current transformation-rules").

In order to move into that direction I've extended iQgen a little bit to track metadata according to transformations and their execution.

With this it's possible to query dependencies between model elements of various abstraction levels (PSM / PIM), code and iQgen templates.

The following picture shows a part of iQgen's GUI with the (first) simple dialogs which can be invoked on model elements or generated files in order to query the thing I've called Transformation Repository.

iQgen-Screenshot.PNG

As you can see it's very beta. But the infrastructure would allow to execute subsets of transformations. For the ease of model driven development in latter stages it's now possible to start generation directly from the code point-of-view.

I wonder if this is considered useful or even necessary and appreciate any feedback.

Posted by Phillip Ghadir at September 10, 2004 6:18 PM | TrackBack