Skip to main content
Thesis defences

MCS Thesis Examination: Diptopol Dam

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


Date & time
Thursday, April 20, 2023
11 a.m. – 12:30 p.m.
Cost

This event is free

Organization

Department of Computer Science and Software Engineering

Contact

Leila Kosseim

Where

Online

Abstract

    Researchers and practitioners have introduced many static analysis tools to enhance the quality of software. Several tools (e.g.,WALA 1) are highly effective and based on mature compilers. However, all of these tools usually require a complete codebase to compile the project under analysis. However, 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 the program elements (e.g., return type of method invocation, 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 against the Eclipse JDT 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 on GitHub.

Examining Committee

  • Dr. Tse-Hsun (Peter) Chen (Chair) 
  • Dr. Nikolaos Tsantalis (Supervisor)
  • Dr. Joey Paquet (Examiner)
  • Dr. Tse-Hsun (Peter) Chen (Examiner)
     
Back to top

© Concordia University