SEAug 2, 2021

DepRes: A Tool for Resolving Fully Qualified Names and Their Dependencies

arXiv:2108.01165v13 citationsHas Code
Originality Incremental advance
AI Analysis

This addresses a practical issue for software developers by reducing compile and runtime errors when reusing code, though it appears incremental as it builds on existing FQN resolution efforts.

The paper tackles the problem of automatically resolving fully qualified names (FQNs) and their dependencies in Java code snippets from forums like StackOverflow, introducing DepRes, a tool that uses a sketch-based approach to achieve this, with results including improved accuracy over current methods and availability of source code and documentation.

Reusing code snippets shared by other programmers on Q&A forums (e.g., StackOverflow) is a common practice followed by software developers. However, lack of sufficient information about the fully qualified name (FQN) of identifiers in borrowed code snippets, results in serious compile errors. Programmers either have to manually search for the correct FQN of identifiers which is a tedious and error-prone process, or use tools developed to automatically identify correct FQNs. Despite the efforts made by researchers to automatically identify FQNs in code snippets, the current approaches suffer from low accuracy when it comes to practice. Moreover, while these tools focus on resolving the FQN for an identifier in a code snippet, they leave the challenge of finding the correct third-party library (i.e., dependency) implementing that FQN unresolved. Using an incorrect dependency or incorrect version of a dependency might lead to a semantic error which is not detectable by compilers. Therefore, it can result in serious damages in the run-time. In this paper, we introduce DepRes, a tool that leverages a sketch-based approach to resolve FQNs in java-based code snippets and recommend the correct dependency for each FQN. The source code, documentation, as well as a demo video of DepRes tool is available from its code repository at https://github.com/SoftwareDesignLab/DepRes-Tool.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes