Tips and Tools to Find Source
Code on the Web
Rosalva E. Gallardo-Valencia
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
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
Learn unfamiliar concepts
Remember syntactic program language
Reuse source code
Common Reasons to Look for
Source Code on the Web
Given test cases: CodeGenie Plug-in
API usage: SAS
Given a method signature: Koder’s Plug-in
Given keywords: Koders, Google Code Search,
API usage in OSS Projects: Exemplar
Demo of Tools
Goal: Use Test Cases (TC) to automate code search
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
Eclipse Plug-in available:
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
More info and source code:
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:
Motivation: Find Examples given a Method
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
Limitations: It does not take much advantage of source code
Google Code Search: http://www.google.com/codesearch
Motivation: Find Examples given Keywords
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 sourceﬁ
code of applications.
Limitations: Only for Java projects in SourceForge.
Motivation: Find Examples of API Usage in