StarUML is a simple yet complete free UML design tool.

  • It supports the concept of Models 🏘️
  • It supports more than 20 types of diagrams πŸš€
  • It supports many symbols/elements for each diagram πŸ‘Œ
  • It has many plugins πŸ•ΉοΈ ; although some are not updated
    • UML to OpenAPI (An API Specification)
    • UML to Code (C#, SQL, Python, TypeScript, Java, C++...)
    • Code to UML (C#, Java, C++...)
    • ...
  • ...

But it also has some bugs, including some annoying ones πŸ›.

Once you have installed the software, run it. To start from a clean environment, click on "Model" and select "Delete From Model".

Base Editor Opened Model

πŸ‘‰ StarUML projects files are .mdj files (models + diagrams).

Editor Overview

StarUML Editor

πŸ’‘ The editor (5) is available after selecting an element, either from the view (4) or the model (1).

The editor is divided into five windows.

  1. Model Explorer 🌱: a model is a collection of diagrams. You can reuse something from a diagram in another diagram.

  2. Working Diagrams πŸ“‡: all recently opened diagrams

  3. Toolbox πŸͺ›: UML elements available for the opened diagram

  4. View πŸ–ΌοΈ: the opened UML diagram. Click on an element from the toolbox and click somewhere in this window to add it.

  5. Editor πŸ§‘β€πŸ³: you can manipulate UML elements properties or add additional information such as documentation.

➑️ In the Model Explorer, "Untitled" is the project name.

Random Notes

Export Diagram

You can export a diagram using File > Export Diagram As. The main drawback is that diagrams have an Unregistered background.

You can still take a screenshot of a diagram for a fast solution.

You could also use the SVG trick: export your diagram to SVG, remove all the UNREGISTERED, and convert it to PNG.

Do not trust the view

You can delete an element, but it will remain in the model, meaning:

  • πŸͺ² If we use the model explorer to select an element, for instance, to edit it, then we may pick the wrong one
  • πŸ‘» If we want to reuse an element in another diagram, we may inadvertently use the wrong element
  • πŸ’© You will still have them in the generated code

The model is the only one you can trust. Ensure it is up-to-date.