SlideShare a Scribd company logo
1 of 13
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

Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
Solit 2012, Salesforce.com: 10 причин стать "облачным" программистом, Бондаре...
solit
 

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)
 
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
 
TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
 

Recently uploaded

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
Safe Software
 
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
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

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