Friday, September 05, 2008

Product-line engineering with UML

Some time ago one of our current customers, an international tractor manufacturer, wanted us to come up with a domain-specific language to describe his products (i.e. tractors) in order to manage the different variants, etc.

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:

Anonymous said...

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

Peter Nehrer said...

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...

Miles Parker said...

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...

Anonymous said...

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