Please use this identifier to cite or link to this item: https://repositorio.ufu.br/handle/123456789/29339
ORCID:  http://orcid.org/0000-0002-5806-124X
Document type: Tese
Access type: Acesso Aberto
Title: Vetores de Parágrafo aplicados à localização de características e bugs de software
Alternate title (s): Paragraph Vectors applied to software features and bugs location
Author: Silva, Allysson Costa e
First Advisor: Maia, Marcelo de Almeida
First member of the Committee: Dorça, Fabiano Azevedo
Second member of the Committee: Travençolo, Bruno Augusto Nassif
Third member of the Committee: Figueiredo, Eduardo Magno Lages
Fourth member of the Committee: Inácio, Maurílio José
Summary: Durante a fase de manutenção de software, os processos de localização de características e bugs de software exercem um relevante papel na recuperação da rastreabilidade entre descrições expressas em linguagem natural e trechos de código fonte. Entretanto, ferramentas automatizadas propostas para esta finalidade não tem apresentado acurácia que possa ser considerada como definitiva. Neste sentido, o objetivo principal deste trabalho foi o aprimoramento de vetores de parágrafos, produzidos por uma rede neural Artificial empregada no algoritmo Doc2vec, e aplicados ao processo de localização de características e de bugs de software. Assim, melhor definidos, estes vetores puderam ser usados no cálculo de similaridades entre descrições de características e métodos do código fonte. Da mesma forma, a similaridade entre bugs e classes do código fonte pôde ser aprimorada. Para atingir este objetivo, foi aplicada uma taxa de aprendizado cíclica além da alteração da função de custo da rede neural que estavam associados ao algoritmo Doc2vec. Outras abordagens utilizadas reforçaram os ganhos em acurácia para o algoritmo Doc2vec a partir da combinação de rankings obtidos em ferramentas que expressam o estado da arte em Engenharia de Software. Um conjunto de abordagens que não apresentaram resultados satisfatórios também foram experimentadas e são descritas neste trabalho. Dentre estas podem ser citadas a melhoria da qualidade dos vetores representativos de métodos e classes do código fonte a partir de outros sistemas escritos na linguagem de programação Java; uso de pesos sintáticos diferenciados para termos que participam da composição de vetores relacionados às classes e métodos; e uso do algoritmo fastText para geração de vetores. Para cada abordagem proposta, ponderações foram feitas no sentido de se avaliar sua efetividade de uso em contextos de localização de bugs e características. Em resumo, com uma combinação das melhorias propostas para a rede neural artificial, a acurácia do estado da arte para a tarefa de localização de características pôde ser superada. Além disso, também foi possível melhorar a localização de bugs realizada a partir do uso do algoritmo Doc2vec bem como determinar quais hiperparâmetros eram mais influentes para melhoria da acurácia.
Abstract: Throughout a software maintenance phase, the processes of feature and bug location play an important role in the retrieval of traceability between natural language and source code. However, existing automated tools, which were designed to perform these tasks, have not yet presented the desirable accuracy expected as a definitive outcome. In this sense, this work main objective seeks to attend to the improvement of paragraph vectors, produced by artificial neural network in the Doc2vec algorithm, and applied into the processes of feature and software bug location. By improving the vector quality, these were used in the calculation of similarities found between feature descriptions and source code methods. Also, improvements in identifying bugs similarity and source code classes were observed. In order to reach this result, a cyclic learning rate was applied to the task in addition to customizing neural network loss function, which were associated with the Doc2vec algorithm. Furthermore, other approaches used have also demonstrated the gains in accuracy for the Doc2vec algorithm, provided by the combination of rankings obtained in tools that express the state of the art in Software Engineering. Yet, a set of other minor approaches were applied to this work, such as: improvement in the quality of representative vectors from source code methods, departing from other systems source code; usage of word syntactic influence within paragraphs extracted from source code; and usage of fastText algorithm to generate paragraph vectors. For each proposed approach, considerations were made in order to evaluate its effectiveness in feature and bug location tasks. In sum, the improvements proposed by this work to artificial neural network allowed to improve state of the art work in feature location tasks. Moreover, improvements in bug location were made by using the Doc2vec algorithm, and most influential hyper parameters were defined to improve accuracy.
Keywords: Bugs
Recuperação de informação
Feature Location
Bug Location
Information Retrieval
Doc2vec
Localização de características
Area (s) of CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
Language: por
Country: Brasil
Publisher: Universidade Federal de Uberlândia
Program: Programa de Pós-graduação em Ciência da Computação
Quote: SILVA, Allysson Costa e. Vetores de Parágrafo aplicados à localização de características e bugs de software. 2020. 131 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2020. Disponível em: http://doi.org//10.14393/ufu.te.2020.404
Document identifier: http://doi.org/10.14393/ufu.te.2020.404
URI: https://repositorio.ufu.br/handle/123456789/29339
Date of defense: 6-Feb-2020
Appears in Collections:TESE - Ciência da Computação

Files in This Item:
File Description SizeFormat 
VetoresParagrafoAplicados.pdf2.89 MBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons