01. März 2024

ChatGPT als Unterstützung bei Architektur und Requirements Engineering

Willkommen zum zweiten Teil unserer Serie zum Einsatz moderner KI-Tools in der Welt der Softwareentwicklung! Heute im Fokus: ChatGPT als Unterstüztung bei Requirements und Architektur.
1060 x 710 Wessely Marcel

Autor:in

Marcel Wessely

Ein Mann im grünen Pullover sitzt mit dem Rücken zum Betrachter gewandt vor einem Bildschirm, auf dem Code zu sehen ist.

Willkommen zu unserer mehrteiligen Serie über den Einsatz moderner KI-Tools in der Welt der Softwareentwicklung! Inzwischen gibt es evidenzbasierte Forschungsergebnisse darüber, wie Entwickler:innen
Erfahrungen mit den Tools in allen Phasen des Softwareentwicklungszyklus optimieren können. Ganz gleich, ob neue Funktionen entwickelt oder Fehler behoben werden sollen. In den kommenden Wochen zeigen wir in dieser Serie, wie genau das funktioniert. Den ersten Teil der Serie gibt es hier.

LLMs im Software Engineering

Die fortschreitende Entwicklung von Large Language Models (LLMs) wie ChatGPT und GitHub Copilot prägt das Software Engineering nachhaltig. Diese Modelle beherrschen nicht nur das Zusammenfassen von Texten und das Verfassen von E-Mails, sondern sind auch in der Lage, Quellcode zu generieren.

Bei Accso haben wir diese Technologien in verschiedenen Kundenprojekten getestet und präsentieren in dieser Blogserie eine Potenzialanalyse für den Einsatz von LLM-basierten Werkzeugen in der Softwareentwicklung. Mit dem Einsatz von ChatGPT konnten wir nicht nur die Effizienz der Softwareentwicklung steigern, sondern auch in den Bereichen Architektur und Requirements konkrete Verbesserungen erzielen. In diesem Beitrag teilen wir unsere Best Practices.

Auch mit GitHub Copilot haben wir uns intensiv auseinandergesetzt. Da dieses Tool jedoch nur für Implementierungsaufgaben genutzt wurde, wird es in einem späteren Blogbeitrag behandelt werden.

ChatGPT im Requirements Engineering

Im Bereich Requirements Engineering haben wir in einer Pilotstudie verschiedene Aspekte ausprobiert, wobei die folgenden Drei sich als nützlich erwiesen haben:

  1. Der erste umfasst das Erstellen von Personas, bei dem die KI bei der Erarbeitung von Satzbausteinen unterstützen konnte.
  2. Als zweites wurde sich mit dem Verstehen von technischen Anforderungen auseinandergesetzt, wobei der Chatbot als Wissensressource genutzt wurde.
  3. Auch das Verstehen von Implikationen und Abhängigkeiten zwischen Requirements wurde erprobt, wobei ähnlich gute Erfahrungen gemacht wurden.

Der Chatbot als Wissensressource unterstützt effektive und effiziente Arbeitsweisen im gesamten Software Engineering.

Chatbots als Wissensressource für Architektur und Design

Im Bereich Architektur und Design haben wir uns mit dem Verstehen von Betriebsdokumentation, Architekturpatterns und -stilen sowie der Architekturdokumentation beschäftigt. Der Chatbot als Wissensressource ermöglicht es, schneller Wissen zu erhalten und neue Patterns zu verstehen und zu vertiefen. Für die Projektplanung und Architektur vor den Aufgaben eines Software Engineers sind die Anwendungsmöglichkeiten derzeit beschränkter als beim Coden. Dennoch unterstützt ChatGPT hier und führt zu schnelleren und besseren Lösungen.

Fazit

In unserer qualitativen Studie konnten wir keine Muster erkennen, bei denen LLMs besonders viel unterstützen, da alle Anwendungsszenarien sehr individuelle Unterstützungen waren. Trotzdem bieten die bisherigen LLMs Unterstützung bei Requirements und Architektur, auch wenn diese Themen komplex sind und nicht mit einer kurzen Promt zu einer guten Lösung durch das LLM führen können. Dennoch konnten wir Folgendes sehen: Für die Bereiche Requirements Engineering und Architektur können wir feststellen, dass ein "interaktiver Modus" mit dem Chatbot, bei dem Fragen gestellt und beantwortet werden, eine effiziente Methode ist, eine KI in Kundenprojekten einzusetzen. Dieses Vorgehen hilft, bei der Lösung der eigentlichen Problemstellung zu bleibe. Konkrete Anwendungsfälle, bei denen ein LLM sinnvoll eingesetzt werden kann, sind das Erarbeiten von Komponentenschnitten, das Bearbeiten von Trade-offs unterschiedlicher Lösungen und das Erstellen von Schnittstellenschemata im JSON-Format.

Limitierungen der Studie

Abschließend möchten wir kurz einige Anmerkungen zum Rahmen unserer Studie machen. Die hier dargestellten Best Practices basieren auf einer Pilotstudie bei der wir Wissen gesammelt und unsere Fähigkeiten iterativ verbessert haben, um fundierte Erfahrungen aus unseren Projekten zu gewinnen. Durch die offene Pilotstudie wurden nicht alle Themenfelder getestet und untersucht. Die Untersuchung basiert auf der subjektiven Erfahrung der Proband:innen, die durch ein Bias bei der Selbsteinschätzung verzerrt sein könnte. Ebenfalls erschwerte der Geheimnisschutz die Anwendung von Chatsbots, weshalb wir bisher erst eine kleine Anzahl der oben genannten Aufgaben erfolgreich in Kundenprojekten mit ChatGPT nutzen konnten.

Im nächsten Blogbeitrag werden wir dann auf viele konkreteren Anwendungen beim Schreiben von Code eingehen. Auch dort werden wir unsere Erfahrungen aus Kundenprojekten teilen können.

AI-assisted Software Engineering

Basis dieses Blogartikels bildet eine breitgefächerte Potenzialanalyse, welche den Einsatz LLM-basierter Werkzeuge im Software Engineering heute evaluiert. Die identifizierten Potenziale wurden mittels einer empirischen Pilotuntersuchung in realen Projektszenarien erprobt.

2023_Magazine

Marcel Wessely

Software Engineer
Ihr Ansprechpartner zum Thema AI-assisted Software Engineering mit ChatGPT und GitHub Copilot
Marcel Wessely Raute