One of the (very few) sessions I attended at JAOO was the one recommend to me by Steven Kelly: Juha-Pekka Tolvanen from MetaCase introduced Domain Specific Modeling based on some case studies where MetaCase’s tooling is used. It was a good presentation; I found myself nodding in agreement most of the time.
One of the things I disagreed with, though, was the predictable UML bashing. Interestingly, Juha-Pekka used one of the arguments I use all of the time as well, only with a slightly different pitch: We agree that when you use UML to visualize low-level language constructs, for example create a UML class diagram containing all of your low-level technical J2EE artifacts, there’s little benefit and nothing domain-specific. You essentially provide a different view on your source code, at exactly the same level of abstraction.
The difference is that — at least in his talk — Juha-Pekka’s generalized this to UML in general, while I use this to criticize tools such as Together. We use UML in a number of projects in a way very, very similar to the way DSM is used in his examples. I’m the first to admit that UML is far from perfect, and I concede that using a “real” DSM approach such as MetaCase’s may often be superior to the poor man’s DSL available in UML (UML profiles). The benefit, of course, is the increased level of interoperability, both when communicating with humans as well as when exchanging information between tools.
In any case, it was funny to see that the MDA track at JAOO drew very little attention while the DSL track was packed, when in fact the presentations’ contents were very similar. It seems that MDA has now entered a massive anti-hype cycle.