As with almost all disciplines related to software development, program design enjoys a group of high-quality tools that enable developers to learn technology at little cost.

Figure 1. Screen shot showing the wide feature set of Dia. |
Developers who aspire to use Rational's tools for system design might start out using Dia (available at http://www.lysator.liu.se/~alla/dia/). This tool performs many of the same functions found in Microsoft Visio including the template-based diagrams, but it has particular support for UML. Dia is a tool used in MIT's OpenCourseWare (http://ocw.mit.edu). Dia uses the GNU License. Figure 1 shows a screen shot from Dia.
Another compelling product is ArgoUML (http://www.argoUML.tigris.org). This product runs on any version of Java 1.2. It specializes in UML diagramming and provides basic generation of source code. The product can export diagrams in PostScript, EPS, GIF, or SVG file formats. ArgoUML uses the BSD license. Figure 2 shows a screen shot from the product.

Figure 2. Screenshot from ArgoUML showing the polished interface. |
Finally, Visual Paradigm (http://www.visual-paradigm.com/), a commercial provider of development tools, makes available a free versions of Visual Paradigm for UML (community edition). This edition is limited to saving only one diagram per UML diagram type per project; in addition, the diagrams all appear with a small promotional logo in the upper left corner. Save for these two limitations, the product is feature-wise the same as its commercial brethren. An academic version with full capability is available at a significantly reduced cost. Visual Paradigm for UML generates code and performs consistency checking on diagrams.