SlideShare uma empresa Scribd logo
1 de 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.

Mais conteúdo relacionado

Mais procurados

Applicative evaluation of bilingual terminologies
Applicative evaluation of bilingual terminologiesApplicative evaluation of bilingual terminologies
Applicative evaluation of bilingual terminologiesEstelle Delpech
 
Capture A Common Vocabulary
Capture A Common VocabularyCapture A Common Vocabulary
Capture A Common VocabularyLeslie Munday
 
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-...Vrije Universiteit Brussel
 
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 TimeZachary Ratliff
 
Automated
AutomatedAutomated
Automatedingveb
 
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 InfrastructureMario Cervera
 
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 DevelopmentRoopesh Jhurani
 
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 2014dreusser
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTscatherinewall
 
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 Nakul Sharma
 
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 surveyNakul Sharma
 

Mais procurados (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
 

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

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...University of Hawai‘i at Mānoa
 
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 Repositorymustafa sarac
 
Refactoring, Therapeutic Attitude to Programming.
Refactoring, Therapeutic Attitude to Programming.Refactoring, Therapeutic Attitude to Programming.
Refactoring, Therapeutic Attitude to Programming.Amin Shahnazari
 
Writing code for people
Writing code for peopleWriting code for people
Writing code for peopleAlexey Ivanov
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
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 experienceJoomlaDay Australia
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.pptCSEC5
 
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...Obeo
 
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 retrievalAYESHA JAVED
 
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 CollectionJennifer Strong
 
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 practiceGreen Software Development
 
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 ContributorsNikolaos Tsantalis
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
Coding standards
Coding standardsCoding standards
Coding standardsMimoh Ojha
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionPyxis Technologies
 

Semelhante a 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
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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.

Notas do Editor

  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)