UML tools

There are literally hundred of UML tools and thus it is impossible to find any complete comparison among them. In what follows I try to provide some lists of UML tools classified according to different categories to at least give you some pointers you can use in your UML tool search.

My only general advice when selecting a tool is first to 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. For a precise recommendation based on your specific needs, check the consulting page.

For more info on UML tools you should also check the series of deep interviews with UML/MDE tool creators to know more about how and why these kinds of tools are being developed here and the blog posts announcing and analyzing modeling tools

(Hopefully useful) lists of UML tools, classified in the following categories :


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). List of tools:

  • yUML is an online service for creating class and use case diagrams. The service can be called from your blog or web page (with the textual description as part of the URL)to automatically display the image when accessing it. We can now generate yUML models from other UML modeling tools.
  • UML Graph automatically draws class and sequence diagrams. For the class diagrams, uses a Java-based syntax complemented by javadoc tags. Running the UmlGraph doclet on the specification will generate a Graphviz diagram specification. For sequence diagrams uses a different approach (and this is one aspect I don’t like about the tool, you are basically working with two different tools here). Pic macros are used to define objects and method invocations. Then, the pic2plot program processes the macros to generate PNGs and other graphic formats. LightUML integrates UMLGraph in Eclipse.
  • TextUML Toolkit is another recent development. It is an open-source IDE that uses the UML viewer that is part of EclipseGraphviz project to display the models (basically class diagrams, ongoing work on activity diagrams).
  • MetaUML is a “library for typesetting UML diagrams, using a human-friendly textual notation”. It currently supports class, activity and use case diagrams and state machines. Their main goal is to create UML diagrams readily usable in a LaTeX document.
  • modsl is UML modeling library for text-to-diagram translation. So far, it supports class diagrams and collaboration diagrams. In theory, as with the yuml tool, you should be able to write the model description as part of the text of your wiki/blog/… and then use their online service to automatically render the corresponding image (but this was not working at the time of writing this post).
  • USE also uses a textual UML model description (including OCL constraints) as input but in this case the goal is not to visually display the model but to animate the model by creating and manipulating snapshots of the model that allow designers to validate the model and its constraints.
  • PlantUML supports use case, class, activity and sequence diagrams. Integration with Eclipse and Microsoft Word. See a more detailed description
  • WebSequenceDiagrams and Quick Sequence Diagrams Editor focus only on the generation of sequence diagrams.
  • Simple DSL for sequence diagrams based on UMLGraph . Transformation of the diagram to UMLGraph notation is done using the TXL Programming Language
  • (only for hardcore latex fans) Latex macros for drawing UML Sequence diagrams , the name says it all
  • Diagrammr focuses on the generation of diagrams from simple sentences (of type “A verb B”). Thus, it is not specifically a tool for the textual specification of UML diagrams though the graphical representation resembles UML sequence diagrams. See an example
  • metaDepth is a textual framework for multi-level meta modeling
  • EasyUML Editor : supports almost all kinds of UML diagrams. The diagrams can be exported to PDF, PNG and SVG formats. Deployed as a web application
  • Umple can also be used as a textual modeling tool for UML
  • Microsoft has released a code sample for Visual Studio that allows describing class, use case and activity diagrams using simple textual descriptions
  • Finite State Machine Diagram Generator: a simple XML-based syntax to define UML state machines. The diagramming tool is implemented as a free web service. The tool also allows to generate code (Java, C++ and C#) from those diagrams.
  • seqdiag – simple sequence-diagram image generator from a .diag file (similar to DOT file (graphviz’s)).
  • js-sequence-diagrams : A text to UML Sequence diagrams with JS
  • PlantText UML Editor and SeedUML: two online textual UML editors based on PlantUML .

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 lists are not complete, for instance, moskitt , UMLet and diagram designer are missing).

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.

Tools specific for MACs:

  • 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!


25 Responses to UML tools

  1. Anonymous says:

    Mario Jeckle’s list OF UML tools definitely _was_ a good resource IN 2004 – but, due TO SOME tragic circumstances (, this site will never be updated.

  2. Anonymous says:

    another great resource


  3. Franck says:

    Great resource. Another web sites that tries TO maintain a list OF UML tools (BOTH commercial AND OPEN source) IS

  4. anno says:

    ArgoUML, made in Java and so multiplateform !

  5. [...] = 'wpp-261'; var addthis_config = {"data_track_clickback":true};Our latest addition to our list of UML tools for Ruby is Umlify an open-source project that generates UML class diagrams from your ruby source code. [...]

  6. [...] And if you just want to render your UML diagrams as part of a web page, several of the tools in this list of textual modeling tools could be used for that purpose. If you haven’t yet found what you’re looking for, check [...]

  7. [...] for modeling languages are becoming increasingly popular (you just need to see the growing list of textual UML tools) and I do believe they are useful in a number of scenarios (sorry, but I don’t buy they are [...]

  8. Nicolas Chauvat says:

    For Python, see also pyreverse, included in the Pylint source distribution.

  9. Integranova says:

    Check out Integranova M.E.S. (Model Execution System), the first completely automatic software development solution.

    Today Integranova is an international market leader within the Model-Driven Software Development landscape and has built a solid reputation amongst its customers by delivering a complete Model-Driven Arquitecture and Development Platform.

  10. logongas says:

    estoy buscando algo parecido a PlantUML.
    Para mi PlantUML es genial ya que he creado un plugin para dokuwiki y mientras hago la documentación en la wiki tambien realizo los diagramas en UML como texto.
    El problema de PlantUML es que necesita un servidor Java.

    ¿Conoces algo como PlantUML pero que funcione en PHP?

    El proyecto de jsUML2 me ha parecido muy interesante ya que se podría añadir como un plugin tambien a dokuwiki y al ser JavaScript funcionaría en cualquier hosting.

    He visto la documentación de jsUML2 pero no he visto donde se guarda cada documento que realizo o como ponerlo en formato “solo lectura”, etc.


  11. jordi says:

    Para integrar en algo como un wiki lo más útil que he visto es yUML

    Para preguntas acerca de jsUML2 mejor que contactes directamente con los autores (que de hecho son de Córdoba con lo que todo queda en casa :-) )

  12. [...] López already defended the idea that the format of input models should be flexible and textual models are becoming more and more popular every day but models in excel?? It´s difficult to imagine when [...]

  13. M.C. says:

    There’s a new kid on the block for Mac and iPad.

  14. [...] our UML tools web page for more info on UML [...]

  15. [...] pywebuml – create UML class diagrams from Java, C# and python files February 08, 2012   jordi   No comments var addthis_product = 'wpp-262'; var addthis_config = {"data_track_clickback":true,"data_track_addressbar":false};if (typeof(addthis_share) == "undefined"){ addthis_share = [];}Pywebml is a new addition to our list of UML tools for python. [...]

  16. [...] (typeof(addthis_share) == "undefined"){ addthis_share = [];}One of the UML tools for python includes the option of displaying the generated UML class diagrams (obtained by doing reverse [...]

  17. [...] (typeof(addthis_share) == "undefined"){ addthis_share = [];}The latest addition to our list of textual UML tools (in a broad sense) is seqdiag [...]

  18. [...] on the yUML service to render the diagrams.  Basically, with AndyUML you can write and store the textual UML definitions to be sent to yUML for its [...]

  19. [...] No comments A new version of PyNSource , a reverse engineering tool for Python source code (see others) has been released (GPL 3 license) with some interesting new [...]

  20. Flow Chart says:

    How do I get Lucidchart on this list?

    It is really easy to make UML diagrams with Lucidchart.

  21. AS says:

    ModelWorld Online modeller and repository.
    The first release of modelworld:

  22. Alex says:

    Diagramo – can be an option too: full HTML5 based and GPL.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress