Publikation

Graphbasierte Transformationen für modellgetriebene Softwareentwicklung

Publikation, 2019

Outline

A. Pointner - Graphbasierte Transformationen für modellgetriebene Softwareentwicklung - Master/Diploma Thesis, FH Oberösterreich Studienbetriebs GmBH, Österreich, 2019

Abstract

Die Modelltransformation ist ein wesentlicher Teil der modernen Softwareentwicklung. Gerade im Bereich des Model-Driven Development (MDD) gibt es einige spannende neue Themen und Inhalte. Diese Arbeit legt den Fokus dabei auf die Entwicklung eines graphbasierten Modelltransformationsframeworks. Im Zuge dieser Arbeit werden dafür die Grundlagen der Modelltransformation beschrieben. Darunter fällt auch die Definition von Modellen, Metamodellen, aber auch welche Arten von Transformationen existieren. Darüber hinaus werden einige theoretische Konzepte wie Triple Graph Grammar (TGG) analysiert, aber auch detailliert auf bestehende Frameworks wie Atlas Transformation Language (ATL) und Epsilon Transformation Language (ETL) eingegangen. Zusätzlich dazu wird ein Konzept vorgestellt, wie die Graphdatenbank Neo4J zur Modelltransformation verwendet werden kann, beziehungsweise wie sie sich mit einem Modelltransformationsframework verbinden lässt. Das Kernthema dieser Arbeit ist dabei das Design und die Implementierung der Graphtransformationsbibliothek. Dabei wird auf die entwickelten Konzepte und verwendeten Entwurfsmuster eingegangen, sowie die Analogien zu den zuvor analysierten Frameworks aufgezeigt. Diese Bibliothek wird dann anhand zweier Beispiele, der Transformation eines Graphen in ein XML Modell und der Transformation eines 2D Bauplanes in ein 3D Modell, welche im Zuge einer Forschungsarbeit entstand, evaluiert. Abschließend wird auf die jeweiligen Vor- und Nachteile der Bibliothek eingegangen und ein Ausblick für zukünftige Entwicklungen gegeben. Dabei zeigt sich, dass vor allem die Unabhängigkeit zu anderen Technologien, sowie die lose Koppelung der Komponenten ein wesentlicher Vorteil der Bibliothek ist. Es zeigt sich aber auch, dass große Modelltransformationsframeworks wesentlich mehr Funktionalität zur Transformation bieten, diese aber häufig auch mit großem Overhead verbunden sind.