The Artima Developer Community
Sponsored Link

Weblogs Forum
UML vs OO Design

12 replies on 1 page. Most recent reply: Dec 6, 2005 10:19 AM by piglet

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 12 replies on 1 page
Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

UML vs OO Design (View in Weblogs)
Posted: Jul 22, 2005 12:06 PM
Reply to this message Reply
Summary
A comment to an article by Craig Larman posted last year.
Advertisement
In this article, he says:
Getting a book or taking a course that focuses on UML, becoming certified in UML 2.0 notation, or knowing how to use a UML CASE tool has nothing to do with being able to think or analyze in objects or creating well-designed, object-oriented systems.

I mostly agree with him. My experience is that the tools often get in the way of the process. It's far too common to see people get lost in tools and notation, believing that this will somehow produce a good design.

I think the problem is that you have to really understand OO design to use the tools effectively -- at that point the tools become useful for communicating the design. But they don't help you create the design, they just help you talk about it.

The pitfall is that people have often come to believe that knowing UML would solve the problem of creating a good program. That's like saying that knowing some words and some grammar rules will solve the problem of writing good prose. It's necessary, but not sufficient.


Vesa Karvonen

Posts: 116
Nickname: vkarvone
Registered: Jun, 2004

Re: UML vs OO Design Posted: Jul 23, 2005 3:27 AM
Reply to this message Reply
> The pitfall is that people have often come to believe
> that knowing UML would solve the problem of creating a
> good program. That's like saying that knowing some words
> and some grammar rules will solve the problem of writing
> good prose. It's necessary, but not sufficient.

UML hardly constitutes a necessary vocabulary for design of any kind. Knowing UML simply is not necessary for good design.

Timur Izhbulatov

Posts: 1
Nickname: timur
Registered: Jul, 2005

Re: UML vs OO Design Posted: Jul 23, 2005 9:25 PM
Reply to this message Reply
IMO the purpose of UML is to help people in expressing their thoughts. But it's very complicated. That's why it's not working.

For me it's better to draw a class (sequence) diagram on a sheet of paper and (burn it :) explain the rest in conversations.

Nenad Nikolic

Posts: 2
Nickname: shonzilla
Registered: Jul, 2005

Re: UML vs OO Design Posted: Jul 25, 2005 4:52 AM
Reply to this message Reply
Let me add my two cents.

Knowledge and experience predates development of a technology, programming language and/or notation, and finally tools. The same order applies to the proper usage of the latter in the sequence.

One has to master the basics, develop one's own intimate understanding and mental mapping in any given field in order to become a master in the field. Frequently regarded to lay somewhere in between practice, science and art, there's no fixed path for mastery in software engineering/crafting. Regardless, one needs to peel layers of abstraction in order to achieve software development mastery. Onion-peeling metaphor springs to mind.

Aforementioned make software development attractive to more and more people, including charlatans (having more keywords in theirs sleeves than days of expertise) who jump layers of abstraction without looking back. And keywords are indeed magnets for charlatans which doesn't mean there's no potential and applicability of keyword (here: technology). This includes UML.

The whole point of UML, as a concise way to express thoughts related to software development lifecycle, is to better understand motivation to use it and how to do it.

How one can further reduce the path between a UML blueprint and a working&reliable system persists as a challenge. This notion requires broader attention. Attention will come automagically through more creative and effective usage of tools and plug-ins.

Wait, there's a prerequisite - we need more (UML-)conscious managers, too.

Michael

Posts: 12
Nickname: target
Registered: Jan, 2005

Re: UML vs OO Design Posted: Jul 25, 2005 8:32 AM
Reply to this message Reply
For me UMl is just a nice representation of ready design. In some cases it is easier to talk about architecture looking at picture instead the code. But I don't use UML for designing object model, I just do reverse engineering of all my code.

And good OO model came from TDD :).
1. Write an API usage as you love to have
2. Using IDEA create classes/interfaces right from the test code
3. Implement some logic to see how it works together
4. Repeat steps 1-3 till required
5. Reverse engineer all code to create some fancy Class & Sequence diagrams in the end.

This approach works for me.

Michael
Agile Blog
http://www.targetprocess.com/blog

Rajesh Babu

Posts: 2
Nickname: babujee
Registered: Jul, 2005

Re: UML vs OO Design Posted: Jul 25, 2005 9:09 AM
Reply to this message Reply
- UML As Sketch (http://www.martinfowler.com/bliki/UmlAsSketch.html) is probably the best use of UML in its current state; whether you sketch using paper or a tool.
- UML falters if you take it too far as a visual representation of your actual system. Issues of keeping code and design in sync come up.
- Also, I completely agree that UML cannot help you design better. UML can only COMMUNICATE your design better, provided the receiver is as good or better in understanding UML. If the common language is code, then you may be able to communicate better with skeletal OO code!

Michael Feathers

Posts: 448
Nickname: mfeathers
Registered: Jul, 2003

Re: UML vs OO Design Posted: Jul 25, 2005 9:30 AM
Reply to this message Reply
Someone at a conference asked me what I thought the future of UML was. I answered that I can't wait for the day that UML is as exciting and contentious as electrical schematic notation.

From http://www.reprise.com/host/electricity/schematic1_notes.asp (some teaching notes for electrical schematics):


Q: How many symbols are there for electrical and electronic components?
A: I don't know. Probably no-one does know. New symbols are invented when necessary to represent newly invented components. For electricity, there are about a dozen important symbols. You've already seen many of them.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: UML vs OO Design Posted: Jul 26, 2005 3:26 AM
Reply to this message Reply
> - UML As Sketch
> (http://www.martinfowler.com/bliki/UmlAsSketch.html) is
> probably the best use of UML in its current state; whether
> you sketch using paper or a tool.

The thing about UML As Sketch is that it isn't really UML at all, just sketch. A few lines, a few boxes; you get your idea across then everyone goes away and does the real work in real code. In a sketch no-one cares about the exact semantic difference between an arrow with a solid or dotted body or an open or shaded point. And if they do care (Someone always asks "Why is that arrow shaded in and not that one") then a few words drawn on will clarify things.

> - UML falters if you take it too far as a visual
> representation of your actual system. Issues of keeping
> code and design in sync come up.

That is quite right. Used in this way UML suffers all the disadvantages of written documentation with the added disadvantage that too few people have more that a vague understanding of what all the symbols mean.

> - Also, I completely agree that UML cannot help you
> design better. UML can only COMMUNICATE your design
> better, provided the receiver is as good or better in
> understanding UML. If the common language is code, then
> you may be able to communicate better with skeletal OO
> code!

Yes, indeed. UML is badly misnamed. It is not a 'Universal' language but a highly specialised one, designed primarily for use within the acedemic and publishing community.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: UML vs OO Design Posted: Jul 26, 2005 8:55 PM
Reply to this message Reply
The problem with UML is that I can express the design in code and comments much faster than I can in UML, even if I'm only using a crayon. Furthermore, I'll find a larger audience that can understand what I'm saying if I say it in code.

In retrospect, I'd have to classify UML is a huge failure. It isn't simple enough, nor is it expressive enough and in the end, its just overhead, adding no value at all to the system creation process.

Michael

Posts: 12
Nickname: target
Registered: Jan, 2005

Re: UML vs OO Design Posted: Jul 27, 2005 5:36 AM
Reply to this message Reply
Yeah, it is overloaded. Usually I use only Class diagram and Sequence diagram. Thats all :)

Rajesh Babu

Posts: 2
Nickname: babujee
Registered: Jul, 2005

Re: UML vs OO Design Posted: Jul 27, 2005 7:13 AM
Reply to this message Reply
> The thing about UML As Sketch is that it isn't really UML
> at all, just sketch. A few lines, a few boxes; you get
> your idea across then everyone goes away and does the real
> work in real code. In a sketch no-one cares about the
> exact semantic difference between an arrow with a solid or
> dotted body or an open or shaded point. And if they do
> care (Someone always asks "Why is that arrow shaded in and
> not that one") then a few words drawn on will clarify
> things.
>
What I usually do is, rather than a sketch on a white board or on a piece of paper, use a UML tool, project it on the wall, and do collaborative design. That way the UML notation itself is not dirtied. And the design can be archived for later retrieval. Digital pictures of whiteboard also works.

One thing I wish is to be able to put the (detailed design) class diagrams as code comments. It would be a cool feature to copy a class diagram and paste as text into the code (similar to unix banner command). That way the original thought process is captured in the code! Not sure if any current UML tools support it.

hitoro

Posts: 1
Nickname: hitoro
Registered: Aug, 2005

Re: UML vs OO Design Posted: Aug 7, 2005 4:58 AM
Reply to this message Reply
I have always found the UML notation very difficult to use when I want to communicate about the overall architecture and design of a system. The notation is so convoluted that a lot of text has to be written to understand what's going on.

UML is also difficult to read: many kinds of diagrams, tons of symbols and an incredible amount of subtelties. CASE tools really don't help when a notation is difficult to learn, remember and practice. Yes, some parts are trivial, but the real value of a deployment or a class diagram is close to none when trying to communicate about the design or the architecture.

The FMC notation positions itself as a complement to UML for expressing fundamental concepts without worrying about the innards of the system. This notation is very simple, with only three different kinds of diagrams and a limited set of symbols (four per diagram), and allows much more creativity. Because it uses so few symbols, going from a piece of paper to a diagramming tool is no-brainer.

The FMC web site has also many worth reading documents about how to effectively communicate with diagrams.

http://f-m-c.org

piglet

Posts: 63
Nickname: piglet
Registered: Dec, 2005

UML sucks. Posted: Dec 6, 2005 10:19 AM
Reply to this message Reply
When I first learnt about UML, I was disappointed. After all, it's not a "language" at all. Soon I realized that it was one of those hypes: Almost nobody actually uses it, except for rather trivial sketches (boxes connected by arrows, that's the "useful" part of UML, nobody bothers about semantic subtleties that allegedly give UML its "power") and to satisfy management. Management usually like it because it has been sold as a "methodology". They don't know that no living software developer ever found a method in that chaos. Of course you can't say this loud if you want to keep your job. Fortunately we can have some fun with UML:

Bertrand Meyer:
http://www.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html

UML, a modern dinosaur? A Critical Analysis of the Unified Modelling Language
http://www.citeulike.org/user/4vgacias/article/251714

Chris Date:
http://www.dbdebunk.com/page/page/622916.htm

The emperor really has no clothes ;-)

Flat View: This topic has 12 replies on 1 page
Topic: Designing Programs to Accomodate Graphic Interfaces Previous Topic   Next Topic Topic: Personal Knowledge Management Platform I'm Considering for Development


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us