Nächster Artikel
Interview mit Mario Trapp
»KI und Software Engineering ergänzen und bedingen sich in beide Richtungen«
Software Engineering ist unabdingar, um aus einer Idee auf Basis von Künstlicher Intelligenz (KI) ein einsatzfähiges Produkt zu machen. Aber auch das Software Engineering profitiert von der KI. Wie das in beide Richtungen funktioniert, erläutert Mario Trapp, Institutsleiter des Fraunhofer IKS.
© iStock/kyoshino
H. T. Hengl:
Software Engineering klingt eher nach Pflicht als nach Kür, nach business as usual. Stimmt das oder täuscht das?
Prof. Dr.-Ing. habil. Mario Trapp:
Es ist nicht zu verleugnen, dass Themen wie die Künstliche Intelligenz einen viel attraktiveren Glanz ausstrahlen und gerade für die breite Öffentlichkeit eine viel eindrucksvollere Wirkung erzielen können. Man sieht allerdings über die letzten Monate, dass die KI in vielen Anwendungsbereichen der cyber-physischen-Systeme an ihre Grenzen stößt. Themen wie »Engineered AI« werden plötzlich en vogue.
H. T. Hengl:
Warum ist das so?
Prof. Dr.-Ing. habil. Mario Trapp:
Der Grund zeigt sich in der Historie der Informatik: Zuerst kommt immer die neue Technologie. Um aus dieser verheißungsvollen Vision echte Innovation werden zu lassen, muss man dann allerdings erst lernen, die Komplexität zu beherrschen und die Qualität zu garantieren. Das ist dann die Stunde des Engineerings. Engineering erfolgt dann häufig etwas abseits des Scheinwerferlichts und ist doch das entscheidende Element, das aus Proof-Of-Concept Ideen einen echten Mehrwert für Wirtschaft und Gesellschaft erwachsen lässt.
H. T. Hengl:
Könntest Du ein Beispiel beschreiben, das den hohen Stellenwert des Software Engineering verdeutlicht?
Prof. Dr.-Ing. habil. Mario Trapp:
Schaut man in die Vergangenheit, so gab es bereits in den 60er Jahren des letzten Jahrhunderts eine Softwarekrise. Software per se war die tolle neue technologische Errungenschaft, man scheiterte aber daran, wirklich nützliche, effiziente Software in akzeptabler Zeit in der nötigen Qualität zu entwickeln. Viele erinnern sich als jüngeres Beispiel noch an die Software-Qualitätsprobleme der Automobilbauer um die Jahrtausendwende, die zu unzähligen Rückrufen und als Konsequenz zu einem milliardenschweren Investitionsprogramm in das Software Engineering geführt haben, um die Komplexität und die Qualität der Software in den Griff zu bekommen.
H. T. Hengl:
Und heute?
Prof. Dr.-Ing. habil. Mario Trapp:
Heute, da die Automobilbranche versucht, sich etwas von ihrer proprietären Softwarehistorie zu lösen und moderne Softwaretechnologien einzuführen, bezeichnen manche Medien den Begriff Software als Synonym für das Kernproblem der deutschen Wirtschaft. Und gerade auch wenn man sich in allen Anwendungsbereichen cyber-physischer Systeme – bei denen Qualität auf dem Niveau von »geht in den meisten Fällen« schlichtweg nicht gut genug ist – die Einführung der Künstlichen Intelligenz (KI) anschaut, dann findet man viele Leuchtturm-Show-Projekte.
Aber die breite Markteinführung lässt in vielen Fällen noch auf sich warten, solange man eben die Qualität nicht unter Kontrolle bekommt. Dies gilt beim Automatisierten Fahren genauso wie bei der Steuerung von Gasturbinen. Deshalb besinnen sich viele Unternehmen auf die Bedeutung des Engineerings zurück und arbeiten vom öffentlichen Interesse kaum beachtet mit Hochdruck daran, aus den Versprechungen der KI mit Hilfe des Engineerings echte Produkte entstehen zu lassen. Und spätestens, wenn man wie im Medizinbereich eine Safety-Zertifizierung braucht, werden die KI und das Engineering zu untrennbaren Geschwistern, die nur gemeinsam einen wirtschaftlichen Erfolg ermöglichen.
H. T. Hengl:
KI kann also nicht ohne Software Engineering: Willst Du das zum Ausdruck bringen?
Prof. Dr.-Ing. habil. Mario Trapp:
Die Geschwister KI und Software Engineering ergänzen und bedingen sich in beide Richtungen. Auch KI-basierte Systeme sind in erster Linie hoch komplexe Softwaresysteme. Der Einsatz von KI führt darüber hinaus die meisten etablierten Qualitätssicherungs-Verfahren ad absurdum, da KI auf völlig anderen Paradigmen fußt als die klassisch programmierte Software. Während die KI alleine also die leuchtende Bühne der technologischen Möglichkeiten mit funktionalen Prototypen bespielen kann, braucht sie das Engineering, um zu einem echten Produkt heranwachsen zu können, dessen Qualität man sichern kann, das man warten und erweitern kann.
H. T. Hengl:
Und das fertige Produkt bleibt ja nicht stehen!
Prof. Dr.-Ing. habil. Mario Trapp:
Genau, gerade beim Einsatz von KI ist es unabdingbar, die Systeme kontinuierlich weiterzuentwickeln – alleine schon, um unvermeidbare Fehler zu entfernen. Aus der IT-Welt bekannte Ansätze wie DevOps bekommen daher auch in der Entwicklung cyber-physischer Systeme eine zentrale Bedeutung. Wenn man nun aber plötzlich nicht mehr viele Monate für eine Fehlerbehebung oder Systemerweiterung hat, sondern nur noch wenige Tage, schnappt die Falle der Systemkomplexität in ihrer vollen Kraft zu. Anders gesagt: Nur wenn ich ein System vollständig beherrsche, kann ich dieses innerhalb kürzester Zeit anpassen, seine Qualität sichern und wenn nötig sogar seine Sicherheit im Sinne von Safety re-zertifizieren. Ohne Engineering undenkbar! Man muss dies aber auch in der anderen Richtung betrachten.
H. T. Hengl:
Das heißt, Software Engineering profitiert auch von KI?
Prof. Dr.-Ing. habil. Mario Trapp:
So ist es. Klassische Engineeringansätze kommen bei der rasant wachsenden Komplexität und den immer kürzeren Engineering-Zyklen an ihre Grenzen. Häufig müssen viele Schritte manuell durchgeführt werden, was bei den heutigen Softwareumfängen viel zu lange dauert. Zudem sind wir als Menschen meist von der Komplexität der Systeme kognitiv überfordert. Klassische Automatisierungsansätze wie wir sie aus dem modellbasierten Software-Engineering kennen, setzen umgekehrt sehr detaillierte, sehr sauber gepflegte Modelle voraus, was häufig wiederum an anderer Stelle einen kaum leistbaren manuellen Einsatz erfordert.
Deshalb hilft nicht nur Engineering der KI, sondern die KI hilft auch dem Engineering. Durch den Einsatz von KI nicht nur im Produkt, sondern auch im Engineering können wir die Komplexität besser beherrschen. Einige der aktuellen Programmierassistenten zeigen uns, wie KI bereits heute zumindest einfache Codieraufgaben selbst übernehmen kann. In ähnlicher Weise kann KI aber auch helfen die Verfolgbarkeit in Modellen automatisiert zu pflegen, Architekturen abzuleiten und zu bewerten oder gar Teile der Safety-Assurance zu übernehmen. Meist nicht ganz alleine, aber wir werden KI immer mehr als Engineering-Companion sehen, der mit menschlichen Ingenieurinnen und Ingenieuren gemeinsam im Team das Engineering hochkomplexer Systeme in sehr kurzer Zeit bei höchsten Qualitätsansprüchen ermöglichen wird.
H. T. Hengl:
Welches Know-how, welche Expertise setzt denn ein solches Software Engineering voraus?
Prof. Dr.-Ing. habil. Mario Trapp:
Als Ausgangspunkt werden die jahrzehntelang entwickelten Grundlagen des Software Engineerings dienen. Wir wissen viel darüber, wie man Software spezifiziert und entwickelt. Und mit welchen Methoden man systematisch von den impliziten Anforderungen der Kunden zu Quellcode und zu einem qualitätsgesicherten, eventuell sogar zertifizierten System kommt. Auch die Idee, die einzelnen Schritte der Entwicklung und der Qualitätsanalyse zu automatisieren, ist nicht neu. Neu sind allerdings zum einen die Art der Systeme, die wir entwickeln. KI-basierte kognitive Systeme unterliegen nun mal anderen Gesetzmäßigkeiten. Zum anderen haben wir mit der KI allerdings auch ein neues Werkzeug, das uns hilft, bei der Automatisierung ganz neue Wege zu gehen, eine Engineering Intelligence aufzubauen.
H. T. Hengl:
Was meinst Du mit »Engineering Intelligence«?
Prof. Dr.-Ing. habil. Mario Trapp:
Die Vereinigung unserer Kompetenzen zu Engineering und KI bietet die unerlässliche Grundlage, das Software Engineering weiterzudenken, neu zu denken. Das Software Engineering wird in Zukunft eine Koproduktion aus menschlicher und Künstlicher Intelligenz. EngineeringIntelligence wird sich daher in Form von Engineering Companions wiederfinden. Damit aber Mensch und KI effizient zusammenarbeiten können, müssen allerdings noch einige Hürden überwunden werden – insbesondere, wenn wir erwarten, dass sich die KI auch an den Menschen anpasst – und nicht umgekehrt. Viele hegen bereits die Vision, dass dies so weit gehen wird, dass wir gar keine Informatikerinnen und Informatiker mehr als Software Engineers brauchen, sondern dass Domänenfachleute oder sogar Laien ihr Problem und die nötigen Eigenschaften einer Lösung in ihrer Sprache beschreiben und eine Software generiert wird. Auch wenn dies noch lange ein hehrer Wunsch bleiben wird, ist es letztlich doch ein Zielbild, das die Zukunft des Software Engineerings nachhaltig prägen wird.
H. T. Hengl:
In welchen Projekten fließt die Kompetenz des Fraunhofer IKS beim Software Engineering ein?
Prof. Dr.-Ing. habil. Mario Trapp:
Unsere Software-Engineering-Kompetenz findet sich in verschiedensten Facetten in Projekten wieder. Zum einen ist die Safety-Absicherung KI-basierter Systeme eine Engineering-Aufgabe, die es verlangt, das Safety Engineering anders zu denken, um pragmatisch zu Ergebnissen zu kommen. Dadurch konnten wir bereits zahlreiche Kunden auf ihrem Weg zu einem Safety-Nachweis ihrer KI-basierten Systeme begleiten.
Wir sehen aber auch einen rasant wachsenden Bedarf, nämlich die Idee der DevOps, des Continuous Engineerings, oder des Continuous Deployments. Da kursieren derzeit noch verschiedene Begriffe. Auch in diesem Umfeld helfen wir zahlreichen Kunden dabei, die nötige Effizienz zu erreichen, um in immer kürzeren Zyklen höchste Qualität liefern zu können. Wir helfen unseren Kunden aber auch nach wie vor in ganz klassischen Aufgaben, wie beispielsweise der Bewertung ihrer Softwarearchitektur. Wenn man – um nur ein Beispiel zu nennen – viele Millionen Euro in eine neue Produktgeneration investiert, möchten viele Kunden doch noch eine unabhängige Meinung und Verbesserungsempfehlungen, auf Basis einer belastbaren, fachlichen Expertise, um ihr Investitionsrisiko zu minimieren.