SlideShare ist ein Scribd-Unternehmen logo
1 von 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 :)

Weitere ähnliche Inhalte

Andere mochten auch

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...Marcelo Wallau
 
BWPenman Energy
BWPenman EnergyBWPenman Energy
BWPenman Energyguysloyan
 
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 ...Marcelo Wallau
 
Digital logic circuit
Digital logic circuitDigital logic circuit
Digital logic circuitAbdul Mutal
 

Andere mochten auch (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
 

Ähnlich wie Tools to Find Source Code on the Web

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 capabilitiesNikos Katirtzis
 
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...Nikos Katirtzis
 
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 ArtifactsPreetha Chatterjee
 
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...Tom Johnson
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Softwaredgarijo
 
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 ChapterTom Johnson
 
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 ChapterTom Johnson
 
You Don't Know SEO
You Don't Know SEOYou Don't Know SEO
You Don't Know SEOMichael King
 
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)Suyash Gupta
 
API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015Tom Johnson
 
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 PythonBrian Lyttle
 
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)Tom Johnson
 
RACK-Tool-ICSE2017
RACK-Tool-ICSE2017RACK-Tool-ICSE2017
RACK-Tool-ICSE2017Masud Rahman
 
Publishing strategies for API documentation
Publishing strategies for API documentationPublishing strategies for API documentation
Publishing strategies for API documentationTom Johnson
 
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 EveryoneNick Pentreath
 
‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud ‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud acijjournal
 
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...apidays
 
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 MarketBill Dubie
 

Ähnlich wie 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
 

Kürzlich hochgeladen

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Kürzlich hochgeladen (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.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 :)