[umbrello-devel] QtModeling and Umbrello

Sandro Andrade sandroandrade at kde.org
Tue Aug 11 20:41:22 UTC 2015


Dear umbrello developers,

As a follow up on the Riddel's email "qt modeling" at Tue Jul 28
12:51:00, I'd like to share my ideas about the future of QtModeling
[1,2] and how we could have it integrated in Umbrello, so that both
projects can benefit from each other in a quite sinergic way.

In a brief, what's QtModeling;

- It's a powerful and flexible infrastructure for dealing with
software models and modeling languages. If you are familiar with
Eclipse Modeling Framework (EMF), QtModeling shares a lot of EMF goals
and features.

Some current features:

1) It is language agnostic: it wasn't designed to exclusively support
the UML language. New languages (metamodels) are ordinary Qt plugins
that, when installed, automatically make available to the user a new
set of modeling constructs.

2) It is 100% compliant to OMG standards. UML and MOF metamodels are
almost 90% automatically generated from standard XMI files provided by
OMG. In spite of the 20-80-80 rule "the 20% of the notation that 80%
of practitioners use 80% of the time", having a fully complaint UML
implementation helps to leverage UML use in industry and ease the
understanding of UML constructs by newcomers.

3) Models can be manipulated via QtScript: all model elements are
exposed to QtScriptEngine and QML engine, allowing for users to define
their own well-formed rules, scripts for model templates, and so on.

4) Concrete syntax is implemented in QML: as a consequence of 3,
diagrams are implemented purely in QML. That lessens our development
efforts and let users to implements the concrete syntax for their own
languages.

5) Model to code transformations may be implemented by using Grantlee
and direct access to model elements. That should make code generation
templates easier to maintain and also let users define their own
transformations.

I developed a QtModeling example, that ended up evolving to a sort of
tool, named DuSE-MT [3], which shows how the aforementioned features
can be used. However, I wouldn't like to keep working in DuSE-MT as a
modeling tool since we already have Umbrello fitting that purpose on
the KDE apps ecosystem. I'd be happy in pushing that effort toward
Umbrello, in order to make it a full-featured and flexible application
for software modeling.

So, my suggestion for moving that forward is:

1) Proceed to a discussion in this mailing list regarding some
eventual unclear points about QtModeling, along with questions such
as: do we want to start this effort? Do you think QtModeling could
bring some benefits to current state of Umbrello?

2) If we answer yes to the aforementioned questions, I'd propose
working to achieve the same current Umbrello features, having
QtModeling as its underlying infrastructure. In that moment, we'd do a
release of that "refactored" Umbrello version.

3) Thereafter, we'd start to evolve its features.

I'm totally aware that would require a lot of effort, but that could
make Umbrello going to the next step as a quite competitive open
source tool for software modeling, both in industry and in
universities.

I'm open to hear your ideas, suggestions, and criticism about that :)

Cheers,
Sandro

[1] http://wiki.qt.io/QtModeling
[2] http://code.qt.io/cgit/qt/qtmodeling.git/
[3] https://gitlab.com/duse-mt/duse-mt.git


More information about the umbrello-devel mailing list