Please use this identifier to cite or link to this item:
https://repositorio.ufu.br/handle/123456789/29401
Full metadata record
DC Field | Value | Language |
---|---|---|
dc.creator | Silva, Rodrigo Fernandes Gomes da | - |
dc.date.accessioned | 2020-06-05T17:28:21Z | - |
dc.date.available | 2020-06-05T17:28:21Z | - |
dc.date.issued | 2020-05-29 | - |
dc.identifier.citation | SILVA, Rodrigo Fernandes Gomes da. CROKAGE: effective solution recommendation for programming tasks by leveraging crowd knowledge. 2020. 94 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2020. DOI http://doi.org/10.14393/ufu.te.2020.454. | pt_BR |
dc.identifier.uri | https://repositorio.ufu.br/handle/123456789/29401 | - |
dc.description.abstract | Developers often search for relevant code examples on the web for their programming tasks. Unfortunately, they face three major problems. First, they frequently need to read and analyse multiple results from the search engines to obtain a satisfactory solution. Second, the search is impaired due to a lexical gap between the query (task description) and the information associated with the solution (e.g., code example). Third, the retrieved solution may not be comprehensive, i.e., the code segment might miss a succinct explanation. To address these three problems, we propose CROKAGE (Crowd Knowledge Answer Generator), a tool that takes the description of a programming task (the query) and delivers a comprehensive solution for the task. Our solutions contain not only relevant code examples but also their succinct explanations written by human developers. The search for code examples is modeled as an Information Retrieval (IR) problem. We first leverage the crowd knowledge stored in Stack Overflow to retrieve the candidate answers against a programming task. Then we use a multi-factor relevance mechanism to mitigate the lexical gap problem, and select the top quality answers related to the task. Finally, we perform natural language processing on the top quality answers and deliver the comprehensive solutions containing both code examples and code explanations unlike earlier studies. We evaluate and compare our approach against seven baselines, including the state-of-art. We show that CROKAGE outperforms the seven baselines in suggesting relevant solutions for 902 programming tasks (i.e., queries). Furthermore, a user study with 24 queries and 29 developers confirms the superiority of CROKAGE over the state-of-art tool in terms of relevance of the suggested code examples, benefit of the code explanations and the overall solution quality (code + explanation). | pt_BR |
dc.language | eng | pt_BR |
dc.publisher | Universidade Federal de Uberlândia | pt_BR |
dc.rights | Acesso Aberto | pt_BR |
dc.subject | Mining crowd knowledge | pt_BR |
dc.subject | Mineração de conhecimento da multidão | pt_BR |
dc.subject | Stack overflow | pt_BR |
dc.subject | Word embedding | pt_BR |
dc.subject | Code search | pt_BR |
dc.subject | Busca de código | pt_BR |
dc.title | CROKAGE: effective solution recommendation for programming tasks by leveraging crowd knowledge | pt_BR |
dc.title.alternative | CROKAGE: recomendações de soluções efetivas para tarefas de programação a partir do conhecimento da multidão | pt_BR |
dc.type | Tese | pt_BR |
dc.contributor.advisor1 | Maia, Marcelo de Almeida | - |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/4915659948263445 | pt_BR |
dc.contributor.referee1 | Pinto, Gustavo Henrique Lima | - |
dc.contributor.referee2 | Lemos, Otavio Augusto Lazzarini | - |
dc.contributor.referee3 | Dorça, Fabiano Azevedo | - |
dc.contributor.referee4 | Albertini, Marcelo Keese | - |
dc.creator.Lattes | http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4359058J6 | pt_BR |
dc.description.degreename | Tese (Doutorado) | pt_BR |
dc.description.resumo | Desenvolvedores frequentemente buscam por exemplos de código na internet para suas tarefas de programação. Infelizmente, eles enfrentam três grandes problemas. Primeiro, eles normalmente precisam ler e analisar diversos resultados das ferramentas de busca até obterem uma solução satisfatória. Segundo, a busca é prejudicada devido a uma lacuna léxica entre a consulta (descrição da tarefa) e a informação associada à solução (ex. exemplo de código). Terceiro, a solução recuperada pode não ser compreensível, como por exemplo, apenas um trecho de código sem uma explicação sucinta. Para tratar esses três problemas, propomos CROKAGE (Gerador de Respostas de Conhecimento da Multidão), uma ferramenta que recebe a descrição de uma tarefa de programação em linguagem natural e fornece uma solução compreensível para a tarefa, isto é, uma solução que contém não somente exemplos de código relevantes, mas também suas explicações sucintas escritas por desenvolvedores. Primeiramente, o conhecimento da multidão presente no Stack Overflow é utilizado para recuperar respostas candidatas para a tarefa de programação. Em seguida, um mecanismo de relevância composto de múltiplos fatores é usado para mitigar o problema da lacuna léxica e selecionar as respostas com melhor qualidade relacionadas à tarefa. Finalmente, ocorre um processamento de linguagem natural nas respostas de melhor qualidade para entregar as soluções de programação contendo os exemplos de código acompanhados de suas explicações, ao contrário dos estudos anteriores. CROKAGE foi avaliada e comparada com sete outras abordagens-base, incluindo o estado da arte. CROKAGE superou as sete outras no fornecimento de soluções relevantes para 902 tarefas de programação. Além disso, um estudo com 24 tarefas de programação e 29 desenvolvedores, confirmando a superioridade de CROKAGE sobre o estado da arte em termos de relevância dos exemplos de código sugeridos, benefício das explicações do código e da qualidade geral da solução (código + explicação). | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.publisher.program | Programa de Pós-graduação em Ciência da Computação | pt_BR |
dc.sizeorduration | 94 | pt_BR |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | pt_BR |
dc.identifier.doi | http://doi.org/10.14393/ufu.te.2020.454 | pt_BR |
dc.orcid.putcode | 75210724 | - |
dc.crossref.doibatchid | 4ced6f6e-cf60-4f2a-b55c-7f1981542941 | - |
Appears in Collections: | TESE - Ciência da Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
CROKAGEEffectiveSolutionRecommendation.pdf | 11.64 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.