Bewertung von ChatGPT für die Anforderungserhebung in der Softwareentwicklung
Dieser Artikel untersucht, wie ChatGPT bei der Sammlung von Softwareanforderungen hilft.
― 7 min Lesedauer
Inhaltsverzeichnis
In der heutigen digitalen Wirtschaft sind Softwaresysteme unverzichtbar. Unter den verschiedenen Phasen der Softwareentwicklung sticht die Anforderungsanalyse hervor. In dieser Phase geht's darum, zu sammeln, was die Nutzer von einem Softwaresystem wollen und brauchen. Es wird sichergestellt, dass diese Bedürfnisse klar dokumentiert sind, sodass die Entwickler Produkte erstellen können, die den Erwartungen entsprechen. Anforderungen zu verstehen und zu sammeln ist keine einfache Aufgabe, aber sie ist entscheidend für den Erfolg eines Softwareprojekts.
Anforderungen sind eine Möglichkeit, auszudrücken, welche Funktionen ein System haben sollte oder wie es sich verhalten sollte. Traditionell beinhaltete das Sammeln dieser Anforderungen, direkt mit Nutzern durch Umfragen, Interviews oder Workshops zu sprechen. In letzter Zeit haben Online-Plattformen die Art und Weise, wie Nutzerfeedback gesammelt wird, verändert. Zum Beispiel bieten Nutzerbewertungen auf Plattformen wie Google Play und im App Store wertvolle Informationen darüber, welche Funktionen die Nutzer wünschen und mit welchen Problemen sie konfrontiert sind.
Darüber hinaus dienen auch App-Beschreibungen als Quellen, um Ideen darüber zu sammeln, was Nutzer von Software erwarten. Sie enthalten oft wichtige Hinweise auf die Funktionen, die Nutzer schätzen könnten.
Mit dem Fortschritt der Technologie sind neue Methoden entstanden, die helfen, Sprache und Informationen zu verarbeiten. Jüngste Fortschritte im Deep Learning, einem Zweig der künstlichen Intelligenz, haben die Art und Weise, wie wir sprachbezogene Aufgaben angehen, erheblich verbessert. Das hat Forscher im Bereich der Softwaretechnik inspiriert, nach besseren Möglichkeiten zu suchen, um Nutzeranforderungen zu sammeln und zu analysieren.
Ein herausragendes Tool im Bereich der natürlichen Sprachverarbeitung ist ChatGPT, ein grosses Sprachmodell, das für konversationelle Aufgaben entwickelt wurde. Es hat Aufmerksamkeit erregt, weil es in der Lage ist, verschiedene sprachbezogene Aufgaben auszuführen, einschliesslich der Informationsbeschaffung basierend auf den Eingaben der Nutzer.
Angesichts seiner Fähigkeiten konzentriert sich diese Bewertung darauf, wie gut ChatGPT darin abschneidet, Anforderungen von Nutzern zu sammeln. Wir haben ein Framework eingerichtet, um genau zu beobachten, wie gut ChatGPT relevante Informationen aus verschiedenen Dokumenten in einem bestimmten Setting abruft.
Die Bewertung beinhaltete die Verwendung von vier verschiedenen Datensätzen, die verschiedene Aufgaben im Zusammenhang mit dem Abrufen von Anforderungsinformationen abdeckten. Diese Aufgaben umfassten die Klassifizierung von Anforderungen und das Extrahieren von Schlüsselfunktionen aus Dokumenten. Die Datensätze umfassten verschiedene Arten von Artefakten: spezielle Dokumente für Entwickler und allgemeine Dokumente, die jeder verstehen kann.
Wir verwendeten das, was als „Zero-Shot-Setting“ bezeichnet wird, was bedeutet, dass wir sehen wollten, wie ChatGPT ohne vorheriges Training zu den spezifischen Aufgaben abschneidet. Dieses Setting hilft, die Basisleistung des Modells und seine Fähigkeit, mit neuen Aufgaben umzugehen, zu bestimmen.
Einrichtung des Bewertungsrahmens
Um die Leistung von ChatGPT zu bewerten, haben wir ein Framework mit spezifischen Schritten konstruiert:
Aufgabenauswahl: Wir haben Aufgaben basierend auf gängigen Techniken zur Informationsbeschaffung und den verfügbaren Dokumentarten ausgewählt. Die gewählten Aufgaben waren Klassifizierung, bei der Anforderungen in Kategorien gruppiert werden, und Extraktion, bei der wichtige Begriffe und Funktionen aus den Dokumenten identifiziert werden.
Datenvorbereitung: Wir haben Datensätze gesammelt, um die Fähigkeit von ChatGPT zu testen. Jeder Datensatz repräsentierte verschiedene Arten von Anforderungsdokumenten. In dieser Phase haben wir auch spezifische Anfragen erstellt, die an ChatGPT geschickt werden sollten, um es zu den erforderlichen Aufgaben aufzufordern.
Abfragen von ChatGPT: Wir haben diese erstellten Anfragen an ChatGPT gesendet, indem wir einen automatisierten Prozess verwendet haben. Jede Anfrage verband einen Aufgabenprompt mit dem spezifischen Dokument, das ChatGPT analysieren sollte.
Ergebnisanalyse: Nachdem wir Antworten von ChatGPT erhalten hatten, organisierten wir die Ergebnisse und analysierten die Ausgaben auf Genauigkeit und Relevanz. Dies beinhaltete die Messung der Präzision, der Anzahl der korrekten Ausgaben und des Recall, der angibt, wie viele relevante Ausgaben tatsächlich abgerufen wurden.
Ergebnisse der Bewertung
Die Ergebnisse zeigten, dass ChatGPT nützliche Anforderungsinformationen in einem Zero-Shot-Setting abrufen kann. Obwohl es ziemlich gut abschnitt, gab es Fälle, in denen die Präzision nicht so hoch war, wie gewünscht. Der Recall war oft besser, was darauf hindeutet, dass es eine breite Palette von Informationen zurückbringen konnte, aber einige dieser Informationen waren nicht immer spezifisch.
Zum Beispiel hatte ChatGPT beim Klassifizieren von Anforderungen eine starke Leistung mit speziellen Dokumenten wie Software-Anforderungs-spezifikationen. Aber es hatte mehr Schwierigkeiten mit allgemeinen App-Bewertungen. Diese Bewertungen enthalten viel umgangssprachliche Sprache und variierende Themen, was es für ChatGPT schwieriger macht, sie genau zu kategorisieren.
In Bezug auf die Informationsbeschaffung konnte ChatGPT wichtige Merkmale aus Anwendungsbeschreibungen identifizieren, schloss aber manchmal irrelevante Daten ein. Das Modell scheint gut darin zu sein, Begriffe und Phrasen zu erkennen, die mit Anforderungen in Verbindung stehen, kann aber auch versehentlich breitere, weniger relevante Worte aufnehmen.
Wichtige Beobachtungen
Stärken: Das Modell zeigte die Fähigkeit, allgemeine Informationen über Anforderungen aus verschiedenen Dokumentarten zu sammeln, was auf seine Vielseitigkeit mit unterschiedlichen Inhaltsstilen hinweist.
Schwächen: Ein bemerkenswertes Problem war die niedrigere Präzision im Umgang mit „schmutzigen“ Daten, wie Nutzerbewertungen, wo die Sprache weniger formell ist und mehrere Interpretationen zulässt.
Empfehlungen zur Verbesserung: Um die Leistung zu steigern, wäre es hilfreich, die Anfragen, die an ChatGPT gestellt werden, weiter auf spezifische Aufgaben zuzuschneiden. So könnte es seine generativen Fähigkeiten besser nutzen, um die Anforderungen jeder einzigartigen Aufgabe zu erfüllen.
Zukünftige Richtungen
Basierend auf den Ergebnissen der Bewertung gibt es vielversprechende Wege nach vorne. Die Techniken, die in der natürlichen Sprachverarbeitung verwendet werden, insbesondere bei grossen Sprachmodellen wie ChatGPT, können erheblich verbessern, wie wir Anforderungen in der Softwaretechnik sammeln und analysieren.
Hier sind einige vorgeschlagene zukünftige Bemühungen:
Verfeinerung der Anfragen: Zukünftige Arbeiten können sich darauf konzentrieren, die Anfragen zu verbessern, die Aufgaben für ChatGPT einleiten. Dies würde beinhalten, zu verstehen, welche Arten von Anfragen die besten Antworten für verschiedene Anforderungstasks hervorrufen.
Verwendung domänenspezifischer Modelle: Es wäre auch vorteilhaft, Modelle zu entwickeln, die speziell auf Daten zur Anforderungsanalyse trainiert sind, wobei bestehende LLMs als Grundlage dienen. Das könnte die Leistung bei spezifischen Aufgaben wie Klassifizierung und Extraktion verbessern.
Aufbau besserer Datensätze: Die Erstellung hochwertiger Benchmark-Datensätze, die auf das Sammeln von Anforderungen zugeschnitten sind, kann einen besseren Rahmen für das Training von Modellen und die Bewertung ihrer Leistung bieten.
Kombinierte Ansätze: Ein weiterer Schwerpunkt könnte darauf liegen, wie man LLMs mit formalen Methoden, die in der Anforderungsmodellierung verwendet werden, integrieren kann. Das könnte helfen, die Verifizierung von Anforderungen zu verbessern und sicherzustellen, dass sie den notwendigen Standards entsprechen.
Praktische Tests: Die Zusammenarbeit mit Fachleuten im Bereich der Anforderungsanalyse wird wertvolles Feedback liefern. Durch die Durchführung von Fallstudien mit Analysten und Entwicklern können wir bewerten, wie diese Werkzeuge in realen Szenarien effektiv helfen können und weitere Verbesserungen anregen.
Fazit
Die Bewertung von ChatGPT hebt sein Potenzial hervor, bei der Informationsabfrage zu Anforderungen zu helfen. Während es vielversprechende Fähigkeiten zeigt, gibt es noch Verbesserungspotenzial. Laufende Forschung und Praxis können zu besseren Werkzeugen und Methoden zur Sammlung von Nutzeranforderungen führen, um sicherzustellen, dass zukünftige Softwaresysteme auf einem soliden Verständnis dessen basieren, was die Nutzer wirklich brauchen.
Wenn wir vorankommen, wird es wichtig sein, weiterhin zu testen, zu verfeinern und die Anwendungen von Sprachmodellen in der Anforderungsanalyse zu erweitern. Das kann helfen, die Lücke zwischen dem, was Nutzer wollen, und dem, was Entwickler erstellen, zu schliessen und letztendlich zu erfolgreicheren Softwareprojekten in der Zukunft führen.
Titel: Empirical Evaluation of ChatGPT on Requirements Information Retrieval Under Zero-Shot Setting
Zusammenfassung: Recently, various illustrative examples have shown the impressive ability of generative large language models (LLMs) to perform NLP related tasks. ChatGPT undoubtedly is the most representative model. We empirically evaluate ChatGPT's performance on requirements information retrieval (IR) tasks to derive insights into designing or developing more effective requirements retrieval methods or tools based on generative LLMs. We design an evaluation framework considering four different combinations of two popular IR tasks and two common artifact types. Under zero-shot setting, evaluation results reveal ChatGPT's promising ability to retrieve requirements relevant information (high recall) and limited ability to retrieve more specific requirements information (low precision). Our evaluation of ChatGPT on requirements IR under zero-shot setting provides preliminary evidence for designing or developing more effective requirements IR methods or tools based on LLMs.
Autoren: Jianzhang Zhang, Yiyang Chen, Nan Niu, Yinglin Wang, Chuang Liu
Letzte Aktualisierung: 2023-07-19 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2304.12562
Quell-PDF: https://arxiv.org/pdf/2304.12562
Lizenz: https://creativecommons.org/licenses/by/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://openai.com/chatgpt
- https://github.com/zhangjianzhang/ChatGPT4REIR
- https://platform.openai.com/docs/api-reference/chat
- https://platform.openai.com/docs/guides/gpt/faq
- https://platform.openai.com/playground
- https://promise.site.uottawa.ca/SERepository/
- https://crowdre.github.io/murukannaiah-smarthome-requirements-dataset/
- https://tatsu-lab.github.io/alpaca
- https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard
- https://github.com/saltudelft/ml4se