Themen

Model-Driven Software Engineering (MDSE): Softwareentwicklung mit zentraler Verwendung von Modellen und domänenspezifischen Sprachen (DSLs – Domain-Specific Languages). Wir entwickeln DSLs für variantenreiche Software (sog. Softwareproduktlinien), mobile Service-Roboter, selbstfahrende Autos, und weitere interessante Anwendungsdomänen. Außerdem verbessern wir Technologien zur Sprachentwicklung, wie z.B. Metamodellierung, Language-Workbenches und Projektionales Editieren.

Software Product Line Engineering (SPLE): Software is immer häufiger variantenreich, um flexibel auf verschiedene Nutzungsszenarien, Optimierungen (z.B. Energiebedarf) oder Hardware-Umgebungen reagieren zu können. Solche Software wird häufig mit unstrukturierten, ad hoc-Methoden wie z.B. Cloning realisiert, aber idealerweise sollte man Software automatisch basierend auf den gewünschten Features generieren oder ableiten können. Wir entwickeln und verbessern Techniken um diese sogenannten Softwareproduktlinien effizient entwickeln zu können, auch in enger Zusammenarbeit mit der Industrie.

Software Analytics (SWA): Das Re-Engineering und die Qualitätssicherung (z.B. des korrekten Verhaltens) von Software benötigt häufig die Analyse von Quellcode und anderen Softwareartefakten, was eine Herausforderung darstellt. Wir entwickeln statische Quellcode-Analysetechniken und verwenden diese unter anderem auch als Basis unserer MDSE- und SPLE-Technologien. Darüber hinaus erlaubt uns die großskalige Datenanalyse von Software-Repositories (z.B. Android Apps auf Google Play oder Repositories auf GitHub), dass wir empirische und statistisch signifikante Einsichten in reale Softwareentwicklung und deren Phänomene erhalten.

AI Engineering (SE4AI/AI4SE): Software Engineering unterstützt die Entwicklung intelligenter Systeme (SE4AI), genauso wie umgekehrt AI die Entwicklung von Software unterstützt (AI4SE). Wir arbeiten auf beiden Gebieten, wobei wir in SE4AI das Management (z.B. Versions-/Varianten-/Experiment-Management) von Artefakten des maschinellen Lernens (z.B. Modelle) unterstützen, sowie in AI4SE Techniken aus Basis des maschinellen Lernens zur Qualitätssicherung (z.B. Defektvorhersage in Software) und die Entwicklung variantenreicher Systeme (z.B. durch Recommender-Systeme) entwickeln.

Mehr Informationen …