Evaluation of free UML tools

For a long time now I have been looking for a good & free UML tool that I can use for my personal and non-commercial projects. Recently I finished another survey, which I undertook because I wanted to draw a couple of class diagrams for my open source project Little Go. Unlike my experiences in the past, this time I actually did find a couple of viable tools (see the conclusion), which came as a surprise because, to tell the truth, when I started the survey I didn't have much hope.

Anyway, here I am writing down my findings, possibly for others to read, but also for myself so that I have a starting point in case I ever need to do a future round of evaluation.

Table Of Contents

Finding Test Candidates
Requirements
Test Procedure
Test Results
Conclusion
Appendix: Popular Tools Which Didn't Make It

Finding Test Candidates

To find possible test candidates I searched StackOverflow and Wikipedia. In addition, I did a bit of googling, and came up with the following helpful resource: Rating UML Editors on judebert.com, a series of articles with quite detailed reviews on individual UML tools. I took the liberty of borrowing some of the requirements from that site - thank you Judebert.

Requirements

"Must" requirements:
  • Must be free (as in "free beer")
  • Must be usable without any time limitation
  • Must support at least class and sequence diagrams
  • Must allow saving the model or diagram so that it can be loaded again and modified at a later time
  • Must allow export of diagrams in a popular image format (.png, .jpg, or similar)
Other high-priority criteria
  • Should run on Mac OS X (because this is the platform I work on here at home)
  • Should run as non-privileged user (I want to install the software as administrator and use it while logged in as a normal user)
  • Should have English user interface (simply because I am used to English UML terms)
  • Should maintain a metamodel, i.e. if I change a class or method name in one diagram, other diagrams are updated automatically
  • Should make it easy to rearrange diagrams. For instance, relations (in class diagrams) and method calls (in sequence diagrams) should "follow" the objects they are attached to, and labels should be reasonably placed.
  • Should allow customizing of relationship appearance in a class diagram (specifically location of labels and end points)
  • Should be reasonably maintained, i.e. I would like to be able to assume that the software will still be available in future versions of Mac OS X
Lower priority criteria
  • Support for diagram types other than class and sequence diagrams
  • Help with alignment, spacing, snap-to-grid, etc (I really appreciate it if the tool helps me with making nicer diagrams)
  • Import/export model to XMI standard format (I may want to switch to another UML tool one day, so it would be really nice if I could export the model to a standard format that is also supported by other UML tools)
  • Bonus points for being an open source project

Test Procedure

I didn't follow a rigorous test procedure. The main goal was to quickly install a tool and see if it meets my "must" requirements. Depending on how satisfied I was with my first impression I then went on to draw a class diagram with 1 package, 8 classes, a number of relationships of different types and different levels of detail (including multiplicity and roles to see how labels are placed).

I also tried to draw a sequence diagram, but with less attention to details: I mainly wanted to see whether operations I had defined on a class in the class diagram are available in the sequence diagram, and if execution specifications on the same lifeline properly overlap.

Test Results

Shortcuts to results of individual test candidates:

Dia
  • Version tested: 0.97.2
  • Licence: Open source
  • Is project maintained: Yes
  • Metamodel: No, this is a drawing tool
  • Diagram export: Yes (.png, .jpg, .pdf and a gazillion other formats)
  • Model export: N/A
  • Rearrange diagrams: Works fine. Snap to grid works, and the Ctrl key modifier makes sure that a shape can only be moved horizontally or vertically.
  • Customize relationship appearance: Poor. Relationship end points can only be attached to class shapes in predefined places (corners, edge center). Relationship labels for role names and multiplicity are placed automatically and cannot be changed. This causes the labels to be sometimes cut off. In addition, when relationships in a class diagram are dragged around, they usually lose the connection to their classes. They can be re-attached, but this is time-consuming and very annoying work.
  • Supports diagram types other than class and sequence diagrams: Yes (there are shapes for activity, deployment, use case and other diagrams)
  • Mac OS X: Yes, runs in the X.app environment
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: -
  • Negative remarks: One diagram per file. Relationships can be drawn only at right angles, i.e. no diagonal lines or curves are possible. The default line width is too thick. I was unable to find out where to change the default.
  • Verdict: Poor. Although Dia might have all the functionality to draw a nice class diagram, I felt very frustrated by the user experience, especially because relationships continually lose their connections to classes and need to be re-attached. I might come back to Dia for because it is truly free, but not for drawing UML diagrams.
Poseidon for UML
  • Version tested: 8.0, community edition
  • Licence: Commercial, closed source, offers a community edition free of charge
  • Is project maintained: Yes
  • Metamodel: ? (see verdict)
  • Diagram export: Yes (.jpg, .png)
  • Model export: ? (see verdict)
  • Rearrange diagrams: ? (see verdict)
  • Customize relationship appearance: ? (see verdict)
  • Supports diagram types other than class and sequence diagrams: ? (see verdict)
  • Mac OS X: Yes, is a Java app
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: -
  • Negative remarks: -
  • Verdict: Unusable! Although it is possible to export a diagram to .jpg or .png, the community edition does not allow you to save the actual project. This means that you lose all your work every time you quit the application. I stopped testing the software the second I realized this crippling limitation, so I can't say anything else (positive or negative) about Poseidon for UML. I do, however, have a comment directed at Gentleware (the makers of Poseidon), and it's this: I find it outrageous that you label your software "Community Edition", when it actually is a trial version. A community edition clearly implies that you want to offer something of (possibly limited) value to the public at large, at no cost. But in this case the no-cost value is exactly zero, nada, zilch! Please, guys, be honest and admit that you want to make money and don't try to pretend you care about the community.
Visual Paradigm for UML
  • Version tested: Version tested: 9.0, community edition
  • Licence: Commercial, closed source, offers a community edition free of charge (for non-commercial use only). Registration at the website is required in order to get a licence key file.
  • Is project maintained: Yes
  • Metamodel: Yes
  • Diagram export: Yes (.png, .jpg, .emf, .svg, .pdf)/li>
  • Model export: No (export to .xmi from the Modeler edition or above only)
  • Rearrange diagrams: Works quite well
  • Customize relationship appearance: Works very well
  • Supports diagram types other than class and sequence diagrams: Yes (activity, deployment, use case and others)
  • Mac OS X: Yes, is a Java app
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: This is a full-blown modeling tool with all the gimmicks. So far I haven't found any defects or usability issues. It is actually a pleasure to work with this tool, even when it comes to fiddling with relationship labels and lines.
  • Negative remarks: The limitation of the community edition is that you can only create one diagram per diagram type per project. As soon as you create a second class diagram, for instance, all exported images are severely watermarked to the effect that they become almost unreadable.
  • Verdict: Perfect, except for the crippling just-one-diagram-per-type limitation.
UMLet
  • Version tested: 11.5.1
  • Licence: Open source
  • Is project maintained: Yes (not sure how often releases take place)
  • Metamodel: No, this is a drawing tool
  • Diagram export: Yes (.png, .jpg, .pdf and others)
  • Model export: N/A
  • Rearrange diagrams: Works fine
  • Customize relationship appearance: Poor. Relationship labels (roles, multiplicity) are automatically placed and cannot be manually moved. In mild cases the result is visually unappealing, but often a label becomes partially obscured because the relationship line goes right through it.
  • Supports diagram types other than class and sequence diagrams: Yes (activity, deployment, use case and others)
  • Mac OS X: Yes, is a Java app. Is also available as an Eclipse plugin.
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: UMLet is very unorthodox in that it uses a markup syntax to define the appearance of a shape: Instead of clicking through many GUI dialogs to change the various properties of a shape, the shape has only one property: The markup text. Changing the markup immediately changes the shape's appearance. At first I found this approach very disconcerting, but to my astonishment I got quite used to it after a few shapes. I guess that if you know the markup syntax in depth, working with UMLet will become a breeze. Another nice thing to say is that, probably due to its bare-bones GUI, UMLet is very fast and responsive. This becomes especially apparent after working with "large" products.
  • Negative remarks: One diagram per file
  • Verdict: Not too bad, despite its bare-bones GUI and the slightly weird markup approach. I prefer UMLet over Dia.
Modelio
  • Version tested: 2.1.1 (on Windows XP)
  • Licence: Open source. Modeliosoft, the company behind this tool, sells commercial add-on functionality (plugins).
  • Is project maintained: Yes
  • Metamodel: Yes
  • Diagram export: Yes (.png, .jpg, .gif, .bmp)
  • Model export: Yes, to the standard XMI format. I did a quick test Modelio -> Modelio, with a simple model: This seemed to work fine.
  • Rearrange diagrams: Not too bad
  • Customize relationship appearance: Poor. Customizing where relationship endpoints and labels are drawn is very tedious
  • Supports diagram types other than class and sequence diagrams: Yes (activity, deployment, use case and others)
  • Mac OS X: No
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: No apparent limitations: If a feature is there, it is not crippled at all. Eclipse-based GUI, which is a plus if you are familiar with Eclipse.
  • Negative remarks: Sequence diagram: Execution specifications on the same lifeline do not overlap. Usability and workflow in general could be improved. For instance, creating a new class or operation in a class diagram should let me name that class or operation immediately. Another one is that adding a new message should let me choose from existing operations immediately. In these examples, instead of helping me with the logical next step in the workflow, Modelio forces me to manually initiate the next step, and usually I need the mouse for this. This makes working with Modelio much less enjoyable than it could be.
  • Verdict: Not too bad, feature-wise, because this is a real modeling tool with no crippling limitations and an attractive-looking GUI. The main problem of this tool are its usability issues!
Open ModelSphere
  • Version tested: 3.2
  • Licence: Open source
  • Is project maintained: Yes
  • Metamodel: Partial. Sequence diagrams and class diagrams do not share the same model data: If I define a class with some operations in a class diagram, there is no way I can reuse that information in a sequence diagram.
  • Diagram export: Yes (.jpg, .png)
  • Model export: Yes, to proprietary XML format (i.e. not to standard XMI format)
  • Rearrange diagrams: Poor. Relationships cannot be re-attached to a different class.
  • Customize relationship appearance: Poor. The end points and segments of a relationship cannot be manually adjusted. When I tried to adjust segments I instead inadvertently added new segments, which I was then unable to remove. The only way to get rid of segments once they are there is to straighten the line.
  • Supports diagram types other than class and sequence diagrams: Yes (activity, deployment, use case and others)
  • Mac OS X: Yes (after converting a DOS .bat file to a shell script)
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: -
  • Negative remarks: In general the GUI is tedious to use and too many things are not intuitive. I am at a total loss how to sensibly draw a sequence diagram. Although sequence diagrams seem to have an underlying model, I don't understand how they work: Objects do not have underlying classes, messages do not represent operations, lifelines are not connected to objects, activation shapes need to be explicitly placed into the diagram as you would do with a drawing tool. I also found that in class diagrams a package does not act as a container for classes: The class shape is simply drawn on top of the package shape, but when the package is moved, the class remains at its position.
  • Verdict: Poor. There are too many usability issues, and (unless I have overlooked something essential) sequence diagrams are a bit of a joke. I prefer a simple drawing tool that does a good job over a modeling tool (such as this one) that does a poor one.
Astah
  • Version tested: 6.6.3
  • Licence: Commercial, closed source, offers a community edition free of charge
  • Is project maintained: Yes
  • Metamodel: Yes
  • Diagram export: Yes (.png, .jpg, .pdf via print)
  • Model export: No (export to .xmi in the professional edition only)
  • Rearrange diagrams: Works fine. Displays snap-to guidelines while dragging to help align elements.
  • Customize relationship appearance: Tedious, but not so tedious that it can't be done.
  • Supports diagram types other than class and sequence diagrams: Yes (activity, deployment, use case and others)
  • Mac OS X: Yes, is a Java app
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: Integrates well into Mac OS X (has a global menubar and keyboard shortcuts use the command key). Relationship lines can be drawn with Bézier curves. Overall, the GUI is clean and rational and leaves a favorable impression. Some things can be done very efficiently (double-click adds a new class to a class diagram, attributes and operations can be added via keyboard shortcuts), but in other areas there is still much room for improvement (see negative remarks for examples).
  • Negative remarks: Deleting an association line in a class diagram does not offer to delete the association itself, even if the line was the last graphical reference to the association. Selecting an association in a class diagram resets the property sheet to display the first tab; if one needs to edit a property located on one of the last tabs (such as a role name), a lot of mouse clicks are necessary to get there; this is especially tiresome if many associations need to be edited in a row.
  • Verdict: Good, because this is a real modeling tool, its limitations are not harmful to my purposes, and it has an attractive GUI. Although usability could be better, I can do everything I need with this tool.
Software Ideas Modeler (SIM)
  • Version tested: 5.25 (on Windows XP)
  • Licence: Commercial, closed source, offers the professional edition for non-commercial use only
  • Is project maintained: Yes
  • Metamodel: Partial (operations defined in the model cannot be invoked in sequence diagrams)
  • Diagram export: Yes (.png, .jpg, .pdf, and many other formats)
  • Model export: Yes, to the standard XMI format. I did a quick test SIM -> SIM, with a simple model: This seemed to work fine.
  • Rearrange diagrams: Works decently, although not perfectly. What can be helpful is that relationship endpoints can be fixed to prevent them from automatically moving when you move class shapes in a class diagram.
  • Customize relationship appearance: Tedious, but not so tedious that it can't be done.
  • Supports diagram types other than class and sequence diagrams:
  • Mac OS X: No
  • Runs as non-privileged user: Yes
  • English UI: Yes
  • Positive remarks: Relationship lines can be drawn with Bézier curves. The tool tries hard to provide a user interface that is quick and efficient to use. Sometimes the effect is a bit surprising, but that's probably just me missing practice. The main focus for being efficient is the extensive usage of keyboard shortcuts. An example that illustrates how streamlined adding a new class to a class diagram is: Just pressing "c" starts the insert operation; after pressing "c" a number of possible locations for placing the new class are highlighted; the user can press a number key to select one of them; after the class is actually placed the user can immediately start typing in the class name. There are three settings for rendering quality, which is especially nice when I work inside a VM: Temporarily decreasing rendering quality definitely makes the UI more responsive.
  • Negative remarks: Relationship start and end points are switched (e.g. creating a composition that goes from class A to B draws the diamond shape at class B).
  • Verdict: Good. As a modeling tool, SIM falls short because of the inexplicable gap between class and sequence diagrams. Its GUI is modern and attractive, but its strong point is the focus on keyboard usage which makes creating simple diagrams a breeze. People whose main platform is Windows should have a closer look at this tool.

Conclusion

The winner so far is Astah: It is not open source, and the community edition does not allow exporting to XMI, but these are both low-priority criteria. Except for those two things, Astah really covers everything that I need, and it conveniently runs on Mac OS X.

Visual Paradigm for UML takes the second place: It has a full feature set and offers the best overall usability of all the tools I have looked at so far. The only reason why VPUML does not win the race is the limitation to one diagram per type and project.

I would like to add that except for Visual Paradigm for UML, none of the tools are really good at managing relationships in a class diagram. Some of the tools are less horrible than others so that you actually succeed with placing end points, labels and so on where you really want them (Astah is one of them), but the effort to get there is usually high, the work is tedious, and a few changes to the diagram layout often destroy the careful placement that has taken place before, because the software performs some automatic "adjustments".

Appendix: Popular Tools Which Didn't Make It

The following is a list of popular tools which I didn't even look at for one reason or another (mostly because they cost money):

  • Sparx Systems Enterprise Architect: At the time of writing the cheapest edition (desktop edition) costs USD 135.
  • BOUML: Is no longer free since version 5.0. At the time of writing a license for personal use with no time constraints is EUR 50.
  • Altova UModel: At the time of writing the cheapest edition (basic edition) costs EUR 119.
  • Umbrello UML Modeller: Last activity seems to be from 2008.
  • MagicDraw: A long time ago there was a community edition of MagicDraw, which unfortunately seems to be no longer the case. The former community edition is now called the demo version which will run for a limited time only. The other limitations of the demo version (20 classes, 25 states, use cases, actions and collaboration objects) are crippling enough, but they are the same that the community edition had in the past, and at that time I was willing to put up with them because MagicDraw is such a nice product. The time limitation is too much for me, though, so I had to say goodbye to MagicDraw.
  • StarUML: A classic open source UML tool, however its last release is from 2005, and it runs on Windows only.

I also didn't look at the following tools, but I probably should:

  • ArgoUML: One of the classic open source UML tools, is still under active development. Supports "only" UML 1.4 (is this a problem?).
  • Eclipse: Is supposed to have modeling support. Possibly the former Papyrus UML?
  • RISE: Windows-only tool, but seems to be free (really?). I have not bothered with this until now because I already did look at a couple of Windows alternatives.

Comments

If I had to pay money for one tool, it would be Sparx EA

Having done a couple of "serious" modelling contracts for different clients, I have found that EA (Enterprise Architect) is powerful and relatively easy to use. For the money you (used to ?) get 12 months worth of updates and there is a user forum where most queries I have put get answered by others using the tool in a serious way ! There is also a free limited model size (IIRC) trial version to play with. As stated in the Subject line, the EA tool is the one piece of software where you get a full spec tool for a modest sum - it should be worth its value within the first few days of use.

I have recently tried getting started with Eclipse/Papyrus and between knowing which plugins & dependencies to install, and how to even create a simple Class diagram, it seems overly complex and confusing - not to mention the multiple sub-modelling subsystems which you have to navigate.

Thanks for the writeup!

I'm looking for a free UML tool for sketching out projects, but have no experience with these tools at all. This comparison has given me a good head start, and saved me a lot of discovery time. Thanks for sharing your findings!

Sparx EA

Yeah, Sparx EA is really excellent value for money - where I'm working we are also using this modelling tool. We had a look at a few other products (off the top of my head I only recall Altova UModel), but in the end EA made it, I believe because it also supports DB modelling.

Thanks

Thank you for the write-up. I wish I had found this earlier when I was choosing which tool to use, it would have saved me time. Back then I came to much of the same conclusions, although I didn't try as many modellers.

I settled on Modelio because I prefer open source even if it comes with a few usability glitches. It has one other problem though: the exported images are too small to be easily readable. Since it's open source, it shouldn't bee too difficult to dig into it and change that, but I haven't gotten around to doing that yet.

In my former job, we used Sparx EA and I agree with the former commenters that it is worth it if you can afford it. It is much more fully featured than Modelio and some of the others here. E.g. it supports highly customisable code generation for multiple languages, or different layout algorithms.

Before that I had also used ArgoUML, which also has a very good feature set (also with code generation), and I found it easy to work with. However I much prefer modelling UML 2 these days, particularly for activity diagrams. But if they ever upgrade it to UML 2, I'd most probably switch back to ArgoUML immediately.