Wie lassen sich in modellgetriebenen Software-Projekten die Zusammenhänge verschiedener Modelle und Modelltypen visuell darstellen und erkunden? In Kooperation mit dem Lehrstuhl für Software Engineering der RWTH Aachen ist ein Prototyp entstanden, der dieser Frage für die Modellierungswelt von A12 auf den Grund geht.
In Software-Projekten auf Basis der modellgetriebenen Entwicklungsplattform A12 von mgm werden weite Teile der Anwendung in Modellen spezifiziert – von fachlichen Zusammenhängen über den Anwendungsrahmen bis hin zu Teilen der Benutzeroberfläche wie Formularen und Übersichtsdarstellungen. Je umfangreicher und komplexer der modellierte Anteil einer A12-Anwendung wird, umso herausfordernder ist es, die Zusammenhänge der Modelle nachzuvollziehen.
Der Simple Model Editor (SME) bietet als zentrales Modellierungswerkzeug von A12 einen Workspace Explorer, um Modelle zu verwalten. Hier sehen die Modellierer alle Modelle des Workspace in einer Übersichtsliste. Was sie jedoch nicht sehen, ist wie die Modelle miteinander verknüpft sind – zum Beispiel, welches Formular-Modell auf welches zugrundeliegende Dokument-Modell zugreift. Lediglich für die Datenmodellierung ist mit der Data Modeling Perspective des SME eine visuelle Übersicht verfügbar. Sie zeigt aber nur einen Bruchteil der vorhandenen Modelltypen und –Abhängigkeiten.
Editor-Prototyp soll analytische Fragen beantworten können
Um das Potenzial der visuellen Exploration von Modellabhängigkeiten näher zu untersuchen, wurde im Rahmen einer Master-Arbeit ein Editor-Prototyp entwickelt – der sogenannte Model Dependency Explorer. Die wissenschaftliche Auseinandersetzung damit erfolgte im Rahmen der Kooperation zwischen mgm und dem Lehrstuhl für Software Engineering der RWTH Aachen unter der Leitung von Prof. Dr. Bernhard Rumpe. Seit Anfang 2020 werden im Rahmen der strategischen Forschungskooperation praxisrelevante Innovationen im Bereich der modellbasierten Softwareentwicklung vorangetrieben.
Die Analyse von Modellabhängigkeiten gilt dabei als besonders vielversprechend, da sie neue Einblicke und Aufschlüsse über die Modellierungsstruktur geben kann und komplexe modellgetriebene Anwendungen einfacher beherrschbar macht. „Ein wesentliches Ziel des Tools besteht darin, analytische Fragen rund um Modellabhängigkeiten beantworten zu können“, erklärt Joel Charles, der die Abschlussarbeit betreute. „Dafür musste nicht nur ein flexibles Visualisierungssystem für potenziell sehr umfangreiche Modellzusammenhänge entwickelt werden, sondern auch umfangreiche Filtermöglichkeiten.“
Flexible Exploration dank Sichtbarkeits-, Filter- und Navigationsmöglichkeiten
Die Benutzeroberfläche des Model Dependency Explorers gliedert sich in zwei Bereiche: Ein Canvas stellt in einem Diagramm die Modelle und ihre Beziehungen dar. Die dargestellten Elemente lassen sich per Drag & Drop bewegen. Eine Sidebar bietet den Zugriff auf zahlreiche Optionen, um festzulegen, was genau dargestellt, zentriert oder ausgeblendet werden soll. Technisch basiert der Prototyp auf dem A12 Diagram Editor – einem Entwicklungsframework zur Umsetzung interaktiver Diagramm-basierter Editoren in A12.
Nach dem Laden eines Workspace stellt das Tool zunächst im Canvas sämtliche Modelle als Knoten und Abhängigkeiten als Kanten dar. Sowohl Knoten als auch Kanten lassen sich selektieren, um sie ein- und auszublenden oder farblich hervorzuheben. Die Sidebar bietet weitere Navigations- und Einstellungsmöglichkeiten für Modelle und Relationen, die nach Sichtbarkeit und Typ gruppiert werden können. Der Klick auf ein Modell in der Sidebar zentriert es im Canvas und zeigt den unmittelbar benachbarten Kontext. Dank der Filtermöglichkeiten lassen sich auch auf Fragen wie „Welche UI-Modelle visualisieren den Subtyp eines bestimmten Dokumentmodells?“ schnell Antworten im Diagramm finden, das den jeweiligen Sachverhalt veranschaulicht.
Aktuell wird der Prototyp von projekterfahrenen Mitarbeitenden von mgm evaluiert. Falls sich die erwarteten Vorteile für die Arbeit in der Praxis bestätigen, könnte der Prototyp weiterentwickelt werden.
Weitere Informationen: