Lamothe, Maxime (2020) Bridging the Divide Between API Users and API Developers by Mining Public Code Repositories. PhD thesis, Concordia University.
Preview |
Text (application/pdf)
58MBLamothe_PhD_S2021.pdf - Accepted Version |
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 |
Repository Staff Only: item control page