Sando David Shepherd Kostadin Damevski Bartosz Ropski Thomas Fritz An Extensible Local Code Search Framework
Dec 18, 2014
Sando
David ShepherdKostadin DamevskiBartosz RopskiThomas Fritz
An Extensible Local Code Search Framework
Motivation: Search Support Needed
• 40/48 maintenance tasks begin with search
• “Finding initial focus points” as 1 of 4 categories
• 9/12 searched in first 12 steps
[ko et al. ‘06]
[shepherd et al. ‘12]
[sillito et al. ‘06]
Some people, when confronted with a problem, think "I know, I'll useregular expressions." Now they have two problems. -Jamie Zawinski
<Video of searching…>
Motivation: Better Search Support Needed
• Multi-word queries difficult
• Ranking non-existent
• Fails on inexact matches
Our Answer: Sando Search Tool
• Handles Multi-word queries
• Ranks results
• Handles inexact matches
We leveraged state-of-the-art research to create Sando, a local code search tool for Visual Studio
DemoSearching with Sando
Motivation: Search Platform
Need for open source implementation(s)…
Let’s make our implementations available to other researchers!
index
C# parserdocumentcreation
splitter
Sando: Extensible Framework
Investigate your favorite sub-taskReuse our field-tested supporting code
Sando: Extensible Framework
Search a new language
Try a better splitter
Change query weights or search
terms
Rank search results according to any arbitrary
scheme
Investigate your favorite sub-taskReuse our field-tested supporting code
DemoExpanding Queries
Conclusion
• Sando is a free, open source code search tool
• Sando not a regex search, avoiding many pitfalls
• Iteratively refine ideas on real code, real users with Sando
What About TraceLab?
Complementary! TraceLab focuses on lab studies, Sando on user studies.
Screen Capture 11/8/2012