Software spielt global eine immer stärkere Rolle und muss als wesentlicher Werkstoff der Zukunft betrachtet werden. Dabei durchdringt Software heute alle relevanten Industrien, darunter viele die sich traditionell nicht als Softwarehersteller betrachtet hätten, z.B. Automobilindustrie, Medizintechnik, Schienenverkehr, Avionik und Telekommunikation. Der Fortschritt jeder einzelne dieser Industrien hängt mehr und mehr von der Software ab. Zum Beispiel passieren schon heute 70% der Innovationen in der Automobilindustrie auf Ebene der eingebetteten Software.
Eine der größten Herausforderungen im Bereich des Software Engineering ist dabei die Langlebigkeit von Software. Viele Softwaresysteme müssen über Jahre hinweg stabil und verlässlich arbeiten, unterliegen aber gleichzeitig einem Druck, sich an sich ständig ändernde Umstände anzupassen, um nutzbar zu bleiben.
Das führt zu zwei Kernproblemen. Zum einen müssen Softwaresysteme aktualisiert werden, wenn Technologien, auf deren Basis sie entwickelt wurden, modernisiert werden. Dabei ist auch „Software Comprehension“ eine zentrale Hürde – also die Frage wie ein bestehendes Softwaresystem von Entwicklern effektiv verstanden werden kann. Zum anderen müssen Softwaresysteme auch angepasst werden, wenn sich Nutzungsanforderungen ändern. Hier stellen nutzungsorientierte Gestaltungsansätze wie das Human-Centred Design Methoden bereit, die zum besseren Verständnis des Anwendungskontexts und zur aktiven Einbeziehung von Stakeholdern in den Entwicklungs- und Wartungsprozess beitragen.
Neue Entwicklungen, wie die steigende industrielle Nutzung von maschinellem Lernen (ML) und künstlicher Intelligenz (KI), führen zu zusätzlichen Herausforderungen für die Langlebigkeit von Software. ML/KI sind Gründe für die Hoffnung, dass Software sich eines Tages zu einem gewissen Grad selbstständig an sich ändernde Umstände anpassen kann. Eine der zentralen Fragen hier ist wie sich die Entwicklung von Software ändern muss, wenn ML/KI-Komponenten eingebaut werden. Zusätzlich gilt es das enorme Potential zu verstehen und zu nutzen, das ML/KI-Technologien bieten, um die Entwicklung langlebiger Software selbst zu verbessern.
Unser fachlicher Schwerpunkt ist auf den Themen
- Modellbasierte Software-Entwicklung,
- Empirische Verfahren des Software Engineerings und Human-Computer Interaction
- Werkzeuge zur Konstruktion und Analyse von Softwaresystemen und deren Nutzung