Download PDF

2022 · PhD thesis · Université de Lille

Abstract

Modern software can be characterized by high degree of reuse of external artefacts. Applications depend on multiple libraries and frameworks, which in turn can also depend on other libraries and frameworks. Like any other software, libraries evolve. They release new versions, often incompatible with the previous ones. This forces client applications that depend on those libraries to update their code in response to library evolution.Updating the dependencies can be a difficult and time consuming task for client developers. It involves repetitive operations and requires the knowledge about the changes that were made to the library. Knowledge that can be shared by library developers or extracted by automated tools from source code or commit history.In recent years, multiple approaches have been proposed to mine the data or apply machine learning techniques and extract knowledge about library update in forms of rules. However, most of those approaches only focus on client developers and do not consider the expertise of library developers. They consider only simple method-to-method replacements and are only designed for statically-typed programming languages.In this thesis, we address this gap in literature with five main contributions:(1) a survey of library and client developers from two industrial companies and an open-source community;(2) first detailed documentation of the Deprewriter approach and tool in Pharo which introduces deprecations that dynamically update client code with transformation rules;(3) a study of how Deprewriter was adopted by the Pharo community through the analysis of source code in Pharo~8 and a developer survey;(4) DepMiner --- a novel approach to infer the rules for Deprewriter based on the commit history of a project;(5) a generalization of DepMiner as a new holistic approach to support library developers in the task of library update.The results of the research reported in this thesis will advance the field of automated library update by exploring the perspective of library developers and the context of the dynamically-typed languages that were often overlooked in the previous studies.

Keywords

software evolution, library update, library migration, data mining

Links

BibTeX

@phdthesis{zaitsev2022data,
  title = {Data Mining-based tools to support library update},
  author = {Zaitsev, Oleksandr},
  year = {2022},
  month = {October},
  school = {Université de Lille},
  url = {https://theses.fr/2022ULILB028}
}