Library Fission: Improving APIs by observing real-world API usage
Modern software development heavily relies on external libraries. The proposed collaboration will create techniques and publicly-available tools useful to both users of external libraries and maintainers of these libraries.
Our hypothesis is that different clients use different subsets of libraries’ API surfaces, and that it is possible to use clustering algorithms to automatically split libraries into smaller, more agile libraries, which we call “library fission”. This has the helpful side-effect of reducing client exposure to security vulnerabilities in libraries: a client is only affected by vulnerabilities in the parts of the library that it actually uses, not everything else brought in by the library.
The proposed funding will enable a collaboration with the Victoria University of Wellington. Working with NZ-based experts in static analysis, empirical software engineering, and software visualization, we will develop techniques for library fission. The expected outcome of the research is a novel set of techniques and tools for improving library APIs, which will be disseminated through academic publications as well as open-source tools. These research outcomes will help both users and designers of libraries work more effectively.
Voir la description complète du projetPatrick Lam
Victoria University of Wellington
Computer science
Education
University of Waterloo
Globalink Research Award
