Uma abordagem para classificar bugs sob a perspectiva de máquina de estados.
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Campina Grande
Brasil Centro de Engenharia Elétrica e Informática - CEEI PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG |
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: | |
Link de acesso: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12623 |
Resumo: | Dentre os modelos abordados pela linguagem UML, existe o modelo de máquina de estados, que permite modelar o comportamento de um objeto de software isolado, mostrando de forma explícita como o objeto responde a estímulos externos a ele. Quando se utiliza o modelo de máquina de estados em um projeto de software, o código-fonte é seu reflexo, de tal forma que um erro do software pode estar diretamente relacionado com a sua máquina de estados. Identificar a causa de uma falha relacionada ao modelo de máquina de estados nem sempre é uma tarefa trivial, podendo muitas vezes passar pelo processo de avaliação de falha, identificar elementos do software que são impactados pelo erro, determinar a sua causa e corrigir o software. Identificar as causas de uma falha é o processo que mais consome tempo no ciclo de vida do software. Existem trabalhos que abordam técnicas de como localizar bugs reportados no código-fonte mas não encontramos nenhum trabalho que relacione ou classifique bugs de acordo com máquina de estados. A tarefa de identificar a qual elemento da máquina de estados um bug reportado está relacionado é muito laboriosa. Diante desse problema, o objetivo desta pesquisa foi desenvolver uma técnica de classificação automática de bugs relacionados a máquina de estados. A técnica proposta é composta por uma taxonomia de bugs sob a perspectiva de máquina de estados e um algoritmo para classificação automática de bugs. Para avaliar a técnica proposta, realizamos um survey para avaliar a taxonomia e um experimento quantitativo em projetos de software reais para avaliar o algoritmo classificador. Como resultado verificamos que: (i) a taxonomia atende a demanda, com número de categorias e clareza adequadas para o seu objetivo; (ii) o algoritmo para classificação automática obteve um desempenho de 80% de precision e 80% de recall utilizando o algoritmo de aprendizagem de máquina KNN. |