Comparando Desenvolvedores de Software com o ChatGPT: Uma Investigação Empírica
Comparing Software Developers with ChatGPT: An Empirical Investigation
May 19, 2023
Autores: Nathalia Nascimento, Paulo Alencar, Donald Cowan
cs.AI
Resumo
O advento da automação em tarefas específicas de Engenharia de Software (ES) tem transicionado da teoria para a realidade. Numerosos artigos acadêmicos documentaram a aplicação bem-sucedida da Inteligência Artificial para abordar problemas em áreas como gerenciamento de projetos, modelagem, testes e desenvolvimento. Uma inovação recente é a introdução do ChatGPT, um chatbot baseado em Aprendizado de Máquina, considerado um recurso proficiente na geração de códigos de programação e na formulação de estratégias de teste de software para desenvolvedores e testadores, respectivamente. Embora haja especulações de que a computação baseada em IA possa aumentar a produtividade e até mesmo substituir engenheiros de software no desenvolvimento de software, atualmente há uma falta de evidências empíricas para verificar isso. Além disso, apesar do foco principal no aprimoramento da precisão dos sistemas de IA, requisitos não funcionais, incluindo eficiência energética, vulnerabilidade, justiça (ou seja, viés humano) e segurança, frequentemente recebem atenção insuficiente. Este artigo propõe que uma comparação abrangente entre engenheiros de software e soluções baseadas em IA, considerando vários critérios de avaliação, é fundamental para promover a colaboração humano-máquina, aprimorar a confiabilidade dos métodos baseados em IA e entender a adequação de tarefas para humanos ou IA. Além disso, facilita a implementação eficaz de estruturas de trabalho cooperativo e processos com humanos no loop. Este artigo realiza uma investigação empírica, contrastando o desempenho de engenheiros de software e sistemas de IA, como o ChatGPT, em diferentes métricas de avaliação. O estudo empírico inclui um caso de avaliação de código gerado pelo ChatGPT versus código produzido por desenvolvedores e carregado no 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.