Login | Register

Bridging the Divide Between API Users and API Developers by Mining Public Code Repositories

Title:

Bridging the Divide Between API Users and API Developers by Mining Public Code Repositories

Lamothe, Maxime (2020) Bridging the Divide Between API Users and API Developers by Mining Public Code Repositories. PhD thesis, Concordia University.

[thumbnail of Lamothe_PhD_S2021.pdf]
Preview
Text (application/pdf)
Lamothe_PhD_S2021.pdf - Accepted Version
58MB

Abstract

Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. Their evolution requires constant effort from their developers and users alike. API developers must constantly balance keeping their products modern and attractive whilst preserving their value and backward compatibility. Meanwhile, API users must continually be on the lookout to adapt to changes that could break their applications.

In this thesis, we study existing literature to identify the state-of-the-art in API evolution research. We then use our findings to establish practical and scalable API evolution guidelines and tools to bridge knowledge gaps between API users and API developers. We base these guidelines and tools on public code repositories and use them to perform four empirical studies to further our understanding of API evolution.

To motivate this thesis, we first conduct a systematic literature review of the state-of-the-art in API evolution research. We find that there are a variety of unsolved challenges within the field and that in particular, public code repositories have yet to be fully leveraged to aid both API users and API developers.

We then present three empirical studies that focus on helping API users deal with API knowledge gaps. We find that: (1) even if Android API documentation can help Android API users understand what to migrate from one API version to another, it does not often address how to do so; (2) although Android API migration knowledge is not always present in documentation, automated techniques can be created to mine this knowledge from existing public code repositories and automatically leverage it to help other API users; and (3) API misuse detection approaches can benefit from automatic example generation to reduce their false positive detection rates and improve their usefulness for API users.

Finally, we present an empirical study that uncovers general reasons why API users inquire about API workarounds and the solutions that are generally given to them. Using this information, we develop three API workaround implementation patterns that can be used to detect instances of API workarounds in user code. We find that the knowledge contained within these detected instances of API workarounds can be fed back to API developers as opportunities to improve their APIs. Other API evolution research directions do exist; some are briefly covered in this thesis, for example identifying and using common API usage patterns, leveraging API migration patterns to inform API development, and API migration between programming languages; others still may yet be undiscovered. However, this thesis shows that it is possible to leverage existing knowledge contained in open-source repositories to help API users and API developers alike. This thesis opens the door to future research in the field of API evolution and demonstrates that it is possible to bridge knowledge gaps between API developers and API users for API migration, API misuse detection, and API workarounds usage.

Divisions:Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering
Item Type:Thesis (PhD)
Authors:Lamothe, Maxime
Institution:Concordia University
Degree Name:Ph. D.
Program:Computer Science
Date:30 September 2020
Thesis Supervisor(s):Shang, Weiyi
ID Code:987854
Deposited By: MAXIME LAMOTHE
Deposited On:29 Jun 2021 21:00
Last Modified:29 Jun 2021 21:00
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