CROKAGE: Effective Solution Recommendation for Programming Tasks by Leveraging Crowd Knowledge

  • Rodrigo F. G. Silva UFU
  • Marcelo A. Maia UFU

Resumo


Os desenvolvedores frequentemente pesquisam exemplos de código relevantes na web para suas tarefas de programação. Não obstante, eles enfrentam três problemas principais. Primeiro, eles geralmente precisam ler e analisar vários resultados dos mecanismos de pesquisa para obter uma solução satisfatória. Em segundo lugar, a pesquisa é prejudicada devido a uma lacuna léxica entre a consulta (descrição da tarefa) e as informações na solução (p.ex., exemplo de código). Por último, a solução pode não ser compreensível, ou seja, o segmento de código pode não ser acompanhado de uma explicação sucinta. Para resolver esses três problemas, propomos o CROKAGE (Crowd Knowledge Answer Generator), uma ferramenta que recebe a descrição de uma tarefa de programação (a consulta) como entrada e fornece uma solução compreensível para a tarefa. As soluções contêm não apenas exemplos de código relevantes, mas também suas explicações sucintas escritas por desenvolvedores humanos. Avaliamos e comparamos a abordagem com dez baselines, incluindo o estado-da-arte. Mostramos que CROKAGE supera todos baselines ao sugerir soluções relevantes para 902 tarefas de programação (ou seja, consultas) de três linguagens de programação populares: Java, Python e PHP. Além disso, usamos 24 tarefas de programação (consultas) para avaliar nossas soluções com 29 desenvolvedores e confirmar que CROKAGE supera a ferramenta estado-da-arte em termos de relevância dos exemplos de código sugeridos, utilidade das explicações do código e qualidade geral da solução (código + explicação).

Referências

da Silva, R. F. G., Roy, C. K., Rahman, M. M., Schneider, K. A., Paixão, K. V. R., de Carvalho Dantas, C. E., and de Almeida Maia, M. (2020). CROKAGE: effective solution recommendation for programming tasks by leveraging crowd knowledge. Empirical Software Engineering, 25(6):4707–4758.

Huang, Q., Xia, X., Xing, Z., Lo, D., and Wang, X. (2018). API method recommendation without worrying about the task-API knowledge gap. In Proc. ASE, pages 293–304.

Xu, B., Xing, Z., Xia, X., and Lo, D. (2017). Answerbot: Automated generation of answer summary to developers’ technical questions. In Proc. ASE, pages 706–716.
Publicado
27/09/2021
Como Citar

Selecione um Formato
SILVA, Rodrigo F. G.; MAIA, Marcelo A.. CROKAGE: Effective Solution Recommendation for Programming Tasks by Leveraging Crowd Knowledge. In: CONCURSO DE TESES E DISSERTAÇÕES EM ENGENHARIA DE SOFTWARE (CTD-ES) - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 12. , 2021, Joinville. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 76-77. DOI: https://doi.org/10.5753/cbsoft_estendido.2021.17295.