DSM and UML

, Oct 15, 2005

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.

On October 16, 2005 10:33 AM, Mark Masterson said:

Re. MDA attendance vs. DSL attendance at JAAO — Really? Do you think that MSFT’s efforts in this regard have a) a lot, b) something, or c) very little to do with this? What I’m curious about, I suppose, is: do you feel that there’s a lot of interest in what MS is doing here, and therfore less interest in “generic” MDA? Or is it a “generic” anti-hype cycle, unrelated to what MS is pushing?

On October 16, 2005 11:52 AM, Stefan Tilkov said:

I think it’s several factors coming together. For one, UML, MDA and OMG in general seem not to be considered “cool” anymore. Many perceive MDA to be the anti-thesis of Agile, although I fail to see any connection. On the other hand, Microsoft is getting more and more recognition for being able to actually innovate instead of just copying. So I guess I’d pick your option b) if I had to.

Strange things: Not too long ago, any self-respecting geek would have hated to admit anything good ever came from Microsoft ; nowadays it seems that it’s far more common to bash the process-oriented, somewhat idealistic OMG folks.

Makes you wonder when the W3C is going to be considered old-fashioned and irrelevant …

On October 16, 2005 4:02 PM, Mark Masterson said:

Hmmm… I’ve not been shy about expressing my opinion that the UML, for all its warts, is Good Enough (tm) (in the Adam Bosworth sense). I am skeptical of the “lots of little DSLs” approach. I make my living off of customizing and customized software, so I’m well aware of its value. But, even without “lots of little DSLs”, everywhere I go, I see a common situation: the grizzled old contractor who has been working at Company X “forever, because he’s the only one left who understands the system”. I worry about a Tower of Babylon effect from “lots of little DSLs”, and fail to see how they will not simply make the “who understands this?” problem worse.

On October 16, 2005 5:08 PM, Stefan Tilkov said:

I agree; that’s exactly the interop benefit of UML I’m alluding to above.

On November 6, 2005 10:27 PM, Juha-Pekka Tolvanen said:

I don’t see a problem in having “lots of (little) DSLs”. Although there might be lots of domain-specific languages (cf. XML world), as a developer you hardly work with many of them. And when you are developing software you must always understand the problem domain anyway. Having a language that allows you to work directly with the domain concepts is one way to consider. It is far easier to solve the problem in domain terms than with implementation concepts (such as classes in UML or in code).

On November 6, 2005 11:43 PM, Stefan Tilkov said:

Juha-Pekka, great to see you commenting here. XML is a good analogy: While there are (far too) many XML-based languages, they all share a common core. I believe that there’s a benefit if DSLs or DSMs also share a common subset, sufficiently large to be useful, small enough to not get in the way.

MOF seems to be the only standardized concept targeted exactly at this problem. It does not have much traction, though — which is why we use UML (with all of its problems).