Generating Java Methods: An Empirical Assessment of Four AI-Based Code Assistants

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Corso, Vincenzo, Mariani, Leonardo, Micucci, Daniela, Riganelli, Oliviero
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913234299125760
author Corso, Vincenzo
Mariani, Leonardo
Micucci, Daniela
Riganelli, Oliviero
author_facet Corso, Vincenzo
Mariani, Leonardo
Micucci, Daniela
Riganelli, Oliviero
contents AI-based code assistants are promising tools that can facilitate and speed up code development. They exploit machine learning algorithms and natural language processing to interact with developers, suggesting code snippets (e.g., method implementations) that can be incorporated into projects. Recent studies empirically investigated the effectiveness of code assistants using simple exemplary problems (e.g., the re-implementation of well-known algorithms), which fail to capture the spectrum and nature of the tasks actually faced by developers. In this paper, we expand the knowledge in the area by comparatively assessing four popular AI-based code assistants, namely GitHub Copilot, Tabnine, ChatGPT, and Google Bard, with a dataset of 100 methods that we constructed from real-life open-source Java projects, considering a variety of cases for complexity and dependency from contextual elements. Results show that Copilot is often more accurate than other techniques, yet none of the assistants is completely subsumed by the rest of the approaches. Interestingly, the effectiveness of these solutions dramatically decreases when dealing with dependencies outside the boundaries of single classes.
format Preprint
id arxiv_https___arxiv_org_abs_2402_08431
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Generating Java Methods: An Empirical Assessment of Four AI-Based Code Assistants
Corso, Vincenzo
Mariani, Leonardo
Micucci, Daniela
Riganelli, Oliviero
Software Engineering
AI-based code assistants are promising tools that can facilitate and speed up code development. They exploit machine learning algorithms and natural language processing to interact with developers, suggesting code snippets (e.g., method implementations) that can be incorporated into projects. Recent studies empirically investigated the effectiveness of code assistants using simple exemplary problems (e.g., the re-implementation of well-known algorithms), which fail to capture the spectrum and nature of the tasks actually faced by developers. In this paper, we expand the knowledge in the area by comparatively assessing four popular AI-based code assistants, namely GitHub Copilot, Tabnine, ChatGPT, and Google Bard, with a dataset of 100 methods that we constructed from real-life open-source Java projects, considering a variety of cases for complexity and dependency from contextual elements. Results show that Copilot is often more accurate than other techniques, yet none of the assistants is completely subsumed by the rest of the approaches. Interestingly, the effectiveness of these solutions dramatically decreases when dealing with dependencies outside the boundaries of single classes.
title Generating Java Methods: An Empirical Assessment of Four AI-Based Code Assistants
topic Software Engineering
url https://arxiv.org/abs/2402.08431