If only
I have read many articles on the benefits of UML and how it can save the world (or at the very least, save your project), but real-life experience has been very different.
I work on a contract basis, and as I've worked for many different companies in my time. I have lost count of the number of times I have been asked "so, what's your UML experience like then?". A perfectly reasonable question. However, next time you are asked this, ask "why? Do you use it? Does it work for you?"
And therein lies the rub. In the real world, many projects start off with good intentions of using UML models and the various (usually very expensive) tools needed to generate them. In every single case I have experience though, the use of UML (and especially the use of the tools) has failed. the top reasons for this are as follows:
Time. I have seen this many times. The project starts off with good intentions, modelling everything. After a few months, someone points out that there is a deadline looming and shit, we don't actually have anything to show for it. Using UML to it's full is simply way too expensive. It simply takes too long. And once you have your UML model (assuming you've not given up on it long before, which you probably have), you then have to write some code that actually works and does some real-world stuff. More time. More expense.
Which brings me on to the next problem - the tools are just not good enough. Of course, this is what you are addressing in this article, but they haven't been good enough for absolutely donkey's years. I don't know why this is, and I don't know why the writers of these tools think they ARE good enough (or why the people who buy these tools think it's a good idea). As a general rule, your average UML tools is :-
* Incredibly tedious and slow to use. As you say, "point, click, point, click...". But "point click, point click..." is REALLY tedious. It's REALLY slow. It's REALLY inefficient. Of course, this isn't just a problem with UML tools. For many applications, the classic (generic) windows GUI is a very inefficient and a very very slow way of working. I can put up with it to write a short letter in a word processor. But developing an entire software project? No way.
* Half-baked. Many of these tools allow you to draw your blobs and link them together with arrows and stuff. They let you draw your sequence diagrams etc etc. Great! Until you get down to the nitty gritty and then it's incredibly difficult and incredibly time consuming to express the subtleties of your system. Sometimes, what you want to express is simply not possible in the confines of the modelling tool. Sometimes, it would take you a lifetime to do it so it's totally unrealistic. You end up embedding lumps of conventional code into the model to express what you actually want to do. This is infinitely worse than coding the thing up in the normal way, because what you end up with is a model that has lots of important detail scattered all over the place. It then becomes very difficult to understand the whole, or even be aware that more exists. It becomes very difficult to see the (often) subtle connection between components of the model. Ok, you can annotate the model so that you don't loose track of what's going on, but again, this just adds noise.
You may have gathered by the above that I'm not a big fan of UML and even less of a fan of the tools that are available. Quite frankly, I have never seen a successful application of either. I'm not saying there ARE no successful applications. I KNOW that there are. But the cost factors, the incredible amounts of time involved, and the mess that you usually end up with is, in my experience, simply not worth it. So, "why? Do you use it? Does it work for you?". Answers to these questions range from "no, we don't use it, but we're planning on doing so", or "we have used it in the past, but it wasn't very successful", or "yes we use it - it's really good" (but when get down to it, it's been used in a very cursory way and even then hasn't been particularly useful).
Maybe I'm a Luddite, but to me, UML is the Emperor's new clothes, and I have yet to see a realistic, commercially cost effective, application of it to any great extent. I think It's a GREAT idea. I WISH it were true. But in reality, it simply does not deliver the benefits it's sold on. it just doesn't work anything like well enough.