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.
 
Why MagicDraw?
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.
Update, 20.4.2009
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.
Hello,
Thank you for your review of UML tools, I was helping a customer look for this. Do you still use the same tool ? What has been your experience after a few months with MagicDraw regarding bugs and support ?
Thanks for sharing!
Comment by Fabian Rodriguez — 2010-04-08 @ 23:53
Hi!
I’m still using MD. It is very intuitive, configurable and efficient. No need for support. Great tool. The only thing which is bugging me is that it sometimes freezes for a little time (a second or two) especially when I want to start typing into the diagram. I got used to it. Maybe it is only a matter of Java’s garbage collection configuration.
David
Comment by admin — 2010-04-10 @ 20:46