Login | Register

API Finder: Accurate Extraction of Method Binding Information from Call Sites without Building the Code

Title:

API Finder: Accurate Extraction of Method Binding Information from Call Sites without Building the Code

Dam, Diptopol (2023) API Finder: Accurate Extraction of Method Binding Information from Call Sites without Building the Code. Masters thesis, Concordia University.

[thumbnail of Dam_MASc_F2023.pdf]
Text (application/pdf)
Dam_MASc_F2023.pdf - Accepted Version
Restricted to Repository staff only until 1 June 2024.
Available under License Spectrum Terms of Access.
5MB

Abstract

Researchers and practitioners have introduced many static analysis tools to enhance the quality of software. Several tools (e.g.,WALA) are highly effective and based on mature compilers. However, all of these tools usually require a complete codebase to compile the project under analysis. In many scenarios, academics and practitioners need to analyze partial programs collected from the web or online source code repositories. A partial program is a subset of the complete codebase. The compiler requires a complete codebase to resolve all binding information to identify type information of program elements (e.g., the return type and the argument types of method invocation, type of field instance), and as a result, most of the static analysis tools cannot extract type information for program elements in partial programs.

In this paper, we introduce API Finder, a tool that can accurately extract method binding information from method references (i.e., call sites) in partial programs. Our approach requires only the Java version of the project, the dependent external library artifacts, and the method invocation as inputs in order to generate precise method-binding information. We also provide support for extracting the Java version of the project, as well as dependent external library artifacts for the Gradle and Maven build systems. We evaluated the accuracy of the method-binding information generated by our tool with the Eclipse JDT (Java Development Tool) Compiler across eleven complete projects. Our tool has an accuracy rate ranging between 93% to 99% in our evaluated projects. Our tool also has an average response time of 381 milliseconds for any method-binding information extraction. In addition, as an application of our tool, we have implemented a Chrome browser extension for displaying the method signature upon clicking on any method reference for the GitHub platform.

Divisions:Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering
Item Type:Thesis (Masters)
Authors:Dam, Diptopol
Institution:Concordia University
Degree Name:M.A. Sc.
Program:Software Engineering
Date:May 2023
Thesis Supervisor(s):Tsantalis, Nikolaos
ID Code:992169
Deposited By: DIPTOPOL DAM
Deposited On:17 Nov 2023 14:57
Last Modified:17 Nov 2023 14:57
All items in Spectrum are protected by copyright, with all rights reserved. The use of items is governed by Spectrum's terms of access.

Repository Staff Only: item control page

Downloads per month over past year

Research related to the current document (at the CORE website)
- Research related to the current document (at the CORE website)
Back to top Back to top