Methods & Tools Software Development Magazine

Software Development Magazine - Project Management, Programming, Software Testing

Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban

Gaphor – Open Source UML, SysML and C4 Modeling Tool

Gaphor is an open source Unified Modeling Language (UML) and SysML modeling tool written in Python. It also implement the C4 Model for software architecture and Risk Analysis and Assessment Modeling Language (RAAML), Gaphor is designed around the principles simplicity, consistency and workability. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models.

Website: https://gaphor.org/ and https://github.com/gaphor/gaphor
Version tested: Gaphor version 2.7.1 in December 2021 on a Window 10 platform.
System requirements: Windows, Linux and Mac OS
License & Pricing: Free software, Apache-2.0 License
Support: https://gaphor.org/discuss.html and https://github.com/gaphor/gaphor/issues
Documentation: https://gaphor.readthedocs.io/en/latest/ and https://gaphor.org/tutorials.html

Installation

For Windows, you just have to download the installer file and execute it. It is also possible to install a portable version of Gaphor. Other procedures exist for Mac OS, Linux or Python.

Documentation

The documentation is more conceptual than a “how to” reference for using Gaphor.

Configuration

There is no configuration option available in Gaphor.

Gaphor – Open Source UML, SysML and C4 Modeling Tool
(click on figure to enlarge it)

Using Gaphor

You can use Gaphor under four different modeling approaches

  • Unified Modeling Language (UML): Gaphor implements a fully-compliant UML 2 data model. You can create multiple diagrams: class, use cases, state machine, etc.

  • SysML: SysML is a general-purpose architecture modeling language that supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems. These systems may include hardware, software, information, processes, personnel, and facilities. SysML is a dialect of UML 2, and is defined as a UML 2 Profile

  • C4 Model for software architecture: C4 model is a graphical notation technique for modeling the architecture of software systems based on a structural decomposition of a system into containers and components. It relies on existing modeling techniques such as the (UML) or Entity Relation Diagrams (ERD) for the more detailed decomposition of the architectural building blocks.

  • Risk Analysis and Assessment Modeling Language (RAAML) is a new specification from the OMG, currently in beta. The specification includes profiles and model libraries for several different risk analysis methods like Failure Modes and Effects Analysis (FMEA), Fault Tree Analysis (FTA), System Theoretical Process Analysis (STPA) or Goal Structuring Notation (GSN).

By default, Gaphor open on a new model and you have to look to saved model to continue working on them. The interface is divided in 3 sections. The left section displays the model items and the components available to create diagrams under the current profile. You can change your profile, for instance from UML to C4 Model on the top of the window. The central section is where you draw your diagram. You can have more than one diagram opened and you can copy items between diagrams The right section is where you can see hints about your current context or the attributes of a selected item in your diagram.

Gaphor – Open Source UML, SysML and C4 Modeling Tool
(click on figure to enlarge it)

Gaphor diagrams are stored as XML files and you can use a defined set of CSS elements to customize how their elements will be seen in the tool, like changing the color of UML concepts. You can export the diagrams in different image formats. Gaphor claims also to have an open architecture that could be expanded with plugins, but I haven’t discovered any existing interesting application of this option.

Gaphor – Open Source UML, SysML and C4 Modeling Tool
Exported model in PNG format (click on figure to enlarge it)

Conclusion

Gaphor is an open source that certainly achieves this goal of providing a simple tool to model systems with multiple perspective, including a full set UML2 diagrams. Its graphical capabilities are good and the export function works well to insert diagrams in external documentation. Coming from a Windows perspective, the tool lacks the expected standard menu toolbar and some context sensitive menus and actions, making it not very intuitive. However, you get eventually use to find what you need in different places. I would recommend Gaphor to software architects and software engineers that need a simple free modeling tool that provides different system and software modleing approaches.


Click here to view the complete list of tools reviews

This article was originally published in December 2021

Methods & Tools
is supported by


Testmatick.com

Software Testing
Magazine


The Scrum Expert