I like UML design cause it offers me a handy way to design, plan and implement my ideas. But some arguments occur: 1. UML is specially for software engineers or advanced developers; 2. on the other side, some said that UML is really helpful for new entry people to learn programming language. But to my point, UML is both benefitful to both sides.
By my experience, UML does help me a lot on both sides. When I firlst study programming language - Java, I feel difficult to transfer my previous knowledge into current application - abstract world. One day that I can't remember the accurate day, I saw some picture which composed by rectangle, round, oval shapes and lines, arrows. Viva, excellent. Later I had some experience on programming, it's necessary for me to outline the framework first before doing my work. More and more, I found that I can't leave UML anymore.
So, I tried some UML tools as more as I can find, which includes free, opensouce, commecial software. Basically, I am a opensouce propagator/sermonizer/hype/advocate. That is no shame for free, either to small potatoes or to those sofeware tycoons. Below are some UML tools I had used or tested before, I am writing this little article only for people's reference. And I found an almost complete list (http://www.umlchina.com/Tools/Newindex1.htm) for your futur reading.
1. BlueJ (http://www.bluej.org/) is one of my favorites. It's developed by university teachers, which is mainly for teaching students how to study Java programming language easily. Although it looks a bit simple and crude, in fact, I had say it's really convenient for beginners to use and get familiar with how Java language operates. And BlueJ also accompanies with some books you may find on amazon.
2. Jude (http://objectclub.esm.co.jp/Jude/jude-e.html) is developed by a Japanese company. The community version is small but robust enough for new beginners. Although I don't like Japanese for historical and ideological reason, I had to say Japan enterprises are very strong on product innovation.
3. Rational Rose (http://www-306.ibm.com/software/rational/), all right, I don't want to comment more to it. If I have enough money, Rose is absolutely my first choice.
4. As an IDE, JBuilder not only offers us the ability to code applications but also a function to review the application's framwork by UML, which is generated automatically. But similar as Rose, it also costs much.
5.