title: Moola - a Groovy-based model operation orchestration language
Creators: name: Weghofer, Stefan
Publisher: name: TU Wien
Year: 2017
Subjects: subject: Model-Driven Engineering (MDE)
subject: model operation orchestration
subject: Workflow Management
subject: operation chains
subject: Moola
subject: Groovy

description: Ein zentraler Bestandteil der Model-getriebenen Software Entwicklung (MDE) ist der Einsatz von Modellen und Operationen. Modelle representieren Informationen eines Systems auf verschiedenen Abstraktionsniveaus, wohingegen Operationen das Ausführen von Aktionen auf Modellen erlauben. Solche Aktionen umfassen unter anderem das Validieren, Transformieren oder Zusammenfügen von Modellen. In den letzten Jahren wurden viele solcher Operationen bzw. Sprachen zur Beschreibung von Operationen veröffentlicht und erweitern somit das Spektrum, auf welches MDE angewendet werden kann. In jedem nicht-trivialen Projekt müssen mehrere Operationen in vordefinierter Reihenfolge und unter Berücksichtigung vordefinierter Bedingungen ausgeführt werden, um das Endresult zu erhalten. Zur Erstellung solcher Orchestrierungen wurden Sprachen und Tools entwickelt und direkt in Entwicklungsumgebungen eingebettet. Dadurch können Operationsketten möglichst einfach Erstellung und wiederholt ausgeführt werden, z.B. wenn ein Modell sich ändert. Im Rahmen dieser Arbeit wurden verschiedene existierende Ansätze zur Beschreibung von Orchestrierungen analysiert und miteinander verglichen. Basierend auf einer Feature-Liste, welche von diesen Ansätzen und Anwendungsfällen extrahiert wurde, wurde ein neuer Ansatz zur Beschreibung von Operationsketten entwickelt (Moola) und später als Domänenspezifische Sprache (DSL) in Groovy implementiert. Abschließend wurde Moola mittels Anwedungsfällen, die aus dem ARTIST-Projekt entnommen wurden, evaluiert.
description: A fundamental part of Model-Driven Engineering (MDE) is the use of models and operations. Models represent information of a target system on varying levels of abstraction, while operations allow performing actions on one or more models, including model validation, model transformation, model merging, etc. In recent years, more and more such operations and languages to describe them were introduced to allow MDE to be applied to a wide spectrum of use cases. Today, many advanced scenarios can be expressed by MDE and the use of new operation languages. In every non-trivial project, multiple operations have to be executed in particular order to yield the final result. To orchestrate operations to so-called operation chain, tools and languages have been developed and included to development environments that help in defining complex operation chains and executing them whenever input models change. In this thesis, existing tools and languages for model operation orchestration are analyzed and compared against each other. Inspiration is taken from these tools and other domains, such as Build Management and Workflow Management, to create a new tool for describing operation chains, called Moola. Based on a feature list derived from real-life use cases, Moola is designed and later implemented as domain-specific language (DSL) on top of Groovy. Finally, Moola is evaluated against use cases taken from the ARTIST project.