Source Code Recommender Systems: The Practitioners' Perspective

02/08/2023
by   Matteo Ciniselli, et al.
0

The automatic generation of source code is one of the long-lasting dreams in software engineering research. Several techniques have been proposed to speed up the writing of new code. For example, code completion techniques can recommend to developers the next few tokens they are likely to type, while retrieval-based approaches can suggest code snippets relevant for the task at hand. Also, deep learning has been used to automatically generate code statements starting from a natural language description. While research in this field is very active, there is no study investigating what the users of code recommender systems (i.e., software practitioners) actually need from these tools. We present a study involving 80 software developers to investigate the characteristics of code recommender systems they consider important. The output of our study is a taxonomy of 70 "requirements" that should be considered when designing code recommender systems. For example, developers would like the recommended code to use the same coding style of the code under development. Also, code recommenders being "aware" of the developers' knowledge (e.g., what are the framework/libraries they already used in the past) and able to customize the recommendations based on this knowledge would be appreciated by practitioners. The taxonomy output of our study points to a wide set of future research directions for code recommenders.

READ FULL TEXT

page 1

page 4

page 6

page 7

research
07/31/2022

Taming Multi-Output Recommenders for Software Engineering

Recommender systems are a valuable tool for software engineers. For exam...
research
02/01/2023

On the Robustness of Code Generation Techniques: An Empirical Study on GitHub Copilot

Software engineering research has always being concerned with the improv...
research
08/26/2023

ResyDuo: Combining data models and CF-based recommender systems to develop Arduino projects

While specifying an IoT-based system, software developers have to face a...
research
03/02/2023

Deep Learning Based Code Generation Methods: A Literature Review

Code Generation aims at generating relevant code fragments according to ...
research
11/03/2014

Modelling serendipity in a computational context

Building on a survey of previous theories of serendipity and creativity,...
research
08/31/2023

Toward Automatically Completing GitHub Workflows

Continuous integration and delivery (CI/CD) are nowadays at the core of ...
research
02/01/2021

Search-Based Software Re-Modularization: A Case Study at Adyen

Deciding what constitutes a single module, what classes belong to which ...

Please sign up or login with your details

Forgot password? Click here to reset