I always was really skeptical about using UML to define DSLs, but after investigating several month in tweaking it, we came up with an IMHO very pragmatic and concise solution.
With this a farmer is now able to simulate how it feels to work with the different tractors.
The DSL provides the typical variability people need, when defining a new product:
- number of wheels
- number of exhaust pipes
- whether the farmer wants to sit at the front or behind
- etc.
Here's an example of how such model looks like. Isn't that declarative and intentional?

With Ed on board and his new contacts at NASA, we hope we can reuse this DSL in order to model space ships, etc. at NASA.
4 Kommentare:
Nice approach, indeed. This shows us that UML is really much more "Universal" than being "Unified", as it obviously also applies to mechanical engineering.
Consequently, the next step is to replace physics by QVT. Just use some "map"s to see how your tractor/rocket accelerates, and skip these nasty differential equations.
- Erhard
Wow, this is fantastic! Thank you so much for opening my eyes to this approach. It suddenly became perfectly clear what my four-year-old son has been doing all along: drawing sophisticated product diagrams using UML! And I thought he was just doodling...
The representational efficiency and directness of that model is really astonishing. I remember with fondness the many fascinating days (weeks?) I spent in my OOA&D class learning different ways to combine those figures in ways that had nothing to do with any actual usage. This is a revelation. I particularly like the one to one relationship that this technique allows. If I can make one critique, I think you should move the wheel on the left right about 25 pixels. If you're going to present this to the tractor firm's upper management you're going to need to clean it up a little bit. No, that's too far, back the other way. OK. Oh, the two boxes aren't aligned perfectly. You can align them using the toolbar on the top there...
Sven, the Brumm-Brumm tractor is wonderful. I really love it. I like use case wheels most...Isn't it called Use-Case driven approach?
-Tanya
Post a Comment