hide all comments

DSM

What is different between UML models and DSM models?

November 02, 2005 15:09:42 +0200 (EET)

Last week at OOPSLA panel on Design and Modern Software Practices Grady Booch gave one answer: when the project gets closer to the delivery you normally throw away UML models. This is a natural choice since the efforts needed for keeping the design - user view, dynamics, behavior, interaction etc. - linked with the implementation are simply too high. DSM is different as models are the primary design artifacts. With DSM, the problem is solved only once by visually modeling the solution using familiar domain concepts. The final products are then automatically generated from these high-level specifications with domain-specific code generators. You can use the same DSM models also to generate test cases, documentation, configuration etc. If you have created something valuable you don’t throw it away!

Comments

my response

[Grady Booch] December 13, 2005 19:52:22 +0200 (EET)

You've misquoted me; see my reply at http://www-128.ibm.com/developerworks/blogs/dw_blog.jspa?blog=317.

Juha-Pekka's response

[Juha-Pekka] December 15, 2005 17:16:56 +0200 (EET)

I disagree - and I'm not the only one:

Ivan Moore: "Grady Booch: I often throw models away but tend not to throw away the source code."

Brian Foote: "There was something decidedly devolutionary in Grady Booch's overdue exhortation to cast models aside, and in his candid admition that no one reads code anyway."

But let's let the full panel transcript have the final word: "I typically throw my models away, but I always save my source code."

Context

[Jim McIntyre] December 15, 2005 18:55:14 +0200 (EET)

Methinks it far too easy to misconstrue context from a single sentence....

Context cont'd

[Jack Jones] December 15, 2005 21:25:20 +0200 (EET)

Nice hint Jim. The quote was correct, but there's a pretty relevant second quote in the same context... Grady: I actually don't throw away all my models; I keep the good ones, the ones that represent the significant (costly to change) design decisions. Jack - who's not going to pun on 'context sensitive languages'

About context and value of models in model-driven develoment

[Juha-Pekka] December 15, 2005 22:21:04 +0200 (EET)

Context is obviously the panel and in my opinion it raised several interesting issues. Transcript seems to be the best we have now, although OOPSLA panels are usually recorded too (including video). One interesting issue was the value of models - do you keep them. Keeping for instance a model representing architecture (costly to change) is natural. I would say that in truly model-driven development you typically would not throw models away. If your code is generated from models, why would you do that? As far as I can see the promise of modeling has been to shift the focus from implementation to design. Models serve as mechanisms to get a better understanding but they can also be input for code generators. This automates development leading to improved productivity, quality and complexity hiding. Unfortunately, many current modeling languages are based on the code world and offer only modest possibilities to raise design abstraction and to achieve full code generation.