SlideShare a Scribd company logo
1 of 15
The End-to-End Use of Source Code Example: An Exploratory Study Rylan Cottrell, Robert J. Walker, Jörg Denzinger University of Calgary Reid Holmes University of Washington
End-to-End Reuse Process Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
End-to-End Reuse Process [Mcilroy 68] [Fischer, et al. 91] [Dusink & Katwijk 95] [Frakes & Fox 96] Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
Example
Example  Interfaces Comments First 10 results return: 4 Interfaces. 5Implementations. 	2 were specific to a particular library. 	3 had dependencies on other classes within its system. 1Test (dependent on specific system). Only 21,690 more to go!
Example  3 out of 10 were possibly relevant. Worst case, developer could have to reuse roughly 1882 lines of code.
End-to-End Reuse Process Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
No End-to-End Tools Exist Locate Integrate Select Developer’s Context Example Repository Example Source Code Google Code Search, XFinder, XSnippet, Prospector Jigsaw PARSEWeb, Strathcona
Research Question Is pipelining existing tools enough?
Case Studies Four scenarios were chosen from the literature (PARSEWeb, Strathcona, XFinder, and XSnippet). Located examples using Strathcona and Google Code Search. Analyzed the first 5 returned results [Starke & Sillito 09]. Integrated potentially relevant examples, manually and with the Jigsaw tool.
Lessons Learned Location Results were ordered with respect to the query and not the end-to-end task. Query does not capture the developer’s reuse context.  Selection Determining example relevant is difficult.
Lessons Learned Cont’d Integration Manual. Identifying the dependencies the code example might have is non-trivial.  Jigsaw. Configuration time often took more time than the actual integration.
Moving Forward Repositories become out of date. Solution: Maintainers need to not only keep source code up-to-date, but also remove out-of-date source code. Queries need to capture the developer’s context. Solution:  Syntax and semantics should be considered. Example ordering is often ineffective. Solution: Ordered relative to their utility to the developer.
Moving Forward Cont’d Attempting multiple integrations is tedious. Solution: Integration phase should be better supported. Integration task are complex. Solution: Developer secondary goals should be considered.
Summary End-to-end reuse approach is not supported by any single tool.  Current approaches using a collection of tools can inhibit the likelihood of successfully utilizing a source code example.

More Related Content

What's hot

Measuring the Combinatorial Coverage of Software in Real Time
Measuring the Combinatorial Coverage of Software in Real  TimeMeasuring the Combinatorial Coverage of Software in Real  Time
Measuring the Combinatorial Coverage of Software in Real Time
Zachary Ratliff
 
Automated
AutomatedAutomated
Automated
ingveb
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Raffi Khatchadourian
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
Roopesh Jhurani
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
catherinewall
 

What's hot (15)

Applicative evaluation of bilingual terminologies
Applicative evaluation of bilingual terminologiesApplicative evaluation of bilingual terminologies
Applicative evaluation of bilingual terminologies
 
Capture A Common Vocabulary
Capture A Common VocabularyCapture A Common Vocabulary
Capture A Common Vocabulary
 
Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...
 
Measuring the Combinatorial Coverage of Software in Real Time
Measuring the Combinatorial Coverage of Software in Real  TimeMeasuring the Combinatorial Coverage of Software in Real  Time
Measuring the Combinatorial Coverage of Software in Real Time
 
Automated
AutomatedAutomated
Automated
 
Resume1
Resume1Resume1
Resume1
 
Priti-3
Priti-3Priti-3
Priti-3
 
Model Driven Method Engineering. A Supporting Infrastructure
Model Driven Method Engineering. A Supporting InfrastructureModel Driven Method Engineering. A Supporting Infrastructure
Model Driven Method Engineering. A Supporting Infrastructure
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
 
Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 

Similar to The End-to-End Use of Source Code Example: An Exploratory Study ICSM'09

12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
CSEC5
 
Code Review
Code ReviewCode Review
Code Review
Ravi Raj
 

Similar to The End-to-End Use of Source Code Example: An Exploratory Study ICSM'09 (20)

Clean Code V2
Clean Code V2Clean Code V2
Clean Code V2
 
Code quality
Code quality Code quality
Code quality
 
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repository
 
Refactoring, Therapeutic Attitude to Programming.
Refactoring, Therapeutic Attitude to Programming.Refactoring, Therapeutic Attitude to Programming.
Refactoring, Therapeutic Attitude to Programming.
 
Writing code for people
Writing code for peopleWriting code for people
Writing code for people
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Top tips from what we've learned from our 10 years experience
Top tips from what we've learned from our 10 years experienceTop tips from what we've learned from our 10 years experience
Top tips from what we've learned from our 10 years experience
 
Coding standards
Coding standardsCoding standards
Coding standards
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
 
Capella Days 2021 | How much time does modeling take? Experiences from modeli...
Capella Days 2021 | How much time does modeling take? Experiences from modeli...Capella Days 2021 | How much time does modeling take? Experiences from modeli...
Capella Days 2021 | How much time does modeling take? Experiences from modeli...
 
The recommendations system for source code components retrieval
The recommendations system for source code components retrievalThe recommendations system for source code components retrieval
The recommendations system for source code components retrieval
 
A Case Study Of A Reusable Component Collection
A Case Study Of A Reusable Component CollectionA Case Study Of A Reusable Component Collection
A Case Study Of A Reusable Component Collection
 
The challenge of putting software sustainability research into practice
The challenge of putting software sustainability research into practiceThe challenge of putting software sustainability research into practice
The challenge of putting software sustainability research into practice
 
Why We Refactor? Confessions of GitHub Contributors
Why We Refactor? Confessions of GitHub ContributorsWhy We Refactor? Confessions of GitHub Contributors
Why We Refactor? Confessions of GitHub Contributors
 
Code Review
Code ReviewCode Review
Code Review
 
Coding standards
Coding standardsCoding standards
Coding standards
 
Reduce Reuse Refactor
Reduce Reuse RefactorReduce Reuse Refactor
Reduce Reuse Refactor
 
Refactoring
RefactoringRefactoring
Refactoring
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and Adoption
 

Recently uploaded

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
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

The End-to-End Use of Source Code Example: An Exploratory Study ICSM'09

  • 1. The End-to-End Use of Source Code Example: An Exploratory Study Rylan Cottrell, Robert J. Walker, Jörg Denzinger University of Calgary Reid Holmes University of Washington
  • 2. End-to-End Reuse Process Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
  • 3. End-to-End Reuse Process [Mcilroy 68] [Fischer, et al. 91] [Dusink & Katwijk 95] [Frakes & Fox 96] Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
  • 5. Example Interfaces Comments First 10 results return: 4 Interfaces. 5Implementations. 2 were specific to a particular library. 3 had dependencies on other classes within its system. 1Test (dependent on specific system). Only 21,690 more to go!
  • 6. Example 3 out of 10 were possibly relevant. Worst case, developer could have to reuse roughly 1882 lines of code.
  • 7. End-to-End Reuse Process Locate Integrate Select Use example Developer’s Context Example Repository Example Source Code
  • 8. No End-to-End Tools Exist Locate Integrate Select Developer’s Context Example Repository Example Source Code Google Code Search, XFinder, XSnippet, Prospector Jigsaw PARSEWeb, Strathcona
  • 9. Research Question Is pipelining existing tools enough?
  • 10. Case Studies Four scenarios were chosen from the literature (PARSEWeb, Strathcona, XFinder, and XSnippet). Located examples using Strathcona and Google Code Search. Analyzed the first 5 returned results [Starke & Sillito 09]. Integrated potentially relevant examples, manually and with the Jigsaw tool.
  • 11. Lessons Learned Location Results were ordered with respect to the query and not the end-to-end task. Query does not capture the developer’s reuse context. Selection Determining example relevant is difficult.
  • 12. Lessons Learned Cont’d Integration Manual. Identifying the dependencies the code example might have is non-trivial. Jigsaw. Configuration time often took more time than the actual integration.
  • 13. Moving Forward Repositories become out of date. Solution: Maintainers need to not only keep source code up-to-date, but also remove out-of-date source code. Queries need to capture the developer’s context. Solution: Syntax and semantics should be considered. Example ordering is often ineffective. Solution: Ordered relative to their utility to the developer.
  • 14. Moving Forward Cont’d Attempting multiple integrations is tedious. Solution: Integration phase should be better supported. Integration task are complex. Solution: Developer secondary goals should be considered.
  • 15. Summary End-to-end reuse approach is not supported by any single tool. Current approaches using a collection of tools can inhibit the likelihood of successfully utilizing a source code example.

Editor's Notes

  1. We have access to a vast amount of source code
  2. W
  3. W
  4. Developers can quickly investigate potentially relevant examples.Investigate more examples.Discover better functionalityIdentify issues that are not easily apparent.
  5. Developers can quickly investigate potentially relevant examples.Investigate more examples.Discover better functionalityIdentify issues that are not easily apparent.
  6. Answer research questions
  7. 3. (not necessarily to how well they fulfill the original match)5. (like reducing code duplication and eliminating dangling references)
  8. 3. (not necessarily to how well they fulfill the original match)5. (like reducing code duplication and eliminating dangling references)