Richard Dawkins on Models
is the author of the book "The Selfish Gene". So he's basically a biologiest. So why is he talking about models? Actually, he probably does not know that he talks about something that is interesting to model-driven folks in software development. However, this is a really interesting talk and as part of it, he nicely illustrates what models are.
By the way, this is a talk
recorded at the 2005 TED
conference - an interesting conference, and they also have a podcast
that is worth listening to.
New Article on oAW and xText
Sven, Arno, Bernd an me have written an article about MDSD and oAW which has been
published on The ServerSide
. It is called The Pragmatic Code Generator Programmer
and is about a reimplementation of an exerceise from the best selling book The Pragmatic Programmer" by Dave Thomas and Andy Hunt. We've used openArchitectureWare 4.1
and Xtext for the reimplementation, of course.
My books at Universities
It is nice to see that some of the books I (co-)authored are picked up as teaching material in universities. An important criterion when deciding on which topics to write a book was that I wanted to write something that has a conceptual angle to it; I wouldn't like to write a book that 'just' describes some API or technology (although such books are obviously useful, and I have many of them on my shelf). If a book is used for teaching, it obviously has to have that conceptual angle. That's why I am happy that the material is picked up for teaching.
Here are a couple of examples. The Remoting Patterns
book is used by California Polytechnic State University
is a course on Distributed Computing
. Jeff Gray
's group at the University of Alabama at Birmingham
use the MDSD book
in a course on Model-Driven Software Development
. Also, a number of german universities use the german edition of the MDSD book
: examples include a course at Uni Freiburg
and one at FU Berlin
The Role of Model-to-Model Transformations in MDSD
Many people have said many things about Model-to-Model transformations and how good, bad
or essential they are for MDSD. Fact of the matter is: in mainstream MDSD (if there is something like that :-)) most people generator code directly from models and M2M does not play an important role. Certainly that was the case in my past projects. However, I see this changing - slowly but certainly. I have been working on several projects - some larger, some smaller prototypes - where M2M played an important role. The projects range from rather simple model modifications (where a model is modified according to some external "aspectual" model) up to the stepwise transformation from a business domain, to an architectural domain and finally to code.
So why is it that M2M starts to play an important role? I think there are several reasons. One is that people are beginning to have experience with the basic, architecture-centric MDSD approach and want to leveral "business DSLs". The other thing is that tools are getting better. For example, in my projects we have been using openArchitectureWare's xTend language to do the transformations. It is a small, maybe not perfect, but practically useful transformation language and tool support is ok (if not perfect: we have no debugger).
So, I just wanted to point that out to people should not discard M2M, and that it is becoming a practical reality.
One important comment: If I talk about M2M, I do not talk about having developers modify the destination model of an M2M transformation. Rather, in my view, a M2M transformation is about modularizing the transformation process and reusing partial transformations. If you want to a modify the result of a M2M transformation and then continue to transform it into yet another model, that's a recipe for trouble. Don't do that.
Best Practices for Model-To-Text Transformations
In order to participate in the Eclipse Summit 2006 Modeling Symposium
I wrote a position paper summarizing the best practices for model-to-text transformation
(i.e. code generation). I wanted to write these things down for a long time, and now I finally found a reason to do it :-) Another reason to write it down was to make sure these things will have influence on the upcoming "official" Eclipse EMP M2T project in which openArchitectureWare
will play an important role.