5 Möglichkeiten der Automatisierung im Anforderungsmanagement mit KI
Auch wenn KI – Künstliche Intelligenz – ein plattgetretener Begriff ist, zieht KI zweifellos ins Systems Engineering ein. Bei KI geht es allgemein um die Automatisierung von intelligentem Verhalten. Das wichtige Stichwort ist „Automatisierung“. KI ermöglicht einen Grad der Automatisierung, der selbst vor fünf Jahren nicht möglich gewesen wäre. Für das Anforderungsmanagement bedeutet das, dass sich die Menschen auf die kreative Arbeit der Entwicklung fokussieren können, statt sich mit banalen Tätigkeiten zu beschäftigen, für die sie eigentlich überqualifiziert sind.
Hier nun eine Liste von 5 Tätigkeiten im Anforderungsmanagement, die hoffentlich bald von Maschinen übernommen werden.
Dieses Thema halte ich für so spannend, dass ich unter dem Namen Semiant einen virtuellen Qualitätsassistenten entwickle. Mehr dazu am Ende des Artikels. Auch über Antworten auf diese Umfrage würde ich mich sehr freuen.
Warum Anforderungsmanagement?
Ich spreche in diesem Artikel explizit vom Anforderungsmanagement. Der Grund ist, dass Anforderungen in natürlicher Sprache festgehalten werden. Bis vor kurzem war natürliche Sprache nicht wirklich wirklich maschinell zu verarbeiten. Aber genau das ändert sich aktuell: Toolkits für die Verarbeitung natürlicher Sprache sind inzwischen ausgereift (Natural Language Processing, NLP).
Es gibt natürlich auch Ansätze, die ohne NLP auskommen, doch ich kenne wenige, die sich in der Breite durchgesetzt haben. Eine Weg ist zum Beispiel die Modellierung: Ein Zustandsmodell kann ein Verhalten in manchen Situationen besser darstellen als Prosa, und es kann maschinell weiterverarbeitet werden. Doch gerade im Anforderungsmanagement fühlen sich viele Anwender zu eingeschränkt – abgesehen von dem Erforderlichen Schulungsaufwand. Daher bleibt die formale Modellierung von Anforderungen eine Nischenlösung. Das gleiche trifft auf Textschablonen zu, wie zum Beispiel die Master-Schablonen der Firma Sophist. Die sind etwas weiter verbreitet, da hier keine teuren Werkzeuge benötigt werden. Aber auch hier ist Schulung und Disziplin nötig. Außerdem: Schablonen allein reichen für eine maschinelle Weiterverarbeitung nicht ohne weiteres aus.
Aber NLP kommt auch mit Anforderungen klar, die ohne Schablonen geschrieben wurden. Das wiederum bedeutet, dass die Nutzer nicht umlernen müssen um von der Automatisierung im Anforderungsmanagement mit KI zu profitieren. Und hier sind ein paar Möglichkeiten:
1. Widersprüche zwischen Anforderungen finden
Wenn auf Seit 5 der Spezifikation steht, dass das System in 10 ms reagieren soll und auf Seite 95 steht 15 ms, wie groß ist die Wahrscheinlichkeit, dass dies rechtzeitig entdeckt wird – oder vielleicht sogar völlig übersehen wird? Um solche Widersprüche automatisiert zu erkennen, muss ein entsprechendes System alle Anforderungen gemeinsam analysieren, Konzepte übergreifend erkennen und deren Eigenschaften in Bezug stellen. Die zur Zeit verfügbaren Systeme können zwar einzelne Anforderungen analysieren, aber nicht Anforderungen im Gesamtkontext. Das wird sich bald ändern.
2. Liste von Konzepten (Glossar) generieren und pflegen
Ein Glossar der Begrifflichkeiten im Produkt ist ein mächtiges Werkzeug. Allerdings habe ich schon oft gesehen, dass die Versuche, eines von Hand zu erstellen, scheiterten: Schnell gibt es lange Diskussionen, was ein Begriff eigentlich bedeutet. Und wenn der Glossar fertig ist, dann ist dieser unvollständig und bereits veraltet.
Unsere Entwicklungsteams beginne oft ein neues Projekt mit der Erstellung eines Glossars. Und im Handumdrehen wurde das halbe Budget verbraucht, ohne zu einer Einigung zu kommen.
Dr. Veit Lauterberg, Chief System Architect, Thales Group
Aber dies ist eine Aufgabe, die ein NLP-System vergleichsweise einfach automatisch übernehmen kann. Zwar kann so ein System keine Aussage zu der Bedeutung eines Begriffs machen. Statt dessen kann es aber den Kontext des Begriffs darstellen: Wie steht dieser Begriff in Beziehung zu anderen? Welche Anforderungen beziehen sich auf den selben Begriff? Plötzlich haben die Entwickler die Möglichkeit, die Konzepte im Kontext zu sehen und zu diskutieren, was zu Klarheit führt. Noch wichtiger: Der Glossar ist vollständig und aktuell.
3. Nachverfolgbarkeit unterstützen
Wie gerade angedeutet, purzeln bei einer automatischen Glossargenerierung bestimmte Verknüpfungen als Nebeneffekt heraus. Der Glossar zeigt viele Verknüpfungen, die nur implizit vorhanden sind. Zum Beispiel verknüpft er alle Anforderungen, die sich mit dem selben Konzept befassen. Eine Automatisierung mit KI System könnte hier noch einen Schritt weitergehen und dem Nutzer neue Verknüpfungen vorschlagen oder bestehende in Frage stellen.
4. Modelle ableiten
In einem anderen Artikel sprach ich bereits an, wie wir Modelle aus Anforderungen ableiten können. Dazu ein Beispiel:

Hier sehen wir, dass zum einen die Beziehung zwischen Simulator und Session identifiziert wurde und gleichzeitig die Spezialisierung der Session. Es wurde also ein Klassen- oder Blockmodell automatisch erstellt.
Neben dem Extrahieren des statischen Modells (Klassen, Blöcke) könnte ein System sogar ein dynamisches Modell extrahieren (Zustände, Aktivitäten). Es gibt auch bereits Werkzeuge, die dies für einzelne Anforderungen machen.
Wir dürfen beim automatischen Ableiten von Modellen allerdings keine Wunder erwarten. Selbst wenn die Anforderungen sauber formuliert wurden – und oft sind sie das nicht – gibt es immer Interpretationsspielraum. Daher muss ein System Nutzerfeedback einfordern um die Unklarheiten aufzulösen.
4. Unklarheiten finden und identifizieren
Und da sind wir schon am nächsten Punkt: Ein automatisches System kann zwar Inhalte nicht wirklich verstehen, aber durchaus Unklarheiten und Lücken erkennen. Bestehende Werkzeuge wie IBM Watson machen dies, indem sie nach „Weak-Words“ Ausschau halten. Begriffe wie „ein paar“, „manchmal“, „pünktlich“, etc. drücken Unschärfen aus. Aber auch hier fehlt der Bezug aller Anforderungen im Gesamtkontext.
Nachdem das System die Unklarheiten identifiziert hat, muss der Nutzer diese auflösen. Doch auch hier können wir noch einen Schritt weiter gehen:
5. Anforderungen umformulieren
Aspekte von Modellen in Anforderungen umzuwandeln ist wesentlich einfacher als umgekehrt, schließlich lässt sich jeder Aspekt des Modells mit Worten beschreiben. Gerade bei den Unklarheiten kann ein automatisches System Fragen stellen und basierend auf der Antwort Anforderungen einfügen oder aktualisieren, wie hier gezeigt:

Das Beispiel zeigt, wie das Werkzeug eine Beziehung erkennt aber nicht, weiß, wie sie diese im Modell abbilden soll. Nach der Auswahl kann das Werkzeug die Anforderungen entsprechend ergänzen.

Semiant, ein virtueller Qualitätsassistent
Wie ich eingangs bereits erwähnte, schließe ich gerade die Entwicklung eines Assistenten, der die Automatisierung von Aufgaben übernimmt und dabei Techniken aus der KI einsetzt. Langfristig soll er alle aufgeführten Fähigkeiten haben. Die erste Fähigkeit wird die Generierung eines Glossars sein, der direkt im Werkzeug (Polarion, Jama, Confluence, …) aktualisiert wird. Wie das genau funktioniert, zeige ich auf der Semiant Webseite und im folgenden Video.
