Splitting APIs: An exploratory study of software unbundling

Detalhes bibliográficos
Autor(a) principal: Matos, Anderson Severo de
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da Universidade Federal do Ceará (UFC)
Texto Completo: http://repositorio.ufc.br/handle/riufc/74488
Resumo: Software unbundling consists of dividing an existing software artifact into smaller ones. Unbundling can be useful for removing clutter from an application or separating different features that may not share the same purpose, or simply for isolating an emergent functionality that merits to be an application on its own. This phenomenon is frequent with mobile apps and it is also propagating to APIs. This research proposes a first empirical study on unbundling to understand its effects on popular APIs. The study explores the possibilities of splitting libraries into 2 or more bundles based on the use that their client projects make of them. I mine over than 71,000 client projects of 10 open source APIs and automatically generate 2,090 sub-APIs to then study their properties. Results show that it is possible to have sets of different ways of using a given API and to unbundle it accordingly; the bundles can vary their representativeness and uniqueness, which is analyzed thoroughly in this study.
id UFC-7_9934db4bbf71274202f40a5a8d1d7492
oai_identifier_str oai:repositorio.ufc.br:riufc/74488
network_acronym_str UFC-7
network_name_str Repositório Institucional da Universidade Federal do Ceará (UFC)
repository_id_str
spelling Splitting APIs: An exploratory study of software unbundlingSplitting APIs: An exploratory study of software unbundlingSoftware unbundlingModularityAPI usageMining software repositoriesExploratory studyDesmembramento de softwareModularidadeUso de APIsMineração de repositórios de softwareEstudo exploratórioSoftware unbundlingModularityAPI usageMining software repositoriesExploratory studyCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOSoftware unbundling consists of dividing an existing software artifact into smaller ones. Unbundling can be useful for removing clutter from an application or separating different features that may not share the same purpose, or simply for isolating an emergent functionality that merits to be an application on its own. This phenomenon is frequent with mobile apps and it is also propagating to APIs. This research proposes a first empirical study on unbundling to understand its effects on popular APIs. The study explores the possibilities of splitting libraries into 2 or more bundles based on the use that their client projects make of them. I mine over than 71,000 client projects of 10 open source APIs and automatically generate 2,090 sub-APIs to then study their properties. Results show that it is possible to have sets of different ways of using a given API and to unbundle it accordingly; the bundles can vary their representativeness and uniqueness, which is analyzed thoroughly in this study.O desmembramento de software consiste em dividir um artefato de software existente em outros menores. Desmembramento pode ser útil para remover código em desuso do software, para separar funcionalidades que podem não estar compartilhando o mesmo propósito da aplicação como um todo, ou simplesmente para isolar uma funcionalidade emergente que merece ser uma aplicação por conta própria. Esse fenômeno é frequente em aplicativos para dispositivos móveis e também está se propagando para APIs. Esta pesquisa propõe um primeiro estudo empírico sobre o desmembramento para entender seus efeitos em APIs populares. Exploramos as possibilidades de dividir bibliotecas em pacotes de 2 ou mais blocos baseados no uso que os projetos de clientes fazem deles. Nós mineramos mais de 71.000 projetos clientes de 10 APIs de código aberto e geramos automaticamente 2.090 subAPIs para então estudar suas propriedades. Descobrimos que é possível desmemebrar APIs automaticamente em bundles menores a partir de conjuntos de uso disitintos formados por grupos de clientes; os bundles de código gerados podem variar em termos de representatividade e singularidade, o que é analisado minuciosamente neste estudo.Rocha, Lincoln SouzaFerreira Filho, João BoscoMatos, Anderson Severo de2023-09-27T13:03:19Z2023-09-27T13:03:19Z2019info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfMATOS, Anderson Severo de. Splitting APIs: An exploratory study of software unbundling. 2019. 55 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2019.http://repositorio.ufc.br/handle/riufc/74488info:eu-repo/semantics/openAccessengreponame:Repositório Institucional da Universidade Federal do Ceará (UFC)instname:Universidade Federal do Ceará (UFC)instacron:UFC2023-09-27T13:03:20Zoai:repositorio.ufc.br:riufc/74488Repositório InstitucionalPUBhttp://www.repositorio.ufc.br/ri-oai/requestbu@ufc.br || repositorio@ufc.bropendoar:2024-09-11T18:40:55.609340Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)false
dc.title.none.fl_str_mv Splitting APIs: An exploratory study of software unbundling
Splitting APIs: An exploratory study of software unbundling
title Splitting APIs: An exploratory study of software unbundling
spellingShingle Splitting APIs: An exploratory study of software unbundling
Matos, Anderson Severo de
Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
Desmembramento de software
Modularidade
Uso de APIs
Mineração de repositórios de software
Estudo exploratório
Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Splitting APIs: An exploratory study of software unbundling
title_full Splitting APIs: An exploratory study of software unbundling
title_fullStr Splitting APIs: An exploratory study of software unbundling
title_full_unstemmed Splitting APIs: An exploratory study of software unbundling
title_sort Splitting APIs: An exploratory study of software unbundling
author Matos, Anderson Severo de
author_facet Matos, Anderson Severo de
author_role author
dc.contributor.none.fl_str_mv Rocha, Lincoln Souza
Ferreira Filho, João Bosco
dc.contributor.author.fl_str_mv Matos, Anderson Severo de
dc.subject.por.fl_str_mv Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
Desmembramento de software
Modularidade
Uso de APIs
Mineração de repositórios de software
Estudo exploratório
Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
Desmembramento de software
Modularidade
Uso de APIs
Mineração de repositórios de software
Estudo exploratório
Software unbundling
Modularity
API usage
Mining software repositories
Exploratory study
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Software unbundling consists of dividing an existing software artifact into smaller ones. Unbundling can be useful for removing clutter from an application or separating different features that may not share the same purpose, or simply for isolating an emergent functionality that merits to be an application on its own. This phenomenon is frequent with mobile apps and it is also propagating to APIs. This research proposes a first empirical study on unbundling to understand its effects on popular APIs. The study explores the possibilities of splitting libraries into 2 or more bundles based on the use that their client projects make of them. I mine over than 71,000 client projects of 10 open source APIs and automatically generate 2,090 sub-APIs to then study their properties. Results show that it is possible to have sets of different ways of using a given API and to unbundle it accordingly; the bundles can vary their representativeness and uniqueness, which is analyzed thoroughly in this study.
publishDate 2019
dc.date.none.fl_str_mv 2019
2023-09-27T13:03:19Z
2023-09-27T13:03:19Z
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 MATOS, Anderson Severo de. Splitting APIs: An exploratory study of software unbundling. 2019. 55 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2019.
http://repositorio.ufc.br/handle/riufc/74488
identifier_str_mv MATOS, Anderson Severo de. Splitting APIs: An exploratory study of software unbundling. 2019. 55 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2019.
url http://repositorio.ufc.br/handle/riufc/74488
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal do Ceará (UFC)
instname:Universidade Federal do Ceará (UFC)
instacron:UFC
instname_str Universidade Federal do Ceará (UFC)
instacron_str UFC
institution UFC
reponame_str Repositório Institucional da Universidade Federal do Ceará (UFC)
collection Repositório Institucional da Universidade Federal do Ceará (UFC)
repository.name.fl_str_mv Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)
repository.mail.fl_str_mv bu@ufc.br || repositorio@ufc.br
_version_ 1813028904235958272