umlet

2005-06-09

After years of looking for a UML tool that doesn’t suck I stumbled upon Umlet: http://qse.ifs.tuwien.ac.at/~auer/umlet/. Umlet is a very simple tool that makes it very easy to do what IMHO is the primary thing that software designers look for: quickly sketch some diagrams without worrying about correctness, completeness and details. When I’m in design mode, details distract me and break my concentration. I use a design tool primarily to structure my ideas and secondarily to illustrate them to others.

Umlet is very nice in that it doesn’t try to enforce anything. You just drag uml shapes to the drawing area, specify as much (or as little) details as you need in a brilliantly simple text area. This is a killer feature that I have never seen anywhere else. Rather than navigating through complicated dialogs you just type a - attribute - operationFoo(bladiebla)

to specify the contents of a class rectangle. Other than the dashes there are no restrictions. Don’t want to specify attributes: leave them out. Don’t want to specify the parameters: then don’t. Whatever you type appears in the appropriate place.

When you are done you save it as a bitmap, pdf or svg drawing and it is ready to be pasted in your design doc or powerpoint presentation.

Sounds simple. It is but try to work like this in rational rose, visio or togetherJ and you will quickly get frustrated by these tools insistence to only allow semantically and syntactically correct diagrams. These tools have a purpose in an ideal model driven world that IMHO only exists in the minds of over payed consultants working for companies that are foolish and rich enough to pay the rediculous license fees these tools requires. Outside this world they are bloated, unusable tools that mostly lie unused on the shelves of software architects who have better things to do.

Umlet beats these tools easily if all you want is draw some free form uml diagrams and it comes with an unbeatable price. Of course it isn’t perfect. It doens’t generate code, the user interface is primitive, the set of export formats is limited, etc. But it gets the job done when it comes to sketching designs quickly and most importantly it is light weight and does not impose restrictions, development methods or any particular design solutions.