“Steve Mellor and I independently came up with a characterization of the three modes in which people use the UML: sketch, blueprint, and programming language. By far the most common of the three, at least to my biased eye, is UML as sketch. In this usage, developers use the UML to help communicate some aspects of a system. As with blueprints, you can use sketches in a forward-engineering or reverse-engineering direction. Forward engineering draws a UML diagram before you write code, while reverse engineering builds a UML diagram from existing code in order to help understand it.”

Source: A Brief Guide to the Standard Object Modeling Language, 2004, p. 2

Adopted from Wikiquote. Last update June 3, 2021. History

Help us to complete the source, original and additional information

Do you have more details about the quote "Steve Mellor and I independently came up with a characterization of the three modes in which people use the UML: sketch…" by Martin Fowler?
Martin Fowler photo
Martin Fowler 18
British programmer 1963

Related quotes

“Today some evidence arises that UML will more and more be used not as a specification language but as a high level programming language. This has some advantages, as if the concepts of UML are executable, they can immediately be animated and tested, or the generated code even be used as implementation. Thus UML probably will have an implementation-oriented semantics describing this animation.”

Bernhard Rumpe (1967) German computer scientist

Bernhard Rumpe (1998) " A Note on Semantics (with an Emphasis on UML) http://sse-tubs.de/~rumpe/publications/papers/RUM98a/RUM98a.pdf." Proceedings of Second ECOOP Workshop on Precise Behavioral Semantics. 1998.

Martin Fowler photo
Grady Booch photo
Ivar Jacobson photo

“I know that I disagree with many other UML experts, but there is no magic about UML. If you can generate code from a model, then it is programming language. And UML is not a well-designed programming language.
The most important reason is that it lacks a well-defined point of view, partly by intent and partly because of the tyranny of the OMG standardization process that tries to provide everything to everybody. It doesn't have a well-defined underlying set of assumptions about memory, storage, concurrency, or almost anything else. How can you program in such a language?
The fact is that UML and other modelling language are not meant to be executable. The point of models is that they are imprecise and ambiguous. This drove many theoreticians crazy so they tried to make UML "precise", but models are imprecise for a reason: we leave out things that have a small effect so we can concentrate on the things that have big or global effects. That's how it works in physics models: you model the big effect (such as the gravitation from the sun) and then you treat the smaller effects as perturbation to the basic model (such as the effects of the planets on each other). If you tried to solve the entire set of equations directly in full detail, you couldn't do anything.”

James Rumbaugh (1947) Computer scientist, software engineer

James Rumbaugh in Federico Biancuzzi and Shane Warden eds. (2009) Masterminds of Programming. p. 339; cited in " Quote by James Rumbaugh http://www.ptidej.net/course/cse3009/winter13/resources/james" on ptidej.net. Last updated 2013-04-09 by guehene; Rumbaugh is responding to the question: "What do you think of using UML to generate implementation code?"

“What's really going on is that Executable UML is a concurrent specification language.”

Stephen J. Mellor (1952) British computer scientist

Source: MDA Distilled. Principles of Model-Driven Architecture, 2003, p. 96.

Related topics