Use este identificador para citar ou linkar para este item: https://repositorio.ufrn.br/handle/123456789/26250
Título: Minerando exceções Runtime não documentadas em bibliotecas Java a partir do GitHub: um estudo exploratório
Título(s) alternativo(s): Mining Runtime exceptions not documented in Java libraries from GitHub: an exploratory study
Autor(es): Almeida, Lucas Mariano Galdino de
Orientador: Coelho, Roberta de Souza
Palavras-chave: Exceção;Relatório de erro;Conhecimento da multidão;Java;Documentação excepcional
Data do documento: 14-Ago-2018
Referência: 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.
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.
Abstract: 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.
URI: https://repositorio.ufrn.br/jspui/handle/123456789/26250
Aparece nas coleções:PPGSC - Mestrado em Sistemas e Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
MinerandoexceçõesRuntime_Almeida_2018.pdf1,34 MBAdobe PDFThumbnail
Visualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.