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

08/02/2021
by   Ali Shokri, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/05/2019

MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level

In this paper we introduce, MigrationMiner, an automated tool that detec...
research
08/14/2018

Gistable: Evaluating the Executability of Python Code Snippets on GitHub

Software developers create and share code online to demonstrate programm...
research
08/18/2021

Generation of TypeScript Declaration Files from JavaScript Code

Developers are starting to write large and complex applications in TypeS...
research
02/25/2020

Interactive, Effort-Aware Library Version Harmonization

As a mixed result of intensive dependency on third-party libraries, flex...
research
08/08/2017

Cherry-Picking of Code Commits in Long-Running, Multi-release Software

This paper presents Tartarian, a tool that supports maintenance of softw...
research
06/08/2021

Automatic Generation of Machine Learning Synthetic Data Using ROS

Data labeling is a time intensive process. As such, many data scientists...
research
12/05/2021

The Linear Arrangement Library. A new tool for research on syntactic dependency structures

The new and growing field of Quantitative Dependency Syntax has emerged ...

Please sign up or login with your details

Forgot password? Click here to reset