Mit KI Anforderungen und Systemmodell abgleichen
In einem Monat findet die ReConf statt, eine etablierte, auf Anforderungsmanagement ausgerichtete Konferenz. Auch dieses Jahr bin ich dort wieder mit einem Vortrag vertreten mit dem Titel „Modelle aus Texten extrahieren: Warum KI-Chat nicht genug ist„. Wie aus dem Titel schon erkennbar ist, geht es hier unter anderem um das Abgleichen von einem Systemmodell mit Texten, wie zum Beispiel Anforderungen.
Ich werde natürlich nicht vorgreifen, möchte aber im folgenden ein bisschen Kontext geben. Insbesondere gehe ich darauf ein, wie wir im Systems Engineering sinnvollerweise dem aktuellen Hype entkommen können und KI wirklich sinnvoll einsetzen können.
Ich würde mich gern mit Menschen austauschen, die konkrete Einsatzbereiche für KI im Systems Engineering im eigenen Unternehmen sehen. Bei Interesse gern direkt auf diesen Newsletter antworten, am Besten direkt für eine Verabredung auf der ReConf.
Der Hype um KI-Chat
Der Hype um ChatGPT und andere KI-Chatbots ist durchaus gerechtfertigt, denn zwei Dinge sind wirklich neu: Erstens ist es zum ersten Mal möglich, Anfragen an ein System mit freiem Text zu formulieren, auf die das System eine zur Frage passende Antwort gibt. Klassische Systeme haben im besten Fall eine leistungsfähige Suche, die passende Textschnipsel zurückgibt.
Zweitens haben wir einen Kontext, was Nachfragen ermöglicht. Auch das hat es in dieser Form noch nicht gegeben. Hinzu kommt, dass die Systeme universell sind, also nicht auf eine spezielle Domäne zurechtgeschnitten sind.
KI-Chatbots machen zwei Dinge wirklich neu: (1) Eingabe und Ausgabe in natürlicher Sprache und (2) Dialog im Kontext.
Doch wenn sich die erste Begeisterung gelegt hat, stellen sich uns zwei Fragen. Erstens, wie hilft mir so ein System bei meiner täglichen Arbeit, also im Systems Engineering? Zweitens, wie kann ich KI in meinen eigenen Produkten verbauen?
KI in Produkte verbauen
Bei der zweiten Frage — KI in Produkte verbauen — sollten wir nicht mit der Lösung beginnen (KI-Chat), sondern mit dem Kundenproblem. Aber erfahrene Systems Engineers wissen ja schon lange, dass wir immer mit dem Problem der Stakeholder beginnen sollten.
Um zu entscheiden, ob und wie ein KI in einem Produkt funktionieren könnte, habe ich in diesem Artikel zur Reward-Funktion beschrieben.
Im weiteren geht es nun um die Frage, wie wir in unserer täglichen Arbeit als Systems Engineer KI nutzen könnten.
KI für Systems Engineering selber nutzen
Mir sind inzwischen eine Reihe von Vorschlägen begegnet, wie wir ein KI-Chatsystem sofort in unserer Arbeit nutzen könnten:
Wir könnten die KI Anforderungen vervollständigen lassen… | …das funktioniert sogar sehr gut! Aber: Wo kommen die Anforderungen her? Natürlich aus den Trainingsdaten der KI, was bedeutet, dass diese kaum innovativ sein werden. Außerdem besteht hier das Risiko, dass unsere Anforderungen wieder für KI-Training genutzt werden und irgendwann den Konkurrenten vorgeschlagen werden. |
Wir könnten die KI fragen, Anforderungen zu bewerten und zu verbessern… | …das Ergebnis ist beim ersten Mal beeindruckend! Wir können aber nicht sicher sein, dass alle Qualitätskriterien berücksichtigt werden. |
Wir können die KI bitten, ein Systemmodell aus Anforderungen abzuleiten… | …hier ist die Herausforderungen, dass das Systemmodell nicht in natürlicher Sprache geschrieben ist. Allerdings war der Chatbot in der Lage, ein PlantUML-Modell zu erstellen. Das könnte für die Erstellung eines initialen Modells nützlich sein, Pflege oder Analyse sind jedoch schwer möglich. |
Kurz: Wir können jetzt schon KI-Chat punktuell einsetzen. Doch der Nutzen und Effizienzgewinn hängen stark von der Kreativität des Nutzers ab und die zu erwartenden Effizienzgewinne sind schwer vorherzusagen.
Automatisierung oder Augmentation?
Es gibt Aufgaben, die die Menschen gerne von der KI erledigen lassen würden. Aber Menschen sind auch gern in Kontrolle und wollen — oder müssen — viele Tätigkeiten selbst erledigen. In diesen Fällen kann KI helfen, die Aufgaben schneller, effizienter und manchmal sogar kreativer zu erledigen.
Zumindest im Moment sehe ich KI ganz klar bei der Augmentierung: Zum Beispiel würde ich keine KI trauen, die Traceability automatisiert zu pflegen. Allerdings wäre ein KI-Assistent nützlich, der Vorschläge zum Anpassen der Traceability macht, etwa so:

Hier schlägt ein KI-Assistent vor, zwei fehlende Traces anzulegen und hat ebenfalls einen (SysML) Block identifiziert, dem diese Anforderung zugewiesen werden könnte. Dies sind typische Aktivitäten, die ein Nutzer nicht automatisieren wollen würde.
Das Systemmodell und der Bezug zu Anforderungen und anderen Texten
Jeder Text ist ein Modell, wenn auch oft ein nicht sonderlich präzises. Es ist jedoch die Art von Modell, die wir Menschen sehr gut verstehen und auf das wir in der absehbaren Zukunft auch nicht verzichten werden. Doch mit der langsam aber stetig steigenden Verbreitung von Modellen wird das Abgleichen zwischen Systemmodell und Texten jeglicher Art immer wichtiger.
An dieser Stelle leisten die heutigen KI-Chatsysteme aber keine gute Arbeit, aus zwei Gründen. Zum einen haben die Sprachmodelle nur ein rudimentäres Verständnis von Modellen, und dies basiert auf einer textuellen Repräsentation wie der PlantUML-Syntax oder XMI. Dieses Problem könnte dadurch gelöst werden, die KI gezielt als spezialisierten Übersetzer zu trainieren.
Weiterhin haben sie kein Verständnis vom „System of Interest“. Im Gegensatz zu einer generischen generativen KI sind wir nur bedingt an Allgemeinwissen interessiert. Der Kontext ist üblicherweise klar vorgegeben, unser System of Interest, bzw. das Firmeninterne Wissen zu unserer Domäne.
Systemmodell interaktiv abgleichen
Dieser eingeschränkte Scope eines Assistenzsystems macht es im gewissen Sinne sogar einfacher, einen solchen zu entwickeln. Im Prinzip wollen wir einen „Fachidioten“, der alles über unser System (aber auch die Domäne) weiß und darüber hinaus keine Interessen hat.
Im Systems Engineering wollen wir, dass die KI ein „Fachidiot“ ist!
Mit einem solchen Paradigma bekommt das Systemmodell plötzlich einen neuen Stellenwert, nämlich den „Stand der Wahrheit“ bezüglich unseres „System of Interest“. Wenn wir mit der KI interagieren, dann erwarten wir, dass diese das Systemmodell versteht und als „Wahrheit“ ansieht. Wenn sie durch eine Interaktion mit einem Nutzer einen Konflikt erkennt, muss sie den Nutzer darauf hinweisen.
Ein solches Assistenzsystem hat nun folgende Fähigkeiten:
- Es kann Nutzern Fragen zum System beantworten, ohne dass die Nutzer das Modell selbst lesen oder verstehen müssen.
- Es kann Widersprüche zwischen Texten (Anforderungen, Beschreibungen, Handbüchern, etc.) erkennen und Nutzer auffordern, die Widersprüche aufzulösen und Unklarheiten zu präzisieren und das grundsätzliche Abgleichen von Systemmodell und anderen Elementen, ohne das Modell direkt bearbeiten zu müssen.
- Es kann Lücken, bzw. fehlende Informationen erkennen und Vorschläge machen, wie diese gefüllt werden sollen.
- Es kann Ähnlichkeiten erkennen und dadurch nicht nur Anforderungstexte verbessern, sondern auch im Systemmodell Komponenten aus einer entsprechenden Bibliothek einbinden
Was geht noch?
Sicherlich gibt es noch viele weitere Anwendungsmöglichkeiten. Hast Du Ideen? Dann antworte gern direkt auf diesen Newsletter oder nutze die Kommentarfunktion. Gern können wir uns auch in München auf der ReConf verabreden.