»ChatGPT in der Industrie« – Teil 5
Das Anforderungsmanagement
Kann generative KI erfinderisch tätig sein? Mit Blick auf die rasante Evolution der KI lässt sich dies derzeit vielleicht mit einem »Jein« beantworten. Heute sind LLMs auf jeden Fall schon nützliche Werkzeuge, wenn es um die Formulierung von Anforderungsbeschreibungen geht.
Bild 1. Die Evolution eines Entwicklungsprojektes.
© talsen teamIm letzten Artikel dieser Serie (Ausgabe 5, Seite 14-17) stand die mögliche Unterstützung bei der Beschreibung und Formulierung von Arbeitspaketen mit Hilfe generativer Werkzeuge wie ChatGPT im Mittelpunkt. Die berechtigte Frage, die sich dabei stellt, ist: Wo kommen die Anforderungen her, die in den Arbeitspaketen für die technische Umsetzung beschrieben werden? Wie lassen sich generative Methoden auch schon in der Anforderungsanalyse und Beschreibung im Projektvorfeld und dann projektbegleitend einsetzen?
Ein systematischer Prozess
Das Anforderungsmanagement, wie etwa in der Norm »IEEE 24765:2017 – Systems and Softwareengineering« beschrieben, ist theoretisch betrachtet, ein gut greifbarer systematischer Prozess: von der Anforderungserhebung (Requirements Elicitation) über die Anforderungsanalyse (Requirements Analysis) und die Anforderungsspezifikation (Requirements Specification) bis hin zur Anforderungsbewertung (Requirements Validation). In der Praxis hingegen ist es eine große Herausforderung gute Anforderungen zu erstellen. Denn sie sollen korrekt, unzweideutig (eindeutig), vollständig, widerspruchsfrei, bewertet nach Wichtigkeit und/oder Stabilität, verifizierbar, modifizierbar und verfolgbar (traceable) sein.
>> Lesen Sie Teil 1 der Artikelserie »ChatGPT in der Industrie«!
Zwei Software-Vordenker bringen diese Aspekte auf den Punkt: So hat Dr. Winston W. Royce schon 1970 festgestellt, dass für einen Entwicklungsauftrag für eine Hardwareentwicklung von rund 5 Mio. Dollar mit etwa 30 Seiten Spezifikation eine ausreichend gute Anforderungsbeschreibung vorliegt und damit ein zufriedenstellendes Projektergebnis zu erwarten ist. Um mit dem gleichen Budget ein Software-Entwicklungsprojekt umfänglich zu spezifizieren, wären 1500 Seiten Anforderungsbeschreibung erforderlich - für ein vergleichbar gutes Projektergebnis. Sprich: Allein schon die Menge an zu beschreibender Information stellt eine große Aufgabe dar. Fred Brooks hat es in seinem Buch »The Mythical Man-Month« von 1995 frei übersetzt zusammengefasst: »Der schwierigste Teil bei der Entwicklung eines Softwaresystems ist die genaue Entscheidung, was gebaut werden soll.« Dazu kommt noch bei vielen Entwicklungsprojekten die Dynamik, dass überhaupt erst im Verlauf des Projekts genügend Informationen vorliegen, um wirklich zu entscheiden, was wirklich einen Wert stiftet und somit gebaut werden soll und was nicht. Dieser Zusammenhang wird auch in Bild 1 als orange-linie (Vorstellung) und grüne Linie (Realität) dargestellt.
Anforderungen oft textbasiert
Die gute Nachricht ist, wie auch schon Teil 4 dieser Serie mit der Erstellung von agilen Arbeitsbeschreibungen erläutert: Anforderungen werden sehr häufig natürlich sprachlich beschrieben, weshalb sich der Einsatz von generativen KI Werkzeugen/LLMs (ChatGPT, Microsoft Copilot, Google Gemine) geradezu aufdrängt. Denn LLMs können ganz besonders komplexe textbasierte Aufgaben effizient handhaben und bieten durch die Analyse und Generierung von natürlicher Sprache nützliche Vorteile für das Anforderungsmanagement. Konkrete Textaufgaben können etwa sein: Anforderungs-informationen einholen und verdichten – Markt- und Kundenbeschreibungen, Personas, funktionale und nicht funktionale Anforderungen beschreiben, technische Randbedingungen beschreiben, rechtliche Vorschriften beschreiben, und generell Anforderungsbeschreibungen auf Konsistenz prüfen und aktualisieren. Durch den Einsatz von LLMs ist es sogar möglich, virtuelle Interviews zu führen. Und obwohl die erzielbaren Resultate erstaunlich nützlich sind, ist es im Umgang mit KI generierten Texten immer wichtig zu beachten: die Ergebnisse sind »nur« als Formulierungsvorschläge einzuordnen. Ob es richtig ist oder nicht, obliegt allein der Verantwortung und Prüfung des Prompt-Erstellers.
Generative Anforderungen beschreiben
Bild 2. Die BDD Pyramide als Grundlage für effiziente anforderungsbeschreibende Prompts.
© talsen teamFür die Arbeit mit LLMs und die Erstellung guter Prompts gilt das einfache Prinzip: Je besser die Zusammenstellung der Eingangsinformationen und je präziser die Anfrage desto nützlicher ist das generierte Formulierungsergebnis, das wir erwarten dürfen. Wie schon bei der Generierung von Epics und User Stories beschrieben, gilt auch für den erfolgreichen Einsatz von LLMs für die Anforderungserstellung »Teile und herrsche«. Also die Zerlegung der Anforderungen in zusammenhängende inhaltliche Blöcke, die auch hinsichtlich ihrer Abstraktionsebenen klar zugeordnet werden können. In Prompt-Engineering Worten gesprochen ist die »Chain of Thoughts«-Technik die führende Prompt-Taktik. Bei talsen team verwenden wir im Tagesgeschäft die Zergliederungsebenen, wie sie in der verhaltensgetriebenen Software-Entwicklung (BDD) beschrieben werden (Bild 2). Zu beachten ist, dass die Beschreibungen zur Arbeitsbeschreibung nahtlos mit den Beschreibungen zur Spezifikation ineinander übergehen. Dies spiegelt die Tatsache wider, dass beim »Machen« häufig nützliche und wertvolle Erkenntnisse entstehen, woraus sich konkrete Spezifikationen ableiten lassen. Gibt es hier einen Bruch im System oder der Beschreibungslogik, ist das nicht nur schwieriger für das Produktmanagement. Es schmälert zudem den möglichen Erfolg mit generativen KI-Methoden, da dadurch wahrscheinlich häufig die Eingangsinformationen für einen guten Prompt unvollständig sind.
Bild 3. Ein Beispiel für geeignete Abstraktions-ebenen der KI-unterstützten, schrittweisen, generativen Erstellung von Anforderungsbeschreibungen.
© talsen teamIm Folgenden werden die Wertbeiträge im Abhängigkeitsbaum für die generative Erstellung von spezifizierenden und arbeitsbeschreibenden Artefakten entlang der unterschiedlichen Abstraktionsebenen anhand eines kleinen Beispiels einer einfachen IIoT-Anwendung beispielhaft dargestellt (Bild 3). Die Unterteilung in die unterschiedlichen Abstraktionsebenen ist eine große Hilfe beim Einsatz von LLMs zum derzeitigen Stand der Technik. Werden die Anfragen nämlich zu komplex oder spannen einen zu weiten inhaltlichen Bogen, so sind die Antworten von ChatGPT und Co. in aller Regel pauschal und damit kaum mehr nützlich im Sinne einer präzisen Anforderungsformulierung.
>> Lesen Sie Teil 2 der Artikelserie »ChatGPT in der Industrie«!
Die letzte Stufe und die Quelle für die entscheidenden Details bei der Spezifikationsarbeit sind die Feature Files, ebenfalls aus der Welt der verhaltensgetriebenen Software-Entwicklung kommend. Sie stellen die letzte Ebene vor der konkreten Umsetzung in Tests und produktivem Code dar. Ein Beispiel eines derartigen Feature Files – im Rahmen eines kleinen IIoT-Beispiels in der Spezifikationssprache Gherkin geschrieben – könnte wie folgt formuliert sein:
- FEATURE: digitalen Temperatursensor über OPC-UA anbinden
- SCENARION: Initialisierung eines Temperatursensors
- GEGEBEN: ein funktionsfähiger, installierter und in Betrieb genommener Temperatursensor mit der ID »123«
- UND das IIoT-System ist deaktiviert
- WENN das IIoT-System aktiviert wird
- DANN wird der Temperatursensor über OPC-UA mit den gegebenen Parametern initialisiert
- UND der Temperatursensor überträgt gemäß der einge- stellten Parameterwerte kontinuierlich Messwerte.
Bild 4. Der Prompt-Workflow zur automatisierten Erstellung von Anforderungsartefakten.
© talsen teamDieses Ergebnis ließe sich zum Beispiel automatisiert aus der Kette der vorhergehend erzeugten, höheren Abstraktionsebenen der Artefakte generieren. Wird, wie in Bild 4 dargestellt, in den Prompt Kontext sowie aus der bestehenden Codebasis Code mit in den Prompt integriert, ist es möglich parallel zur Verhaltensbeschreibung des Feature Files zusätzlich den Testcode zu erstellen. Dabei darf der Entwickler keine Angst vor langen Prompts haben: Ein mit allen wichtigen Inhalten angereicherter Prompt kann durchaus mehrere hundert Zeilen Text beinhalten.
>> Lesen Sie Teil 3 der Artikelserie »ChatGPT in der Industrie«!
Die Wahl für Gherkin als in der verhaltensgetriebenen Softwareentwicklung bewährte Spezifikationssprache ist nicht willkürlich. Gherkin ist durch seine formalisierte Beschreibungsstruktur sehr nahe an den eigentlichen Ablaufstrukturen im Code. Damit ist die Abstraktionsebene hin zum ablauffähigen Code und dem dazugehörigen automatisierten Test sehr gering. Prompts, die als Input und Kontext Gherkin beinhalten, sind damit nicht nur extrem präzise und doch leicht verständliche Anforderungsbeschreibungen, sondern auch hervorragende Ausgangspunkte für die generative Software Erstellung mit LLMs.
Prompt Engineering für gute Formulierungen
Durch die in Bild 2 beschriebene Pyramide an agilen Spezifikationsartefakten als Rückgrat für effiziente Prompts ist es möglich, das Prinzip »Teile und herrsche« gut umzusetzen. So lässt sich der Prompt immer optimal mit dem relevanten Kontext ergänzen, ohne die Anfrage mit zu viel Information zu überfrachten. Allerdings ist zu bedenken, dass die Erzeugung von Anforderungsbeschreibungen auch bei gut gestaffelten Abstraktionsebenen immer noch ein relativ hohes Komplexitätsniveau für eine generative KI hat. Neben den schon in den vorhergehenden Artikeln genannten Prompt-Strategien und -Taktiken ist es daher lohnenswert, sich mit den folgenden vier speziellen Prompt-Techniken für komplexe Anfragen näher zu beschäftigen. Diese befassen sich alle mit einer schrittweisen Zerlegung und schrittweisen Anreicherung der Lösung und passen somit hervorragend zu dem beschriebenen Zerlegungsansatz für Spezifikationsartefakte.
| Daten- und Rechtssicherheit |
|---|
|
Bei der Anwendung generativer KI ist zu berücksichtigen, dass bei der Nutzung kommerziell gehosteter LLMs oder der entsprechend verfügbaren Webseite im Browser es ohne weitere Vorkehrungen meist zu einem Datentransfer auf die Server des Anbieters kommt. Je nach Standort des Servers in Europa, den USA oder in Asien unterliegen diese den Datenschutzregularien dieses Standorts. Vor der Nutzung eines entsprechenden Angebots sollte geklärt sein wo die Server stehen, welche rechtlichen Randbedingungen vorliegen und welche Nutzungsrechte sich der Anbieter des LLMs darüber hinaus zusichert, wie z. B. die Verwendung der protokollierten Chat-Verläufe für zukünftige Modelltrainings. Manche kommerziellen Anbieter stellen ihre KI-Dienste auf besonderen Servern in Europa zur Verfügung beziehungsweise bieten die Option an, die Daten in keiner Weise selbst weiter zu verwenden. Als Alternative dazu bieten sich frei zugängliche Modelle an, die auf den entsprechenden eigenen leistungsfähigen Servern gehostet werden können und damit eine Datensicherheit gemäß der jeweiligen Firmenrichtlinien gewährleistet. Aus diesen Randbedingungen leitet sich die individuelle Risiko-/Nutzen-Einschätzung sowie das geeignete technische Setup ab. Was die IP-Rechte betrifft, ist das Thema der KI-generierte Ergebnisse und IP-Rechte ein nach wie vor im Fluss befindliches rechtliches Thema. Einerseits ist die Frage noch nicht abschließend geklärt und auch je nach Anbieter der KI-Dienste unterschiedlich: Wem gehören eigentlich die Rechte an den generierten Ergebnissen? Diese Ergebnisse sind ja auf Basis von bestehenden Daten mit entsprechendem Rechtsanspruch erzeugt worden. |
- Few-Shot: Few-Shot bezieht sich auf eine Methode, bei der im Prompt-Kontext eines oder mehrere Beispiele erhalten sind, um das LLM auf eine spezifische Aufgabe vorzubereiten oder zu adaptieren. Diese Beispiele dienen dazu, dem Modell ein konkretes Verständnis der Aufgabenstellung zu vermitteln. Diese Technik wird oft eingesetzt, um Modelle schnell an spezielle Szenarien anzupassen. So ist die Verwendung von Dokumententemplates, wie hier gezeigt, ein konkretes Beispiel der Few-Shot Technik.
- Chain of Thought: Die Chain of Thought Technik nutzt, dass ein LLM erst selbst einen expliziten, schrittweisen Lösungsweg für komplexe Probleme entwickelt, bevor es daraus die endgültige Antwort ableitet. Dies hilft einerseits dabei, die »Denkprozesse« des Modells zu verfolgen. Andererseits ist es geeignet die Genauigkeit bei schwierigen Aufgaben zu verbessern. Für Problemlösungen, die logisches Denken oder mathematische Berechnungen erfordern ist diese Technik sehr zu empfehlen.
- Tree of Thought: Tree of Thought ist eine Erweiterung der Chain of Thought Technik, indem verschiedene mögliche Denkwege in einer baumartigen Struktur vom Modell untersucht werden. Das LLM bekommt so die Möglichkeit mehrere Lösungsansätze gleichzeitig zu erkunden. Schlussendlich bewertet das Modell die jeweilige Plausibilität und wählt die beste Lösung aus den erarbeiteten Varianten aus. Diese Methode verbessert vor allem die Entscheidungsfindung in komplexen oder mehrdeutigen Situationen, da so eine tiefergehende Analyse der Optionen ermöglicht wird.
- Step-back: Die Step-back Technik findet ebenfalls bei komplexen Lösungsprozesses Anwendung und bedeutet, dass das LLM nicht sofort die Antwort auf die Frage gibt sondern zuerst versucht, das dahinterliegende allgemeinere Prinzip zur Aufgaben- oder Problemstellung zu erkennen und zu erklären. Mit diesem dann selbst geschaffenen inhaltlichen Fundament wird anschließend die eigentliche Frage beantwortet. So gelingt es auch bei schwierigen Fragestellungen, gute und fundierte Lösungen zu erzielen.
Die gute Anforderungsbeschreibung
Ob der Anforderungsbeschreibungsprozess mit BDD-Methoden und Artefakten erfolgt oder nicht, ist im Prinzip leicht austauschbar. Die Prompts lassen sich problemlos an die vorherrschende Methodik, Abläufe und Dokumententypen im individuellen Firmenumfeld anpassen. Der Schlüssel für eine effiziente und hochwertige generative Erstellung von Anforderungsbeschreibungen ist die Qualität und Kleinteiligkeit des Kontextes als Input und die Fragekomplexität beziehungsweise die Sprungweite zwischen den Abstraktionsebenen im Anforderungsbeschreibungsprozess. Beides kann im Hinblick auf den heutigen Stand der LLM-Intelligenz mit BDD-Methoden und Beschreibungsformen in Kombination mit den genannten Prompt-Techniken sehr gut abgedeckt werden und sollte auf jeden Fall eine Überlegung für das nächste »generierte« Projekt wert sein.



















