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?
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.
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.
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.
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 ?
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 !!