Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório

Detalhes bibliográficos
Autor(a) principal: Almeida, Lucas Mariano Galdino de
Data de Publicação: 2018
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFRN
Texto Completo: https://repositorio.ufrn.br/jspui/handle/123456789/26250
Resumo: Exceções uncaught não são um cenário excepcional nos sistemas atuais. Estima-se que as exceções uncaught representem até dois terços dos crashes em sistemas Java. Tais exceções podem ser lançadas por problemas no código da aplicação, no hardware subjacente ou até mesmo por uma biblioteca utilizada. Muito frequentemente, a documentação sobre as exceções sinalizadas pelos métodos de bibliotecas está ausente ou incompleta. Como consequência, o desenvolvedor geralmente descobre essas exceções quando elas ocorrem no ambiente de produção, causando uma parada abrupta da aplicação. Alternativamente, ferramentas de análise estática podem ser utilizadas para identificar tais exceções, porém essas ferramentas possuem alto custo computacional e podem ser imprecisas. Nesse cenário, este trabalho relata um estudo exploratório que extraiu as stack traces inseridas em issues do GitHub para descobrir as exceções não checadas e não documentadas de bibliotecas. No geral, foram mineradas as issues de 2.970 projetos Java hospedados no GitHub, das quais foram extraídas 66.118 stack traces. Neste estudo, as interfaces excepcionais das 85 bibliotecas mais populares do Maven foram investigadas. Os resultados mostram que a análise estática captura apenas uma pequena parte das exceções que foram reportadas com stack traces em issues do GitHub, e que as informações disponíveis nessas stack traces podem, de fato, ser usadas para descobrir exceções não documentadas lançadas pelos métodos das bibliotecas, enriquecendo assim, as informações obtidas com ferramentas de análise estática.
id UFRN_9675de78141c87dd6a4306a5e97a2a06
oai_identifier_str oai:https://repositorio.ufrn.br:123456789/26250
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Almeida, Lucas Mariano Galdino deKulesza, UiraBarbosa, Eiji Adachi MedeirosMaia, Marcelo de AlmeidaCoelho, Roberta de Souza2018-12-05T23:43:48Z2018-12-05T23:43:48Z2018-08-14ALMEIDA, Lucas Mariano Galdino de. Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório. 2018. 79f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2018.https://repositorio.ufrn.br/jspui/handle/123456789/26250Exceções uncaught não são um cenário excepcional nos sistemas atuais. Estima-se que as exceções uncaught representem até dois terços dos crashes em sistemas Java. Tais exceções podem ser lançadas por problemas no código da aplicação, no hardware subjacente ou até mesmo por uma biblioteca utilizada. Muito frequentemente, a documentação sobre as exceções sinalizadas pelos métodos de bibliotecas está ausente ou incompleta. Como consequência, o desenvolvedor geralmente descobre essas exceções quando elas ocorrem no ambiente de produção, causando uma parada abrupta da aplicação. Alternativamente, ferramentas de análise estática podem ser utilizadas para identificar tais exceções, porém essas ferramentas possuem alto custo computacional e podem ser imprecisas. Nesse cenário, este trabalho relata um estudo exploratório que extraiu as stack traces inseridas em issues do GitHub para descobrir as exceções não checadas e não documentadas de bibliotecas. No geral, foram mineradas as issues de 2.970 projetos Java hospedados no GitHub, das quais foram extraídas 66.118 stack traces. Neste estudo, as interfaces excepcionais das 85 bibliotecas mais populares do Maven foram investigadas. Os resultados mostram que a análise estática captura apenas uma pequena parte das exceções que foram reportadas com stack traces em issues do GitHub, e que as informações disponíveis nessas stack traces podem, de fato, ser usadas para descobrir exceções não documentadas lançadas pelos métodos das bibliotecas, enriquecendo assim, as informações obtidas com ferramentas de análise estática.Uncaught exceptions are not an exceptional scenario in today’s systems. Uncaught exceptions are estimated to account for up to two-thirds of the crashes on Java systems. Such exceptions may be thrown by problems in the application code, the underlying hardware, or even by a library used. Very often, documentation about exceptions flagged by library methods is missing or incomplete. As a consequence, the developer usually discovers these exceptions when they occur in the production environment, causing the application crash. Alternatively, static analysis tools can be used to identify such exceptions. However, these tools have a high computational cost and may be imprecise. In this scenario, this paper reports an exploratory study that extracted the stack traces inserted in issues of GitHub to discover the unchecked and undocumented exceptions of libraries. Overall, the issues of 2,970 Java projects hosted on GitHub were mined, of which 66,118 stack traces were extracted. In this study, the outstanding interfaces of the 85 most popular Maven libraries were investigated. The results show that static analysis captures only a small part of the exceptions that have been reported with GitHub’s stack traces in issues, and that the information available in these stack traces can, in fact, be used to discover undocumented exceptions released by library methods, thus enriching the data obtained with static analysis tools.porCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOExceçãoRelatório de erroConhecimento da multidãoJavaDocumentação excepcionalMinerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratórioMining Runtime exceptions not documented in Java libraries from GitHub: an exploratory studyinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisPROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOUFRNBrasilinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALMinerandoexceçõesRuntime_Almeida_2018.pdfapplication/pdf1375603https://repositorio.ufrn.br/bitstream/123456789/26250/1/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdff9ca5f98e1b2931bc36061dadc43d85dMD51TEXTMinerandoexceçõesRuntime_Almeida_2018.pdf.txtMinerandoexceçõesRuntime_Almeida_2018.pdf.txtExtracted texttext/plain147721https://repositorio.ufrn.br/bitstream/123456789/26250/2/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdf.txt48e5adb4cbd476e75250b423c81a19dbMD52THUMBNAILMinerandoexceçõesRuntime_Almeida_2018.pdf.jpgMinerandoexceçõesRuntime_Almeida_2018.pdf.jpgIM Thumbnailimage/jpeg3433https://repositorio.ufrn.br/bitstream/123456789/26250/3/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdf.jpg77d2ca031710925a70c97cb5153241c3MD53123456789/262502019-01-29 22:32:15.756oai:https://repositorio.ufrn.br:123456789/26250Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2019-01-30T01:32:15Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.pt_BR.fl_str_mv Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
dc.title.alternative.pt_BR.fl_str_mv Mining Runtime exceptions not documented in Java libraries from GitHub: an exploratory study
title Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
spellingShingle Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
Almeida, Lucas Mariano Galdino de
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Exceção
Relatório de erro
Conhecimento da multidão
Java
Documentação excepcional
title_short Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
title_full Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
title_fullStr Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
title_full_unstemmed Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
title_sort Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
author Almeida, Lucas Mariano Galdino de
author_facet Almeida, Lucas Mariano Galdino de
author_role author
dc.contributor.authorID.pt_BR.fl_str_mv
dc.contributor.advisorID.pt_BR.fl_str_mv
dc.contributor.referees1.none.fl_str_mv Kulesza, Uira
dc.contributor.referees1ID.pt_BR.fl_str_mv
dc.contributor.referees2.none.fl_str_mv Barbosa, Eiji Adachi Medeiros
dc.contributor.referees2ID.pt_BR.fl_str_mv
dc.contributor.referees3.none.fl_str_mv Maia, Marcelo de Almeida
dc.contributor.referees3ID.pt_BR.fl_str_mv
dc.contributor.author.fl_str_mv Almeida, Lucas Mariano Galdino de
dc.contributor.advisor1.fl_str_mv Coelho, Roberta de Souza
contributor_str_mv Coelho, Roberta de Souza
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Exceção
Relatório de erro
Conhecimento da multidão
Java
Documentação excepcional
dc.subject.por.fl_str_mv Exceção
Relatório de erro
Conhecimento da multidão
Java
Documentação excepcional
description Exceções uncaught não são um cenário excepcional nos sistemas atuais. Estima-se que as exceções uncaught representem até dois terços dos crashes em sistemas Java. Tais exceções podem ser lançadas por problemas no código da aplicação, no hardware subjacente ou até mesmo por uma biblioteca utilizada. Muito frequentemente, a documentação sobre as exceções sinalizadas pelos métodos de bibliotecas está ausente ou incompleta. Como consequência, o desenvolvedor geralmente descobre essas exceções quando elas ocorrem no ambiente de produção, causando uma parada abrupta da aplicação. Alternativamente, ferramentas de análise estática podem ser utilizadas para identificar tais exceções, porém essas ferramentas possuem alto custo computacional e podem ser imprecisas. Nesse cenário, este trabalho relata um estudo exploratório que extraiu as stack traces inseridas em issues do GitHub para descobrir as exceções não checadas e não documentadas de bibliotecas. No geral, foram mineradas as issues de 2.970 projetos Java hospedados no GitHub, das quais foram extraídas 66.118 stack traces. Neste estudo, as interfaces excepcionais das 85 bibliotecas mais populares do Maven foram investigadas. Os resultados mostram que a análise estática captura apenas uma pequena parte das exceções que foram reportadas com stack traces em issues do GitHub, e que as informações disponíveis nessas stack traces podem, de fato, ser usadas para descobrir exceções não documentadas lançadas pelos métodos das bibliotecas, enriquecendo assim, as informações obtidas com ferramentas de análise estática.
publishDate 2018
dc.date.accessioned.fl_str_mv 2018-12-05T23:43:48Z
dc.date.available.fl_str_mv 2018-12-05T23:43:48Z
dc.date.issued.fl_str_mv 2018-08-14
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 ALMEIDA, Lucas Mariano Galdino de. Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório. 2018. 79f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2018.
dc.identifier.uri.fl_str_mv https://repositorio.ufrn.br/jspui/handle/123456789/26250
identifier_str_mv ALMEIDA, Lucas Mariano Galdino de. Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório. 2018. 79f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2018.
url https://repositorio.ufrn.br/jspui/handle/123456789/26250
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.program.fl_str_mv PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFRN
dc.publisher.country.fl_str_mv Brasil
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRN
instname:Universidade Federal do Rio Grande do Norte (UFRN)
instacron:UFRN
instname_str Universidade Federal do Rio Grande do Norte (UFRN)
instacron_str UFRN
institution UFRN
reponame_str Repositório Institucional da UFRN
collection Repositório Institucional da UFRN
bitstream.url.fl_str_mv https://repositorio.ufrn.br/bitstream/123456789/26250/1/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdf
https://repositorio.ufrn.br/bitstream/123456789/26250/2/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdf.txt
https://repositorio.ufrn.br/bitstream/123456789/26250/3/Minerandoexce%c3%a7%c3%b5esRuntime_Almeida_2018.pdf.jpg
bitstream.checksum.fl_str_mv f9ca5f98e1b2931bc36061dadc43d85d
48e5adb4cbd476e75250b423c81a19db
77d2ca031710925a70c97cb5153241c3
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv
_version_ 1802117571857612800