Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
Autor(a) principal: | |
---|---|
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 |