Historical and impact analysis of API breaking changes
Autor(a) principal: | |
---|---|
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 |