Historical and impact analysis of API breaking changes

Detalhes bibliográficos
Autor(a) principal: José Laerte Pires Xavier Júnior
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFMG
Texto Completo: 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.
id UFMG_2752463e78143500c0b1fef65de795d6
oai_identifier_str oai:repositorio.ufmg.br:1843/JCES-ARMPK6
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Marco Tulio de Oliveira ValenteAndre Cavalcante HoraKecia Aline Marques FerreiraMariza Andrade da Silva BigonhaJosé Laerte Pires Xavier Júnior2019-08-12T12:57:24Z2019-08-12T12:57:24Z2017-05-02http://hdl.handle.net/1843/JCES-ARMPK6Change 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.Universidade Federal de Minas GeraisUFMGSoftware ManutençãoComputaçãoRedes de computadoresEvolução de BibliotecasBreaking ChangesCompatibilidadeHistorical and impact analysis of API breaking changesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGORIGINALjoselaertexavier.pdfapplication/pdf1907241https://repositorio.ufmg.br/bitstream/1843/JCES-ARMPK6/1/joselaertexavier.pdf810a61809fe0e189a603190738e320b0MD51TEXTjoselaertexavier.pdf.txtjoselaertexavier.pdf.txtExtracted texttext/plain139231https://repositorio.ufmg.br/bitstream/1843/JCES-ARMPK6/2/joselaertexavier.pdf.txt2f51c26af09a356ce11a0333eab30001MD521843/JCES-ARMPK62019-11-14 17:54:13.878oai:repositorio.ufmg.br:1843/JCES-ARMPK6Repositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2019-11-14T20:54:13Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.pt_BR.fl_str_mv Historical and impact analysis of API breaking changes
title Historical and impact analysis of API breaking changes
spellingShingle Historical and impact analysis of API breaking changes
José Laerte Pires Xavier Júnior
Evolução de Bibliotecas
Breaking Changes
Compatibilidade
Software Manutenção
Computação
Redes de computadores
title_short Historical and impact analysis of API breaking changes
title_full Historical and impact analysis of API breaking changes
title_fullStr Historical and impact analysis of API breaking changes
title_full_unstemmed Historical and impact analysis of API breaking changes
title_sort Historical and impact analysis of API breaking changes
author José Laerte Pires Xavier Júnior
author_facet José Laerte Pires Xavier Júnior
author_role author
dc.contributor.advisor1.fl_str_mv Marco Tulio de Oliveira Valente
dc.contributor.advisor-co1.fl_str_mv Andre Cavalcante Hora
dc.contributor.referee1.fl_str_mv Kecia Aline Marques Ferreira
dc.contributor.referee2.fl_str_mv Mariza Andrade da Silva Bigonha
dc.contributor.author.fl_str_mv José Laerte Pires Xavier Júnior
contributor_str_mv Marco Tulio de Oliveira Valente
Andre Cavalcante Hora
Kecia Aline Marques Ferreira
Mariza Andrade da Silva Bigonha
dc.subject.por.fl_str_mv Evolução de Bibliotecas
Breaking Changes
Compatibilidade
topic Evolução de Bibliotecas
Breaking Changes
Compatibilidade
Software Manutenção
Computação
Redes de computadores
dc.subject.other.pt_BR.fl_str_mv Software Manutenção
Computação
Redes de computadores
description 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.
publishDate 2017
dc.date.issued.fl_str_mv 2017-05-02
dc.date.accessioned.fl_str_mv 2019-08-12T12:57:24Z
dc.date.available.fl_str_mv 2019-08-12T12:57:24Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1843/JCES-ARMPK6
url http://hdl.handle.net/1843/JCES-ARMPK6
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.publisher.initials.fl_str_mv UFMG
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
bitstream.url.fl_str_mv https://repositorio.ufmg.br/bitstream/1843/JCES-ARMPK6/1/joselaertexavier.pdf
https://repositorio.ufmg.br/bitstream/1843/JCES-ARMPK6/2/joselaertexavier.pdf.txt
bitstream.checksum.fl_str_mv 810a61809fe0e189a603190738e320b0
2f51c26af09a356ce11a0333eab30001
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv
_version_ 1803589400153554944