SlideShare a Scribd company logo
1 of 12
Tips and Tools to Find Source
Code on the Web
Rosalva E. Gallardo-Valencia
rgallard@uci.edu
University of California, Irvine
SoCal Code Camp 2010 - University of Southern California
 The process of searching the Web for source
code to help solve a software development
problem.
 There is a great amount of source code
available on the Web. How can we reuse it?
 Most of us use Google to look for source code.
However, there are other tools that can help us
look specifically for source code.
Source Code Search on the
Web
 Find examples
 Learn unfamiliar concepts
 Remember syntactic program language
 Get ideas
 Fix bugs
 Reuse source code
Common Reasons to Look for
Source Code on the Web
 Find examples
 Given test cases: CodeGenie Plug-in
 API usage: SAS
 Given a method signature: Koder’s Plug-in
 Given keywords: Koders, Google Code Search,
Krugle, Sourcerer
 API usage in OSS Projects: Exemplar
Demo of Tools
 Goal: Use Test Cases (TC) to automate code search
and reuse.
 Scenario: Joe is looking for examples of how to
implement a conversion from ordinal numbers between
1-1000 to roman numbers.
 How does it work?: TC define behavior of desired
functionality. TC test the matching results for suitability
in the local context.
 Limitations: Includes Java source code taken from
Sourcerer
 Eclipse Plug-in available:
http://sourcerer.ics.uci.edu/codegenie/#codegenie
Motivation: Find Examples given Test Cases
Tool: CodeGenie (Eclipse Plug-In)
 Goal: Provide a search interface to find API usage
examples in large code repositories.
 Scenario: Joe wants to know what APIs use to open a
url in a browser in Eclipse and also see usage
examples. Query: open url in browser
 How does it work?: SAS uses a code index that
includes a field for each code entity that contains terms
extracted from other entities that are similar to it.
 Limitations: Current database contains code for
Eclipse Plug-Ins
 URL: http://nile.ics.uci.edu:8984/sas/Sourcerer_cs.html
 More info and source code:
http://github.com/sourcerer/Sourcerer/wiki/sas
Motivation: Find Examples of API Usage
Tool: SAS (Sourcerer API Search)
 Goal: This plug-in will enable you to search any code that you
have indexed using Black Duck Code Sight in addition to billions of
lines of open source code published on Koders.com.
 Scenario: Joe wants examples of how to implement the
calculation of MD5. Method name: CalculateMD5
 How does it work?: It uses the method signature as input and
uses the SmartSearchTM technology.
 Limitations: It does not allow test cases as input.
 Eclipse Plug-in available:
http://corp.koders.com/downloads/plugins#IDE
Motivation: Find Examples given a Method
Signature
Tool: Koders (Eclipse Plug-In)
 Goal: Help developers to quickly find the best reusable open
source code, methods, examples, algorithms and more
 Scenario: Joe is looking for a Java class that implements actions
with a DB. Query: database connection java
 How does it work?: It finds occurrences of keywords in source
code.
 Limitations: It does not take much advantage of source code
structure
 URL: http://www.koders.com/
 Similar tools:
 Google Code Search: http://www.google.com/codesearch
 S6: http://conifer.cs.brown.edu:8180/S6Search/s6search.html
 Krugle: http://www.krugle.com/
 Sourcerer:
http://sourcerer.ics.uci.edu/sourcerer/search/index.jsp
Motivation: Find Examples given Keywords
Tool: Koders
 Goal: Exemplar augments standard code search to include JDK API
documentation of widely used libraries to find highly relevant software
projects from large archives of applications.
 Scenario: Joe is looking for a Java class that implements actions with a
DB. Query: database connection
 How does it work?: Exemplar takes natural-language query that
contains high-level concepts (e.g., MIME, data sets) as input. It matches
keywords from queries to words in help documentation for API calls in
addition to nding keyword matches in the descriptions and the sourcefi
code of applications.
 Limitations: Only for Java projects in SourceForge.
 URL: http://www.xemplar.org/
Motivation: Find Examples of API Usage in
OSS Projects
Tool: Exemplar
Questions?
Thanks
Questions?
Which are the common scenarios in your
projects?
Which tools do you use?
Do you have any tips to look for source code on
the Web?
Help Participating in Survey!!
Please, complete this survey about Source Code
Search on the Web: http://bit.ly/dkguHX
I will be around asking you to complete it :)

More Related Content

Viewers also liked

BWPenman Energy
BWPenman EnergyBWPenman Energy
BWPenman Energy
guysloyan
 

Viewers also liked (8)

Overview on feral hog management in Brazil after three years of control regul...
Overview on feral hog management in Brazil after three years of control regul...Overview on feral hog management in Brazil after three years of control regul...
Overview on feral hog management in Brazil after three years of control regul...
 
BROCHURE UPDATED RECENTLY
BROCHURE UPDATED RECENTLYBROCHURE UPDATED RECENTLY
BROCHURE UPDATED RECENTLY
 
BWPenman Energy
BWPenman EnergyBWPenman Energy
BWPenman Energy
 
Rosa et al 2016 vpc - an overview of feral hog management in Brazil after ...
Rosa et al 2016    vpc - an overview of feral hog management in Brazil after ...Rosa et al 2016    vpc - an overview of feral hog management in Brazil after ...
Rosa et al 2016 vpc - an overview of feral hog management in Brazil after ...
 
Joseph fourier
Joseph fourierJoseph fourier
Joseph fourier
 
Digital logic circuit
Digital logic circuitDigital logic circuit
Digital logic circuit
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Vendajes vendajes
Vendajes   vendajesVendajes   vendajes
Vendajes vendajes
 

Similar to Tools to Find Source Code on the Web

Similar to Tools to Find Source Code on the Web (20)

Improving your team’s source code searching capabilities
Improving your team’s source code searching capabilitiesImproving your team’s source code searching capabilities
Improving your team’s source code searching capabilities
 
Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...
 
Google code search
Google code searchGoogle code search
Google code search
 
Walter api
Walter apiWalter api
Walter api
 
Mining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software ArtifactsMining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software Artifacts
 
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 
API Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC ChapterAPI Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC Chapter
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC Chapter
 
You Don't Know SEO
You Don't Know SEOYou Don't Know SEO
You Don't Know SEO
 
Web Techology and google code sh (2014_10_10 08_57_30 utc)
Web Techology and google code sh (2014_10_10 08_57_30 utc)Web Techology and google code sh (2014_10_10 08_57_30 utc)
Web Techology and google code sh (2014_10_10 08_57_30 utc)
 
API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
RACK-Tool-ICSE2017
RACK-Tool-ICSE2017RACK-Tool-ICSE2017
RACK-Tool-ICSE2017
 
Publishing strategies for API documentation
Publishing strategies for API documentationPublishing strategies for API documentation
Publishing strategies for API documentation
 
IBM Developer Model Asset eXchange - Deep Learning for Everyone
IBM Developer Model Asset eXchange - Deep Learning for EveryoneIBM Developer Model Asset eXchange - Deep Learning for Everyone
IBM Developer Model Asset eXchange - Deep Learning for Everyone
 
‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud ‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud
 
apidays LIVE Singapore - Your API documentation powered by AI by Hervé Vu Rou...
apidays LIVE Singapore - Your API documentation powered by AI by Hervé Vu Rou...apidays LIVE Singapore - Your API documentation powered by AI by Hervé Vu Rou...
apidays LIVE Singapore - Your API documentation powered by AI by Hervé Vu Rou...
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
 

Recently uploaded

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Recently uploaded (20)

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 

Tools to Find Source Code on the Web

  • 1. Tips and Tools to Find Source Code on the Web Rosalva E. Gallardo-Valencia rgallard@uci.edu University of California, Irvine SoCal Code Camp 2010 - University of Southern California
  • 2.  The process of searching the Web for source code to help solve a software development problem.  There is a great amount of source code available on the Web. How can we reuse it?  Most of us use Google to look for source code. However, there are other tools that can help us look specifically for source code. Source Code Search on the Web
  • 3.  Find examples  Learn unfamiliar concepts  Remember syntactic program language  Get ideas  Fix bugs  Reuse source code Common Reasons to Look for Source Code on the Web
  • 4.  Find examples  Given test cases: CodeGenie Plug-in  API usage: SAS  Given a method signature: Koder’s Plug-in  Given keywords: Koders, Google Code Search, Krugle, Sourcerer  API usage in OSS Projects: Exemplar Demo of Tools
  • 5.  Goal: Use Test Cases (TC) to automate code search and reuse.  Scenario: Joe is looking for examples of how to implement a conversion from ordinal numbers between 1-1000 to roman numbers.  How does it work?: TC define behavior of desired functionality. TC test the matching results for suitability in the local context.  Limitations: Includes Java source code taken from Sourcerer  Eclipse Plug-in available: http://sourcerer.ics.uci.edu/codegenie/#codegenie Motivation: Find Examples given Test Cases Tool: CodeGenie (Eclipse Plug-In)
  • 6.  Goal: Provide a search interface to find API usage examples in large code repositories.  Scenario: Joe wants to know what APIs use to open a url in a browser in Eclipse and also see usage examples. Query: open url in browser  How does it work?: SAS uses a code index that includes a field for each code entity that contains terms extracted from other entities that are similar to it.  Limitations: Current database contains code for Eclipse Plug-Ins  URL: http://nile.ics.uci.edu:8984/sas/Sourcerer_cs.html  More info and source code: http://github.com/sourcerer/Sourcerer/wiki/sas Motivation: Find Examples of API Usage Tool: SAS (Sourcerer API Search)
  • 7.  Goal: This plug-in will enable you to search any code that you have indexed using Black Duck Code Sight in addition to billions of lines of open source code published on Koders.com.  Scenario: Joe wants examples of how to implement the calculation of MD5. Method name: CalculateMD5  How does it work?: It uses the method signature as input and uses the SmartSearchTM technology.  Limitations: It does not allow test cases as input.  Eclipse Plug-in available: http://corp.koders.com/downloads/plugins#IDE Motivation: Find Examples given a Method Signature Tool: Koders (Eclipse Plug-In)
  • 8.  Goal: Help developers to quickly find the best reusable open source code, methods, examples, algorithms and more  Scenario: Joe is looking for a Java class that implements actions with a DB. Query: database connection java  How does it work?: It finds occurrences of keywords in source code.  Limitations: It does not take much advantage of source code structure  URL: http://www.koders.com/  Similar tools:  Google Code Search: http://www.google.com/codesearch  S6: http://conifer.cs.brown.edu:8180/S6Search/s6search.html  Krugle: http://www.krugle.com/  Sourcerer: http://sourcerer.ics.uci.edu/sourcerer/search/index.jsp Motivation: Find Examples given Keywords Tool: Koders
  • 9.  Goal: Exemplar augments standard code search to include JDK API documentation of widely used libraries to find highly relevant software projects from large archives of applications.  Scenario: Joe is looking for a Java class that implements actions with a DB. Query: database connection  How does it work?: Exemplar takes natural-language query that contains high-level concepts (e.g., MIME, data sets) as input. It matches keywords from queries to words in help documentation for API calls in addition to nding keyword matches in the descriptions and the sourcefi code of applications.  Limitations: Only for Java projects in SourceForge.  URL: http://www.xemplar.org/ Motivation: Find Examples of API Usage in OSS Projects Tool: Exemplar
  • 11. Questions? Which are the common scenarios in your projects? Which tools do you use? Do you have any tips to look for source code on the Web?
  • 12. Help Participating in Survey!! Please, complete this survey about Source Code Search on the Web: http://bit.ly/dkguHX I will be around asking you to complete it :)