Please use this identifier to cite or link to this item: https://repositorio.ufu.br/handle/123456789/25072
Document type: Tese
Access type: Acesso Aberto
Title: Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software
Alternate title (s): Recommending knowledge available in Q&A sites for aiding software development and debugging
Author: Campos, Eduardo Cunha
First Advisor: Maia, Marcelo de Almeida
First member of the Committee: Hora, André Cavalcante
Second member of the Committee: Lima Filho, Fernando José Castor de
Third member of the Committee: Matias Júnior, Rivalino
Fourth member of the Committee: Fernandes, Henrique Coelho
Summary: O desenvolvimento moderno de programas é inseparável do uso das Interfaces de Programação de Aplicativos (APIs). No entanto, vários estudos mostraram que aprender e lembrar como usar as APIs é difícil para os desenvolvedores de software devido à documentação inadequada de algumas APIs. Os últimos anos testemunharam o surgimento e a crescente popularidade de sítios de mídias sociais relacionados ao desenvolvimento de programas, como o Stack Overflow, o DaniWeb e o Quora. A informação disponível nesses sítios é uma tendência importante no suporte de atividades relacionadas ao desenvolvimento e depuração de programas. Para lidar com o problema da introdução de erros relacionados com o uso incorreto da API por parte do desenvolvedor, foi proposta uma abordagem que recomenda posts do Stack Overflow que podem conter a correção destes erros. Todavia, esta abordagem recebe como entrada um trecho de código suspeito de conter um erro. Para avaliar esta abordagem, foi construído um benchmark contendo 30 trechos de código com potenciais API-usage-related bugs escritos nas linguagens Java e JavaScript extraídos do site Open Hub Code Search. Os resultados de recomendação mostraram que foram encontrados nos top-10 posts recomendados a correção para 66,67% dos trechos de código Java e 40% dos trechos de código JavaScript presentes no benchmark. Além disso, esta abordagem superou os motores de busca Google e FaCoY na recomendação de correções para esta categoria de erros de software. Para auxiliar os desenvolvedores durante alguma tarefa de programação com API, foi proposta uma outra abordagem denominada Lucene+Score+How-to que recomenda somente pares Q&A do Stack Overflow pertencentes à categoria "How-to" a partir de uma consulta feita em linguagem natural pelo usuário. Para avaliar esta abordagem, foram conduzidos experimentos envolvendo 35 tarefas de programação extraídas aleatoriamente de livros de receitas de 3 tópicos amplamente utilizados pela comunidade de desenvolvimento de software: Swing (Java), Boost (C++) e LINQ (C#). Os resultados de recomendação desta abordagem mostraram que, para 77,14% das tarefas de programação analisadas, pelo menos um par Q&A recomendado provou ser útil para a solução da tarefa alvo.
Abstract: Modern-day software development is inseparable from the use of the Application Programming Interfaces (APIs). However, several studies have shown that learning and remembering how to use APIs is difficult for software developers due to inadequate documentation of some APIs. Recent years have witnessed the emergence and growing popularity of social media sites related to software development, such as Stack Overflow, DaniWeb and Quora. The information available on these sites is one important trend in supporting activities related to software development and debugging. In order to address the problem of introducing errors related to incorrect use of the API by the developer, an approach has been proposed which recommends posts from Stack Overflow that may contain the correction of these errors. However, this approach receives as input a code snippet suspected of containing an error. To evaluate this approach, a benchmark was constructed containing 30 code excerpts with potential API-usage-related bugs written in the Java and JavaScript programming languages extracted from the Open Hub Code Search site. The recommendation results showed that 66.67% of Java excerpts with potential API-usage-related bugs had their fixes found in the top-10 query results. Considering JavaScript excerpts, fixes were found in the top-10 results for 40% of them. Moreover, this approach outperformed the Google and FaCoY search engines in recommending fixes for this category of software errors. We have proposed an approach called Lucene+Score+How-to to assist developers during some programming task with a given API. This approach recommends only Q&A pairs from Stack Overflow belonging to the "How-to" category based on a query (list of terms) made in natural language by the user. We conducted experiments to evaluate the recommendation strategy. The programming problems used in the experiments were extracted randomly from cookbooks for three topics widely used by the software development community: Swing (Java), Boost (C++) and LINQ (C#). The results have shown that for 27 of the 35 (77.14%) activities, at least one recommended pair proved to be useful to the target programming problem.
Keywords: Sabedoria da multidão
Depuração com a multidão
Tarefas de uso da API
Wisdom of the Crowd
Debugging with the crowd
API usage tasks
Computação
Software fatores humanos
Software desenvolvimento
Interface de programação de aplicações
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: CAMPOS, Eduardo Cunha. Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software. 2019. 144 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.924
Document identifier: http://dx.doi.org/10.14393/ufu.te.2019.924
URI: https://repositorio.ufu.br/handle/123456789/25072
Date of defense: 12-Apr-2019
Appears in Collections:TESE - Ciência da Computação

Files in This Item:
File Description SizeFormat 
RecomendacaoConhecimentoDisponivel.pdf9.93 MBAdobe PDFThumbnail
View/Open


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