Charla: How do Clients and Developers Deal with API Evolution? A Large-Scale Analysis on the Usage of (Un)stable and (Un)documented APIs

André Hora, Federal University of Minas Gerais, Brazil.
28 Enero, 2016 - 14:00
Auditorio Ramón Picarte, 3er. Piso edificio norte.
Prof. Romain Robbes, académico DCC.




Repository hosting services are commonly used nowadays: GitHub, the most popular, has around 11M developers and hosts more than 28M projects. Many of these projects are libraries/frameworks, which may have thousands of client systems. As any other software system, libraries/frameworks evolve over time (and so their APIs), affecting clients depending on them. To facilitate the complex task of managing these systems, some good practices should be adopted. For example, developers should deprecate API elements with good documentation (ie, clear replacement messages) to facilitate migration.


Another practice is that clients should only use public and stable APIs to avoid backward incompatibility. In this talk, we show that in practice (i) developers often deprecate API elements with unclear replacement messages and (ii) clients often use internal and unstable APIs. At a large-scale level, we analyze the size of these problems in order to better understand them. Finally, to alleviate these issues, we propose tools and techniques to help both API developers and clients.


Short Bio:


André Hora is a Post-doctoral fellow in Software Engineering in the ASERG Group (Computer Science Department) at the Federal University of Minas Gerais, Brazil. He earned his PhD in 2014 from the University of Lille/Inria, France. His research interests include Software Evolution, Reverse Engineering, and Empirical Software Engineering. He authored papers in international Software Engineering venues such as EMSE, JSS, ICSME, WCRE, CSMR, and SANER.