SlideShare a Scribd company logo
Sando
An Extensible Local Code Search Framework

          David Shepherd
          Kostadin Damevski
          Bartosz Ropski
          Thomas Fritz
Motivation: Search Support Needed
• 40/48 maintenance
  tasks begin with search
                                 [ko et al. ‘06]

• “Finding initial focus
  points” as 1 of 4
  categories                  [sillito et al. ‘06]



• 9/12 searched in first 12
  steps                       [shepherd et al. ‘12]
<Video of searching…>




Some people, when confronted with a problem, think "I know, I'll use
regular expressions." Now they have two problems. -Jamie Zawinski
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
Demo
Searching with Sando
Motivation: Search Platform
                                               index
splitter




                                               C# parser
document
 creation




Need for open source implementation(s)…
   Let’s make our implementations available to other
                     researchers!
Sando: Extensible Framework




  Investigate your favorite sub-task
Reuse our field-tested supporting code
Sando: Extensible Framework
                   Search a new
                     language
                                    Try a better
                                      splitter


   Rank search
results according                    Change query
 to any arbitrary                   weights or search
     scheme                              terms




       Investigate your favorite sub-task
     Reuse our field-tested supporting code
Demo
Expanding 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

More Related Content

Similar to Sando: An Extensible Local Code Search Framework

Formation au logiciel NVivo d'analyse de données qualitatives
Formation au logiciel NVivo d'analyse de données qualitativesFormation au logiciel NVivo d'analyse de données qualitatives
Formation au logiciel NVivo d'analyse de données qualitatives
valéry ridde
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
Michal Juhas
 
Dealing with challenges (technical)
Dealing with challenges (technical)Dealing with challenges (technical)
Dealing with challenges (technical)
European Innovation Academy
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
Nacho Cougil
 
Coding principles
Coding principles Coding principles
Coding principles
DevAdnani
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
Ptidej Team
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Design Systems at Scale - Design Systems London
Design Systems at Scale - Design Systems LondonDesign Systems at Scale - Design Systems London
Design Systems at Scale - Design Systems London
Sarah Federman
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
NETUserGroupBern
 
10 Job Interview Questions for Hiring NodeJS Developers
10 Job Interview Questions for Hiring NodeJS Developers10 Job Interview Questions for Hiring NodeJS Developers
10 Job Interview Questions for Hiring NodeJS Developers
ThinkTanker Technosoft PVT LTD
 
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...solit
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
ssusercaf6c1
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Nacho Cougil
 
The Technical Co-Founders Handbook
The Technical Co-Founders HandbookThe Technical Co-Founders Handbook
The Technical Co-Founders Handbook
Joseph K. Ziegler
 
Racefix
RacefixRacefix
Racefix
lorandszakacs
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
MongoDB
 
DeepPavlov 2019
DeepPavlov 2019DeepPavlov 2019
DeepPavlov 2019
Mikhail Burtsev
 
The OSGeo Foundation: Professionally Leveraging Open Source Geospatial
The OSGeo Foundation: Professionally Leveraging Open Source GeospatialThe OSGeo Foundation: Professionally Leveraging Open Source Geospatial
The OSGeo Foundation: Professionally Leveraging Open Source Geospatial
Arnulf Christl
 
Open-Source Software Panel - IP Track
Open-Source Software Panel - IP TrackOpen-Source Software Panel - IP Track
Open-Source Software Panel - IP Track
Aaron G. Sauers, CLP
 

Similar to Sando: An Extensible Local Code Search Framework (20)

Formation au logiciel NVivo d'analyse de données qualitatives
Formation au logiciel NVivo d'analyse de données qualitativesFormation au logiciel NVivo d'analyse de données qualitatives
Formation au logiciel NVivo d'analyse de données qualitatives
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Dealing with challenges (technical)
Dealing with challenges (technical)Dealing with challenges (technical)
Dealing with challenges (technical)
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
 
Coding principles
Coding principles Coding principles
Coding principles
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
ASE01.ppt
ASE01.pptASE01.ppt
ASE01.ppt
 
Design Systems at Scale - Design Systems London
Design Systems at Scale - Design Systems LondonDesign Systems at Scale - Design Systems London
Design Systems at Scale - Design Systems London
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
10 Job Interview Questions for Hiring NodeJS Developers
10 Job Interview Questions for Hiring NodeJS Developers10 Job Interview Questions for Hiring NodeJS Developers
10 Job Interview Questions for Hiring NodeJS Developers
 
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
The Technical Co-Founders Handbook
The Technical Co-Founders HandbookThe Technical Co-Founders Handbook
The Technical Co-Founders Handbook
 
Racefix
RacefixRacefix
Racefix
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
 
DeepPavlov 2019
DeepPavlov 2019DeepPavlov 2019
DeepPavlov 2019
 
The OSGeo Foundation: Professionally Leveraging Open Source Geospatial
The OSGeo Foundation: Professionally Leveraging Open Source GeospatialThe OSGeo Foundation: Professionally Leveraging Open Source Geospatial
The OSGeo Foundation: Professionally Leveraging Open Source Geospatial
 
Open-Source Software Panel - IP Track
Open-Source Software Panel - IP TrackOpen-Source Software Panel - IP Track
Open-Source Software Panel - IP Track
 

Recently uploaded

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Sando: An Extensible Local Code Search Framework

  • 1. Sando An Extensible Local Code Search Framework David Shepherd Kostadin Damevski Bartosz Ropski Thomas Fritz
  • 2. Motivation: Search Support Needed • 40/48 maintenance tasks begin with search [ko et al. ‘06] • “Finding initial focus points” as 1 of 4 categories [sillito et al. ‘06] • 9/12 searched in first 12 steps [shepherd et al. ‘12]
  • 3. <Video of searching…> Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. -Jamie Zawinski
  • 4. Motivation: Better Search Support Needed • Multi-word queries difficult • Ranking non-existent • Fails on inexact matches
  • 5. 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
  • 7. Motivation: Search Platform index splitter C# parser document creation Need for open source implementation(s)… Let’s make our implementations available to other researchers!
  • 8. Sando: Extensible Framework Investigate your favorite sub-task Reuse our field-tested supporting code
  • 9. Sando: Extensible Framework Search a new language Try a better splitter Rank search results according Change query to any arbitrary weights or search scheme terms Investigate your favorite sub-task Reuse our field-tested supporting code
  • 11. 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
  • 12.
  • 13. What About TraceLab? Complementary! TraceLab focuses on lab studies, Sando on user studies. Screen Capture 11/8/2012

Editor's Notes

  1. Transition: regexs failRe-order the points here
  2. Re-ranker?
  3. Make the final point broader