Splitting APIs: An exploratory study of software unbundling
| Ano de defesa: | 2019 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Não Informado pela instituição
|
| 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: | |
| Área do conhecimento CNPq: | |
| Link de acesso: | 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 |
Matos, Anderson Severo deFerreira Filho, João BoscoRocha, Lincoln Souza2023-09-27T13:03:19Z2023-09-27T13:03:19Z2019MATOS, 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/74488Software 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.Desmembramento 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 unbundlingModularityAPI usageMining software repositoriesExploratory studySplitting APIs: An exploratory study of software unbundlingSplitting APIs: An exploratory study of software unbundlinginfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da Universidade Federal do Ceará (UFC)instname:Universidade Federal do Ceará (UFC)instacron:UFChttp://lattes.cnpq.br/4403997077085492http://lattes.cnpq.br/0656977742590515http://lattes.cnpq.br/30522612104545312023-09-27ORIGINAL2019_dis_asmatos.pdf2019_dis_asmatos.pdfapplication/pdf1280605http://repositorio.ufc.br/bitstream/riufc/74488/3/2019_dis_asmatos.pdf80509a727b81bafaf80f76fa5b7613d5MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748http://repositorio.ufc.br/bitstream/riufc/74488/4/license.txt8a4605be74aa9ea9d79846c1fba20a33MD54riufc/744882023-09-27 10:03:20.427oai:repositorio.ufc.br:riufc/74488Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttp://www.repositorio.ufc.br/ri-oai/requestbu@ufc.br || repositorio@ufc.bropendoar:2023-09-27T13:03:20Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)false |
| dc.title.pt_BR.fl_str_mv |
Splitting APIs: An exploratory study of software unbundling |
| dc.title.en.pt_BR.fl_str_mv |
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 CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO 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 |
| 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.co-advisor.none.fl_str_mv |
Ferreira Filho, João Bosco |
| dc.contributor.author.fl_str_mv |
Matos, Anderson Severo de |
| dc.contributor.advisor1.fl_str_mv |
Rocha, Lincoln Souza |
| contributor_str_mv |
Rocha, Lincoln Souza |
| dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO 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 |
| dc.subject.por.fl_str_mv |
Software unbundling Modularity API usage Mining software repositories Exploratory study |
| dc.subject.ptbr.pt_BR.fl_str_mv |
Desmembramento de software Modularidade Uso de APIs Mineração de repositórios de software Estudo exploratório |
| dc.subject.en.pt_BR.fl_str_mv |
Software unbundling Modularity API usage Mining software repositories Exploratory study |
| 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.issued.fl_str_mv |
2019 |
| dc.date.accessioned.fl_str_mv |
2023-09-27T13:03:19Z |
| dc.date.available.fl_str_mv |
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.citation.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. |
| dc.identifier.uri.fl_str_mv |
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.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) |
| bitstream.url.fl_str_mv |
http://repositorio.ufc.br/bitstream/riufc/74488/3/2019_dis_asmatos.pdf http://repositorio.ufc.br/bitstream/riufc/74488/4/license.txt |
| bitstream.checksum.fl_str_mv |
80509a727b81bafaf80f76fa5b7613d5 8a4605be74aa9ea9d79846c1fba20a33 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
| 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_ |
1847793203050184704 |