Bridging the Divide Between API Users and API Developers by Mining Public Code Repositories
Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. The evolution of these APIs requires constant effort from their developers and users alike. API developers must constantly struggle to keep their products modern whilst keeping them as stable as possible. Meanwhile, API users must continually be on the lookout to adapt to changes that could break their applications. As APIs become more numerous, users are challenged by a sea of choices and information on which API to use. Current research attempts to provide automatic documentation, code examples, and code completion to make API evolution more scalable for users. Our work will attempt to establish practical and scalable API evolution guidelines and tools based on public code repositories, to aid both API users and API developers.
This thesis focuses on investigating the use of public code repositories provided by the open-source community to improve software API engineering practices. More specifically, we seek to improve software engineering practices linked to API evolution both from the perspective of API users and API developers. To achieve this goal, we apply quantitative and qualitative research methods to understand the problems at hand. We then mine public code repositories granted to us by open-source software communities to develop novel solutions to these problems.