Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12623
Title: Uma abordagem para classificar bugs sob a perspectiva de máquina de estados.
Other Titles: An approach to classify bugs from a state machine perspective.
???metadata.dc.creator???: LIMA, Melquisedec Albert Einstein de Andrade.
???metadata.dc.contributor.advisor1???: RAMALHO, Franklin de Souza.
???metadata.dc.contributor.referee1???: ALVES, Everton Leaiidro Galdino.
???metadata.dc.contributor.referee2???: BARBOSA, Paulo Eduardo e Silva.
Keywords: Linguagem de Programação;Programming Language;Lenguaje de Programación;Máquina de Estados;State Machine;BUG;Classificação;Classification;Clasificación;Aprendizagem de Máquina;Aprendizaje Automático;Machine Learning
Issue Date: 9-Dec-2019
Publisher: Universidade Federal de Campina Grande
Citation: LIMA, M. A. E. de A. Uma abordagem para classificar bugs sob a perspectiva de máquina de estados. 2019. 103 f. Dissertação (Mestrado em Sistemas e Computação), Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Paraíba - Brasil, 2019. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12623
???metadata.dc.description.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.
Abstract: Among the models approached by the UML language, there is the state machine model, which allows modeling the behavior of an isolated software object, showing explicitly how the object responds to external stimulus. When using the state machine model in a software project, the source code reflects the state machine such that a software error may be directly related to the state machine. Identifying the cause of an error related to the state machine model is not always a trivial task and can often go through the error assessment process, identify software elements that impacted by the error, determine its cause, and correct the software. Identifying the causes of a failure is the most time-consuming process in the software life cycle. There are works that address techniques for finding reported bugs in source code, but we have not found any work that lists or classifies bugs according to state machine. The task of identifying which state machine element a reported bug relates to is very laborious. Given this problem, the objective of this research was to develop a technique of automatic classification of bugs related to state machines. The proposed technique is composed of a bug taxonomy from the state machine perspective and an algorithm for automatic bug classification. To evaluate the proposed technique, we performed a survey to evaluate the taxonomy and a quantitative experiment in real software projects to evaluate the classifying algorithm. As result, we found that: (i) taxonomy meets demand, with a number of categories and clarity adequate for its purpose; (ii) the algorithm for automatic classification achieved a performance of 80% precision and 80% recall using the KNN machine learning algorithm.
Keywords: Linguagem de Programação
Programming Language
Lenguaje de Programación
Máquina de Estados
State Machine
BUG
Classificação
Classification
Clasificación
Aprendizagem de Máquina
Aprendizaje Automático
Machine Learning
???metadata.dc.subject.cnpq???: Ciência da Computação
Linguagens de Programação
Metodologia e Técnicas da Computação
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12623
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
MELQUISEDEC ALBERT EINSTEIN DE ANDRADE LIMA - DISSERTAÇÃO (PPGCC) 2019.pdf Melquisedec Albert Einstein de Andrade Lima - Dissertação PPGCC 20191.03 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.