CodeGenie: a Tool for Test-Driven Source Code Search
Visitor: Otavio Lemos, UC Irvine/SICS
Students: Sushil Bajracharya UC Irvine/ISR, Joel Ossher, UC Irvine/ISR
Advisor: Cristina Videira Lopes, UC Irvine/ISR
Abstract: The large-scale availability of free/open source
software on the internet combined with the
advent of online code search engines has opened
up new opportunities for code search and reuse.
However, the process of formulating queries,
filtering the results, and finally modifying and
integrating them into the developer's workspace
is still painstakingly laborious. We present
CodeGenie, a plugin for the Eclipse IDE, which
makes this task a snap. CodeGenie introduces a
novel approach towards code search and reuse
called 'Test-Driven Source Code Search'.
Similar to Test-driven Development, developers
start with failing test cases designed to test
implementations that they expect to find by
searching for them on the internet. From these
test cases, CodeGenie automatically formulates
appropriate queries using smart keyword and
code-structure extraction. The queries are then
sent to a source code search engine called
Sourcerer that we have developed. Sourcerer
returns multiple results, each containing a
compilable slice of code that can be composed
with the current project. Codegenie allows any
of these slices to be easily merged and unmerged from the existing project where the test cases reside.
Codegenie also supports different
testing techniques, such as code coverage, to
help the developer in choosing an implementation.
Bio: Otavio Lemos
Otávio Augusto Lazzarini Lemos received his BS
in computer science from the Federal University
of Mato Grosso do Sul (DCE/UFMS), Brazil in
2002, and his MS degree in computer science and
mathematical computing from the University of
São Paulo at São Carlos (ICMC/USP), Brazil in
2005. From August/2005 until December/2005 he
was a professor from the Methodist University of
São Paulo at São Bernardo (UMESP), Brazil. He is
a Phd candidate in computer science and
computing mathematics at ICMC/USP, currently
visiting UC Irvine as a research scholar. His
research interests are in the topics of software
testing and software development technologies.
Besides his research, he enjoys playing jazz
guitar, swimming and playing soccer.
Sushil Bajracharya
Sushil Bajracharya is a graduate student of Informatics in the Donald Bren
School of ICS at UCI. He enjoys working with his advisor Cristina Lopes on
interesting problems in designing languages, tools and software, and,
contemplating the implications they have on software engineering at large. He
actively collaborates with his co-conspirators in the mondego group to make
research as much fun as possible.
Sushil spent all his life in the exotic
Kathmandu valley in Nepal before coming
to UCI. In past, he has worked as a teacher, software developer and a hobbyist
designer for music album covers. He holds an undergraduate degree in computer
engineering from Kathmandu University and a MS degree in Informatics from UC
Irvine. Besides his research he enjoys music, cooking and fine Belgium beers.
Joel Ossher
Joel Ossher is currently a graduate student
studying Informatics at the Donald Bren School
of ICS at UCI. When not taking classes, he
enjoys working with his advisor Cristina Lopes
on problems relating to programming language
tools and their implications for software
engineering.
Although born on the west coast, Joel grew up
and lived in New York before coming out to UC
Irvine. In 2006 he received a BA in Computer
Science and Psychology from Cornell University
in chilly Ithaca. When not working, he amuses
himself by cooking, bowling and wasting time on
the internet.
|