Use este identificador para citar ou linkar para este item: https://repositorio.ufu.br/handle/123456789/25072
Tipo do documento: Tese
Tipo de acesso: Acesso Aberto
Título: Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software
Título(s) alternativo(s): Recommending knowledge available in Q&A sites for aiding software development and debugging
Autor(es): Campos, Eduardo Cunha
Primeiro orientador: Maia, Marcelo de Almeida
Primeiro membro da banca: Hora, André Cavalcante
Segundo membro da banca: Lima Filho, Fernando José Castor de
Terceiro membro da banca: Matias Júnior, Rivalino
Quarto membro da banca: Fernandes, Henrique Coelho
Resumo: 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.
Palavras-chave: 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
Área(s) do CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
Idioma: por
País: Brasil
Editora: Universidade Federal de Uberlândia
Programa: Programa de Pós-graduação em Ciência da Computação
Referência: 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. DOI http://dx.doi.org/10.14393/ufu.te.2019.924
Identificador do documento: http://dx.doi.org/10.14393/ufu.te.2019.924
URI: https://repositorio.ufu.br/handle/123456789/25072
Data de defesa: 12-Abr-2019
Aparece nas coleções:TESE - Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
RecomendacaoConhecimentoDisponivel.pdf9.93 MBAdobe PDFThumbnail
Visualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.