Erhaltung des Endanwenderflows in PREEvision durch asynchrone Job-Verarbeitung

Aus SDQ-Institutsseminar
Vortragende(r) Niklas Brüning
Vortragstyp Bachelorarbeit
Betreuer(in) Erik Burger
Termin Fr 26. Mai 2023
Vortragssprache
Vortragsmodus in Präsenz
Kurzfassung Viele modellgetriebene Entwicklungsumgebungen verfolgen einen rein sequenziellen Ansatz. Modelltransformationen werden sequenziell ausgeführt und zu einem Zeitpunkt darf stets nur eine Modelltransformation ausgeführt werden. Auf entsprechend großen Datenmengen ergeben sich hierdurch jedoch einige Einschränkungen. So kann es dazu kommen, dass Nutzer mehrere Minuten oder sogar Stunden auf den Abschluss einer Modelltransformation warten müssen und die Software währenddessen nicht für Nutzereingaben zur Verfügung steht, selbst wenn die Modelltransformation nur auf einen Teil des Modells zugreift. Dieser Zustand kann jedoch den Nutzerflow unterbrechen, einen mentalen Zustand des Nutzers, der gleichzeitig produktiv ist und als belohnend wahrgenommen wird.

Eine Möglichkeit, um das Risiko zu minimieren, dass der Nutzerflow unterbrochen wird, ist die Wartezeit für den Nutzer zu verkürzen, indem Modelltransformationen asynchron im Hintergrund ausgeführt werden. Der Nutzer kann dann mit eingeschränkt weiterarbeiten, während die Modelltransformation durchgeführt wird.

Im Kontext von modellgetriebener Softwareentwicklung findet sich zu Nebenläufigkeit nur wenig Forschung. Zwar gibt es einige Ambitionen, Modelltransformationen zu parallelisieren, jedoch gibt es keine Forschung dazu, Modelltransformationen asynchron auszuführen um weitere Modelltransformationen simultan durchführen zu können.

Die vorliegende Arbeit stellt am Beispiel der modellgetrieben entwickelten Software PREEvision der Firma Vector Informatik GmbH, Mechanismen und mögliche Implementierungen vor, mit denen simultane Modelltransformationen realisiert werden können. Für vier Operationen in PREEvision wird außerdem beispielhaft beschrieben, wie die Operationen mit Hilfe der vorgestellten Mechanismen so modifiziert werden können, dass diese asynchron ausgeführt werden. Die Prototypen der beschriebenen Modifikationen werden anschließend im Hinblick auf die Unterbrechung des Nutzerflows und die Korrektheit evaluiert. Abschließend zieht die Arbeit ein Fazit über die Anwendbarkeit der vorgestellten Mechanismen und darüber, ob der Nutzer durch die Prototypen seltener auf Wartedialoge warten muss.