Historical and impact analysis of API breaking changes

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: José Laerte Pires Xavier Júnior
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Minas Gerais
UFMG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://hdl.handle.net/1843/JCES-ARMPK6
Resumo: Change is a routine in software development. In the case of APIs provided by libraries and frameworks changes can be backward-incompatible, breaking contracts with client applications. In this dissertation, we perform two studies on API breaking changes. We assess (i) the frequency of breaking changes, (ii) their behavior over time, (iii) the impact on clients, (iv) the characteristics of libraries with high frequency of breaking changes, (v) the reasons why developers introduce them, and (vi) developers awareness on the risks associated to breaking changes. Our large-scale analysis on 317 real-world Java libraries, 9K releases, and 260K client applications shows that (i) 14.78% of the API changes break compatibility, (ii) their frequency increases over time, (iii) 2.54% of API clients are impacted, and (iv) systems with higher frequency of breaking changes are larger, more popular, and more active. We also survey API developers to reveal a list of five reasons why they break APIs.