I used to render UML graphs using the excellent GraphViz—writing out the graphs in dot formatted files by hand as GraphViz doesn’t have any GUI for graph editing. This worked pretty well until I started needing more fine control over the organization and appearance of my graphs. I resorted to ugly dot constructions like

{ rank=same ringbuffer inputproc; }  // put two nodes on the same level

and

buffer_a   [label="buffer"]  // give two nodes the same name
buffer_b   [label="buffer"]

Recently a coworker alerted me to the existence of yEd, an awesome free graphing program written in Java. It creates GraphML-format files using a slick, well-designed interface. It has powerful graph-organizing tools and supports SVG symbols as graph nodes. The graphs look great when printed, too.

Tagged on: