一句话:通过80名开发者研究,归纳70项代码推荐系统需求,指导面向实践者的设计。
自动生成源代码是软件工程领域的长期目标,已有代码补全、检索式推荐和基于深度学习的代码生成等技术。然而,现有研究很少考察代码推荐系统的实际用户——软件开发者——真正需要什么。本文对80名软件开发者开展研究,探究他们认为代码推荐系统应具备的重要特性。研究结果形成一个包含70条“需求”的分类体系,用于指导代码推荐系统的设计。例如,开发者希望推荐代码采用与当前开发代码一致的编码风格;他们也希望推荐系统能“感知”开发者已有知识(如过去使用过的框架和库),并据此定制推荐内容。该分类体系为代码推荐系统指出了广泛的未来研究方向。
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.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{CiniselliPASOB23,
title = {Source Code Recommender Systems: The Practitioners' Perspective},
author = {Matteo Ciniselli and Luca Pascarella and Emad Aghajani and Simone Scalabrino and Rocco Oliveto and Gabriele Bavota},
booktitle = {ICSE},
year = {2023},
doi = {10.1109/icse48619.2023.00182}
}