Dam, Diptopol (2023) API Finder: Accurate Extraction of Method Binding Information from Call Sites without Building the Code. Masters thesis, Concordia University.
Preview |
Text (application/pdf)
5MBDam_MASc_F2023.pdf - Accepted Version Available under License Spectrum Terms of Access. |
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: | 01 Jun 2024 00:00 |
Repository Staff Only: item control page