Free UML software tools FAQ: Can you recommend any free UML tools?
Over the last week or so I've been looking around again at free UML tools, and one that has really stood out is UMLet. While most UML tools try to do a lot of things, UMLet takes the "UML as sketch" approach, which I've generally come to agree with.
UML tools background - UML as a communication tool
About ten years ago I spent a lot of time trying to work with UML tools and UML diagrams, constantly working with Rational Rose (and other tools) to generate code from UML, and reverse-engineer code into UML, but I found I just wasn't getting the payback from the effort.
Although I didn't think I needed it, I even took a UML training course with Martin Fowler, in part because Borland was paying the cost for me, and in part because I wanted to be able to ask him questions about how he actually used it. At that time he was calling UML "the second most interesting thing" in programming, behind the eXtreme Programming and more general Agile movement.
In short, I've come to think of UML as a communication tool, which is what I think Fowler is saying with "UML as sketch". If you're with a group of programmers in a meeting room, and want to talk about an approach to a specific problem, that's a great place to draw a UML diagram. That's a great thing about having the UML, is that every developer in the room should know what the UML is, so you can draw a diagram, and everyone can agree that it is the correct solution, or not, without having to worry about how the diagram will be drawn.
(On a related note, I also think UML is a good training tool.)
Free UML tools - UMLet
Getting back to the topic of "Free UML Tools", as mentioned, I like UMLet because it is just a free UML drawing/sketching tool. It makes no effort to generate Java code from the UML; you just draw a UML diagram, and then use it as a communication tool. As they say on their website, "draw UML diagrams fast, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse."
As a UML tool, it still has a couple of quirks that don't let me go as fast as I want, but it's still much, much better than something like Poseidon UML, which has let me down so many times I refuse to try it any more.
One bad thing about using a UML tool for just drawing sketches is that if you change the name of something like an actor in one diagram, you have to go through every diagram and change the name of the actor in those as well. This part about "UML as sketch" I don't like. I wish a UML tool like UMLet would keep just enough of a model to do that dirty work for you.
(One bad thing about UMLet: Their website could really use some work, as you can stare at their homepage and wonder, "Okay, how do I download UMLet?" So, here's a link to the current UMLet download page.)
I'll write more about UMLet as time goes on, but to give you an idea of what an UMLet drawing looks like, here's an example Use Case diagram I generated with it last week.
Other free UML tools
If you skip the "UML as sketch" advice, and you're looking for a free UML tool that works closely with source code, Acceleo is the most interesting UML tool I've seen, and is actively being developed. Later today I plan to watch an Acceleo Code Generation presentation they have on their website that was given at Eclipse Con 2010.
BOUML is another free UML tool that works on many platforms (thanks to Qt), but when you go to their download page and they have to explain why their product is not a Windows virus, that scared me off. Their screenshots look good, though, and I may give their free UML tool a spin in the future.
Amateras UML is another free UML tool, but they haven't had a new release in over a year, so I didn't even think about looking at their product.
As mentioned, there's also Poseidon UML, but I don't like it much, so I won't even link to it.