There are literally hundred of UML tools. So, no way to even try to look for any complete comparison among them. Instead, I’ll aim to give you links to the most relevant tools (at least in my opinion) in a number of different categories. I also maintain a twitter list of modeling tools that could be useful in your search.

But before that, one advice when choosing the right UML tool for you. Think ahead very carefully why you need a UML tool and how you plan to use it. There is no one size fits all UML tool. A good tool when your goal is full code generation is very different from the tool you should select when aiming at drawing some informal models during the early stages of the development process to facilitate the team discussions (if you want some UML pro help feel free to check our consulting services).


For some of these tools I’ve found a twitter account you can follow to get updated information about new releases.

Generic CASE tools

Textual UML tools

There are also several tools that support the use of textual notations/languages to describe UML models (and automatically display the corresponding graphical UML diagram). See our complete list of textual modeling tools.

Eclipse UML tools

It is also worth to take a look at the list of Eclipse UML2 compatible tools . As we commented here , the wide adoption of eclipse-based tools could turn the XMI format they use in a kind of de facto standard that all other tools should be compatible with.

Free and/or Open source UML tools

Finally, I’d like to mention a couple of lists of open source UML tools (note that the many of the tools in other lists are also open source, e.g. Papyrus).

Executable UML tools

Executable UML (check the new Executable UML standards fuml and Alf) aims at defining UML models with a behavioral specification precise enough to be effectively executed. In its purest state, Executable UML eliminates the need of programming the software system. Several executable UML tools
are now available. Check the list of Executable UML tools we have collected so far.

UML Tools for MAC

  • MacA&D with support for all major UML 2.2. diagrams and code-generation capabilities for SQL, C++, Objective-C, Java, PHP and REALbasic
  • CanvasUML : free but only for class diagrams
  • Other modeling tools like QuickUML, MagicDraw and VisualParadigm have a version for MAC.

Tools for mobile devices:

  • Lucidchart has a nice iPad version able to recognize flowchart shapes drawn by hand.
  • Draw UML: a UML drawing tool for the iPad.
  • MagicDraw Reader iPhone Edition . It allows users to review MagicDraw models anytime, anywhere right on their iPhone or iPod Touch.
  • iUML : NOT really a UML tool but a UML documentation guide for your iPhone that can be handy as a reference when drawing UML diagrams.
  • UML Process Aid is another UML documentation tool for your iPhone.
  • AndyUML an Android tool for drawing UML diagrams
  • astah* UML pad allows you to create class diagrams in your iPad. More importantly, you can export these files and complete the models using other astah* solutions in your workstation.

UML tools for Python

  • PyUML is an open source Eclipse plug-in offering round trip engineering betwee UML and Python.UML support is limited to class diagrams and the code-generation capabilities are simple class to class (or interface to interface) transformations
  • Epydoc : Generate UML documentation from python code (last release on 2008)
  • PyNSource : Reverse engineer python source code into UML. Generated UML class diagrams can be displayed as ASCII Art or in a more typical graphical form.
  • Lumpy . Python module that generates UML diagrams (currently object and class diagrams) from a running Python program. It is similar to a graphical debugger in the sense that it generates a visualization of the state of a running program, but it is different from a debugger in the sense that it tries to generate high-level visualizations that are compliant (at least in spirit) with standard UML
  • ObjectDomain : commercial tool with forward and reverse engineering support for Python.
  • argoUML-python seems (seemed?) to go in the same direction but it is not quite there yet.
  • GraphModels (django-command-extensions) creates a UML-like GraphViz dot file for the specified app name
  • Pyreverse included in the Pylint source distribution (for the analysis of the quality of python code) creates UML diagrams from the code
  • pywebuml uses graphviz to create a UML class diagram representing your python (and also Java and C#) code.

UML tools for Ruby

List of UML tools that can reverse engineer Ruby code (or conversely that can generate some ruby code from UML models)

  • RailRoady generates Rails 3 model and controller UML diagrams as cross platofrm .svg files, as well as in the DOT language. RailRoady is based on the original RailRoad diagram generator .
  • yUMLMeRails combines RailRoad and yUML to create online UML diagrams from your RoR code
  • The model-oriented programming language Umple (kind OF a UML textual modeling language ) generates Ruby code for the specified model classes
  • Umlify is an open source project that generates class diagrams from your ruby source code. As yUMLMeRails above, it also relies on yUML for the rendering of the UML diagrams.
  • On the commercial side Visual Paradigm for UML offers some kind OF code generation for Ruby (not tested it so I’m not sure how much code it generates)
  • Others like ruby-uml seem to be abandoned or just a declaration of intentions right now (like argoUML-ruby

Do you know other UML->Ruby OR Ruby->UML tools? Leave a comment!

UML tools for Perl

  • UMMF is a Perl implementation of the UML metamodel able also to generate perl code from UML models.

Do you know other tools/lists? Let us know!