Variability in Library Evolution

Hussein Alrubaye, Mohamed Wiem Mkaouer, Anthony Peruma · Auerbach Publications eBooks · 2019

As a mean of reducing development time and increasing reusability, software systems increasingly rely on the integration of third-party (i.e. external) software frameworks, also known as libraries, accessible through their Application Programming Interfaces (APIs). However, software systems’ evolution may require acquiring richer APIs, i.e., as part of maintenance practices, developers need to replace an existing library with another. This act of replacement can be categorized as either a library upgrade or migration. An upgrade occurs when the developer replaces an outdated library version with a more recent one. A migration, on the other hand, is the replacement of the library with one that was (most likely) developed by another development team but still performs the same (or similar) functionality as the replaced library. Although the automation of library upgrades has been advancing especially with the rise of continuous integration and dynamic component frameworks, library migrations’ automation is challenging for developers due to the high risk of introducing malfunctions into an already-stable software system. This chapter explores the existing studies in library migration and exposes challenges that are still facing developers as they evolve their APIs.

Read the paper · More papers on PaperTik