Forschung
Ausrichtung und Ziele
Modellgetriebene Softwareentwicklung ist ein vielversprechender Ansatz, um die stetig wachsende Komplexität softwareintensiver Systeme zu beherrschen. Vielfach zitierte Versprechen betreffen beispielsweise die Produktivitäts- und Qualitätsstei-gerung durch den Einsatz domänenspezifischer Sprachen und Code-Generatoren sowie die Senkung adaptiver Wartungskosten durch den Einsatz technologieneutraler, plattformunabhängiger Modelle. Tatsächlich löst die modellgetriebene Entwicklung jedoch nicht alle softwaretechnischen Herausforderungen, es werden vielmehr auch neue geschaffen. Insbesondere in den Bereichen Korrektive und Perfektionierende Wartung, Versions- und Variantenmanagement sowie Kollaborative Softwareent-wicklung zeigt sich dies in der industriellen Praxis sehr deutlich. Im Zuge sich ständig ändernder Anforderungen und Rahmenbedingungen müssen auch modellbasierte Systeme kontinuierlich weiter entwickelt und angepasst werden. Geplante Änderungen an Modellen müssen spezifiziert, arbeitsteilig durchgeführt und verwaltet werden. Spontane, unvorhergesehene Änderungen müssen beobachtet und geeignet dokumentiert bzw. analysiert werden. Oftmals übersteigen die dadurch entstehenden Betriebs- und Wartungskosten die initialen Entwicklungskosten um ein Vielfaches. Entsprechende Gegenmaßnahmen aus dem Bereich der klassischen Softwareentwicklung sind, sofern verfügbar, nicht einfach auf Modelle und modell-basierte Entwicklungsprozesse übertragbar.
Die Forschung der Arbeitsgruppe fokussiert daher grundlegende Fragen, die bei der Umsetzung des Paradigmas der modellbasierten Entwicklung in der industriellen Praxis zu beobachten sind, insbesondere in den Bereichen Softwareevolution und -wartung. Ziel ist es, die skizzierten Herausforderungen mit einer sowohl grundlagenorientierten als auch anwendungsbezogenen Forschungsausrichtung zu bearbeiten. Erforscht werden sollen geeignete Methoden, Techniken und Werkzeuge zur kollaborativen Entwicklung und kontrollierten Evolution modellbasierter Systeme. Die untersuchten Anwendungsgebiete reichen von klassischen Webanwendungen und betrieblichen Informationssystemen, über eingebettete Systeme und automatisierte Fertigungs- und Produktionsanlagen, bis hin zu modernen Cyber-physischen Systemen.
Forschungsprofil
Die durch die Arbeitsgruppe adressierten Problemstellungen orientieren sich sowohl an grundlegenden Forschungsfragen im Bereich der Modellbasierten Entwicklung, als auch an relevanten Problemen und Herausforderungen, welche bei der Umsetzung dieses Paradigmas in der Praxis zu beobachten sind. Lösungsansätze sind grundlagenorien-tiert, umfassen neben theoretischen und methodischen Aspekten aber insbesondere auch Werkzeuge und Anwendungen. Ein wesentliches Resultat der Forschungsarbeiten sind Werkzeugumgebungen und Frameworks, welche in unterschiedlichen Kontexten eingesetzt und evaluiert werden, sowohl in industriellen Fallstudien, als auch zur Lösung konkreter Problemstellungen anderer Forschergruppen. Unsere Arbeitsgebiete umfassen dabei unter anderem:
- Entwicklungsumgebungen und -prozesse für die modellgetriebene Softwareentwicklung
- Kollaborative Modellierung und Versionsmanagement von Modellen
- Variantenmanagement von Modellen und modellbasierte Softwareproduktlinien
- (Ko-)Evolution von Modellen, Modellreparatur und -synchronisation
- Domänenspezifische Modellierungssprachen
- Modelltransformation und -interpretation
- Code-Generierung und Reverse-Engineering