Hintergrund
Software wird immer häufiger von Domänenexperten entwickelt. Diese brauchen domänen-spezifische Sprachen (DSLs) um die konzeptuelle Lücke zwischen dem Problemraum ihrer Domänenerfahrung und dem technischen Lösungsraum des Software Engineering zu schließen. Die Entwicklung neuer DSLs ist komplex, auf Grund von fehlenden Konzepten, für die Bestandteil-vollständige Wiederverwendung und Anpassung von DSLs, die von dem spezifischen technischen Raum abstrahiert. Aktuelle Forschung im Bereich Software Engineering konzentriert sich auf unvollständige Lösungen (z.B. nur Syntaxwiederverwendung), ist an einen speziellen technischen Raum gebunden, oder zu abstrakt um wiederverwendbare DSLs zu entwickeln. Wir werden eine neuartige Methode zur systematischen Wiederverwendung von textuellen, externen DSLs mit übersetzbarem Verhalten (txtDSLs) konzipieren, das ermöglicht txtDSLs in Sprachfamilien darzustellen. Als Basis dieser Sprachfamilien dienen komponierbare Sprachkomponenten mit expliziten Interfaces, die ihre Möglichkeiten zu Variation und Anpassung beschreiben. Zentral bei dieser Methode ist ein erweiterbares Modell für txtDSL Familien, das verknüpft wird mit Sprachkomponenten mit einem expliziten Interface, und einem Kompositionsoperator, der bestimmt wie die Sprachkomponenten komponiert werden. Wir erreichen damit eine Wiederverwendung von txtDSLs unabhängig vom technologischen Raum.
Ziele
Hauptziel ist es, eine durchführbare, präzise, und systematisches Verständnis von der Entwicklung txtDSLs mit wiederverwendbaren Sprachkomponenten zu finden. Dafür werden wir eine neuartige Methodik für die Wiederverwendung von txtDSLs konzipieren, das alle unterschiedlichen Arten von Definitionen der Bestandteile von txtDSLs, dazu zählen konkrete Syntax, abstrakte Syntax, wohlgeformtheitsregeln, und Transformationen, miteinbezieht, und auch die verschiedenen Arten von Variations- und Anpassungsmechanismen, auf Basis unserer Vorarbeiten, berücksichtigt. Zur Erreichung unseres Zieles, wollen wir eine konzeptuelle Grundlage für txtDSL Wiederverwendung etablieren, die DSL Ingenieure in der systematischen Entwicklung wiederverwendbarer Sprachen (wie in ABB.1 illustriert) unterstützt. Dies erleichtert das genaue zuschneiden von DSLs, was die multi-disziplinäre Entwicklung komplexer Systeme durch verschiedene Domänenexperten ermöglicht. Um dieses Ziel zu erreichen, werden wir eine Methodik zur DSL Wiederverwendung konzipieren, die Sprachfamilien, Sprachkomponenten, Bestandteile, Interfaces, und deren Beziehung zueinander beinhaltet. Diese werden in einem zweistufigen Prozess verwendet, der die Auflösung von Variabilität einer Sprachfamilie, mit dem Ergebnis einer neuen Sprachkomponente und der anschließenden Ableitung einer vollständigen txtDSL, einschließt. Auf Basis dieser Methodik zur txtDSL Ableitung werden wir geeignete Wohlgeformtheitsregeln und einen Kompositionsoperator für Sprachkomponenten und deren technologieraumspezifischen Sprachartefakten definieren. Diesen Kompositionsoperator werden wir nutzen, um Sprachkomponenten der ausgewählten Features der Sprachfamilie zu komponieren. Außerdem werden wir Gemeinsamkeiten in Wiederverwendbarkeit und der Komposition bekannter txtDSLs identifizieren und diese in unserer Methodik zur txtDSL Wiederverwendung nutzen. Wir betrachten unser Ziel als erreicht, sobald (a) unsere Methode es ermöglicht Wiederverwendung von txtDSLs durch Variabilität und Anpassung unabhängig vom technologischen Raum zu beschreiben und (b) deren Wiederverwendungskonzepte auch auf komplexe Sprachen anwendbar sind.

Vorgehen
Zur Überbrückung der konzeptuellen Lücke zwischen unserer Abstraktion und möglicher Implementierung unserer Methodik für systematische txtDSL Wiederverwendung, muss unsere Methodik in Software konkretisiert werden. Diese unterstützt Sprachingenieure darin bessere wiederverwendbare Sprachen zu bauen. Dafür werden wir einen Modellierungsdemonstrator für txtDSL Familien, Sprachkomponenten und ihre Interfaces entwickeln. Dieser Demonstrator kann anschließend auf unterschiedliche spezifische technologische Räume übertragen werden und erweitert werden, um Eigenschaften und Operationen, spezifisch zu verschiedenen technologischen Räumen, konform zu unserer txtDSL Wiederverwendungsmethodik zu entsprechen (vergleiche ABB.2). Zu diesem Zweck wird er MontiCore DSLs beinhalten, die Elemente des konzeptuellen Modells von SCOLAR repräsentieren (z.B. Sprachfamilien, Sprachkomponenten, ihre Interfaces, …), Wohlgeformtheitsregeln um deren Validität zu prüfen, und den generellen Ablauf zur Auflösung der Variabilität und Anpassung von DSLs. Wir betrachten unser Ziel als erreicht, wenn die Modellierungsinfrastruktur die Anwendung unserer Methodik auf die technologischen Räume von MontiCore, Neverlang, und Xtext unterstützt.

Diese Forschung wurde in Teilen von der Deutschen Forschungsgemeinschaft (DFG) unter der Bewilligungsnummer 441207927 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt bei den Autoren.
Publikationen
- Pfeiffer, J., & Wortmann, A. (2023). A Low-Code Platform for Systematic Component-Oriented Language Composition. Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering, 208–213. https://doi.org/10.1145/3623476.3623516
- Butting, A., Pfeiffer, J., Rumpe, B., & Wortmann, A. (2020). A Compositional Framework for Systematic Modeling Language Reuse. Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, 35–-46. http://www.se-rwth.de/publications/A-Compositional-Framework-for-Systematic-Modeling-Language-Reuse.pdf
- Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2019). Systematic Composition of Independent Language Features. Journal of Systems and Software, 152, 50--69. https://doi.org/10.1016/j.jss.2019.02.026
- Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2018, September). Modeling Language Variability with Reusable Language Components. International Conference on Systems and Software Product Line (SPLC’18). http://www.se-rwth.de/publications/Modeling-Language-Variability-with-Reusable-Language-Components.pdf
Ihr Ansprechpartner

Jérôme Pfeiffer
M.Sc.Wissenschaftlicher Mitarbeiter "Software- und Engineeringmethoden"