Publication Type
Journal Article
Version
acceptedVersion
Publication Date
5-2023
Abstract
Code reuse is an important part of software development. The adoption of code reuse practices is especially common among Node.js developers. The Node.js package manager, NPM, indexes over 1 Million packages and developers often seek out packages to solve programming tasks. Due to the vast number of packages, selecting the right package is difficult and time consuming. With the goal of improving productivity of developers that heavily reuse code through third-party packages, we present Node Code Query (NCQ), a Read-Eval-Print-Loop environment that allows developers to 1) search for NPM packages using natural language queries, 2) search for code snippets related to those packages, 3) automatically correct errors in these code snippets, 4) quickly setup new environments for testing those snippets, and 5) transition between search and editing modes. In two user studies with a total of 20 participants, we find that participants begin programming faster and conclude tasks faster with NCQ than with baseline approaches, and that they like, among other features, the search for code snippets and packages. Our results suggest that NCQ makes Node.js developers more efficient in reusing code.
Keywords
Library selection, Code reuse, code search
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
IEEE Transactions on Software Engineering
Volume
49
Issue
5
First Page
3205
Last Page
3225
ISSN
0098-5589
Identifier
10.1109/TSE.2023.3248113
Publisher
Institute of Electrical and Electronics Engineers
Citation
REID, Brittany; D'AMORIM, Marcelo; WAGNER, Markus; and TREUDE, Christoph.
NCQ: Code reuse support for Node.js developers. (2023). IEEE Transactions on Software Engineering. 49, (5), 3205-3225.
Available at: https://ink.library.smu.edu.sg/sis_research/8794
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/TSE.2023.3248113