views:

186

answers:

6

UML provides us with many different kinds of diagrams. but in many situations only small set of them is really necessary, what do you think about the most usefull UML diagrams, even for very small projects?

+4  A: 

I do not think UML diagrams are essential part of a project documentation whether we're talking about big or small projects.

Good comments around provide much more value than sophisticated diagrams.

I personally have an impression UML is a toy of the academia world. It's the only place I was hearing and seeing people running around with UML, SOA and so on.

In my working practice I've barely seen UML at all. Well, maybe once during my term project and at my current job where we've got a couple of eight-years-old (and just the same deprecated) diagrams somewhere on the internal FTP server.

Developer Art
+1 For stating that they are not essential but I diasagree about comments - good construction with descriptive, readable code is far more useful than comments. Also, I think saying that UML is a toy of the academic world is a bit much - they definately put too much faith in UML code generation saving us all - but UML still has a practical use - depending on the situation.
David Relihan
@David Relihan: I'm not saying UML is completely useless. I just think it is a bit overrated. Using UML does not automatically result in quality software. Just use it as a form of documentation if it suits your needs.
Developer Art
A: 

Please see my answer for similar Q here. Though these are not a must

aJ
+1  A: 

Usually formal UML is too much for small projects. Just stick to basic class diagrams and simple use-case diagrams.

Small projects are (in my experience) more often subject to change so your diagrams will be out-of-date very often. You are much more likely to keep a less formal diagram up-to-date than redo all the fancy UML stuff.

dbemerlin
+4  A: 

Well, it really depends on the project. I think it is wrong to just create any UML diagram as a rule without assessing if it will be really usefull.

However there are some obvious situations when they're usefull:

  • If your project will be any way large in terms of OO structure then it is usually usefull to create a class diagram. That way you can deal in abstractions until it is time to get stuck into details.

  • If you project will be mostly UI driven then it can be quite useful to create a Use Case diagram as a way of defining requirements. This is especially useful if you can get your customer to buy into this method.

  • If it looks like your system will have many interactions between objects then creating a sequence diagram can be usefull for understanding interactions. Also, I think sequence diagrams are the most intuitive for developers as I notice a lot of developers instinctively diagram there interactions like this - even if they're not familiar in UML - in simple powerpoint\visio diagrams.

  • Deplyoment Diagrams are obviously usefull if your system will use many technolegies and require a lot of HW.

I think key point is that only use UML when the software becomes complicated to the point where we need to think in abstractions - UML helps visualise and document these abstractions.

David Relihan
Agree, and I would add that any process must be adapted to the project. There's no-one-size-fits-all solution when it come to development processes
chrisbunney
@chrisbunney Exactly - but its not for want of trying!!!
David Relihan
A: 

UML is dead, nobody who matters uses it.

The only people that use UML are consultant types who write articles and are trying to be formal and fancy and lack substance.

If UML is so great why cant i find any for any of the projects that Google publishes on googlecode ?

Where is the UML for Ruby or Python or DOT NET or Java ?

mP
Is that not a bit extreme? UML is a tool like anything else. I agree that far to much emphasis was put on it in the past but surely it still has its use.
David Relihan
you said that UML is dead, so what do you recommend to use when we want to design a big project?
Nima Rikhtegar
I think MS and Sun use UML or at least compareable diagrams internally. Ruby and Python are community projects (afair), they are not planned like commercial software but instead evolve. Open-Source often has problems with high complexity projects that turn into big piles of mud (which doesn't mean the projects are bad, just that they should have planned more). Also: Try to distinguish from what is really used and what you are allowed to see. Maybe google uses diagrams but just doesn't publish them?
dbemerlin
Many OSS projects are also much more wonderfully designed than those created by UML-wielding architects.
Xiong Chiamiov
If MS or Sun really thought the UML was of value why dont they publish it along with their other documentation. Java has javadoc but no attempt is made to publish the accompanying UML diagrams ever, lets pretend its not messy.
mP
A: 

UML is dead because the use of open source crapy tools !! Many companies take free tools and just create few diagrams, no training at all then they say that this is not useful. This is non professional and very limited use of UML is a real disaster for projects !!

Funny how Rationale the company behind UML cant even use RUP/UML to design and build a quality product. One would think that their tooling would be a validation of their process...maybe it is.. maybe thats why the tools suck, because UML sucks.
mP