ED Mathématiques et Informatique
Reducing friction between clients and maintainers of software libraries
by Gustave MONCE (LaBRI - Laboratoire Bordelais de Recherche en Informatique)
The defense will take place at 14h00 - Amphi LaBRI LaBRI, UMR CNRS 5800 351, cours de la Libération
in front of the jury composed of
- Jean-Remy FALLERI - Professeur des universités - Bordeaux INP - Directeur de these
- Anne ETIEN - Professeure des universités - Université Lille 1 - Rapporteur
- Jannik LAVAL - Maître de conférences - Université Lumière Lyon 2 - Rapporteur
- Djamel EDDINE-KHELLADI - Chargé de recherche - CNRS - Examinateur
- Hicham LAKHLEF - Professeur des universités - Bordeaux INP - Examinateur
- Thomas DEGUEULE - Chargé de recherche - CNRS - CoDirecteur de these
Libraries are heavily used in modern software development by developers to bring in functionality already implemented by other developers into an application. Such dependence on third-party code brings issues regarding maintenance, compatibility, and evolution for both the client and library software developer. In this thesis, we analyze the relation and frontiers that exist between libraries and client software. A particularity of applications using libraries is the presence and consumption of APIs (Application Programming Interfaces). These APIs are the main interaction frontier the developer uses to consume a specific library feature. This frontier allows for data to be transferred in both directions from the client to the library, and from the library to the client. Library developers often lack usage knowledge on the uses of their libraries, preventing proper and safe evolution. In contrast, client developers often face difficulties finding a balance between updating to the latest version of their dependencies and retaining compatibility without breaking their code. Indeed, updating dependencies exposes clients to the risk of BCs (Breaking Changes) coming from their dependencies. While some work already exists on some types of compatibility issues, others remain unexplored. We propose, based on the existence of such frontiers, new methods to help libraries understand their uses, and clients to understand the behavioral changes they face.