If you need to run object-oriented programming, to represent a system clearly, and also make it accessible to external specialists, you may find the Universal Modeling Language to be ideal. UML is a modeling language, but has many other possible uses. Since the introduction of UML 2.0, UML diagrams are also suited to the graphical representation of non-computer-based concepts, such as use case...
Unified Modeling Language (UML) abstracts and visualizes systems of object-oriented programming. This makes the modeling language a practical tool for developers: On the one hand, it makes it possible to create clear blueprints for software projects, on the other hand, complex software systems can also be presented in an understandable way for people not familiar with the subject. For example, if you want to introduce new software for the latest company app to the Head of Marketing, do not use code – instead, you can use UML to show them the most important features of the app.
- Comparing UML tools: a summary
- UML diagram tools: what to consider
- Comparison of UML tools: from free UML tools to extensive desktop versions
- Microsoft Visio: the UML drawing tool for Office users
UML diagrams obviously aren’t drawn using Paint. UML tools are used to help you with the modeling language, but finding the right tool is not that easy. There are countless providers of UML programs on the net, but not every program offers the same functions. While some tools require less memory, they have few features. Other UML diagram tools can map any diagram type and export it to different programming languages and import a model from existing code. In return, many programs like these do not offer any function to exchange information about projects in a team.
The Object Management Group (OMG for short), specifies the UML standard – so you first should consider what you want to represent with UML. Should the system’s structure be shown or the system behavior? Depending on the answer, you then choose a UML tool that is suitable for your project.
This article was last updated in May 2021.
Comparing UML tools: a summary
Whether free UML tool, online UML tool, or integrated development environment, the best UML tool is one that performs the desired tasks efficiently and uses as few resources as possible. As you can see from the previous list, there are UML tools of every color. Whether you want to make a quick draft or create source code frames for a complex system and analyze them using diagrams – one of these applications will certainly be able to help you. Since nobody wants to spend the entire monthly budget on a tool for creating drafts, we have also considered the prices for individual offers in our comparison. In the following overview, we summarize the most important key features of UML diagram tools.
Supported programming languages/formats
Supports UML version
Online Mind Map Tool
Free and low-cost premium subscription
Web-based diagram software
Browser, plugin for Confluence or Jira, Google Apps, Hipchat
Free and low-cost premium subscription
Propriety software with single-user, floating, and mobile license
Java, C++, C#, CIL, XML, CORBA, WSDL, EJB, DDL, IDL
✔ Team server in Enterprise edition
Large companies, complex tasks
Relative high one-off payment
Web-based diagram software
Browser, app for iOS and Android, plugin
Drafts, large projects, teamwork
Free and low-cost premium subscription
IBM Rational Rhapsody
Graphical development environment for model-based software development and validation
Java EE, C++, C#, EJB, WSDL, XSD, CORBA IDL, SQL, .NET
Modular, fully integratable IDE
Proprietary diagram and vector graphics software
Windows, browser, iPad app, virtual machine
C++, C#, VSDX, VSDM
UML 2.0 + 2.5
Visualizing large projects
Low-cost subscription or high one-off payment
UML diagram tools: what to consider
Unified-Modeling-Language specifies 14 diagram types that represent the structure, behavior, and interactions of a system. To work with this language, you need the right tool – UML tools are modeling tools that can do much more than simple drawing tools. These programs do not only provide the standardized UML shapes, which can be provided with corresponding arrows and labels, but they are often platform-independent and export your UML diagrams in various formats. With some, you can also import code and display it as a diagram – or export diagrams as a code template. Other tools allow you to specify UML independently to create profiles that fit your project.
Depending on how far along you are with your project, particular tools might be more suited than others. Therefore, it makes sense to have more than one program at hand. These do not necessarily have to be desktop apps - there are also a variety of online UML tools. Although these often have a smaller range of functions, they are perfectly sufficient for making quick first drafts. It is important for the program to export your diagram via XMI (short for XML Metadata Interchange) in a format that is compatible with your other tools. In the following few paragraphs, we will explain some use cases and give tips on which functions a UML tool should offer in each case.
Use case A: simple drafts or prototypes
Are you still at the beginning and only have a few initial ideas for the structure? Or do you want to quickly display a part of the system graphically? Then free UML tools are an effective solution. If you are in a hurry, just grab a pen and paper or use a simple drawing tool. However, these variants can never be more than simple sketches and that’s it. A free UML tool would attribute meaning to these drawings. For example, a simple rectangle with the label <<classifier>> symbolizes the instance of a class.
If you’re working in a team and the draft becomes a usable prototype, a UML tool enables you to export the diagram to a more feature-rich program via XMI. There you can integrate it into your existing architecture or extend the model you have just created. When choosing a UML tool, ask yourself the following questions:
- Do I want to program based on this graphic?
- Is the system area that I want to illustrate very complex?
- Do I have much time to familiarize myself with the program?
- Am I prepared to spend a large budget on simple drafts?
If you answered “no” to most of these questions, you should select a program that …
- Works fast.
- Doesn’t offer any superfluous functions, but only models the diagrams you need.
- Is a user-friendly, intuitively understandable user interface.
- Is available free of charge.
- Is a web application so you don’t have to download a new program.
Use case B: abstract complex systems
The main task of UML is to simplify complex systems, making them understandable even for beginners. A good UML tool also makes teamwork and cooperation between different departments a lot easier. Since extensive tools like these are rarely free, you should make sure that they are compatible with the current version of UML 2, since UML 2 offers more diagram types than UML 1 and allows you to create profiles that metamodeling is able to tailor more precisely to your needs.
For the above use case, you need a UML diagram tool with the following features:
- It is platform-independent and ideally backwards compatible.
- The current UML diagram types are positioned at a central point in a clear menu – with all the necessary designs.
- Diagrams can be created with the drag-and-drop function, keyboard input, or imported code.
- The program should support the import and export of whichever programming language you use.
- The documentation is automatically created in the background by the program.
- Even if an error occurs in the system, the program should still be easy to use: usability and robustness are particularly important for large-scale projects with numerous users.
- Sharing and simultaneously working on a project should (if not anchored in the tool) at least work through integration with teamwork applications.
- A debugger immediately reports if errors occur in the model.
- Different perspectives for viewing as well as detailed model types provide an overview of the entire system and specific aspects.
- The tool allows simulations to eliminate error sources.
Use case C: creating finished code from a model
Some UML tools enable diagrams to be converted into a given programming language. They often work with Java, C++, C#, or XML schemas. Some tools also reconstruct UML diagrams from existing code. However, paradoxically, some of these tools do not necessarily provide the reverse engineering function for the same programming languages that they use to create code from UML diagrams.
If you want to convert finished source code from a UML diagram, consider how complex your application should ultimately be. Anyone that’s worked with modeling software knows how long it takes to sketch a diagram. A tool that is extensive as well as quick would be perfect for a task like this, and UML is supposed to simplify complex systems. An overly detailed and time-consuming diagram contradicts this purpose. Creating a diagram that visualizes all instances, including their dependencies in detail, requires more work than simply giving a programmer team an overview and letting them get on with it.
UML diagram tools with round-trip engineering generate diagrams from source code and convert the revised version back into code. The fact that you don’t have to draw all instances yourself saves a lot of time and makes it even easier to document the project. However, if you draw it yourself, it makes sense to maintain a certain level of abstraction. If you then convert your diagram into code, you can at least work in neat framework.
Comparison of UML tools: from free UML tools to extensive desktop versions
A good tool does its job without making operation difficult with unnecessary extras. Free UML tools are sufficient for simple drafts like in use case A. To illustrate complex systems or to find solutions for program integration through diagrams (like in cases B and C), you need the best UML tools with numerous features. In the following paragraphs, we introduce you to tools with very different functional ranges.
UML tools are often part of computer-aided software engineering (CASE), which aims to create source code as automatically as possible and to maintain finished software products automatically. With the help of technical descriptions, the process should run as error-free as possible and achieve results quickly. As a CASE tool, mature UML tools should fit well into an integrated development environment (IDE).
GitMind: simple use in the cloud
UML tool GitMind is controlled via a browser. In addition to creating UML diagrams, you can use the software to develop mind maps or shopping lists. For beginners, the tool even provides a range of templates. The UML area, for example, features various use cases and class diagrams. This means you don’t have to insert all the elements by hand. However, the latter isn’t difficult either. Individual building blocks can be selected from various categories from the sidebar of the dashboard. The elements can then be transferred to the diagram with just one click and are moved around via drag-and-drop. Orientation lines help with their alignment.
GitMind is an online tool. Everything is stored in the cloud. The advantage is that you can access your diagrams from anywhere and using any device, offering plenty of freedom for spontaneous working. Unfortunately, the provider does not offer a downloadable version, which may be an obstacle when editing diagrams on the move.
Compared to other tools, GitMind is difficult to integrate with other processes. Only XMind data can be imported. XMind is a similar tool to GitMind with a broader focus on brainstorming. Exporting data formats is limited. Users can choose from three image formats: PNG, JPG, and SVG as well as PDF.
On the other hand, the option to collaborate is a nice feature. You can easily add other GitMind users to your team, share projects and collaborate on UML diagrams. A convenient file management system is available from which file sharing can be enabled.
All GitMind functions are available as part of the free version. Once you’ve registered on the platform, you can create, save and export UML diagrams. However, exports are limited in the free version. File sharing is available as part of the free package. With the paid subscription, you get an unlimited number of exports and customer support via email.
|✔ Beginner-friendly||✘ No downloadable version|
|✔ All functions included in free version||✘ Does not create code|
|✔ Compatible with all common browsers||✘ No interface to other providers|
|✔ Many templates|
|✔ Collaboration with team members|
Gliffy: an online UML tool for beginners
The online application Gliffy is a cloud-based UML tool for the browser. First released in 2006, the modeling tool creates all types of diagrams such as flowcharts, Venn diagrams, and of course, UML diagrams. The online tool was written in HTML5 and scores points with its fast reaction time. Even before Gliffy went through the beta phase in 2007, the company (under the same name) cooperated with the Australian software group Atlassian. As early on as 2006, its collaboration software, Confluence, integrated a Gliffy plugin. Later, the Gliffy team developed a plugin for Jira. Google’s Workspace and Drive also contain the UML tool.
Whether as a plugin or standalone browser version, the software is ideal for teamwork. You can share read-only versions as well as actively work on diagrams simultaneously and exchange information using the integrated comment function.
Before you can use Gliffy, sign in with your email address or a Google, Microsoft, or Facebook account. After the free trial period of 14 days, it can only continue to be used for free with limited functionality. However, you can upgrade to a premium account with a monthly subscription.
Gliffy has a large, well-assorted shape library. In addition to UML, you can use it to model simple flowcharts or business process modeling and notations (BPMN), among other things. At the beginning, an orientation window allows you to define your desired modeling language. If you select groups, the corresponding tools are highlighted in the menu bar. Grid and guidelines allow you to place diagram elements precisely where you want them.
The theme tool should determine the color family for the diagram but is limited to the arrow elements in the test. By clicking on classes, components, and the like, you can still quickly adjust the color and font of the symbols. You can also create different layers in no time by clicking on the corresponding menu item (far right in the tool bar). In addition, you do not have to plan the diagram construction step by step in advance. You can simply undo errors with the delete function. If you want to insert an element, Gliffy detects the change and suggests appropriate insert options.
As a free UML tool, Gliffy imports diagrams in GON, Gliffy, and gXML formats. For the Microsoft Visio format, VDX, you need a business account. The same applies when exporting common image formats such as JPG, PNG, and SVG and the connection to Google Drive. Free accounts also have the native “Gliffy” format. Save a document in this format, share it easily with others via a download link, or embed it on various platforms such as HipChat, Slack, Confluence, or WordPress.
A free account also provides 2 MB of cloud space for your diagrams and allows you to share five models publicly at the same time. With a paid account from about $7.99 per month, Gliffy offers you even more possibilities: unlimited memory, diagram import from Visio, and export to the mentioned image formats. An enterprise account is required for significantly more performance. For such high demands, however, there is better software.
|✔ Suitable for all current browsers||✘ Features such as image export and Google Drive interface can only be used in group business|
|✔ Extensive support||✘ No debugger|
|✔ Integrated team communication||✘ Does not create code|
|✔ Fast operation thanks to HTML5, drag-and-drop, and clear user interface|
|✔ UML 2 compatible|
MagicDraw: everything you need for professional UML diagrams
MagicDraw von No Magic is the first comprehensive full version for professional modeling in this list. A modern design and a clean layout set this desktop app apart from the rest as a proprietary software for high demands. The range of functions and user-friendliness confirm this. The modeling tool supports UML, its equivalent for operating systems, SysML, the graphical representation of business processes with BPMN (Business Process Model and Notation) and the UPDM architecture framework (United Profile for DoDAF/MODAF). In MagicDraw, you work with current diagrams according to the UML 2.5 standard, whose profiles you can tailor to your own needs. MagicDraw also offers OCL, the boundary condition notation, and XMI, which you can use to export diagrams to other programs without any loss.
MagicDraw offers five editions (from Reader to Enterprise) that differ in both functionality and cost. In our test, we took a closer look at the Enterprise edition because it not only offers all the features and plugins for effective modeling, but also enables full integration into an integrated development environment such as Eclipse Workbench.
The UML tool imports many file formats, including native XMI metadata formats from Eclipse and IBM’s Rhapsody, CSV, ReqIF, DoDAF, and CA Erwin Data Modeler. You can save and print your diagrams as copies in the image formats BMP, PNG, JPG, and EMF. Code generation, reverse engineering and round-trip engineering are also possible. MagicDraw is based on three languages: Java, C++ in different dialects, and C#.
If you model UML diagrams yourself in an empty document or add details to modeling, you’ll quickly appreciate the customizable panels. Already at the first start of the UML diagram tool, the clear division proves to be a big plus. Add as many tabs as you consider necessary for your workflow. Despite its many functions and edition options, MagicDraw provides a clear layout and unobtrusive short explanations, so that even inexperienced users can quickly put together their first drafts without much familiarization time.
If you select the “diagrams” tab in the main menu bar, the UML tool opens the template for the selected type in the sidebar of the workspace. If you drag an element onto the worksheet and click it once, small buttons appear. Click on these (or right-click on the element) to edit the object properties, add text, or hyperlinks. The personalization toolbar above the worksheet always highlights the tools you can use to graphically customize one or more selected items. The layout tool brings order to unstructured drafts. With the zoom and perspective panel, you have your project completely in view – from small details to the whole image.
The UML program also checks your project for errors and displays them. For independent analysis, you have the option of comparing different versions of a diagram next to each other and checking different levels of abstraction for traceability. Architects particularly appreciate the free text input for creating diagrams, as it favors a smooth workflow.
|✔ Contains all templates for diagram types in current UML 2.5||✘ File download only possible after completing registration|
|✔ Supports many programming languages and formats||✘ Comparatively high prices|
|✔ Intuitive and understandable user interface||✘ WebPortal only available in Enterprise edition|
|✔ Import/export, code generation, reverse engineering, and round-trip engineering|
|✔ Short familiarization time|
Lucidchart: the online UML tool for teamwork
Lucidchart is a UML tool that you can access at any time in your browser. The free account gives you a well-filled UML toolbox. It includes 7 types of UML diagrams and business process modeling languages such as BPMN 2.0, network icon templates, mobile device mock-ups, and video integration. One of Lucidchart’s advantages is its intuitive operation. It also enables teamsharing and simultaneous editing of diagrams and integrates comments directly in the tool. As a UML tool for Mac, Linux, and Windows, it is a good alternative to Microsoft Visio for Mac users.
If you already use another teamwork software, look at the list of integrations. Lucidchart can be plugged in to Google and Microsoft applications, Atlassian products, chat apps, and Amazon web services.
If you want to try out the UML tool for free, create a free no-obligation account, or use the equally free test phase of the premium accounts. With the latter, you can edit an unlimited number of documents (as opposed to just three), allowing you to export charts, integrate third-party vendors, and work with more professional forms. In the free account, you have the following UML diagram templates:
- Class diagram
- State diagram
- Activity diagram
- Sequence diagram
- Component diagram
- Use case diagram
- Distribution diagram
If you want to design complex diagrams with more than 60 objects, you need a premium account. The same applies if you are working on more than three active documents at the same time.
You can also import data and diagrams with the free account. The UML diagram tool supports native diagram formats from Microsoft Visio, Omnigraffle, Gliffy, and Draw.io. Drag data from CSV files, SQL, AWS architecture, and mind maps. The data linking feature also integrates real-time data from Excel, CSV, and Google Sheets. If you want to edit native formats of other providers, however, you will again need a paid account. It also allows you to back up and restore your data.
But how efficient is Lucidchart to work with? The user interface is characterized by a clear layout and plenty of space to work. The menu pops up from the right when you need it and disappears as a narrow toolbar until you need it. With one click, you can change the page settings, create layers, and presentations, or exchange information with teammates. You will find the templates in the bar to the left of the workspace. You can customize its content and size by adding templates and using the mouse to drag the width of the bar to how you want it.
The horizontal toolbar shows the tools you need each time you want to drag a shape or line onto the work area. You can easily adjust the size and orientation by clicking on the shape. If you hover over a shape with the mouse, small red circles will appear. You can add arrows and lines at these points. Use the grid and automated guides to easily draw neat diagrams. Some developers prefer to write input commands instead, building their UML diagram. The tool offers the UML markup function so you can do this.
The team edition allows you to customize user roles and protect your documents through single sign-on authentication. Lucidchart cloud storage also encrypts your data. Every time you share a document, you decide who can edit, comment, or just read it.
|✔ Many teamwork features||✘ Many functions only available in Pro or Team accounts|
|✔ Large template library||✘ No debugger|
|✔ UML mark-ups accelerate the workflow||✘ Code cannot be generated from diagrams|
|✔ Scalable through cloud storage|
|✔ Space-saving, clear design|
IBM Rational Rhapsody: graphical developments environment for full process integration
IBM Rational Rhapsody is a graphical, integrated development environment (IDE) for software and product development. The UML program supports object-based software development for web-based applications as well as embedded systems and real-time systems based on C++ and Java EE. UML/SysML modeling enables you to create source code quickly in the IDE for the specified languages, C and C#, and Ada.
Rhapsody was passed on many times after its development in 1998. After IBM acquired the Swedish company, Telelogic AB in 2008, the American company expanded its rational product range with Telelogic’s Rhapsody. The Swedes only purchased the IDE in 2006 by acquiring the original developer company, I-Logix. As one of the first graphical development environments, Rational Rhapsody, spread in a short time.
International brands use the software for large projects that require detailed version differentiation for numerous team members in different countries. Jaguar Land Rover, for example, uses Rational Rhapsody to adapt the software to its infotainment offer to different markets.
For these and other tasks, Rhapsody offers a development environment in which you can draw diagrams, generate, and check code, and compare or analyze different versions. The UML tool supports the following:
These UML-based modeling languages are suitable for tool-based software development, which saves programmers a lot of work. In addition, you can rely on compatibility since UML and Rhapsody were developed in the same house – namely at Rational Software.
In Rhapsody, you either draw the models freely, import existing code for visualizations as diagrams, or download requirements from a requirements management tool such as Doors, a relative of the Rational family. The following YouTube video shows you how to create a SysML model for a real-time system from a list of requirements in Doors. In this case, IBM will present its approach to the INCOSE Vendor Challenge. The aim of the project was to create a parking system for a hotel chain.
The developers built the UML tool based on the open source software Eclipse. The current version still supports the Eclipse IDE platform as an integration or a plugin. It contains further integrated development environments as workflow integration:
- Wind River Workbench
- Green Hills MULTI
- Microsoft Visual Studio 2008
As an IDE, Rhapsody works in real time and creates source code frames from diagrams. The program is available in four different license forms. In addition, IBM offers different versions of the UML tool specifically for the different requirements of different departments. The modules are compatible with the IDE. You can choose between the Architect for Systems Engineers, the Designer for Systems Engineers, the Architect for Software, or the Developer. The programs differ mainly in functionality and price.
The Developer is the full version, which combines all features and integrates your created source code into the embedded development environment. It also optimizes the path from the first draft to the prototype and to the finished implementation. For example, you can use round-trip engineering and reverse engineering for this purpose. If you want to synchronize source code and design or document the process, this is also possible. Among the slim-lined versions, Architect for Software is the most powerful tool for working with UML, because it is the only one that offers these developer features.
|✔ Modular design, scalable||✘ Longer familiarization time|
|✔ Supports all current UML 2 diagram types||✘ Expensive compared to other options|
|✔ Integrated development environments and interfaces for other development platforms and tools enable a secure, integrated workflow right from the start|
|✔ Code frame generation for many programming languages|
Microsoft Visio: the UML drawing tool for Office users
Microsoft Visio is a popular chart and visualization software and belongs to the Office family. Therefore, Visio can be easily integrated into the suite. For example, if you use Office Pro 365, Microsoft offers you a subscription extension for Visio. However, the cost will be added to your Office subscription. Visio Online Plan 2 includes a desktop app and a web-based editor for up to five PCs (volume licensing on request).
Alternatively, you can get Visio Professional as a permanent license at a steep premium. This version includes a desktop app, the browser applications, and an iPad app. Visio Standard does not support UML diagrams and is therefore not included here. As UML tools, the Visio versions presented are primarily aimed at corporate customers who appreciate the familiar Office environment and want to optimize their workflow by seamlessly integrating the appropriate modeling tool into their existing system.
If you need a comprehensive shape library with current UML notations standards and if you have already subscribed to Microsoft Office Pro 365, we recommend Online Plan 2.
A desktop Visio version for Mac is currently not available. The previously mentioned cloud-based app, Lucidchart, can serve as a mediator since it also imports native formats from Visio.
Visio is largely limited to features that allow you to draw industry-standard vector graphics and diagrams and work in a team. If you release a diagram, authorized team members can work on it simultaneously in the document as well as exchange ideas. Visio can also be integrated with Microsoft Teams to make collaboration easier. You simply share finished sketches and prototypes via the connected cloud.
If you want to create code frames from your diagrams, you need other UML tools, for example, Visual Studio from Microsoft. As this is also part of the product family, the integrated development environment allows Visio to be integrated into the development process. Save your work in the UML diagram tool in native OPC/XML metadata formats so that you can export your diagrams and continue working on them without any data loss.
Native Visio formats:
- VSD (drawing)
- VSS (stencil)
- VST (template)
- VSW (web drawing)
- VSDX (OPC/XML drawing)
- VSDM (OPC/XML drawing, macro-enabled)
- VSSX (OPC/XML stencil)
- VSSM (OPC/XML stencil, macro-enabled)
- VSTX (OPC/XML template)
- VSTM (OPC/XML template, macro-enabled)
- VSL (add-on)
Visio has neither code generation nor round-trip engineering functions. However, it enables reverse engineering where you create UML diagrams from imported data or source code. Therefore, the UML tool fulfils its main task, which consists of clearly displaying processes and systems. Visio also enables you to integrate real-time data into your diagrams with a single click. This so-called data linking illustrates complex business processes (with BPMN) during their entire runtime, for example. Alternatively, you can test dependencies within a system using a UML communication diagram – live with real data.
|✔ Supports UML 2.0 (Online Plan 2 also supports UML 2.5), including XML metadata||✘ Steep learning curve for beginners|
|✔ Real-time data linking helps with live testing||✘ Expensive compared to other options|
|✔ Clear user interface with familiar ribbon menu||✘ No integrated code frame generation|