UML Resources

The Unified Modeling Language (UML) is a graphical notation for describing software systems through diagrams. It is an OMG standard, and is being adopted as the standard diagramming notation across the industry.

If you are learning UML, I highly recommend getting the book UML Distilled as a guide to the notation. If you're creating your own diagrams, remember that you can do anything with a pencil and paper -- and I recommend starting out that way until you get familiar with the graphical language itself. Still, editing starts to be painful after a while, and sometimes you want to produce a nice looking diagram. So you may want to use a diagramming tool.

Tools

You can use any drawing program that can do lines and boxes (and which lets you edit them later). If you look for UML drawing tools on the Internet, you'll find a lot of CASE tools, many of which are fairly expensive and overkill if you just want to draw diagrams.

I personally use Visio, sometimes with Allen Holub's UML Stencil. Visio is a commercial, full-featured diagramming program which is moderately expensive. When I can't use Visio, Microsoft Word's drawing tools are often an adequate substutute. It's hard to get the diamonds right, though.

I've played around a bit with the free version of Argo UML. It knows more about the semantics of the diagram than Visio does, which means that it can do better validation and checking of models. It had a few visual glitches but appeared very usable for the small diagrams I tried. It is nicer to use than Rational Rose and has some nifty features. And, the Java source code is available as well.

I've also used Rational Rose, which is a full featured CASE tool. That means that it's really overkill for just drawing diagrams. But for what it does, it's excellent.

You may also want to check out Cetus Links or this UML tool review (circa Feb 99). I've had trouble finding low-end or free versions of drawing tools to try, other than those embedded inside MS Word and other applications.