SlideShare una empresa de Scribd logo
1 de 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 :)

Más contenido relacionado

Destacado

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
 

Destacado (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 a 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
 

Similar a 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
 

Último

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

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 :)