A UML (Unified Modeling Language) diagram is a graphical representation of a system or software design using standardized symbols and notations. It provides a visual way to represent the structure, behavior, and relationships of different components within a system.

UML diagrams are widely used in software development for various purposes. Some of the common use-cases of UML diagrams include:

  1. Structural Modeling: UML class diagrams are used to represent the structure of a system by defining classes, attributes, methods, and their relationships. They help developers understand the organization of classes and their interactions.
  2. Behavioral Modeling: UML activity diagrams and state machine diagrams are used to represent the behavior of a system. Activity diagrams show the flow of activities and actions, while state machine diagrams represent the different states and transitions of an object or system.
  3. Use Case Modeling: UML use case diagrams are used to identify and represent the different use cases of a system. They help stakeholders understand the functionalities and interactions of the system from a user's perspective.
  4. Interaction Modeling: UML sequence diagrams and communication diagrams are used to represent the interactions between objects or components within a system. They show the order of messages and the flow of control during runtime.
  5. Deployment Modeling: UML deployment diagrams are used to represent the physical deployment of software components on hardware nodes. They help in understanding the distribution and configuration of software and hardware components in a system.

UML diagrams provide a standardized and visual way to communicate and document software designs. They help in improving the understanding of system requirements, facilitating collaboration among stakeholders, and identifying potential design flaws or inconsistencies early in the development process.

Unlike many tech bloggers, who frequently incorporate commercial services into their blog posts and present them as free and open-source, we exclusively feature the free/open-source alternatives.

In the following list, you will find truly free and open-source UML design apps for Windows, Linux, and macOS. These apps have been collected, evaluated, and tested.

Modelio

Modelio is an open-source modeling environment that supports various modeling standards such as UML, BPMN, ArchiMate, and SysML. It is designed for developers, analysts, and architects, offering a wide range of functionality for enterprise architecture, process modeling, software development, and systems engineering.

Modelio allows for the integration of different standards, enabling the modeling of business processes within a larger context.

It also supports ArchiMate for enterprise architecture modeling and BPMN for graphical representation of business processes. Additionally, Modelio provides UML modeling capabilities for system architects and software engineers.

Modelio is written with Java so it can be installed and used on Windows, Linux, and macOS.

Key Features

  • UML Modeler : Modelio is a first and foremost a modeling environment, supporting a wide range of models and diagrams, and providing model assistance and consistency-checking features.
  • BPMN support integrated with UML : Modelio combines BPMN support and UML support in one tool, with dedicated diagrams to support business process modeling.
  • Java code generator : The Java Designer module uses an RCP/Eclipse-style project file structure, and supports Java code generation and reverse, Javadoc generation and Java automation.
  • XMI import/export : Modelio provides an XMI import/export feature that enables you to exchange UML2 models between different tools.
  • HTML model publishing : With the HTML Publisher module, publish your models in HTML format.
  • Extension system : Modelio can be extended for any language, methodology or modeling technique just by adding modules to your configuration. You can either use existing modules or else develop your own.
  • Scripting language support (Jython) : Modelio provides integrated support of the Jython scripting language, for online requests, small scripts and macro definition.
GitHub - ModelioOpenSource/Modelio: Modelio is a modeling solution offering a wide range of functionalities based on the main standards of enterprise architecture, software development and systems engineering.
Modelio is a modeling solution offering a wide range of functionalities based on the main standards of enterprise architecture, software development and systems engineering. - GitHub - ModelioOpenS…

Umlet

UMLet is a fantastic open-source UML tool that provides users with a user-friendly interface for effortlessly creating UML diagrams. With UMLet, you can quickly and efficiently draw various UML diagrams to visualize your software designs. Additionally, this amazing tool allows you to export your diagrams to different file formats such as eps, pdf, jpg, and svg, making it convenient for sharing and collaborating with others.

One of the standout features of UMLet is its seamless integration with Eclipse. By using UMLet within Eclipse, you can easily access and work on your UML diagrams directly from the Eclipse environment, enhancing your productivity and streamlining your development process.

Furthermore, UMLet offers a wide range of customization options, allowing you to create new and unique UML elements tailored to your specific needs. This flexibility empowers you to design UML diagrams that accurately represent the intricacies of your software architecture.

UMLet offers a desktop version and a web version that can be run directly on the web browser.

GitHub - umlet/umlet: Free UML Tool for Fast UML Diagrams
Free UML Tool for Fast UML Diagrams. Contribute to umlet/umlet development by creating an account on GitHub.

JetUML

JetUML is an innovative and user-friendly lightweight desktop application that provides a seamless experience for creating and editing diagrams in the Unified Modeling Language (UML). With JetUML, users can effortlessly express their software design ideas and bring them to life. Whether you are a seasoned developer or a beginner, JetUML offers a hassle-free environment for sketching and refining your software architecture.

One of the key features of JetUML is its versatility in supporting various types of diagrams. From class diagrams to sequence diagrams, state diagrams to object diagrams, and use case diagrams, JetUML has got you covered. You can easily visualize and represent the relationships and interactions between different components of your software system.

In addition to its intuitive interface, JetUML offers convenient options for saving and sharing your diagrams. You can save your diagrams in JSON format, allowing for easy retrieval and modification in the future. Furthermore, JetUML allows you to export your diagrams to popular image formats, enabling seamless integration with other tools and platforms. You can even copy your diagrams to the system clipboard, making it effortless to incorporate them into your project documentation or presentations.

JetUML is available in two versions to suit your needs. You can choose to use the self-contained desktop application, providing you with a standalone experience that requires no additional installations. Alternatively, you can opt for the Java archive file version, which allows for flexibility and compatibility across different operating systems. Both versions are licensed under the GNU General Public License v3, ensuring that JetUML remains open-source and accessible to all.

Gophor

Gaphor is an exceptional UML and SysML modeling application written in Python. It has been meticulously designed to provide a user-friendly experience without compromising its powerful features. Gaphor goes beyond being a simple picture drawing tool by implementing a fully-compliant UML 2 data model.

With Gaphor, you can effortlessly visualize various facets of a system and construct comprehensive, intricate models with utmost precision.

When using Gaphor for the first time, you can choose from 5 available models: Generic, UML, SysML, RAAML, and C4 Model. These templates provide different modeling languages and techniques for software system architecture and risk analysis.

Gaphor is available for Windows, Linux and macOS.

UMLDesigner

UMLDesigner provides a range of diagrams for effectively working with UML 2.5 models. Its main objective is to simplify the transition from UML to domain-specific modeling, empowering users to manipulate existing UML models and seamlessly start working with DSL. Additionally, users have the flexibility to reuse the available representations and collaborate on UML and DSL models simultaneously.

Sirius is an impressive Eclipse project that empowers users to create customized graphical modeling workbenches using Eclipse Modeling technologies such as EMF and GMF. It offers a versatile workbench for architecture engineering based on models, which can be customized according to specific requirements.

These plugins are released under the EPL Open-Source License.

UMLDesigners confidently utilizes the standard UML2 metamodel offered by the Eclipse Foundation. Built upon Sirius, it facilitates seamless integration of UML and domain-specific modeling. You have the ability to expand upon the existing diagram definitions and effortlessly work with both UML and DSL models. Each diagram can be conveniently customized to meet your specific requirements.

Key Features

  • Package Hierarchy
  • Class Diagram
  • Component Diagram
  • Composite Structure Diagram
  • Deployment Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Machine
  • Sequence Diagram
  • Profile Diagram

SketchUML

SketchUML is a highly advanced pen-based interaction UML (Unified Modeling Language) diagram editor that effortlessly converts the shapes drawn by the user into precise software UML objects.

When using SketchUML, the user simply envisions the desired shape and skillfully draws it within the software. The software intuitively recognizes each stroke and promptly generates a list of objects that closely match the user's intention. From this comprehensive list, the user confidently selects the precise object that accurately represents their intended meaning.

SketchUML then expertly converts the stroke into a sophisticated software object based on the user's selection, granting them the freedom to seamlessly modify the object's properties to their desired specifications.

GitHub - aegistudio/SketchUML: Pen-based interaction UML (Unified Modeling Language) diagram editor.
Pen-based interaction UML (Unified Modeling Language) diagram editor. - GitHub - aegistudio/SketchUML: Pen-based interaction UML (Unified Modeling Language) diagram editor.

Geditor

Graph Editor is an open-source web-based implementing by Spring Boot, Kotlin, Java, based on jgraphx.

GitHub - to-be-architect/geditor: A Graph Editor implementing by Spring Boot, Kotlin, Java
A Graph Editor implementing by Spring Boot, Kotlin, Java - GitHub - to-be-architect/geditor: A Graph Editor implementing by Spring Boot, Kotlin, Java

StarUML

StarUML is a highly efficient and easy-to-use UML (Unified Modeling Language) software tool that provides software developers and designers with the ability to effortlessly create and visualize UML diagrams.

This exceptional tool offers a vast range of powerful features and functionalities that seamlessly support the entire software development lifecycle, making it an indispensable asset for professionals in the field.

StarUML is recommended for software developers and designers due to its powerful features, user-friendly interface, and extensive diagram support. It simplifies the process of creating and managing UML diagrams, making it an essential tool for software development projects.

Main Features

The main key features of StarUML include:

  1. Intuitive Interface: StarUML offers a user-friendly interface that makes it easy to navigate and create UML diagrams. It provides a drag-and-drop functionality, allowing users to effortlessly add and arrange elements on the diagram canvas.
  2. Versatile Diagram Support: StarUML supports a wide range of UML diagrams, including class diagrams, use case diagrams, sequence diagrams, activity diagrams, and more. This comprehensive diagram support enables users to effectively represent different aspects of their software system.
  3. Code Generation: StarUML provides the capability to generate code from UML diagrams. This feature saves time and effort by automatically generating code skeletons based on the defined classes and relationships in the diagrams.
  4. Customization Options: StarUML allows users to customize the appearance and behavior of UML elements. Users can define their own stereotypes, create reusable templates, and apply different styles to enhance the visual representation of their diagrams.
  5. Collaboration and Sharing: StarUML supports collaboration and teamwork by allowing multiple users to work on the same project simultaneously. It also provides the ability to export diagrams in various formats, making it easy to share and collaborate with stakeholders.

Violet

Violet is a user-friendly UML editor that offers several benefits. It is easy to learn and use, allowing users to quickly create UML diagrams of commonly used types such as class, sequence, and state diagrams. Violet is completely free and distributed under the GNU General Public License. It is a cross-platform tool, compatible with different operating systems.

Violet is primarily intended for students, teachers, and authors who need to produce simple UML diagrams efficiently. While it is not designed as an industrial-strength tool like Rational Rose or StarUML, it offers advantages for casual users and beginners who may find other tools too complex or expensive. Violet's slogan, coined by Mike Godfrey, is "Roses are rational, violets are GNU."

Some notable features of Violet include its ease of use, the ability to create visually appealing diagrams, its availability as a free and open-source tool, and its cross-platform compatibility. It is important to note that Violet does not provide features commonly found in industrial-strength UML programs, such as code generation, reverse engineering, semantic checking of models, or XMI export/import capabilities. However, for users who prefer simplicity and want to create basic UML diagrams without unnecessary complexity, Violet can be a suitable choice.

In summary, Violet is recommended for individuals who require a straightforward UML editor for producing simple UML diagrams quickly. Its ease of use, visually appealing diagrams, free and open-source nature, and cross-platform compatibility make it a convenient tool for students, teachers, and authors. For more advanced needs, industrial-strength UML programs like Rational Rose or StarUML may be more suitable.

Classic Violet

Dia

Dia is a free and open-source diagramming software that can be used for a variety of purposes, including creating UML diagrams. It offers a user-friendly interface and a wide range of pre-built shapes and symbols for different types of diagrams.

As a UML diagram editor, Dia allows users to create and edit UML diagrams such as class diagrams, use case diagrams, sequence diagrams, and more. It provides the essential tools and features needed to represent the structure and behavior of software systems using UML notation.

Dia is widely used by software developers, system analysts, and designers to visually represent and communicate software designs and architectures. It enables users to create clear and concise UML diagrams that can effectively communicate complex ideas and relationships within a software system.

One of the key advantages of Dia is its simplicity and ease of use. It has a straightforward interface that allows users to quickly create and modify UML diagrams without unnecessary complexity. Additionally, Dia supports multiple file formats for importing and exporting diagrams, making it compatible with other diagramming tools and enabling seamless collaboration with colleagues.

PlantUML

PlantUML is a free and open-source tool that allows you to generate UML diagrams from textual descriptions. It provides a simple and intuitive language for defining diagrams such as sequence diagrams, use case diagrams, object diagrams, component diagrams, and more. You can either use an online solution with embedded PlantUML or install it locally to generate diagrams.

The output can be in image formats like PNG, SVG, or LaTeX, and it also supports generating ASCII art diagrams for sequence diagrams. PlantUML is unaffected by the log4j vulnerability and offers features like writing JSON data, YAML data, and Work Breakdown Structure (WBS) diagrams.

Features

  • Write Sequence diagrams
  • Write use case diagrams
  • Write object diagrams
  • Write component diagrams
  • Write JSON data and YAML data
  • Write Work Breakdown Structure diagram (WBS)
GitHub - plantuml/plantuml: Generate diagrams from textual description
Generate diagrams from textual description. Contribute to plantuml/plantuml development by creating an account on GitHub.

Crystal Facet Uml

The crystal-facet-uml application is used to create diagrams for documenting system and software architecture. It allows software architects to create consistent diagrams for use-cases, requirements, structural views, behavioral and deployment views. The tool supports exporting diagrams in various formats and can also export the model to json and xmi format.

It provides a graphical user interface for creating, modifying, and deleting diagrams, UML/SysML elements, and relationships. Undo and redo functionalities are supported, and multiple windows can display different parts of the UML model.

crystal-facet-uml
Download crystal-facet-uml for free. Create consistent Uml diagrams. As software architect, you create a set of diagrams describing use-cases, requirements, structural views, behavioral and deployment views. crystal_facet_uml keeps element names and element hierarchies consistent.

Quick Sequence Diagram Editor

Quick Sequence Diagram Editor is a fast and reliable tool written in Java 8 for generating professional UML sequence diagrams from text. It supports various elements such as actors, con-/destructors, threads, broadcasts, notes, and fragments.

The tool can also serve as a Javadoc taglet and allows for exporting diagrams in PDF, (E)PS, SVG, and PNG formats. The source code is hosted on GitHub.

Key Features

  • The diagram changes as you type.
  • Diagram code is instantly checked, errors are pointed at.
  • Diagrams can be exported and zoomed.
  • Long diagrams can be paginated.
  • There are constraints imposed on diagram specifications, so one cannot model something that is impossible to implement.

NClass

NClass is an exceptional tool that allows you to effortlessly create UML class diagrams with comprehensive C# and Java language support. The user interface is thoughtfully designed to be straightforward and user-friendly, facilitating rapid and seamless development. It provides complete support for properties, enums, delegates, and other language-specific elements, all with rigorous syntactical and semantical verification.

With just a few clicks, you can flawlessly design your application. Our primary objective is to offer a class designer that is both simple to use and remarkably powerful. The available diagram styles enable you to create professional-looking diagrams akin to those found in Visual Studio or other high-end products. Additionally, you have the option to generate code from your models or import classes from existing .NET assemblies.

The app is available for Windows systems but can be compiled for Linux and macOS as well.

Key Features

  • Full C# and Java support with many language specific elements
  • Simple and easy to use user interface
  • Inline class editors with syntactic parsers for easy and fast editing
  • Source code generation
  • Reverse engineering from .NET assemblies (thanks to Malte Ried)
  • Configurable diagram styles
  • Printing / saving to image
  • Multilingual user interface
  • Mono support for non-Windows users
NClass - Free UML Class Designer

Umbrello UML Modeller

This is Umbrello UML Modeller is a free and open-source program for creating Unified Modelling Language (UML) diagrams of software.


Umbrello supports XMI 1.2 file import and export, with support for XMI 2.0 currently in progress. It also supports importing files from Argo UML, Enterprise Architect, NSUML for NetBeans, Poseidon for UML, IBM/Rational Rose, and Unisys XMI for Rational Rose.

Umbrello is part of KDE Software Compilation which means it comes with all GNU/Linux distributions. You will be able to install it using your normal software installation app (Muon, Software Centre, Yast etc) or command line package manager (yum, up2date, yast, zypper, apt-get, emerge etc).

Umbrello supports many Linux systems out-of-the-box such as Debian, Ubuntu, Fedora, Arch Linux, and Manjaro. It also supports FreeBSD, macOS and Windows.

Umbrello Project - Welcome to Umbrello - The UML Modeller
K Desktop Environment Homepage, KDE.org

WhiteStarUML

WhiteStarUML is a fork of StarUML 5.0 that improves compatibility with modern operating systems and provides bug fixes.

It features a refreshed user interface, fully functional handling of UNICODE strings, antialiased drawing and image support for diagrams, updated Java reverse engineering, integrated ERD Profile for SQL table generation and parsing, improved support for large projects, and compatibility with Windows 7, 8, and 10.

WhiteStarUML
Download WhiteStarUML for free. UML modeling tool derived from StarUML compatible with Windows 7-10. WhiteStarUML is a fork of StarUML 5.0 providing a number of bug fixes and improving compatibility with modern operating systems.

UML Sculptor

UML Sculptor is an impressive UML diagram editor. This early version, although it has a few limitations and some known bugs.

Limitations of the current version of UML Sculptor include support only for UML class diagrams, lack of Undo/Redo functionality, poor printing support (although EMF clipboard transfer can be used), and some non-functional UI elements.

Key Features

  • Create and edit UML class diagrams
  • Classifiers (classes, interfaces with stereotypes)
  • Packages
  • Notes
  • Relationships (generalization, realization, associations, dependencies)
  • EMF clipboard export
  • Print/print preview
  • Intuitive visual editing
UML Sculptor
Download UML Sculptor for free. UML class diagrams editor
UML Sculptor

GitHub - QuantumLeaps/qm: QM model-based design tool and code generator based on UML state machines
QM model-based design tool and code generator based on UML state machines - GitHub - QuantumLeaps/qm: QM model-based design tool and code generator based on UML state machines
GitHub - kbilsted/AsciiUml: Ascii UML drawing program
Ascii UML drawing program. Contribute to kbilsted/AsciiUml development by creating an account on GitHub.