Richard Dawkins on Models
Richard Dawkins 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.
Labels: eclipse
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 BerlinThanks :-)
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.
Labels: eclipse
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.
Labels: eclipse