Confronto tra Sviluppatori Software e ChatGPT: Un'Indagine Empirica
Comparing Software Developers with ChatGPT: An Empirical Investigation
May 19, 2023
Autori: Nathalia Nascimento, Paulo Alencar, Donald Cowan
cs.AI
Abstract
L'avvento dell'automazione in specifici compiti di Ingegneria del Software (SE) è passato dalla teoria alla realtà. Numerosi articoli accademici hanno documentato l'applicazione con successo dell'Intelligenza Artificiale per affrontare problemi in aree come la gestione dei progetti, la modellazione, i test e lo sviluppo. Un'innovazione recente è l'introduzione di ChatGPT, un chatbot basato su Machine Learning, considerato una risorsa competente nella generazione di codici di programmazione e nella formulazione di strategie di test del software per sviluppatori e tester rispettivamente. Sebbene si speculi che il calcolo basato sull'IA possa aumentare la produttività e persino sostituire gli ingegneri del software nello sviluppo del software, attualmente mancano prove empiriche per verificare questa ipotesi. Inoltre, nonostante l'attenzione primaria sia rivolta a migliorare l'accuratezza dei sistemi di IA, i requisiti non funzionali, tra cui l'efficienza energetica, la vulnerabilità, l'equità (cioè, il bias umano) e la sicurezza, ricevono spesso un'attenzione insufficiente. Questo articolo sostiene che un confronto completo tra ingegneri del software e soluzioni basate sull'IA, considerando vari criteri di valutazione, sia fondamentale per promuovere la collaborazione uomo-macchina, migliorare l'affidabilità dei metodi basati sull'IA e comprendere l'idoneità dei compiti per gli esseri umani o l'IA. Inoltre, facilita l'implementazione efficace di strutture di lavoro cooperative e processi con l'uomo nel ciclo. Questo articolo conduce un'indagine empirica, confrontando le prestazioni degli ingegneri del software e dei sistemi di IA, come ChatGPT, attraverso diverse metriche di valutazione. Lo studio empirico include un caso di valutazione del codice generato da ChatGPT rispetto al codice prodotto dagli sviluppatori e caricato su Leetcode.
English
The advent of automation in particular Software Engineering (SE) tasks has
transitioned from theory to reality. Numerous scholarly articles have
documented the successful application of Artificial Intelligence to address
issues in areas such as project management, modeling, testing, and development.
A recent innovation is the introduction of ChatGPT, an ML-infused chatbot,
touted as a resource proficient in generating programming codes and formulating
software testing strategies for developers and testers respectively. Although
there is speculation that AI-based computation can increase productivity and
even substitute software engineers in software development, there is currently
a lack of empirical evidence to verify this. Moreover, despite the primary
focus on enhancing the accuracy of AI systems, non-functional requirements
including energy efficiency, vulnerability, fairness (i.e., human bias), and
safety frequently receive insufficient attention. This paper posits that a
comprehensive comparison of software engineers and AI-based solutions,
considering various evaluation criteria, is pivotal in fostering human-machine
collaboration, enhancing the reliability of AI-based methods, and understanding
task suitability for humans or AI. Furthermore, it facilitates the effective
implementation of cooperative work structures and human-in-the-loop processes.
This paper conducts an empirical investigation, contrasting the performance of
software engineers and AI systems, like ChatGPT, across different evaluation
metrics. The empirical study includes a case of assessing ChatGPT-generated
code versus code produced by developers and uploaded in Leetcode.