Fog Creek Software
Discussion Board




Beware of the UML snake-oil salesmen

There have been a number of posts on this forum about UML.... is it good, is it bad, does it work etc.

All it is, is a notation, and like any language, works if the target audience understand it. The snake oil salemen (ok, not all of them are) are selling tools and methods to make it easier to 'speak' this language called UML, and to translate from this language to another one, eg java (aka round-trip engineering).

For a great article describing exactly what UML is, without using UML, check this link out  http://www.therationaledge.com/content/apr_01/k_uml_jm.html

UML will not solve your software development ills, in the same way that speaking French will not make you romantic.

tapiwa
Tuesday, October 22, 2002

That's a good short article.

It said:
"UML ... is now the way software professionals talk to each other about software"

Is this true? It's not true for me.

I think before this could be true, we'd have to have a standard graph package for html renderers so we could pass around uml diagrams on web pages and email easily without resorting to screenshots and putting gifs on a server somewhere.

I'm skeptical that will happen anytime soon, though I think it is a necessary addition to browsers (graphing/charting).

I guess the browser folks are too busy doing important things like simplifying:

<IMG SRC="graph1.gif" ALT="graph of e^x" height=30 width=100>

into:

<image>
<source>graph1.gif</source>
<alt>graph of e^x</alt>
<height>30</height>
<width>100</100>
</image>

X. J. Scott
Tuesday, October 22, 2002

Is UML complete?  Can it be used to describe all code in the same way that a schematic can describe all circuits.  In the electrical engineering world, a schematic conveys all: a complete set of equations can be written which exactly matches the circuit.  Additionally, the schematic is often more useful than the equations for design, the equations are more for analysis.  I'm just guessing, but could it be that in EE the circuit came first, and then the analytical equations - historically and experimentally?

Consider CS, however.  The UML did not come first, the code came first, the descriptive part came later.  Can UML describe multithreaded relationships?  (I don't know, I'm asking).  From what I've seen, UML seems to convey classes and data attributes of the classes - which is certainly useful, but not complete.

Anyhow, my basic question is "is UML complete"?

Nat Ersoz
Tuesday, October 22, 2002

[Can UML describe multithreaded relationships]

Yes, using sequence diagrams you can establish when race conditions will occur, etc:
http://www.objectmentor.com/resources/articles/UMLSequenceDiagrams.pdf
(PDF I know but it clearly describes sequence diagrams.)

Although I don't awlays use UML for every project I do use it and find it useful for explaining a proposed architecture to other developers or technical people. There are free UML tools such as http://argouml.tigris.org/ that can be used in place of expensive ones. It certainly wouldn't kill anyone that works with OOP to get up to speed with UML.

If you want another description:
http://www.omg.org/gettingstarted/what_is_uml.htm

Ian Stallings
Tuesday, October 22, 2002

I love the UML.  We don't use it across the board, but the few of us that do love it.  It makes it much easier to communicate architecture compared to just wading through source or reading a high level design document.  I'd hate to be forced to apply it to every situation though.

have it
Tuesday, October 22, 2002

Very nice Ian, thanks for the links.

Nat Ersoz
Tuesday, October 22, 2002

Nat, I'd be astonished if UML were complete - otherwise they wouldn't have had to invent the OCL in an attempt to fill in the gaps.

There's a school of thought that the attempt to make diagramming notations complete in fact makes them less useful. Michael Jackson (not the singer) has a section entitled "Poetry" on this topic in his excellent book "Software Requirements and Specifications".

Andrew Simmons
Tuesday, October 22, 2002

A complete diagramming language would have to be able to represent every possible code construct.

Therefore, a complete diagramming language would be a programming language itself.

And you'd need another diagramming language to present these incredibly complicated diagrams in a simpler format.

Which then gets more complicated in an attempt to be complete...

lather, rinse, repeat.

Chris Tavares
Tuesday, October 22, 2002

We used the rational suite on the last development I worked on, the biggest problem was that all 7 developers had a different interpretation of the UML.

Try and get 7 developers who interpret object sequence diagrams differently to do a design review, the end result was we spent all day arguing about UML, not the design.

Alberto
Tuesday, October 22, 2002

I've used the UML on a big project - and all the heartaches expresssed above were true for me.

In fact while trying to build the product based on the UML design, we were frequently reduced to drawing regular old flowcharts to conceptialize the internals of the abstracted OO models that our architects were so proud of.

A flow chart can accurately describe business rules and program flow. UML is just architecture astronauts gone bonkers.

Gordon Taylor
Tuesday, October 22, 2002

We talk about UML - "oh that's just hyped up snake oil used by architect astronauts and all my developers dont know it so we argue on what it means, I use visio instead.."

Visio? great idea :-| keep using it..

UML is a useful modeling language that is used by a shit load of developers to convey architecture, nothing more, nothing less. Don't want to use it? Then don't.

trollbooth
Wednesday, October 23, 2002

*  Recent Topics

*  Fog Creek Home