Application design using UML using Umbrello
November 30, 2022You are involved in the development of larger than small systems and you want to communicate better between teams and have a good and clear assignment for this purpose, the Unified Modeling Language is a great tool. UML is a set of techniques, and many tools have been developed to go along with them, that allow you to translate and record specifications into graphical diagrams that show structures, states , processes etc. One such tool for UML is the Umbrello software, which is an open-source software that streamlines the communication of writing and modifying specifications and is also used to create documentation.
UML helps to record your ideas visually yet technically accurately, so it helps to communicate between customer, analyst and programmer.
It also serves as a record of the meeting and as documentation after the project has been completed.
By writing information visually, the basic information and relationships are visible at a glance without reading.
The Unified Modeling Language is standardized, making it possible to use it across different companies. It can be used by companies as a communication tool.
And if you learn it, you have a chance to use it regularly on different projects and in different companies.
UML
Using UML, you can visually represent structures and their relationships, state changes, user actions or their passage through a process, and more.
Pen and Paper
UML is independent of technology, you don't even need a computer. You can draw everything on paper or a whiteboard.
Umbrello UML modeller
Since we are in the digital age, rather than drawing on paper, it is better to draw diagrams in an application, ideally a tool designed for that purpose. This makes the resulting image easier to share, but more importantly easier to edit. There are many tools; I use the Umbrello application.
Umbrello is an application for implementing UML concepts on a computer. With such an application you can simply move or copy objects without erasing and redrawing on paper. Moreover, Umbrello is a multi-platform software, so you can run it on Linux, Windows, macOS and others.
Umbrello program with a blank project:
In Umbrello you can draw these types of diagrams:
- Class Diagram
- Sequence Diagram
- Communication Diagram
- Use case diagram
- State diagram
- Activity diagram
- Component diagram
- Deployment diagram
- Entity Relationship diagram

UML in practice
Although I'm a techie and so prefer to write in a programming language, some information is more readable from pictures. In these cases I use Umbrello to draw UML diagrams.
Generating a class diagram
I first used UML techniques while studying at the Czech Technical University in Prague. And I used Umbrello software, for example, when writing my bachelor thesis,
which was on encryption on smart cards.
Here is a downloadable baccalaureate thesis: Java Card OpenPlatform chip cards.
In Umbrello, I imported the source code, and Umbrello generated a class diagram for me.
Code Generation
If you draw a class diagram in the application, you can use Umbrello to generate the skeleton of the program. That is, the files that represent the classes, properties, and function names. Of course, the application logic then needs to be programmed by a programmer.
States
Changing the state of an object is a common situation. The most typical one that a web application developer encounters is changing the state of an order. A library that will facilitate the implementation of such functionality is the PHP framework Symfony library The Workflow Component.
For better understanding by the programmer, documentation and even presentation to the user, it is ideal to plot this as a State diagram.
Such a diagram then makes it clear exactly which state can be transitioned into which next state.
Example of a state diagram:
Classes
Class Diagram:
Modeling Entities
Using Umbrello, you can create an Entity Relationship diagram, that is, entities and their relationships, and then generate SQL statements from that to create database tables.
Example diagram with three entities:
I used this diagram to design the database entities for the IoT wireless sensor project. And then I could use the generated SQL statements to create database tables in various database engines, such as MySQL or SQLite.
From the perspective of a programmer and agile development, where the entity structure and therefore the database changes as the application evolves, it will be a more sensible choice to document the entities and their relationships directly in the application code. For example, to use the Doctrine tool, which also allows generating migration scripts. The visual/graphical representation can then be generated from the database. Various tools can do this, for example phpMyAdmin.
Other UML tools
There are many applications for UML. Given the need for collaboration between people, such software should be cross-platform. Thus, for example, I do not recommend tools from Microsoft. For example, the popular Enterprise Architect is only for Windows.
However, I have a few other tips.
Articles on a similar topic
Printing images in Linux
Artificial Intelligence: dalle2, Chat GPT
Nextcloud - data and applications in the cloud
GitLab - a tool for governance, versioning, CI/CD and project management
Newsletter
If you are interested in receiving occasional news by email.
You can register by filling in your email
news subscription.
+