ExMinerSOF: minerando informações excepcionais do Stackoverflow

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Fernandes, Teresa do Carmo Barrêto
Orientador(a): Coelho, Roberta de Souza
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Não Informado pela instituição
Programa de Pós-Graduação: PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufrn.br/jspui/handle/123456789/24202
Resumo: Exceções não capturadas (do inglês: uncaught) não são cenários excepcionais nas aplicações Java atuais. Eles são, na verdade, uma das principais causas de falha das aplicações Java - que podem originar-se de erros de programação (e.g., acesso a referências nulas); falhas no hardware ou em APIs utilizadas. Essas exceções uncaught resultam em stack traces que são frequentemente usados pelos desenvolvedores como fonte de informações para a depuração. Atualmente, essa informação é frequentemente usada pelos desenvolvedores em mecanismos de busca ou sites de perguntas e respostas (do inglês: Question and Answer - Q&A) para tentar compreender melhor a causa do crash e assim poder resolvêlo. Este estudo fez a mineração de stack traces incluídas nas perguntas e respostas do StackOverflow (SOF). O objetivo deste estudo foi: (i) identificar características das stack traces mineradas do SOF e (ii) investigar como tais informações podem ser usadas para evitar exceções uncaught durante o desenvolvimento de software. Neste estudo, 121.253 stack traces foram extraídas e analisadas em combinação com inspeções de postagens do SOF. Também é proposta a ferramenta ExMinerSOF, que alerta o desenvolvedor sobre as exceções que podem ser potencialmente sinalizadas por um método de API. Essas informações são descobertas aplicando uma estratégia de mineração apresentada neste trabalho. Ao fazê-lo, a ferramenta permite que o desenvolvedor evite falhas com base em falhas relatadas por outros desenvolvedores.