An open-source natural language processing toolkit to support software development: addressing automatic bug detection, code summarisation and code search

List of Authors

  1. Cristian Robledo ,  
  2. Francesca Sallicati ,  
  3. Gaël de Chalendar
    ,  
  4. Marcos Fernández
    ,  
  5. Pablo de Castro ,  
  6. Eduardo Martín
    ,  
  7. Javier Gutiérrez
    ,  
  8. Yannis Bouachera
Article Authors & roles Authors Peer review record Peer review Metrics
Cite

Abstract

This paper aims to introduce the innovative work carried out in the Horizon 2020 DECODER project – acronym for “DEveloper COmpanion for Documented and annotatEd code Reference” – (Grant Agreement no. 824231) by linking the fields of natural language processing (NLP) and software engineering.

The project as a whole addresses the development of a framework, namely the Persistent Knowledge Monitor (PKM), that acts as a central infrastructure to store, access, and trace all the data, information and knowledge related to a given software or ecosystem. This meta-model defines the knowledge base that can be queried and analysed by all the tools integrated and developed in DECODER. Besides, the DECODER project offers a friendly user interface where each of the predefined three roles (i.e., developers, maintainers and reviewers) can access and query the PKM with their personal accounts.

The paper focuses on the NLP tools developed and integrated in the PKM, namely the deep learning models developed to perform variable misuse, code summarisation and semantic parsing. These were developed under a common work package – “Activities for the developer” – intended to precisely target developers, who can perform tasks such as detection of bugs, automatic generation of documentation for source code and generation of code snippets from natural languages instructions, among the multiple functionalities that DECODER offers. These tools assist and help the developers in the daily work, by increasing their productivity and avoiding loss of time in tedious tasks such as manual bug detection.

Training and validation were conducted for four use cases in Java, C and C++ programming languages in order to evaluate the performance, suitability, usability, etc. of the developed tools.

Plain Language Summary

Software engineers usually spends a lot of time in tedious activities like debugging and documenting code or finding examples of code snippets to use as a basis for their new programmes. Given the large and complex software systems that exist nowadays, being forced to perform these tasks manually causes a considerable drop in the overall productivity of programmers. The models developed in this work target Java, C and C++ programming languages and aim to alleviate software developers’, maintainers’ and reviewers’ efforts, by proposing automatic NLP solutions to carry out tasks such as bug detection, documentation generation and code search.

Corresponding author
Cristian Robledo
0000-0002-1017-670X
Grant information

This research was financially supported by the European Union’s Horizon 2020 research and innovation programme under the grant agreement No 824231 (DEveloper COmpanion for Documented and annotatEd code Reference [DECODER]).

Copyright
© 2023 Cristian Robledo (Corresponding Author, Co-Author); Francesca Sallicati (Co-Author); Gaël de Chalendar (Co-Author); Marcos Fernández (Co-Author); Pablo de Castro (Co-Author); Eduardo Martín (Co-Author); Javier Gutiérrez (Co-Author); Yannis Bouachera (Co-Author) Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

First version published
Latest version published
Revised

Amendment

The second version of the article contains minor changes that respond some of the comments received from reviewers. In particular, we have added more information about the datasets used in this work, such as the total number of code lines contained on each use case dataset and the datasets used for the data augmentation. In addition, we have also included a clarification about how this data augmentation was carried out in the case of the VarMisuse task.
Regarding the three specific tools presented in the article, this new version also includes the hyperparameter values of each model used for each use case, as well as a more detailed comparision with the original work for the VarMisuse task. We have also added a couple of figures that illustrate how well the VarMisuse tool works for each different use case addressed in the article.

Comments

Authors & roles

Cristian Robledo

Tree Technology, Llanera, Asturias, Spain

Roles
Corresponding Author, Co-Author, Investigation, Methodology
0000-0002-1017-670X

Francesca Sallicati

Tree Technology, Llanera, Asturias, Spain

Roles
Co-Author, Investigation, Methodology
0000-0001-9981-8360

Gaël de Chalendar

CEA, Paris, Île-de-France, France

Roles
Co-Author, Investigation, Methodology

Marcos Fernández

Tree Technology, Llanera, Asturias, Spain

Roles
Co-Author, Investigation, Methodology

Pablo de Castro

Tree Technology, Llanera, Asturias, Spain

Roles
Co-Author, Software
0000-0002-4828-6568

Eduardo Martín

Tree Technology, Llanera, Asturias, Spain

Roles
Co-Author, Software

Javier Gutiérrez

Tree Technology, Llanera, Asturias, Spain

Roles
Co-Author, Project Administration, Supervision

Yannis Bouachera

CEA, Paris, Île-de-France, France

Roles
Co-Author, Investigation, Methodology

Downloads over the last 12 months:

Cited by

via Crossref

View citing articles