1. Overview

Unified Modeling Language (UML) is a standardized visual modeling language in software engineering. It offers a common framework to depict system architectures, designs, and processes, subsequently facilitating communication and comprehension among software developers and other project members.

UML uses a comprehensive set of diagrams, each serving distinct purposes, ranging from capturing structural aspects to modeling behavior and interactions within a system. Due to its versatility, UML has applications across various stages of software development, including requirement analysis, design, implementation, and documentation.

In this tutorial, we’ll discuss a range of UML tools tailored for Linux environments, exploring their features and strengths, as well as, their application. Afterward, we’ll draw comparisons between them and learn how to choose the right tool for our modeling needs.

2. Unified Modeling Language

Earlier, we learned that UML is a standardized modeling language that uses a comprehensive set of diagrams and notations to visually represent different aspects of a system. In essence, the purpose of UML is to facilitate communication, design, and understanding among members involved in a development process.

UML encompasses various types of diagrams, each serving a specific purpose in capturing different aspects of a system. These diagrams include:

  • Use Case Diagrams- describes the interactions between users and the system, outlining the system’s behavior from a user’s perspective.
  • Class Diagrams- illustrates the static structure of a system, showing classes, attributes, methods, and their relationships.
  • Sequence Diagrams- presents the interactions between objects in a sequential order, depicting the flow of messages and method calls.
  • Activity Diagrams- models the workflow or process flow within a system, showing the sequence of activities and decision points.
  • State Diagrams- represents the different states of an object and transitions between these states in response to events.
  • Component Diagrams- displays the structural relationships between components or modules in a system.

Several UML tools are available in Linux, each offering a range of features and capabilities to support UML diagram creation and modeling. Some popular options that we’ll explore in this article include Umbrello, UMLet, and PlantUML.

3. Umbrello

Umbrello is a desktop-based UML modeling tool that comes pre-installed with the KDE desktop environment. It offers a user-friendly interface and supports various UML diagrams, including class diagrams, use case diagrams, sequence diagrams, and more.

3.1. Installation

Umbrello is typically included as part of the KDE software suite. It’s available out of the box in Linux distributions with KDE as the default desktop environment- such as Kubuntu. Conversely, it can be installed manually on non-KDE-based Linux distributions:

$ sudo apt install umbrello

[sudo] password for user: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  aspell kactivities-bin kactivitymanagerd kded5 kinit kio
...

Afterwards, we can open the software by running the command:

$ umbrello5
kf.xmlgui: Shortcut for action  "delete_selected" "Delete &Selected" set with QAction::setShortcut()! Use KActionCollection::setDefaultShortcut(s) instead.
kf.xmlgui: Shortcut for action  "move_tab_left" "&Move Tab Left" set with QAction::setShortcut()! Use KActionCollection::setDefaultShortcut(s) instead.
kf.xmlgui: Shortcut for action  "move_tab_right" "&Move Tab Right" set with QAction::setShortcut()! Use KActionCollection::setDefaultShortcut(s) instead.
kf.xmlgui: Shortcut for action  "previous_tab" "Select Diagram on Left" set with QAction::setShortcut()! Use KActionCollection::setDefaultShortcut(s) instead.
...

If Umbrello is installed correctly, then running this command should launch the application window:

umbrello-user-interface

This interface allows us to work with various diagrams and data types.

3.2. Basic Features

Umbrello offers a wide range of features designed to facilitate the creation and visualization of UML diagrams. Here are some of its basic features:

  • drag-and-drop functionality
  • diagram navigation
  • element customization
  • code generation
  • export capabilities

Overall, Umbrello provides a comprehensive set of features for UML modeling, making it a versatile tool for software developers, architects, and designers working on Linux platforms. For more advanced features as well as detailed instructions on how to use them, we can refer to the Umbrello user guide.

4. UMLet

UMLet is a lightweight and user-friendly UML diagramming tool that offers a simple yet effective solution for creating UML diagrams.

4.1. Installation

Users can download UMLet as a standalone application or use it directly in their web browser without the need for installation. To download, we’ll need to visit the UMLet website and then choose the appropriate version for our operating system. After that, we can install and launch the executable file:

umlet user interface
UMLet offers an intuitive user interface with many of the available features on display at first glance.

4.2. Basic Features

UMLet provides a range of features tailored to the needs of UML diagramming. Some of them include:

  • drag-and-drop interface
  • customization options
  • export and import to various file formats
  • keyboard shortcuts

Detailed information about UMLet is also available on the website.

5. PlantUML

PlantUML is a lightweight and open-source tool that takes a text-based approach to UML diagramming. Instead of a graphical interface, users write diagrams using a specific syntax called PlantUML language. This language consists of keywords and symbols that define the elements of the diagram and their relationships.

To get started, we can upload a text file or write some PlantUML code:

plantuml language

Subsequently, a diagram is generated for the code:

plantuml diagram

PlantUML also offers the option to upload a diagram and convert it to PlantUML language.

5.1. Installation

On most Linux distributions, the recommended approach is to install plantUML using the package manager:

$ sudo apt install plantuml

[sudo] password for kali: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  icc-profiles-free libavalon-framework-java libbatik-java
  libcommons-io-java libcommons-logging-java libfontbox2-
...

If the command is successful, then we should see PlantUML installed on our machine.

5.2. Features

  • Text-based Syntax
  • Supports Various UML Diagrams
  • Customization
  • Integration with renderers

More information on how to use PlantUML can also be found in the PlantUML language guide.

6. Web-based UML Tools

Web-based UML tools offer the convenience of accessibility from any device with an internet connection, eliminating the need for software installation. Let’s consider some popular options.

6.1. Lucidchart

Lucidchart supports various diagram types, including UML diagrams. It provides an intuitive interface for creating, editing, and sharing diagrams in real-time. With features like collaborative editing, version history, as well as integrations with popular platforms like Google Drive and Microsoft Office, Lucidchart streamlines the diagramming process and facilitates teamwork:

lucid chart interface

We can start with a blank document or work with a template.

6.2. Draw.io

Draw.io is a free and open-source web-based diagramming tool that also supports UML diagrams along with other types of diagrams. Additionally, it offers a wide range of shapes, symbols, and templates for creating UML diagrams effortlessly:

draw io

Similarly, Draw.io integrates with cloud storage services like Google Drive, OneDrive, and Dropbox, enabling users to store and access their diagrams from anywhere.

6.3. Creately

Creately is another cloud-based diagramming tool that offers a user-friendly interface and a vast library of shapes and templates for creating UML diagrams. It also features real-time collaboration, revision history, and integrations with popular project management and productivity tools like Jira, Confluence, and Trello:

creately interface

Creately also offers a variety of built-in templates to choose from.

In summary, web-based UML tools provide flexibility, scalability, and accessibility, making them suitable for teams of all sizes working on software development projects. They’re designed to foster collaboration while enhancing effective communication.

7. Conclusion

In this article, we’ve explored various options, including desktop-based tools like Umbrello, StarUML, and PlantUML, as well as web-based solutions like Lucidchart, Draw.io, and Creately. When choosing the right UML tool, we should consider factors such as ease of use, collaboration capabilities, integrations, and budget.

Umbrello, for instance, provides a user-friendly interface and supports a wide range of UML diagrams, making it suitable for beginners and experienced users alike. StarUML, on the other hand, offers advanced modeling capabilities and extensibility through plugins, catering to the needs of professional software architects and designers. PlantUML stands out for its text-based approach to diagramming, allowing users to generate UML diagrams using simple textual descriptions.

On the other hand, web-based solutions are more ideal for distributed teams, enabling collaborative diagramming from any location with internet access. In summary, the choice of UML tool depends on specific use cases and personal preferences. Whether desktop or web-based platform, the goal remains to streamline the software design process, improve communication among team members, and ultimately deliver high-quality software products.