[Back]


Diploma and Master Theses (authored and supervised):

M. Dopplinger:
"Supporting Model Extensions in RubyTL";
Supervisor: G. Kappel, M. Wimmer; Institut für Information Systems Engineering, 2018; final examination: 2018-10-02.



English abstract:
Model Engineering gets more important in software development because of the increasing
use of models. At the same it is important the adapt and extend existing models. But
this is sometimes not possible. For example the model was developed from somebody
else or the model is used in another project and it is necessary to keep the compatibility.
Therefore several lightweight extension mechanism have been developed. For example
UML profile for UML diagrams or EMF profiles for standard diagrams of the Eclipse
Modeling Framework (EMF). They allow to extend an already existing model without
changing the original one. But unfortunately they have some drawbacks. Only a few
transformation languages have a support for lightweight extensions and if they do only
very basic. ATL can only access the profile with the underlying Java API. With RubyTL
it is not possible to process profiles at all.
This thesis covers the development of an extension which enables RubyTL to process
EMF and UML profiles. Thereby should the extension be not integrated into the RubyTL
code. This will be done with model processors. They integrate the profile into the
existing model. Due to the circumstance that the profile is now a complete part of
the diagram it is possible that the transformation language can access the stereotypes.
Furthermore should it be possible to use the model processors for other transformation
languages, like ATL. The goal is to enable the use of UML and EMF profiles also for
other transformation languages. But they do not get integrated into the language. The
model processors are used from a command line interface (CLI).
The feasibility of the approach is demonstrated by using transformations to apply and
read profile information in RubyTL and ATL. The resulting ATL transformations are
also compared with ATL transformations using the basic ATL support based on the Java
API for UML.

German abstract:
Model Engineering wird immer wichtiger, da die Nutzung von Modellen in der Software
Entwicklung zu nimmt. Gleichsam bedeutend ist es das die Modelle leicht zu adaptieren
und zu erweitern sind. Allerdings ist dies nicht immer Möglich. Dies kann zum Beispiel
sein wenn das Modell nicht von einem selbst entwickelt wurde und es notwendig ist
die Kompatibilität zu wahren. Deshalb wurden mehrere leichtgewichtige Erweiterungsmechanismen
entwickelt. Zum Beispiel UML Profile für UML Diagramme oder EMF
Profile für Standard Diagramme des Eclipse Modeling Frameworks (EMF). Diese erlauben
es ein bestehendes Diagramm zu erweitern ohne das original Modell zu ändern. Aber
leider haben diese leichtgewichtigen Erweiterungen einen Nachteil. Nur wenige Modell
Transformationssprachen besitzen eine Unterstützung für diese. Die Atlas Transformation
Language (ATL), zum Beispiel, kann nur über die unterliegende Java API darauf
zugreifen und RubyTL bietet überhaupt keine Unterstützung an.
Im Rahmen dieser Arbeit soll eine Erweiterung entwickelt werden die es RubyTL erlaubt
sowohl UML als auch EMF Profile zu verarbeiten. Dabei soll die Erweiterung nicht in den
bestehenden Programmcode von RubyTL eingreifen. Um diese Anforderung zu erfüllen
werden Modellprozessoren verwendet. Diese integrieren das Profil in das bestehende
Diagramm wodurch das Profil dann zu einem kompletten Bestandteil des ursprünglichen
Diagramms wird. Dadurch ist es der Transformationssprache möglich auf die Informationen
des Profils zuzugreifen. Weiters soll es möglich sein die Modellprozessoren auch mit
anderen Transformationssprachen, wie ATL, verwenden zu können.
Als Abschluss der Arbeit wird gezeigt wie man mit den Modellprozessoren bestehende
Diagramme verarbeiten kann. Dabei wird gezeigt wie man die Prozessoren benutzt und
wie die Transformationsregeln aussehen. Da ATL bereits UML Profile unterstützt, wird an
Hand von ATL gezeigt wie die Modellprozessoren die Transformationsregeln vereinfachen
können.

Keywords:
UML, EMF, MDD

Created from the Publication Database of the Vienna University of Technology.