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.

Faculty Supervisor:

Patrick Lam

Student:

Partner:

Victoria University of Wellington

Discipline:

Computer science

Sector:

Education

University:

University of Waterloo

Program:

Globalink Research Award

Current openings

Find the perfect opportunity to put your academic skills and knowledge into practice!

Find Projects