Prof. Wagner bietet Beratung in vier Kerngebieten des Software Engineerings an. Dabei geht er auch gerne an die Grenzen der Software und betrachtet Systeme aus verschiedenen Komponenten (Software, Hardware, Elektrik, Mechanik), wie es heute bei Cyber-Physical Systems und dem Internet of Things alltäglich geworden ist.

Software-Qualität

Das Kernforschungs- und beratungsgebiet von Prof. Wagner ist die Software-Qualität. Sie bestimmt heute in einem großen Maße den Erfolg eines Software-Systems. Ausgangspunkt ist dabei immer die Verstehbarkeit (oder Wartbarkeit oder interne Qualität) der Software, die bestimmt, wie gut andere Qualitätsattribute, wie Sicherheit und Zuverlässigkeit, überhaupt erreicht werden können. Die Beratung ist dabei umfassend von sehr technischen und konkreten Aspekten (Code-Analyse, Test-Automatisierung, kontinuierliche Integration) bis hin zu konzeptionelleren und Prozess-Aspekten (kontinuierliches Qualitätsmanagement, Agile Vorgehensweisen).

Requirements Engineering

Jedes System kann nur so gut sein, wie wir verstanden haben, was die Nutzer eigentlich brauchen. Sehr viel Forschung und sehr viel Diskussion in der Praxis drehen sich darum. Kaum eine andere Teildisziplin ist auch so unterschiedlich in den unterschiedlichen Anwendungsdomänen ausgeprägt, wie das Requirements Engineering. Natürlich muss ich bei sicherheitskritischen Anwendungen in der Automobil-Domäne andere Konzepte nutzen, um Anforderungen zu erheben und zu prüfen, als bei der Erstellung eines Smartphone-Spiels. Trotzdem gibt es einige Konzepte, wie die Artefakt-Orientierung und das leichtgewichtige und agile Requirements Engineering zur schnellen Rückmeldung, die sich universell anwenden lassen.

Kontinuierliche und agile Entwicklung

Kaum eine andere Innovation hat die Software-Engineering-Praxis mehr verändert als die agilen Vorgehensweisen. Sie haben, nach anfänglicher Skepsis, inzwischen quasi alle Domänen, in denen Software entwickelt wird, erreicht. Die Praxis hat gezeigt, dass die schnellen Feedback-Zyklen auf verschiedenen Ebenen hilfreich für alle Projektbeteiligten sind. Prof. Wagner hat Kompetenzen in mehreren agilen Vorgehensweisen, insbesondere Scrum, und kann Teams helfen, sich in deren Anwendung zu verbessern. Auch hier ist es wichtig technische Vorgehen, wie Test-Automatisierung, mit Innovationen in der Team-Kommunikation zu verbinden.

Safety & Security Engineering

Die unglaubliche Erfolgsgeschichte der Software hat zur Folge, dass wir Software-Ingenieure uns ständig mit Software beschäftigen müssen, die in sicherheitskritischen Systemen vorkommt. Mehr und mehr steht Software dabei als steuerndes Element im Mittelpunkt. Prof. Wagner beschäftigt sich hier vorrangig mit der Analyse des Gesamtsystems und der Rolle der Software darin. Damit lassen sich Schwachstellen sowohl der Technischen Sicherheit (Safety) als auch der Informationssicherheit (Security) feststellen. Prof. Wagner verwendet dabei vorrangig den STAMP/STPA-Ansatz von Prof. Leveson (MIT). Er steht dabei in enger Kooperation mit ihr, um den Ansatz weiter zu verbessern. Er arbeitet aber auch an statischen Analysen und im Allgemeinen Techniken, die Entwicklerinnen und Entwicklern helfen, sicheren Code zu schreiben.

Software Engineering für Künstliche Intelligenz

Künstliche Intelligenz spielt in immer mehr Software-Systemen eine Rolle. Viele Erkenntnisse aus herkömmlicher Software trifft auch für diese Software zu. Viele Aspekte müssen aber neu gedacht und zum Teil neu konzipiert werden. Prof. Wagner beschäftigt sich damit, wie Systeme entworfen und entwickelt werden müssen, in denen Künstliche Intellgenz eine Rolle spielt.