-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
32 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,54 @@ | ||
--- | ||
title: Gaphor 3.0 | ||
title: Gaphor 3.0 - A Major Milestone | ||
author: Arjan Molenaar | ||
image_url: /images/gaphor-3.0/bg.jpg | ||
image_background: #f0f0f0 | ||
image_attribution: https://www.flickr.com/photos/goldtoe/305519757/ | ||
lang: en | ||
--- | ||
|
||
Finally, Gaphor 3.0 has been released. | ||
Gaphor 3.0 has officially been released, marking an exciting new chapter for this modeling tool. This update brings | ||
significant enhancements, particularly in the user interface and the modularity of supported modeling languages. | ||
|
||
The major changes in this release include an improved user interface and better modularity for modeling languages. | ||
|
||
|
||
In this post we dive into the highlights of the 3.0 release, | ||
The [change log](https://github.com/gaphor/gaphor/blob/main/CHANGELOG.md) contains a more complete set of changes, | ||
as does the [Gaphor Release](https://github.com/gaphor/gaphor/releases). | ||
For a complete overview of all changes, you can check out the | ||
[changelog](https://github.com/gaphor/gaphor/blob/main/CHANGELOG.md) or visit the | ||
[Gaphor Release](https://github.com/gaphor/gaphor/releases) page. | ||
|
||
<!--break--> | ||
|
||
As always, the releases are based on the latest [GTK 4](https://gtk.org) and | ||
[LibAdwaita](https://gnome.pages.gitlab.gnome.org/libadwaita) releases. | ||
As always, this release makes use of the latest versions of [GTK 4](https://gtk.org) and | ||
[libadwaita](https://gnome.pages.gitlab.gnome.org/libadwaita). | ||
|
||
## UI improvements | ||
## User Interface Improvements | ||
|
||
We've improved the user interface, based on a paper from the Uni of Mannheim about the use | ||
of [MBSE tooling for neurodivergent system architects (German)](https://madoc.bib.uni-mannheim.de/66242/1/Benutzeroberfl%C3%A4chen%20von%20MBSE-Tools%20und%20deren%20Auswirkung%20auf%20neurodivergente%20Systemarchitekten.pdf). | ||
In this paper Gaphor was used as one example. We contacted the authors and applied the feedback in this | ||
version of Gaphor. As a result things are simpler and the UI behaves more as one would expect. | ||
This release features a redesigned user interface inspired by feedback from a research paper published by the University | ||
of Mannheim. The paper, titled | ||
[MBSE tooling for neurodivergent system architects | ||
(German)](https://madoc.bib.uni-mannheim.de/66242/1/Benutzeroberfl%C3%A4chen%20von%20MBSE-Tools%20und%20deren%20Auswirkung%20auf%20neurodivergente%20Systemarchitekten.pdf), | ||
used Gaphor as a case study. By collaborating with the authors, the Gaphor team applied these insights to make the | ||
application simpler and more intuitive. | ||
|
||
The improvements include | ||
Key UI enhancements include: | ||
|
||
* Better layout of the header bar | ||
* Settings previously done on model level are now application wide settings | ||
* A tool bar for common operations | ||
* Double-clicking a model element in the Model Browser now highlights it in the diagram, and no longer adds it. | ||
* Streamlined Header Bar Layout: Improved organization for easier navigation. | ||
* Global Settings: Settings that were previously model-specific are now accessible as application-wide configurations. | ||
* New Diagram Quick Toolbar: Provides rapid access to common operations. | ||
* Enhanced Model Browser: Double-clicking a model element now highlights it in the diagram rather than adding it redundantly. | ||
|
||
Many thanks to [Mareike Keil](https://www.linkedin.com/in/mareike-keil-7600b4226/) from the Uni of Mannheim for collecting the feedback. | ||
Many thanks to [Mareike Keil](https://www.linkedin.com/in/mareike-keil-7600b4226/) from the University of Mannheim for | ||
her invaluable insights and contributions. | ||
|
||
![The improved user interface with tool bar](/images/gaphor-3.0/new-ui.png) | ||
|
||
## Modeling languages | ||
|
||
Historically, Gaphor modeling language have always been based on UML. UML was the first ML implemented, and forms the | ||
basis for languages like SysML (v1) and RAAML. | ||
|
||
While we were investigating how to implement SysML v2, we ran into an issue: SysML v2 has been built from the ground up | ||
and is not based on UML. Our initial attempt was to build a common base for both UML and SysML, but this resulted in | ||
a confusing situation where the UML model was spread out over several models. | ||
## Modeling language Advancements | ||
Historically, Gaphor’s primary focus has been on UML, which served as the foundation for extensions like SysML (v1) and | ||
RAAML. However, the development of SysML v2 introduced new challenges. Unlike its predecessor, SysML v2 is not based on | ||
UML, prompting the need for a fresh approach. | ||
|
||
This was clearly not the way forward. With the help of Paul Brown we managed to make the Gaphor core modeling language | ||
agnostic. Now we can implement any modeling language. This means that we can implement SysML v2, onthology models, ER models | ||
without the need to base it on UML. | ||
Initially, the team attempted to create a shared foundation for UML and SysML. However, this approach resulted in | ||
fragmenting the UML model and added complexity. Recognizing the need for flexibility, Gaphor’s core was restructured to | ||
be modeling language agnostic. This transformation enables the implementation of diverse modeling languages, including | ||
SysML v2, ontology models, and ER diagrams, without relying on UML as a base. | ||
|
||
Credits go to Paul Brown for his help and guidance on this endavour. | ||
A huge shoutout to [Paul C. Brown](https://github.com/pbrown12303) for his guidance and support in making this shift | ||
possible. |