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 :
Contents
For some of these tools I’ve found a twitter account you can follow to get updated information about new releases.
Generic CASE tools
- Vendor directory listing by the OMG: Listing of vendors, specially of those that somehow collaborate with the OMG.
- Objects by design list of tools: Great list but unfortunately also outdated
- Comparison of UML tools in Wikipedia
- UML Forum – tools: simple comparison of some well-known tools
- List of UML tools in freebase comparing OCL support, code generation and reverse engineering support, collaborative modeling,… The comparison can be personalized by selecting and filtering the categories of interest for the user
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).
- (seem to be a dead link now) 10 Free, Standalone and Easy to Use UML Editors
- Survey of Open Source Modeling Tools for Software Development
- Top 5 open source UML tools from Open Tube.
- Best Open Source UML tools from Open Source Applications
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!
http://en.wikipedia.org/wiki/List_of_UML_tools
Mario Jeckle’s list OF UML tools definitely _was_ a good resource IN 2004 – but, due TO SOME tragic circumstances (http://en.wikipedia.org/wiki/Mario_Jeckle), this site will never be updated.
another great resource http://case-tools.org/
regards
Great resource. Another web sites that tries TO maintain a list OF UML tools (BOTH commercial AND OPEN source) IS http://www.umltools.net/
ArgoUML, made in Java and so multiplateform !
http://argouml-downloads.tigris.org/
For Python, see also pyreverse, included in the Pylint source distribution. http://www.logilab.org/project/pylint
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.
Hola,
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.
Gracias.
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 🙂 )
There’s a new kid on the block for Mac and iPad.
http://models.wowsystems.pt
How do I get Lucidchart on this list?
It is really easy to make UML diagrams with Lucidchart.
ModelWorld Online modeller and repository.
The first release of modelworld: http://www.modelworld.nl/
Diagramo – http://diagramo.com can be an option too: full HTML5 based and GPL.
http://www.nomnoml.com is a web based textual UML tool which is nice.
Our company also have a tool to create various UML diagrams online. You can draw many UML diagram types and there are plenty of templates to get started as well. Please check out UML software page and consider adding it to the list. Thanks.
Hi…i´m looking for a modeling tool that allows integration with Python. I need to create a meta-model and can have a code generator from the meta-model to Python, same like Eclipse Modeling Framework do. Any recommendation?
Thanks,
Don´t know any tool like the one you ask for but one possible workaround would be to define your metamodel as a UML class diagram and then use a UMLtoPython code-generation tool
I know I arrive a little bit late here (more than 2 years), but anyway. I’ve started working few weeks ago on a kind of EMF Python3 implementation called PyEcore (https://github.com/aranega/pyecore). The idea is to provide the almost equivalent of Java EMF features in Python, but using some of the Python feature as “callable”, “descriptors”, … in order to create a more Pythonic EMF experience:
Example for dynamic metamodel:
>>> from pyecore.ecore import *
>>> A = EClass(‘A’) # Create an A metaclass
>>> a = A() # creates an instance of A
>>> A.eStructuralFeatures.append(EAttribute(‘name’, EString))
>>> a.name = ‘myname’
>>> a.name = 4 # will raise an exception, BadValueError
The project tries to focus on dynamicity and flexibility provided by Python. At the moment, dynamic and static metamodel are supported. The generator for the static part is an Acceleo generator (currently only deals with ‘.ecore’). XMI serialization and deserialization of Eclipse EMF XMI is also supported (partially). Also, I started some experimentation on a kind of M2M using Python >= 3.5 with annotations (inspired by QVTo): https://github.com/aranega/pyecore/blob/feature/refactoring/experimental/m2m/transfo.py
The project is still young and still requires love!
Thanks Jordi..i´m working with EMF to create a meta-model…EMF has a code generator for Java, but no for Phyton…i wondering about a tool that allows the same think but for Phyton… I think EMF is a good tool to create meta-model, i´m to check UMLtoPhyton to see how work´s.
One question, if i create a meta-model, i can use it to create a data base?? Is a good practice do that?
Thanks,
Metamodel are models as well. My point in my previous comment was that if you plan to use your metamodel to create a set of database tables, you could get the same effect drawing your metamodel as a UML class diagram and finding a tool that offers some kind of UML to python (and UML to database) generation option.
Conceptually, clearly different. In practice, same result
Exactly Jordi…that´s what i thinkig to do…create a UML class diagram and then, use it to create a set of database tables…
I tried with PyUML but do not work…this is a plug-in for a old versión of Eclipse (3.2)
I check some of the others UML to Python tools, but I did not found any that work well…
I will check then UML to DB to see if i can find the right tool.
Thanks for yours comments,
Exactly Jordi…that´s what i think to do…create a UML class diagram and then, use it to create a set of database tables…
I tried with PyUML but do not work…this is a plug-in for a old versión of Eclipse (3.2)
I check some of the others UML to Python tools, but I did not found any that work well…
I will check then UML to DB to see if i can find the right tool.
Thanks for yours comments,
hi. a blind programming student doing certificate iv programming. now i use a screen reader jaws for windows from http://www.freedomscientific.com. now need do a core subject assignment where i need to create model diagrams, or use the visual studio modelling projects. now, my lectuer suggested xml diagrams tools, need to create uml, state, use, case, class and sequence diagrams. now need some way for my screen reader to read the output. any ideas, come across this senario. let me know. need a tool to complete the assignment. so, any ideas. marvin.
Hi,
A new UML to Ruby code generator is available in GenMyModel http://blog.genmymodel.com/let-uml-shine-using-ruby.html
This generator is released under the MIT licence. Feel free to comment and/or contribute.
Hi! You are missing one free Textual UML tool for sequence diagrams: http://sequencediagram.org
I have created a VSCode extension for generating offline UML diagrams based on the yUML syntax. See: https://marketplace.visualstudio.com/items?itemName=JaimeOlivares.yuml
In my opinion there’s little which can beat Visual Paradigm (http://visual-paradigm.com/) when it comes to user friendliness and overall flexibility. It is a commercial product (with a freely to use community version) and one of its best features (in my opinion of course) is that you can integrate it into most popular IDE’s (Eclipse, NetBeans, IntelliJ and Visual Studio).
Of course in the end it’s all personal preference, but the workflow which VP provides can easily match that of Microsoft Visio itself in my opinion. But UML design is really really easy with this.
(for context sake: I’ve been using VP ever since NetBeans 4.1 came out, which is roughly 8 years).
The yUML extension for VSCode now supports sequence diagrams and embedding into markdown documents: https://marketplace.visualstudio.com/items?itemName=JaimeOlivares.yuml