Markus Voelter tutorial notes
I managed to take one of the few empty seats at a Markus Voelter tutorial at OOPSLA last Tuesday. I first encountered his name several months ago when I bought his “Model Driven Software Development” book on Amazon.
Just a few notes from this tutorial:
He clearly has a lot of experience using these techniques in the real world. I got the feeling that he has a dozen examples for every concept he spoke about.
It was gratifying to see him address the issue of the “declarativity” of languages. He didn’t make the point exactly the same way I would, but he did acknowledge that there’s no easy way to rank languages in terms of their declarativity. At the top, he supposed, would be a language with a single “do what I want” symbol.
My opinion: Languages are always “declarative” with respect to their operational samantics. Some happen to declare the control flow graph. Other’s don’t. That seems to be the main distinction between the two most abstract classes of languages. It’s nothing especially illuminating.
Another theme of the talk was the idea of positive and negative variability in software product lines. The classic example of negative variability is ifdef statements in C that allow some “projections” of C code to be a subset of what the file specifies. Positive variability would be more like the usual code generation situation.
The third big idea I noted was of “transformation weaving”. I wasn’t quite following the concrete example he was using in the tutorial, but I do plan to put in on the queue of phrases to hunt down.
A final comment: There was a slide on which he had labeled the various levels of models as M3, M2, and M1, with M3 being 2 levels “more meta” than M1. I wouldn’t have even noticed except that he pointed out that his thinking has changed since creating the slide. That fixing an absolute scale of meta-ness is too brittle. Better to simply define a “more meta than” relation, and allow the situation to dictate a natural number of layers.
Posted by Adam Pingel @ October 30th, 2007 under Software Engineering.
Comments: none






Write a comment