Good (meaning many features and userfriendly) and cheap UML modeling tool is a hard candy to find. I need at least following stuff:
- use case, class, activity and sequence diagrams
- not just dummy diagrams but also some semantics
- ability to run under Linux
First I started looking in my Ubuntu distro. I found:
- Dia – great generic diagramming tool but with no semantics.
- Umbrello – basic UML semantics but IMHO only for kids
- Gaphor – I didn’t try it, it depends on Zope packages (why?!?) and I don’t want the Zope.
- ArgoUML – Yeah! What a tool! Lots of diagrams, lots of choices, nice UI. I like it. But.. wait… It has no undo/redo? Okay, no big deal, I have to be careful. It has not cut/copy/paste?? No way!
After the disapointment with ArgoUML I decided to look into commercial waters. Few bucks cannot kill me. Tools like Borland Together or IBM Rational Rose are too expensive. I need something with good power/price ratio.
- Poseidon – commercial version of ArgoUML. Has undo/redo, limited cut/copy/paste, better UI than ArgoUML but not so good to pay for it.
- Jude – In addition to the basic UML diagrams it has ERA diagrams, mind mapping, forward/reverse engineering of Java code…
- MagicDraw – my final choice.
Finalists were Jude and MagicDraw. Jude has more “big” features but is also more expensive ($280) and it is subjectively less userfriendly. MagicDraw won because:
- It has fancy UI and nice diagrams
- It’s cheap – “Personal Edition” costs $149.
- There is also a free “read-only” edition.
- Keyboard control.
- It has tons of (in)significant features like fullscreen, “jumps” on crossing lines, selection mode toggle (complete and partial coverage), formatting, nifty zoom/preview window, etc…
But it has also a few cons:
- I didn’t find any “non-exact-UML” elements like a circle, standalone line or bezier curve. There is only something called “rectangular shape” and “separator” which is only a horizontal line.
- Huge uncompressed saved files. I’m saving into uncompressed because of SVN – simple diffs.
- I will find more later…
Despite those inperfections I have to admit that MagicDraw is and excelent tool.
I don’t know how could I miss it but I found a very similar program to the MagicDraw: Visual Paradigm for UML. Basic UI is almost the same as MagicDraw. Same toolbars, same windows, the resemblance is huge. It has a quite good pros:
- cheaper, “Modeler edition” costs $99
- free “read-only” edition
- “Modeler edition” includes more features than MagicDraw’s “Personal edition” – requirements management, ERD, …
- free-form elements – lines, circles, polygons…
It has also cons:
- Less user-friendly:
- I miss the keyboard controlled new elements selection.
- May be a bug but I created and activity control flow line and when I started typing guard with “[” then nothing happened. Only after a letter it started to edit the name.
- JRE is bundled in the installation (I think it is a con)
- Linux version has only Metal look and feel and the font size is needlessly big.
- Workspaces – I don’t want a full IDE. I want an UML tool where I will save a single file with my UML model and not a lots of garbage around.
- Diagrams are not very nice (at least bad font).
- missing tiny things (e.g. matrix swim lanes in activity diagrams)
- No project-specific symbol properties.
- It can’t save in an uncompressed format – not suitable for Subversion.
I think I will stay with the MagicDraw.