8 February 2016

UMLet UML drawing & scripting (edit)

UMLet is a basic free and open source drawing tool for UML diagrams. It is witten in java and comes in a standalone version and as an eclipse plugin. In the market of UML tools (cfr. an earlier blog on Astah) it has a unique take on modelling.

First it is a drawing tool. Real UML tools try to have one model for which each diagram gives a different, but consistent perspective. UMLet just lets you draw and link UML components. But it does not assist you in UML syntax or consistency. Neither does it have any code or documentation generation features as the higher end tools have.
The advantage is that UMLet does not have the overhead of defining the model behind the diagram. Also it does never get in the way when you want to do something that is not supported by UML or your tool.

Second where you expect a drawing tool to beLaTeX targeted on a strong, intuitive, graphic and interactive user interface, each element in UML is backed by an austere interface and text definition. You draw your diagrams, elements and connections using a point and click interface. Modifiying elements , changing style and appearance, adding details is done in one associated text box. The text language is compact and simple.  This makes UMLet a very geeky tool. Sometimes you have to compose elements, like sequence diagram lifelines, from several subparts. On the other hand, you never have to wade through a hierarhy of interactions dialogues to fill in all characteristic of an element you have definied.

Surprisingly UMLet works easy and fast, like few other tools do. It is a good fit for taking agile modeling  beyond the whiteboard. You can easily extend the toolboxes with elements or create your own.

The default toolboxes do not have all UML elements and, what's worse, are are a bit sloppy in UML syntax. As you can easliy modify and expand this can be amended, but there is a risk that UML newbies pick up bad UML manners from the tool:

  • uses <<includes>>, <<extends>> instead of <<include>>, <<extend>>
  • synchronous messages  in sequence diagrams do not have a filled arrow head
  • return arrows in sequence diagrams do not have a dashed line
  • no found message in sequence diagram 
  • no * cardinality as in the UML standard 
There is a set of "all in one" diagrams that present entire diagrams as one element that you can configure by editing the properties. I did not find any way to interact with them graphically. You are really scripting your diagram in text, like in the LaTeX days of text processors.

Here's a nice intro video.