CONQUER: A tool for NL-based query refinement and contextualizing code search results

M Roldan-Vega, G Mallet, E Hill… - 2013 IEEE International …, 2013 - ieeexplore.ieee.org
M Roldan-Vega, G Mallet, E Hill, JA Fails
2013 IEEE International Conference on Software Maintenance, 2013ieeexplore.ieee.org
Identifying relevant code to perform maintenance or reuse tasks is becoming increasingly
difficult. Software systems continue to grow and evolve, and developers often find
themselves searching within thousands to even millions of lines of code to identify code
relevant to a particular maintenance task. Automated solutions are vital to help developers
become more efficient at locating code to be modified when performing maintenance tasks.
In order to address this need and help developers reduce the time spent finding and …
Identifying relevant code to perform maintenance or reuse tasks is becoming increasingly difficult. Software systems continue to grow and evolve, and developers often find themselves searching within thousands to even millions of lines of code to identify code relevant to a particular maintenance task. Automated solutions are vital to help developers become more efficient at locating code to be modified when performing maintenance tasks. In order to address this need and help developers reduce the time spent finding and searching for relevant code, we have built an Eclipse-plug in, CONQUER, that helps developers identify relevant results by providing critical insight and context of how query words are used in the code. CONQUER leverages advanced natural language (NL) information in the source code to group, sort and display the results in a meaningful way. In addition, CONQUER analyzes the frequency and co-occurrence of words in the method result set to provide alternative phrases that can help further refine the query. This rich contextual hierarchy helps the developer quickly determine if the query is correct and hone in on relevant results. The NL-based organization of results reduces the number of relevance judgments the developers need to make, and thus can reduce the overall time for a maintenance task.
ieeexplore.ieee.org