Expansão automática de query baseada em vocabulário para busca de código
Data
2014-04-15
Tipo
Dissertação de mestrado
Título da Revista
ISSN da Revista
Título de Volume
Resumo
Modern software engineers frequently resort to code search practices to support software maintenance and evolution tasks, in particular code reuse. An issue that affects the effectiveness of code search is the vocabulary mismatch problem: while searching for a particular function, the user has to guess the exact words chosen by original developers to name code entities. This monograph presents a master’s project that investigated an automatic query expansion (AQE) approach that uses technical information retrieval based on thesauri to increase the chances of finding relevant code. The basic idea is automatically add similar terms of each word to the query, to improve the query’s recall. The approach is applied based on Test-Driven Code Search (TDCS), a promising code retrieval technique that uses test cases as inputs to formulate the search query. Since TDCS also relies on keywords, the vocabulary mismatch problem is also relevant here. The approach was implemented as an extension to CodeGenie, an Eclipse plug-in that supports TDCS. To evaluate the AQE approach, we conducted experiments involving professionals and undergraduate students. Results indicate that the approach improves recall significantly when compared with the search without its use. Such promising results are an evidence of the possibility of integrating the approach to software development methodologies to decrease costs.
Engenheiros de software frequentemente utilizam práticas de busca de código para apoiar atividades de manutenção e evolução de software, em particular o reúso de código. Um fator que compromete a efetividade da busca de código é o problema da incompatibilidade de vocabulário: ao buscar por uma função específica, o usuário deve procurar adivinhar os termos exatos utilizados pelo autor do código a ser buscado. Neste projeto de mestrado foi investigada uma abordagem de Expansão Automática de Query (EAQ) que usa técnicas de Recuperação de Informação (RI) baseadas em vocabulários (tesauros) para aumentar as chances de encontrar código relevante. A ideia básica é adicionar automaticamente termos similares de cada palavra-chave à query, melhorando assim o alcance da busca. A abordagem é aplicada principalmente sobre a Busca de Código Guiada por Testes (BCGT), uma técnica promissora de recuperação de código que utiliza casos de teste como entrada para formular a query de busca. Como a BCGT também se utiliza de palavras-chave, a incompatibilidade de vocabulário impacta negativamente sua efetividade. A abordagem foi implementada especialmente como extensão da ferramenta CodeGenie, um plugin do Eclipse que apoia a BCGT. Para avaliação da abordagem de EAQ proposta, construiu-se um ambiente experimental que simulou a situação na qual o usuário pudesse buscar pela implementação de um método específico. Com a análise de distintas execuções do experimento observou-se claramente melhoras nas métricas utilizadas, quando alguma forma de EAQ foi aplicada. Os resultados observados indicam a possibilidade da integração da abordagem estudada a metodologias de desenvolvimento de software, permitindo a diminuição de custos.
Engenheiros de software frequentemente utilizam práticas de busca de código para apoiar atividades de manutenção e evolução de software, em particular o reúso de código. Um fator que compromete a efetividade da busca de código é o problema da incompatibilidade de vocabulário: ao buscar por uma função específica, o usuário deve procurar adivinhar os termos exatos utilizados pelo autor do código a ser buscado. Neste projeto de mestrado foi investigada uma abordagem de Expansão Automática de Query (EAQ) que usa técnicas de Recuperação de Informação (RI) baseadas em vocabulários (tesauros) para aumentar as chances de encontrar código relevante. A ideia básica é adicionar automaticamente termos similares de cada palavra-chave à query, melhorando assim o alcance da busca. A abordagem é aplicada principalmente sobre a Busca de Código Guiada por Testes (BCGT), uma técnica promissora de recuperação de código que utiliza casos de teste como entrada para formular a query de busca. Como a BCGT também se utiliza de palavras-chave, a incompatibilidade de vocabulário impacta negativamente sua efetividade. A abordagem foi implementada especialmente como extensão da ferramenta CodeGenie, um plugin do Eclipse que apoia a BCGT. Para avaliação da abordagem de EAQ proposta, construiu-se um ambiente experimental que simulou a situação na qual o usuário pudesse buscar pela implementação de um método específico. Com a análise de distintas execuções do experimento observou-se claramente melhoras nas métricas utilizadas, quando alguma forma de EAQ foi aplicada. Os resultados observados indicam a possibilidade da integração da abordagem estudada a metodologias de desenvolvimento de software, permitindo a diminuição de custos.
Descrição
Citação
PAULA, Adriano Carvalho de. Expansão automática de query baseada em vocabulário para busca de código. 2014. 55 f. Dissertação (Mestrado) - Instituto de Ciência e Tecnologia, Universidade Federal de São Paulo (UNIFESP), São José dos Campos, 2014.