An IDE-Based Context-Aware Meta Search Engine Mohammad Masudur Rahman, Shamima Yeasmin, Chanchal K. Roy Department of Computer Science University of Saskatchewan, Canada {mor543, shy942, ckr353}@mail.usask.ca Abstract—Traditional web search forces the developers to leave their working environments and look for solutions in the web browsers. It often does not consider the context of their programming problems. The context-switching between the web browser and the working environment is time-consuming and distracting, and the keyword-based traditional search often does not help much in problem solving. In this paper, we propose an Eclipse IDE-based web search solution that collects the data from three web search APIs– Google, Yahoo, Bing and a programming Q & A site– StackOverflow. It then provides search results within IDE taking not only the content of the selected error into account but also the problem context, popularity and search engine recommendation of the result links. Experiments with 25 runtime errors and exceptions show that the proposed ap- proach outperforms the keyword-based search approaches with a recommendation accuracy of 96%. We also validate the results with a user study involving five prospective participants where we get a result agreement of 64.28%. While the preliminary results are promising, the approach needs to be further validated with more errors and exceptions followed by a user study with more participants to establish itself as a complete IDE-based web search solution. Index Terms—IDE-based search; API mash-up; Context-based search; SimHash algorithm; I. I NTRODUCTION During development and maintenance of a software system, software developers face different programming challenges, and one of them is runtime error or exception. Eclipse IDE facilitates to diagnose the encountered errors or exceptions and developers get valuable information (i.e., clues) for fixation from the stack traces produced by the IDE. However, the infor- mation from the stack trace alone may not be helpful enough for the fixation, especially when the developers are novice or the encountered problems are relatively unfamiliar. Thus, for more informative and up-to-date solutions, developers are often forced to dig into the world wide web and look for the fixation. In a study by Brandt et al. [2], developers, on average, spent about 19% of their programming time for surfing the web for information. Goldman and Miller [5] made a study where they analyzed the events produced by the web browser and the IDE in temporal proximity, and concluded that 23% web pages visited were related to software development or maintenance. Finding the working solution to a programming problem in the web is a matter of web surfing as well as programming experience. Novice developers involved in software develop- ment or maintenance are often found spending a lot of time to look for such solutions. Traditional web search forces the de- velopers to leave the working environment (i.e., IDE) and look for the solution in the web browsers. The context-switching between IDE and the web browser is distracting and time- consuming. Moreover, checking relevance from hundreds of search results is a cognitive burden on the novice developers. Existing studies focus on integrating commercial-off-the- shelf (COTS) tools into Eclipse IDE [8], recommending Stack- Overflow posts and displaying them within the IDE environ- ment [4], embedding web browser inside the IDE [3] and so on. Cordeiro et al. [4] propose an IDE-based recommendation system for runtime exceptions. They extract the question and answer posts from StackOverflow data dump and suggest posts relevant to the occurred exceptions considering the context from the stack trace information generated by the IDE. They also suggest a nice solution to the context-switching issue through visualization of the solution within the IDE. However, the proposed approach suffers from several limitations. First, they consider only one source (e.g., StackOverflow Q & A site) rather than the whole web for information and thus, their search scope is limited. Second, the developed corpus cannot be easily updated and is subjected to the availability of the data dump. For example, they use the StackOverflow data dump of September 2011, that means it cannot provide help or suggestions to the recently introduced software bugs or errors after September 2011. Third, the visualization of the solutions is not efficient as it uses plain text to show the post contents such as source code, stack trace and discussion. Thus the developers do not really experience the style and presentation of a web page. In this paper, we propose an Eclipse IDE-based search solution called SurfClipse to the encountered errors or ex- ceptions which addresses the concerns identified in case of existing approaches. We package the solution as an Eclipse plug-in which (1) exploits the search and ranking algorithms of three reliable web search engines (e.g., Google, Bing and Yahoo) and a programming Q & A site (e.g., StackOverflow) through their API endpoints, (2) provides a content (e.g., error message), context (e.g., stack trace and surrounding source code of the subject error), popularity and search engine recommendation (of result links) based filtration and ranking on the extracted results of step one, (3) facilitates the most recent solutions, accesses the complete and extensible solution set and pulls solutions from numerous forums, discussion boards, blogs, programming Q & A sites and so on, and (4) provides a real web surfing experiences within the IDE context using Java based browser. We conduct an experiment on SurfClipse with 25 program- 978-1-4799-2931-3/13/$31.00 c 2013 IEEE WCRE 2013, Koblenz, Germany ERA Track 467