CROKAGE: Effective Solution Recommendation for Programming Tasks by Leveraging Crowd Knowledge - Silva, Rodrigo F. G.; Maia, Marcelo A. (Anais Estendidos do Congresso Brasileiro de Software: Teoria e Prática (CBSoft), 2021)
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).