There is a lot of different UML modelling software to choose from. Here, I will create a short overview over the most common free uml tools. This list is not meant as an exaustive review, but more to give you an idea what each of the tools can to so you have an easier time choosing the uml tool that is best for you.





Gaphor

gaphor uml tool Difficulty to use: 1/5

Systems: Linux, Mac OS X, Windows

Exports to: SVG, PNG, PDF, XMI

Website: http://gaphor.sourceforge.net

Supports:
  • Class Diagram
  • Component Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Diagram
  • Profile Diagram
Notes:
  • to add a new Attribute to a Class, press Ctrl + e
  • to create an aggregate or comosite: create an association, select it, press Ctrl + e
pro uml tool simple, easy to use UML tool
pro uml tool Exports to XMI
contra uml tool no code generation from UML
contra uml tool no code to UML
Summary:
simple, light weight uml tool which is good to quickly draw up a uml diagram



ArgoUML

argo uml tool Difficulty to use: 3/5

Systems: platform independent (Java Runtime Environment)

Exports to: XMI, PNG, SVG, GIF, JPEG, EPS, PS

Website: http://argouml.tigris.org/

Supports:
  • Class Diagram
  • Use Case Diagram
  • Sequence Diagram
  • Collaboration Diagram
  • State Diagram
  • Activity Diagram
  • Deployment Diagram
Code generation for: C++, C#, Java, PHP4, PHP5, SQL

code reverse engineering (Code to UML): Java, C++, C#, IDL (including relationships)

pro uml tool Code generation from UML
pro uml tool Code to UML
pro uml tool Exports to XMI
contra uml tool UI a bit crowded, harder for beginners
Summary:
Uml software with quite a bit of options and functionality. These might overpower a beginner, but if you do have a moment to look through all of it, you get a powerfull free uml modelling tool.





Dia

dia uml tool Difficulty to use: 2/5

Systems: Linux, Mac OS, Windows

Exports to: XMI, PNG, PDF, SVG, JPEG (among others)

Website: https://wiki.gnome.org/Apps/Dia

pro uml tool Exports to XMI
pro uml tool can create a LOT of different diagram types
contra uml tool for many diagrams, not all elements exist
contra uml tool no code generation from UML
contra uml tool no code to UML
Summary:
light weight general purpose diagram tool. I would not recomment it for any serious work/documentation, but it is quite usefull to create any needed diagram quick and dirty.



Violet UML Editor

violet uml editor Difficulty to use: 2/5

Systems: platform independent (Java Runtime Environment)

Exports to: PNG, JPEG, HTML

Website: http://alexdp.free.fr/violetumleditor/page.php

Supports:
  • Class Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Diagram
  • Object Diagram
  • Sequence Diagram
code reverse engineering (Code to UML): Java (only single classes)

Notes:
  • Existing classes cannot be moved to new Package and classes added to a package cannot be moved outside of it by drag’n’drop. But you can cut and paste them.
  • When creating dependencies for a class inside a package: Click inside the class, not the border of it, otherwise the dependency will attach itself to the package, not the class
  • Dependencies cannot me moved after creation
  • When double-clicking on a dependency inside a package, the package properties are opened. Right-click on the dependency to select its properties
pro uml tool also works as eclipse plugin
contra uml tool no code generation from UML
Summary:
light weight uml tool, which is sometimes a bit akward to use.



UMLet

umlet uml tool Difficulty to use: 4/5

Systems: platform independent (Java Runtime Environment)

Exports to: PNG, PDF, SVG, JPEG, EPS, BMP

Website: http://www.umlet.com/

Supports:
  • Class Diagram
  • Use Case Diagram
  • Interaction Diagram
  • State Diagram
  • Activity Diagram
  • Deployment Diagram
  • Context Diagram
code reverse engineering (Code to UML): Java (only classes, no relationships)

Notes:
  • attributes, operations, etc. cannot be changed via GUI, but via a custom Properties file (which may be edited directly in the GUI, but you do need to learn the layout of this file, which means reading the documentation)
pro uml tool also works as eclipse plugin
contra uml tool no code generation from UML
contra uml tool not very user friendly
Summary:
This tool offers no functionality which could not also be found in most other UML tools. But it is more difficult to use, so I would not personally recommend it.



yEd

yed uml tool Difficulty to use: 2/5

Systems: platform independent (Java Runtime Environment)

Exports to: BMP, EPS, GIF, HTML, JPG, PDF, PNG, SVG, SWF

Website: http://www.yworks.com/en/products_yed_about.html

Supports:
  • Class Diagram
  • Use Case Diagram
Notes:
  • supports a lot of different diagrams, but only class and use case as far as uml is concerned
  • class diagram elements are quite limited. There is no option for interfaces, abstract classes or similar
pro uml tool simple, easy to use UML tool
contra uml tool no code generation from UML
contra uml tool no code to UML
contra uml tool very limited
Summary:
It is a nice tool, but as far as UML is concerned, it is too limited for me



Papyrus

papyrus uml tool Difficulty to use: 5/5

Systems: platform independent (Java Runtime Environment)

Exports to: ?

Website: http://www.eclipse.org/papyrus/updates/index.php

Supports:
  • Class Diagram
  • Activity Diagram
  • Communication Diagram
  • Component Diagram
  • Composite Structure Diagram
  • Deployment Diagram
  • Interaction Overview Diagram
  • Package Diagram
  • Sequence Diagram
  • Use Case Diagram
  • State Diagram
  • Timing Diagram
Code generation for: C++, Java (at least theoreticly. It is deprecated and I could not get it to work for me)

Notes:
  • I could not figure out how to use a lot of the functionality. Among others, I was not able to display fields inside the diagram, create a diagram from existing code, generate code from an uml diagram, or even export a diagram.
pro uml tool Code to UML
contra uml tool only eclipse plugin (no stand-alone version)
contra uml tool code generator is deprecated
contra uml tool not very user friendly
Summary:
I found Papyrus extremly unintuitive to use, but your mileage may vary. An extensive 60 page PDF documentation exists, so if you have the time and energy you might be able to achive quite a bit with Papyrus.



Modelio

modelio uml tool Difficulty to use: 3/5

Systems: Linux, Windows, Mac OS X

Exports to: XMI, PNG, BMP, JPG, GIF

Website: http://www.modelio.org

Supports:
  • Class Diagram
  • Component Diagram
  • Instance Diagram
  • Activity Diagram
  • Communication Diagram
  • Composite Diagram
  • Use Case Diagram
  • Object Diagram
  • Sequence Diagram
  • State Diagram
  • Use Case Diagram
Code generation for: Java, Paid Content

pro uml tool Exports to XMI
contra uml tool quite big (compressed 175 MB)
contra uml tool no code to UML
Summary:
Too heavy weight for what you get (probably because it is based on Eclipse), some functionality (eg Code generation) is not free.



Further free UML Modelling Software

NClass

Website: http://nclass.sourceforge.net/

Overview:
  • quite incomplete (Wikipedia says that even Undo is still missing)
  • only class diagram
  • code generation from UML
Note:
could not test, as it depends on the Microsoft .Net Framework


StarUML

Website: http://staruml.sourceforge.net/‎

Overview:
  • unmaintained since 2005 (but a new Fork called WhiteStarUML exists)
Note:
could not test, as it only runs on windows


Umbrello

Website: http://umbrello.kde.org/

Note:
could not test, because kde wouldn’t install



What’s the best free UML tool?

So what is the best free uml tool? It really depends on what you want to do with it.

Personally, for throw-away diagrams I use Dia. For small(ish) UML diagrams I would recommend Gaphor, and if you need a more complex UML tool with a lot of functionality, I would recommend ArgoUML.

As always, you might feel differently, and it cannot hurt to try out more than one tool.

If you know of any more UML modelling software or have an option on one of the uml tools presented here, please feel free to share it in the comments.