SlideShare a Scribd company logo
SURFCLIPSE: CONTEXT-AWARE
META SEARCH IN THE IDE
Mohammad Masudur Rahman, Chanhcal K. Roy
Department of Computer Science
University of Saskatchewan
International Conference on Software Maintenance and
Evolution (ICSME 2014), Victoria, Canada
2
Exception triggering point
SoftwareResearchLab,UofS
EXCEPTION DEBUGGING
3
Not a helpful message for
understanding or solving the
exception
SoftwareResearchLab,UofS
Web
search!!
SOLVING EXCEPTION
(STEP I: QUERY SELECTION)
4
Selection of traditional search query
Switching to web browser for
web search
SoftwareResearchLab,UofS
This query may not
be sufficient enough
for most of the
exceptions
SOLVING EXCEPTION
(STEP II: WEB SEARCH)
5
 The browser does not know the context (i.e., details)
of the exception.
 Not much helpful ranking
 Hundreds of search results
 Forces the developer to switch back and forth between
IDE and browser.
 Trial and error in searching
SoftwareResearchLab,UofS
Switching is
often
distracting
SURFCLIPSE: IDE-BASED CONTEXT-AWARE
META SEARCH ENGINE
6
TECHNICAL DETAILS & PROGRAMMING
CONTEXT OF AN EXCEPTION
7
Programming context (i.e.,
context code)
Error message
Stack trace
1
2
3
SoftwareResearchLab,UofS
PROPOSED IDE-BASED META SEARCH MODEL
Start
Results
Web page
8
SoftwareResearchLab,UofS
PROPOSED IDE-BASED META SEARCH
MODEL
 Distinguished Features (5)
 IDE-Based solution
 Web search, search result and web browsing all from IDE
 No context-switching needed
 Meta search engine
 Captures data from multiple search engines
 Also applies custom ranking techniques
 Context-Aware search
 Uses stack traces information
 Uses context-code (surroundings of exception locations)
 Software As A Service (SAAS)
 Search is provided as a web service, and can be leveraged by
an IDE. http://srlabg53-2.usask.ca/wssurfclipse/ 9
SoftwareResearchLab,UofS
PROPOSED IDE-BASED META SEARCH
MODEL
 Two Working Modes
 Proactive Mode
 Auto-detects the occurrence of an exception
 Initiates search for exception by client itself
 Aligned with Cordeiro et al. (RSSE’ 2012) & Ponzanelli et al.
(ICSE 2013)
 Interactive Mode
 Developer starts search using context menu
 Also facilitates keyword-based search
 Aligned with traditional web search within the IDE
10
SoftwareResearchLab,UofS
CONCLUSION & FUTURE WORK
 SurfClipse – context-aware meta search engine
 IDE-based complete web search solution
 Outperforms two relevant existing approaches
 More recall than three search engines with precision
comparable to Google, the best performing engine.
 SurfClipse – DOM-based element extraction &
topic modeling.
 Extensive parallelization to make result real time.
 Adaptation for other languages support exception
handling: C#, PHP, Javascript and so on.
11
SURFCLIPSE TOOL DEMO
12
THANK YOU !! QUESTIONS?
13
REFERENCES
[1] J. Cordeiro, B. Antunes, and P. Gomes. Context-based Recommendation to Support
Problem Solving in Software Development. In Proc. RSSE, pages 85 –89, June 2012.
[2] L. Ponzanelli, A. Bacchelli, and M. Lanza. Seahawk: Stack Overflow in the IDE. In Proc.
ICSE, pages 1295–1298, 2013
[3] J. Brandt, P. J. Guo, J. Lewenstein, M. Dontcheva, and S. R. Klemmer. Two Studies of
Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing
Code. In Proc. SIGCHI, pages 1589–1598, 2009.
[4] S. Haiduc, J. Aponte, and A. Marcus. Supporting Program Comprehension with
Source Code Summarization. In Proc. ICSE, pages 223–226, 2010
[5] M. M. Rahman, S. Yeasmin, and C. Roy. Towards a Context-Aware Meta Search
Engine for IDE-Based Recommendation about Programming Errors and
Exceptions. In Proc. CSMR-WCRE, pages 194–203, 2014.
14

More Related Content

PPTX
Best Great Ideas on Java Research Papers
suzanneriverabme
 
PPT
SurfClipse Final Project (HCI)
Masud Rahman
 
PPTX
ContentSuggest--Recommendation of Relevant Sections from a Webpage about Erro...
Masud Rahman
 
PPTX
SurfExample- Recommendation of Exception Handling Code Examples
Masud Rahman
 
PPTX
SurfClipse-- An IDE based context-aware Meta Search Engine
Masud Rahman
 
PPTX
Exploiting Context in Dealing with Programming Errors and Exceptions
Masud Rahman
 
PPTX
An IDE-Based Context-Aware Meta Search Engine
Masud Rahman
 
PPTX
SurfClipse-- An IDE based context-aware Meta Search Engine (ERA Track)
Masud Rahman
 
Best Great Ideas on Java Research Papers
suzanneriverabme
 
SurfClipse Final Project (HCI)
Masud Rahman
 
ContentSuggest--Recommendation of Relevant Sections from a Webpage about Erro...
Masud Rahman
 
SurfExample- Recommendation of Exception Handling Code Examples
Masud Rahman
 
SurfClipse-- An IDE based context-aware Meta Search Engine
Masud Rahman
 
Exploiting Context in Dealing with Programming Errors and Exceptions
Masud Rahman
 
An IDE-Based Context-Aware Meta Search Engine
Masud Rahman
 
SurfClipse-- An IDE based context-aware Meta Search Engine (ERA Track)
Masud Rahman
 

Similar to SurfClipse-- An IDE based context-aware Meta Search Engine (Tool Demo) (20)

PPT
Searching Repositories of Web Application Models
Marco Brambilla
 
PDF
Combining IR with Relevance Feedback for Concept Location
Sonia Haiduc
 
PPTX
Web Search Engine, Web Crawler, and Semantics Web
Aatif19921
 
KEY
How to Share and Reuse Learning Resources: the ARIADNE Experience
Joris Klerkx
 
PDF
Is Enterprise Search Ripe for Open Source Disruption?
Enterprise 2.0 Conference
 
PPT
3 Understanding Search
masiclat
 
PPTX
unit 5 WEB RETRIEVAL AND WEB CRAWLING
karthiksmart21
 
PDF
Web search engines and search technology
Stefanos Anastasiadis
 
PPTX
IRT Unit_4.pptx
thenmozhip8
 
PPTX
Reuse and cloud in component based development
scuffio
 
PPTX
Exploratory Search upon Semantically Described Web Data Sources: Service regi...
Marco Brambilla
 
PDF
Google Research Paper
didip
 
PDF
Tooling for the JavaScript Era
martinlippert
 
PDF
Content Used to Be King - Now what?
Judy O'Connell
 
PDF
Using LWE/Solr/Lucene for eCom
Lucidworks (Archived)
 
PDF
Building efficient and effective metasearch engines
unyil96
 
PDF
Searchland: Search quality for Beginners
Valeria de Paiva
 
PDF
Evolutionary Design Patterns for Software Development
Stefan Ianta
 
PDF
Suche mit Apache Lucene & Co.
inovex GmbH
 
PDF
Tolmachev Alexander Web Search Engines
AlexanderTolmachev
 
Searching Repositories of Web Application Models
Marco Brambilla
 
Combining IR with Relevance Feedback for Concept Location
Sonia Haiduc
 
Web Search Engine, Web Crawler, and Semantics Web
Aatif19921
 
How to Share and Reuse Learning Resources: the ARIADNE Experience
Joris Klerkx
 
Is Enterprise Search Ripe for Open Source Disruption?
Enterprise 2.0 Conference
 
3 Understanding Search
masiclat
 
unit 5 WEB RETRIEVAL AND WEB CRAWLING
karthiksmart21
 
Web search engines and search technology
Stefanos Anastasiadis
 
IRT Unit_4.pptx
thenmozhip8
 
Reuse and cloud in component based development
scuffio
 
Exploratory Search upon Semantically Described Web Data Sources: Service regi...
Marco Brambilla
 
Google Research Paper
didip
 
Tooling for the JavaScript Era
martinlippert
 
Content Used to Be King - Now what?
Judy O'Connell
 
Using LWE/Solr/Lucene for eCom
Lucidworks (Archived)
 
Building efficient and effective metasearch engines
unyil96
 
Searchland: Search quality for Beginners
Valeria de Paiva
 
Evolutionary Design Patterns for Software Development
Stefan Ianta
 
Suche mit Apache Lucene & Co.
inovex GmbH
 
Tolmachev Alexander Web Search Engines
AlexanderTolmachev
 
Ad

More from Masud Rahman (20)

PPTX
HereWeCode 2022: Dalhousie University
Masud Rahman
 
PPTX
The Forgotten Role of Search Queries in IR-based Bug Localization: An Empiric...
Masud Rahman
 
PPTX
PhD Seminar - Masud Rahman, University of Saskatchewan
Masud Rahman
 
PPTX
PhD proposal of Masud Rahman
Masud Rahman
 
PPTX
PhD Comprehensive exam of Masud Rahman
Masud Rahman
 
PPTX
Doctoral Symposium of Masud Rahman
Masud Rahman
 
PPTX
Supporting Source Code Search with Context-Aware and Semantics-Driven Code Se...
Masud Rahman
 
PDF
Poster: Improving Bug Localization with Report Quality Dynamics and Query Ref...
Masud Rahman
 
PDF
Impact of Continuous Integration on Code Reviews
Masud Rahman
 
PPTX
Predicting Usefulness of Code Review Comments using Textual Features and Deve...
Masud Rahman
 
PPTX
STRICT: Information Retrieval Based Search Term Identification for Concept Lo...
Masud Rahman
 
PPTX
An Insight into the Unresolved Questions at Stack Overflow
Masud Rahman
 
PPTX
An Insight into the Pull Requests of GitHub
Masud Rahman
 
PPTX
Recommending Insightful Comments for Source Code using Crowdsourced Knowledge
Masud Rahman
 
PPTX
TextRank Based Search Term Identification for Software Change Tasks
Masud Rahman
 
PPTX
CMPT-842-BRACK
Masud Rahman
 
PPTX
RACK: Code Search in the IDE using Crowdsourced Knowledge
Masud Rahman
 
PPTX
RACK: Automatic API Recommendation using Crowdsourced Knowledge
Masud Rahman
 
PPTX
QUICKAR: Automatic Query Reformulation for Concept Location Using Crowdsource...
Masud Rahman
 
PPTX
CORRECT: Code Reviewer Recommendation at GitHub for Vendasta Technologies
Masud Rahman
 
HereWeCode 2022: Dalhousie University
Masud Rahman
 
The Forgotten Role of Search Queries in IR-based Bug Localization: An Empiric...
Masud Rahman
 
PhD Seminar - Masud Rahman, University of Saskatchewan
Masud Rahman
 
PhD proposal of Masud Rahman
Masud Rahman
 
PhD Comprehensive exam of Masud Rahman
Masud Rahman
 
Doctoral Symposium of Masud Rahman
Masud Rahman
 
Supporting Source Code Search with Context-Aware and Semantics-Driven Code Se...
Masud Rahman
 
Poster: Improving Bug Localization with Report Quality Dynamics and Query Ref...
Masud Rahman
 
Impact of Continuous Integration on Code Reviews
Masud Rahman
 
Predicting Usefulness of Code Review Comments using Textual Features and Deve...
Masud Rahman
 
STRICT: Information Retrieval Based Search Term Identification for Concept Lo...
Masud Rahman
 
An Insight into the Unresolved Questions at Stack Overflow
Masud Rahman
 
An Insight into the Pull Requests of GitHub
Masud Rahman
 
Recommending Insightful Comments for Source Code using Crowdsourced Knowledge
Masud Rahman
 
TextRank Based Search Term Identification for Software Change Tasks
Masud Rahman
 
CMPT-842-BRACK
Masud Rahman
 
RACK: Code Search in the IDE using Crowdsourced Knowledge
Masud Rahman
 
RACK: Automatic API Recommendation using Crowdsourced Knowledge
Masud Rahman
 
QUICKAR: Automatic Query Reformulation for Concept Location Using Crowdsource...
Masud Rahman
 
CORRECT: Code Reviewer Recommendation at GitHub for Vendasta Technologies
Masud Rahman
 
Ad

Recently uploaded (20)

PDF
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
PPTX
TEF & EA Bsc Nursing 5th sem.....BBBpptx
AneetaSharma15
 
PPTX
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PDF
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
PPTX
CDH. pptx
AneetaSharma15
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PDF
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PPTX
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
PDF
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
How to Apply for a Job From Odoo 18 Website
Celine George
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PDF
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
PPTX
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
TEF & EA Bsc Nursing 5th sem.....BBBpptx
AneetaSharma15
 
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
CDH. pptx
AneetaSharma15
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
How to Apply for a Job From Odoo 18 Website
Celine George
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 

SurfClipse-- An IDE based context-aware Meta Search Engine (Tool Demo)

  • 1. SURFCLIPSE: CONTEXT-AWARE META SEARCH IN THE IDE Mohammad Masudur Rahman, Chanhcal K. Roy Department of Computer Science University of Saskatchewan International Conference on Software Maintenance and Evolution (ICSME 2014), Victoria, Canada
  • 3. EXCEPTION DEBUGGING 3 Not a helpful message for understanding or solving the exception SoftwareResearchLab,UofS Web search!!
  • 4. SOLVING EXCEPTION (STEP I: QUERY SELECTION) 4 Selection of traditional search query Switching to web browser for web search SoftwareResearchLab,UofS This query may not be sufficient enough for most of the exceptions
  • 5. SOLVING EXCEPTION (STEP II: WEB SEARCH) 5  The browser does not know the context (i.e., details) of the exception.  Not much helpful ranking  Hundreds of search results  Forces the developer to switch back and forth between IDE and browser.  Trial and error in searching SoftwareResearchLab,UofS Switching is often distracting
  • 7. TECHNICAL DETAILS & PROGRAMMING CONTEXT OF AN EXCEPTION 7 Programming context (i.e., context code) Error message Stack trace 1 2 3 SoftwareResearchLab,UofS
  • 8. PROPOSED IDE-BASED META SEARCH MODEL Start Results Web page 8 SoftwareResearchLab,UofS
  • 9. PROPOSED IDE-BASED META SEARCH MODEL  Distinguished Features (5)  IDE-Based solution  Web search, search result and web browsing all from IDE  No context-switching needed  Meta search engine  Captures data from multiple search engines  Also applies custom ranking techniques  Context-Aware search  Uses stack traces information  Uses context-code (surroundings of exception locations)  Software As A Service (SAAS)  Search is provided as a web service, and can be leveraged by an IDE. http://srlabg53-2.usask.ca/wssurfclipse/ 9 SoftwareResearchLab,UofS
  • 10. PROPOSED IDE-BASED META SEARCH MODEL  Two Working Modes  Proactive Mode  Auto-detects the occurrence of an exception  Initiates search for exception by client itself  Aligned with Cordeiro et al. (RSSE’ 2012) & Ponzanelli et al. (ICSE 2013)  Interactive Mode  Developer starts search using context menu  Also facilitates keyword-based search  Aligned with traditional web search within the IDE 10 SoftwareResearchLab,UofS
  • 11. CONCLUSION & FUTURE WORK  SurfClipse – context-aware meta search engine  IDE-based complete web search solution  Outperforms two relevant existing approaches  More recall than three search engines with precision comparable to Google, the best performing engine.  SurfClipse – DOM-based element extraction & topic modeling.  Extensive parallelization to make result real time.  Adaptation for other languages support exception handling: C#, PHP, Javascript and so on. 11
  • 13. THANK YOU !! QUESTIONS? 13
  • 14. REFERENCES [1] J. Cordeiro, B. Antunes, and P. Gomes. Context-based Recommendation to Support Problem Solving in Software Development. In Proc. RSSE, pages 85 –89, June 2012. [2] L. Ponzanelli, A. Bacchelli, and M. Lanza. Seahawk: Stack Overflow in the IDE. In Proc. ICSE, pages 1295–1298, 2013 [3] J. Brandt, P. J. Guo, J. Lewenstein, M. Dontcheva, and S. R. Klemmer. Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code. In Proc. SIGCHI, pages 1589–1598, 2009. [4] S. Haiduc, J. Aponte, and A. Marcus. Supporting Program Comprehension with Source Code Summarization. In Proc. ICSE, pages 223–226, 2010 [5] M. M. Rahman, S. Yeasmin, and C. Roy. Towards a Context-Aware Meta Search Engine for IDE-Based Recommendation about Programming Errors and Exceptions. In Proc. CSMR-WCRE, pages 194–203, 2014. 14

Editor's Notes

  • #3: Programming exception is a very frequent and a common experience for software programmers or developers. Once an exception is encountered, the developer identifies the target source line that triggers the exception, and attempts to guess what makes the exception to be thrown. In order to dig deeper, the developer often debugs the source code.
  • #4: However, the debugging may not reveal the real cause behind the exception or may fail to provide any useful explanation which can be used for the solution of the exception. Thus at some point, the developer needs to look at web for solution or relevant information. Study shows that developers spend about 19% of their programming time in web surfing.
  • #5: One might be also interested to collect search query from the IDE. A traditional way for query selection is to copy the exception message, the first line of stack traces, and use it as the search query. - Sometimes, this query may return relevant results; however, there is a great chance that query would not be enough for most of the exceptions. - One may also attempt to develop a custom search query which often needs a deeper understanding about the cause or details of the exception, and it is also time-consuming. Moreover, the developer needs to switch to web browser from the IDE in order to perform the web search.
  • #6: In order to solve an exception using web search, they generally follow several steps. The first step is web search using search engines in the web browser. Here, they face several practical challenges: The web browser works in a different context and it does not know the detailed context of the encountered exceptions. Thus it returns results which might be inapplicable for the current programming problem and its context. For example, let us consider NullPointerException, this exception can trigger under hundreds of circumstances, and it is nearly impossible to return useful search results without knowing the detailed context of the exception. This search forces the developer to leave IDE and search in the browser, which is often distracting and time-consuming.
  • #7: SurfClipse: An IDE-based context-aware meta search engine.
  • #8: One of our important observations about traditional or ad-hoc approaches is that the technical details or the programming context of an encountered exception is not properly used each of which has great potential for problem solving. In this thesis, we exploit such information extensively, and attempt to help in different search related activities. This slide shows some examples. Once an unhandled exception encounters, IDE reports the stack trace. The first line of stack trace generally describes the technical error message. The programming code that triggers the exception is context, it is also called the context code. the technical details and the programming context of the errors and exceptions, and recommend different
  • #9: This is our proposed context-aware meta search model for IDE-based recommendation. It has tow modules: Client module (Eclipse plugin) Server module (Web service) Once the developer selects an exception from Error log or console view, the client module captures the error message, stack trace and the context code likely responsible for exception and sends to the computation (server) module. Upon getting the search request, the computation module sends the error message to multiple search engines. We use Google, Bing, Yahoo and the StackOverflow API to collect results and use them to develop the corpus. Once the corpus is developed, we apply our proposed metrics and algorithms to produce a result set that is relevant to the encountered exception. Then the results are sent to the client in the IDE panel. The developer can click each result and can browse page within their working environment.
  • #10: So, basically, we are providing four interesting and essential things in this model. A complete IDE-based web search solution Meta search from within the IDE Context-aware search SAAS based search solution, that can be leveraged by any IDE of any platform.
  • #11: The proposed model has two working modes–Proactive and Interactive. We design two modes to provide different needs of the developers and to meet demands of different problem solving situations. For example, the proactive mode provides recommendation without any effort. Once an exception occurs, the IDE detects the exception, develops the search query, collect other context details, and initiates the search. Once the results are available, the developer is notified of the results. In case of interactive mode, the developer can choose an error or exception encountered within the IDE, and can start the search through context-menu command. The IDE is responsible to extract the exception details and collect the results from the server. The model also provides a keyword-based interface where developer can perform keyword-based search. During keyword-based search, IDE also recommends a set of suitable keywords representing the current problem context (e.g., exception details).