Ok.<p>UML does NOT equal CASE. Yes, you can use MDA and other techniques to somehow convert UML and OCL into a quasi-CASE tool, and there are lots of folks excited about UML as part of a code-generation tier, but UML is a specification for drawing technical diagrams. That's it.<p>UML is also not a methodology. Yes, there are methodologies that rely on bits of UML but that's a one-way association. You can use UML all the time and never do a bit of any kind of methodology.<p>UML is also not for large projects. Yes, it helps to diagram things instead of writing them out, especially if you have 100 developers or more. But drawing things can help teams as small as two people. Heck, drawing things can help a sole developer.<p>You need to be clear about the question if you would like to get a meaningful answer. UML is for drawing pictures in a consistent way. So is the question "Do real developers draw pictures consistently?" Because in my teams, we use UML when we need to sketch out things so that everybody has some baseline to understand what's being drawn. It has nothing to do with generating code, completing a process, or being part of some huge team.<p>I liked this comment: <i>If a diagram takes more than 5 minutes to sketch on the back of an envelope it is generally too complex</i><p>I might extend it to 15-20 minutes, but the gist here is correct, at least for small teams. Different story entirely with large teams, though. With a large team, having a visual roadmap of where things are and where things go is hell of a lot better than trying to type it up in a Word document or teach people by random story-telling. (It should still be pretty simple, though. The purpose is communication, not documentation or showing people how detailed you can make something)