23. Feb. 2024

ChatGPT und GitHub Copilot in der Software Entwicklung

Der erste Teil unserer Serie zum Einsatz moderner KI-Tools in der Welt der Softwareentwicklung widmet sich den beiden Tools GitHub Copilot und ChatGPT. In welchen Bereichen des Softwareentwicklungsprozesses können diese erfolgreich genutzt werden?
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.

Chancen und Möglichkeiten von ChatGPT/GitHub Pilot im Softwarenentwicklungsprozess

Besseres Verständnis für Anforderungen

ChatGPT und GitHub Copilot können verwendet werden, um das Verständnis der Anforderungen für neue oder bestehende Softwareprojekte zu verbessern. Indem man den Chatbot mit einigen Hintergrundinformationen zum Problem versorgt, kann das vorhandene Wissen der Ingenieure ergänzt und durch Brainstorming weiter ausgebaut werden, da der Chatbot neue Erkenntnisse bieten und sicherstellen kann, dass keine Aspekte übersehen wurden. Dazu gehört auch das Abwägen von Kompromissen zwischen verschiedenen Lösungen und das Verstehen der Architektur des Systems.

Generieren von Code

Im weiteren Verlauf des Softwareentwicklungsprozesses können die Tools eingesetzt werden, sobald die Implementierungsphase begonnen hat und der Code geschrieben wird. Man kann den Chatbot mit textbasierten Aufforderungen versehen, um Codeabschnitte zu generieren, oder den Code in das Tool einspeisen und es bitten, Fehler zu identifizieren oder Anpassungen vorzunehmen.

Hilfe beim Testing

Die Tools können auch in der Testphase eingesetzt werden. Wenn Tests viele sich wiederholende Eingabedaten erfordern, kann die Verwendung eines Tools wie ChatGPT den Prozess beschleunigen, da es sogar CSV-Dateien mit Testdaten erstellen kann. Interne Studien sind jedoch zu dem Schluss gekommen, dass GitHub Copilot hier das effektivere Tool ist, da es die vorhandene Codebasis als Kontext für die zu generierenden Daten nutzen kann.

Unterstützung bei Meta-Aufgaben

Nicht zuletzt können ChatGPT und GitHub Copilot auch für "Meta"-Programmieraufgaben verwendet werden, z. B. für das Erlernen neuer Programmiersprachen oder die Einrichtung der eigenen Entwicklungsumgebung, sei es eine IDE oder eine virtuelle Maschine.

KI-Tools in der Softwareentwicklung: Limitationen von ChatGPT und GitHub Copilot

Bei der Nutzung der in diesem Beitrag besprochenen Tools ChatGPT und GitHub Copilot sind zwei wichtige Dinge zu beachten:

  1. Diese Tools sind nicht unfehlbar und es besteht die Möglichkeit, dass sie falsche oder irreführende Informationen liefern.
  2. Es können Bedenken hinsichtlich des Datenschutzes bei der Verwendung von Unternehmensdaten als Teil des Inputs für diese Tools bestehen.

Mit diesen Vorbehalten im Hinterkopf können diese Tools Softwareingenieuren nachweislich helfen. Weitere spannende Forschungsergebnisse werden in künftigen Blogbeiträgen näher erläutert.

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

Software Engineer
Ihre Ansprechpartnerin zum Thema AI-assisted Software Engineering mit ChatGPT und GitHub Copilot
Jaid Heesen Raute