Skimming the world of UML tools
May 31, 2011 1 Comment
This is just another “skimming” and it will not be objective nor in depth. I needed to draw a few UML pictures and I prefer having some model behind. I honestly believe that tools should be easy, intuitive and just working. I remember how I liked IntelliJ IDEA right from the start (not that it is flawless or without learning curve!).
What I want – some class diagram to model my entities (ER diagram will be done in Oracle SQL Developer Data Modeler, that is set in our team), some enums, state machines for enums (some of them are state values) and some sequence diagram here and there. Nothing big, nothing MDD.
In our company we use IBM Rational Software Modeler 7.5.4. I can’t say how it looks in newer versions, but this one is just killing me with it’s “hey! I’m built on Eclipse platform!” approach. I created model for instance, and I went for some design template that I felt is best for me. Alas, the template didn’t have state machine diagram. Can you add it somehow? I don’t know, there is no obvious way? Can you google how? I don’t know, it seems that IBM/Rational did the best job in anti-SEO. Their documentation is most difficult to find with search engines, and kinda… IBMish. I created new model without template and copied my old model into that one – what a fix. Even if there is way how to add diagram that is not in template (there always should be!) or how to convert model to another template – these functions are not easy to find. That’s like they are not there.
And the UI itself – it’s massive click-fest with minimum keyboard shortcuts (how I love IDEA, because it always tells you in pop-up menus what the shortcut is). Results are quite OK, if you know how to export them. Default export dialog is just another Eclipse-style hell, the same goes for import, you know one expects import where you just specify the file and it’s imported, but in Rational it’s always difficult – you have to know dozen of steps to do before the actual import. Eclipse based software traditionally has very poor consistency between contextual menus. You have File, Save As Image File… on right click in the diagram itself, but you don’t have it when you right click the diagram node in Project Explorer, nor you have it in main menu in any expected place. I honestly admire bravery of all those working with this tool.
I tried some other free: ArgoUML (limited UML 2 and undo support, plus I just didn’t like it), StarUML (not in development anymore… since 2005) and finally astah* community. Astah is probably my favourite choice from those freely available, though its community version has some serious limitations (enums are just ugly if you don’t use professional edition). But it’s much more intuitive than Rational, workflow is much better (well, there is hardly any “flow” in Rational, really) and I will probably use it in my future works.
Then there is one option for non-commercial usage (which means no option for me) – Visual Paradigm, or rather their VP for UML. Their suite (5.2) contains UML modeller (8.2) that is quite usable for drawing, but you’ll suffer quite aggressive watermark if you create more than one diagram per type. This actually means I’d not use it for non-commercial project either – unless I don’t need image outputs (which I mostly want to have). But the price for modeler edition is quite reasonable ($99) and in overall work with VP for UML was OK. By default their diagrams have rather simple visuals (no gradients so popular today), but they look clean on paper and – the most important – there are enough features that are easy to use (with keyboard shortcuts too :-)).
And finally, tool I like most of them – Enterprise Architect. Here I have to say that I worked with this tool. I never liked drawing diagrams (mostly because of the tools itself), but this one makes it quite easy. You have to get used to it’s dialog window workflow, but everything is accessible and resulting diagrams are just nice and clean. Desktop Edition starts at $135 and I think it’s well worth it.
One thing I particularly liked about EA is that it allowed me to bind associations to attributes, so you could see both lines (associations) and attributes in the class. I like attributes as a kind of checklist, without need to go around the box and search for associations – and I don’t care if it’s UMLish or not. EA allows this and I just love it.
One thing I couldn’t model as I’d wish to – I have enum and I want its literals to be states in state machine diagram. I don’t know how to do this in any of these tools. Right now I have to repeat myself and add states with the same names as literals in the enum.
After all this, my winners are astah* for being free and EA if one is willing to spend $135. I think for companies it’s definitely much better investment than Rational if you care for sanity of your staff.
I can’t tell how these tools work for more developers, how easy is to keep their project files in SVN, or how you like them after a year or two – or which one causes the most serious RSI. That’s why it’s called skimming after all. 🙂