Verteilte modellgetriebene Softwareentwicklung
Zusammenfassung der Projektergebnisse
Die modellgetriebene Softwareentwicklung hat in den letzten Jahren Eingang in verschiedene Domänen und industrielle Anwendungen gefunden. Softwaremodelle stellen eine gute Abstraktion von konkreten Plattformen oder Programmiersprachen dar und erlauben daher eine fachbezogene Problemlösung unabhängig von konkreten Technologien. Technische Fragestellungen (z.B. konkrete Implementierungsaspekte) treten daher in den Hintergrund. Die Verwendung von domänenspezifischen Modellierungssprachen (DSML) spielt dabei eine wichtige Rolle. Domänenexperten können in der Regel das zu entwickelnde System selbst modellieren. Für die Entwicklung domänenspezifischer Modellierungssprachen gibt es bereits eine Vielzahl von Meta‐Werkzeugen. Eine offene Fragestellung die sich bei dem Paradigmenwechsel von einer konventionellen Softwareentwicklung zur modellgetriebene Softwareentwicklung stellt, ist die räumliche und zeitliche Verteilung der Entwicklungsaufgaben auf unterschiedliche Bearbeiter. Gerade in größeren industriellen Anwendungen spielt diese Verteilung eine wichtige Rolle. Die Zielsetzung des Forschungsprojekts bestand darin, eine Methodik (Prozessschritte, Techniken, Werkzeuge, Anwendung, Evaluation) zur verteilten, modellgetriebenen Softwareentwicklung zu schaffen. Im Projekt wurden zunächst die Anforderungen für eine verteilte, modellgetriebene Softwareentwicklung definiert. Anschließend wurden Prozessschritte eines verteilten, modellgetriebenen Softwareentwicklungsprozesses beschrieben. In Bezug auf die existierenden und beschränkten Meta‐Werkzeuge wurden konkrete Techniken entwickelt und implementiert, welche fortan das Aufteilen, das verteilte Bearbeiten und das Mischen von Softwaremodellen und Modelltransformationen erlauben. Wissenschaftliche Fortschritte wurden einerseits durch die Erarbeitung einer formalen Basis und andererseits durch Werkzeuge zum Verteilen von Softwaremodellen und Mischen von Modelltransformationen erreicht. Auch wenn im Projekt Techniken zur verteilten Codegenerierung entwickelt wurden, gibt es zur Spezifikation von verteilten Codegeneratoren weiterhin einen Forschungsbedarf. Die entwickelte Methode zur verteilten, modellgetriebenen Softwareentwicklung konnte in zwei aktuellen Anwendungsdomänen (Mobile Anwendungen und Content‐Management‐Systeme) erprobt werden, was auch in der Wirtschaft wahrgenommen wurde. Durch die Bereitstellung passender Infrastrukturen konnte ein hoher Anwenderbezug außerhalb des Forschungsprojektes erreicht werden. Einzelne Evaluationen haben erste Hinweise zur Einsatzfähigkeit der entwickelten Methode demonstriert. Hinsichtlich der Zielsetzung des Projekts und den tatsächlich erzielten Resultaten gab es einige Abweichungen: Während die formale Konzeption und die Werkzeuge für das Verteilen und Mischen von Modellen und Modelltransformationen erreicht wurden, sind die Spezifikationsmöglichkeiten von verteilten Modelleditoren und Codegeneration trotz der konzeptionellen Basis aus Zeitgründen nicht mehr realisiert worden. Damit steht keine Entwicklungsumgebung für die Entwicklung von verteilten Modelleditoren und Codegeneration bereit. Es wurde nicht das Anwendungsgebiet der Webanwendungen, sondern abweichend die Gebiete der mobilen Anwendungen und der CMS‐ Erweiterungen betrachtet. Die hierzu notwendigen Infrastrukturen wurden zum Teil manuell erstellt. In mehreren praxisnahen Evaluationsprojekten wurde die verteilte, modellgetriebene Entwicklung mobile Anwendungen und CMS‐Erweiterungen angewendet. Es erfolgten kleinere Evaluationen des verteilten, modellgetriebenen Entwicklungsansatzes aus Sicht der Anwender. Weitere Evaluationen werden noch im Nachgang des Projekts erstellt.
Projektbezogene Publikationen (Auswahl)
-
„Splitting Models Using Information Retrieval and Model Crawling Techniques“. In: Fundamental Approaches to Software Engineering ‐ 17th International Conference, FASE 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5‐ 13, 2014, Proceedings. Hrsg. von Stefania Gnesi und Arend Rensink. Bd. 8411. Lecture Notes in Computer Science. Springer, 2014, S. 47‐62
Daniel Strüber, Julia Rubin, Gabriele Taentzer und Marsha Chechik
-
„Agile Bottom‐Up Development of Domain‐Specific IDEs for Model‐Driven Development“. In: Proceedings of the Workshop on Flexible Model Driven Engineering co‐located with ACM/IEEE 18th International Conference on Model Driven Engineering Languages & Systems (MoDELS 2015), Ottawa, Canada, September 29, 2015. Hrsg. von Davide Di Ruscio, Juan de Lara und Alfonso Pierantonio. Bd. 1470. CEUR Workshop Proceedings. CEUR‐WS.org, 2015, S. 12‐21
Steffen Vaupel, Daniel Strüber, Felix Rieger und Gabriele Taentzer
-
„Managing Model and Meta‐Model Components with Export and Import Interfaces“. In: Proceedings of the 4rd Workshop on Scalable Model Driven Engineering part of the Software Technologies: Applications and Foundations (STAF 2016) federation of conferences, Vienna, Austria, July 8, 2016. Hrsg. von Dimitris S. Kolovos et al. Bd. 1652. CEUR Workshop Proceedings. CEUR‐WS.org, 2016, S. 31‐36
Daniel Strüber, Stefan Jurack, Tim Schäfer, Stefan Schulz und Gabriele Taentzer
-
„RuleMerger: Automatic Construction of Variability‐Based Model Transformation Rules“. In: Fundamental Approaches to Software Engineering ‐ 19th International Conference, FASE 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2‐8, 2016, Proceedings. Hrsg. von Perdita Stevens und Andrzej Wasowski. Bd. 9633. Lecture Notes in Computer Science. Springer, 2016, S. 122‐140
Daniel Strüber, Julia Rubin, Thorsten Arendt, Marsha Chechik, Gabriele Taentzer und Jennifer Plöger
-
„Iterative Model‐Driven Development of Software Extensions for Web Content Management Systems“. In: Modelling Foundations and Applications ‐ 13th European Conference, ECMFA 2017, Held as Part of STAF 2017, Marburg, Germany, July 19‐20, 2017, Proceedings. Hrsg. von Anthony Anjorin und Huáscar Espinoza. Bd. 10376. Lecture Notes in Computer Science. Springer, 2017, S. 142‐157
Dennis Priefer, Peter Kneisel und Daniel Strüber
-
„Model‐driven development of mobile applications for Android and iOS supporting role‐based app variability“. In: Software and System Modeling 17.1 (2018). Special Section Paper ‐ 29 April 2015, S. 35‐63
Steffen Vaupel, Gabriele Taentzer, René Gerlach und Michael Guckert