OT: Importance of UML

J

Jeff S

Several years ago UML became a hot topic in the tech industry. At the time I
was taking a class and the prof told us all that UML was really nothing new
and that its authors were trying, for better or worse, to get some
standardized object modeling notation into common use so that we could all
benefit from having a common vocabulary (and line their pockets from book
sales - according to those with a cynical view).

Then the UML "standard" or whatever it is was published and then it expanded
quickly to the point where many authors were critical of its enormous size
and started publishing books with titles like "Simplified UML" or "Essential
UML," which each tried to point out only the really useful parts of UML that
we should care about (implying that we could ignore the vast amount of the
"UML standard").

So my question: Now that we've had several years with UML, how much is it
used out in the real world? Do any of you see it fully embraced, treated as
"simply another way to communicate," or totally ignored? Just wanting to
know how seriously I should take it - especially that many of the prominent
OOP pubs I've been reading (like from Martin Fowler etc) provide their own
"simplified" notation complete with keys (explanations of their symbols)
near the beginning of the document.

Thoughts? Opinions, Perspective?

Thanks!
 
W

William Stacey [MVP]

In my mind, the problem with any of the manually modeling is the human
factor. The simple fact is, code changes and the UML does not - if it is
just a little bit off or behind reality, its value goes way down. Use
modeling (i.e. flow charts, UML, etc) to figure out the problem and get a
good design. Use MS Class designer to keep a class model insync with the
code and to help visualize during dev. Your mileage may vary.

--
William Stacey [MVP]

| Several years ago UML became a hot topic in the tech industry. At the time
I
| was taking a class and the prof told us all that UML was really nothing
new
| and that its authors were trying, for better or worse, to get some
| standardized object modeling notation into common use so that we could all
| benefit from having a common vocabulary (and line their pockets from book
| sales - according to those with a cynical view).
|
| Then the UML "standard" or whatever it is was published and then it
expanded
| quickly to the point where many authors were critical of its enormous size
| and started publishing books with titles like "Simplified UML" or
"Essential
| UML," which each tried to point out only the really useful parts of UML
that
| we should care about (implying that we could ignore the vast amount of the
| "UML standard").
|
| So my question: Now that we've had several years with UML, how much is it
| used out in the real world? Do any of you see it fully embraced, treated
as
| "simply another way to communicate," or totally ignored? Just wanting to
| know how seriously I should take it - especially that many of the
prominent
| OOP pubs I've been reading (like from Martin Fowler etc) provide their own
| "simplified" notation complete with keys (explanations of their symbols)
| near the beginning of the document.
|
| Thoughts? Opinions, Perspective?
|
| Thanks!
|
|
 
G

Guest

i was at an MS open day (on team system) and they asked the question "how
many of you use UML for design" about 40% stuck their hands up. they then
asked "how many of you use UML after you have started coding" about 1% was
the response.
the general feeling was that you sketch the design out with UML then throw
it away once coding begins - thats not my thoughts, that was the MS view.

--guy--
 
D

Dragon

But, Is MS putting more enthusis on UML ?
See, There are Application Diagram, System Diagram and Class Diagram in
VS2005.
and that is closely Sync with code.
 
N

Nick Hounsome

guy said:
i was at an MS open day (on team system) and they asked the question "how
many of you use UML for design" about 40% stuck their hands up. they then
asked "how many of you use UML after you have started coding" about 1% was
the response.
the general feeling was that you sketch the design out with UML then throw
it away once coding begins - thats not my thoughts, that was the MS view.

Good!

The alternative is usualy the some appalling attempt at "round-trip"
engineering. I once discussed this with a tool vendor and he admitted that
it was a really dumb idea but "the customers demand it".

Personaly I do keep mine up to date but because they only capture high level
stuff they don't change much but if I had to choose between no UML and a
"complete" round trip solution I'd rather have none.

If you show your class diagram to someone new to the code and he finds it
useful then it''s worth having - if he just ignores it and heads straight
for the object browser then you 've over done it.

Also UML is a big subject:

Class diagrams - very useful. Everyone should use them.
State diagrams - rarely useful but essential in some places. They are a bit
of a mess because they have incorporated too many different notations into
one.
Sequence diagrams - Much overused - people never seem to grasp that they are
only a single path through the code and no substitute for a proper written
spec or state diagram.
Use case diagrams - a complete waste of paper (usecases themselves are
good - it's just the diagrams that have almost 0 information content)
All other diagrams - can be useful in places.
 
W

William Stacey [MVP]

| Class diagrams - very useful. Everyone should use them.

I suppose that why MS choose Class diagrams. They round-trip with your code.
Naturally if you add a class in your code, you need to add it to your
diagram if required. I like their diagram surface. I only would like a
playground surface with other objects and lines disjointed from the classes,
so I could add things like queues, lists, arrays and put my lines in.
Naturally, you could use Visio or SmartDraw, buy it would be easier to just
have their in VS with the consistent look and feel.
 
N

Nick Hounsome

William Stacey said:
| Class diagrams - very useful. Everyone should use them.

I suppose that why MS choose Class diagrams. They round-trip with your
code.

When I was criticising round-trip I was thinking mainly of C++ and separate
modelling and development IDEs (most places I have worked use Rational Rose
for the UML) - with C# and a single IDE it works OK but you only have a
limited set of diagram types and you can ONLY create code models so you
probably still need another product for everything else.
 
W

William Stacey [MVP]

| When I was criticising round-trip I was thinking mainly of C++ and
separate
| modelling and development IDEs (most places I have worked use Rational
Rose
| for the UML) - with C# and a single IDE it works OK but you only have a
| limited set of diagram types and you can ONLY create code models so you
| probably still need another product for everything else.

Agree. That is in fact the reason why it works with class models in c#,
because they are not trying to do *everything. The other folks who try to
do everything, don't get the round-tripping right or it just gets too much
in your way (from what I hear). Things like WWF is probably the lowest one
would want to go in terms of expressing logic with UI connectoids (basically
wiring up objects with if/else). Any lower, and things start to crumble
under their own weight. Sometimes, one line of code is worth 1000 pictures.

--wjs
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top