Application design using UML using Umbrello

November 30, 2022

Lang: cs en de es

You 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 what has been eaten and as documentation after the project has been completed. By writing information visually, the basic information and relationships are visible at a glance without reverence.
The Unified Modeling Language is standardized, making it difficult to use 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. Component

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:
umbrello

Umbrello can draw these types of diagrams:

  • Class Diagram
  • Sequence Diagram
  • Communication Diagram
  • Use case diagram
  • Status diagram
  • Activity diagram
  • Component diagram
  • Deployment diagram
  • Entity Relationship diagram

umbrello-menu

UML in practice

Although I'm a techie and so prefer to write in a programming language. Some information is better readable from pictures. In these cases I use Ubrello 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 rebuild 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 what state can be transitioned from to what next state.
Example of a state diagram:
uml-state-diagram

Classes

Class Diagram:
uml-diagram-component

Modeling Entity

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:
uml-entity-relationship-diagram

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 query engines, such as MySQL or SQLite.

From the perspective of a programmer and agile development, the entity structure and therefore the database changes as the application evolves. It will be a more sensible choice to document the entities and write their relationships directly in the application code. For example, to use 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 phpmmyadmin.

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, they do not recommend tools from Microsoft. For example, the popular Enterprise Architect is only for Windows.

However, I have a few other types.

  • magic draw - According to the manufacturer, it should work on Windows, Linux and Mac OS, as it is written in JAVA (=multiplatform).
  • PlanUML - can be directly inserted into git or wiki.

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.


+