Quick and Simple UML with UMLet
I like using UML but I’m not fond of most of the tools used to create the diagrams. They tend to be very heavy and/or difficult to use. Enter UMLet. This is a great tool for quick UML diagraming. The interface isn’t fancy but its easy to use and fast. Here are some of the things I like about it:
- Double click any element to create a copy. Its a small thing but it saves a lot of time.
- Edit an element’s properties in a simple text box. This includes everything from changing line style and arrow type to creating an entire diagram.
- You can email a diagram directly from the application.
- It saves diagrams in an XML format and can export to many others: bmp, eps, gif, jpg, pdf, png, svg.
- There is an Eclipse plugin. Again, nothing fancy. It just allows you to create and edit diagrams from within Eclipse.
- There are a lot of examples.
- Its free.
The ability to modify element properties in a text box saves an amazing amount of time. There are “all in one” palettes (diagram templates) for activity and sequence diagrams that represent the entire diagram as a single element. Using the all in one sequence diagram element you can create a sequence diagram with object foo of class Foo sending object bar of class Bar a message named doIt by setting the properties to this:
Creating that entire diagram took 3 mouse clicks (double click on the palette element to copy it to my diagram then click the properties box to edit) and typing the text in the properties box. It doesn’t get much easier than that. The first line defines the diagram’s lifelines. “_foo:Foo~id1_” means create a lifeline with the label foo:Foo underlined (the underscores) and give it id1 for future reference. Each additional lifeline is pipe delimited. Each of the remaining lines defines a message. “id1->>id2:doIt” means create a message between id1 and id2 (the IDs assigned to the foo and bar lifelines) using a solid line (the dash) with an open box arrow on the right side (the double arrow) and label the line doIt. To change the solid line to a dashed line replace ->> with .>>. To change the open box arrow with a closed box arrow replace ->> with ->>>.
Setting the properties in the text box does take some getting used to. The only way to know what properties are available is to look at the elements in the palettes or the examples. It doesn’t take much effort to figure out though and there is a link to the examples right in the help menu. You will probably make up the time spent figuring out the properties with the time you save creating your first diagram.
You can also create new element types. This is more complicated but there is a nice tutorial you can navigate to right from the Custom Elements menu. UMLet provides a decent interface for this with a window to define properties for your element, a window to define behaviors which is done using java code, and a preview window. I haven’t had to do this as they provide all the elements I’ve needed in the default palettes.
UMLet is light weight. If you want to generate code from your diagrams or vice-versa, or you want a tool to verify your UML is strictly correct this isn’t the tool for you. UMLet does not do any type of validation. If you just want to quickly and easily create diagrams then UMLet is worth a try.