The End-to-End Use of Source Code Example: An Exploratory Study<br />Rylan Cottrell, Robert J. Walker, Jörg Denzinger<br /...
End-to-End Reuse Process<br />Locate<br />Integrate<br />Select<br />Use example<br />Developer’s Context<br />Example<br ...
End-to-End Reuse Process<br />[Mcilroy 68]<br />[Fischer, et al. 91]<br />[Dusink & Katwijk 95]<br />[Frakes & Fox 96]<br ...
Example<br />
Example <br />Interfaces<br />Comments<br />First 10 results return:<br />4 Interfaces.<br />5Implementations.<br />	2 wer...
Example <br />3 out of 10 were possibly relevant.<br />Worst case, developer could have to reuse roughly 1882 lines of cod...
End-to-End Reuse Process<br />Locate<br />Integrate<br />Select<br />Use example<br />Developer’s Context<br />Example<br ...
No End-to-End Tools Exist<br />Locate<br />Integrate<br />Select<br />Developer’s Context<br />Example<br />Repository<br ...
Research Question<br />Is pipelining existing tools enough? <br />
Case Studies<br />Four scenarios were chosen from the literature (PARSEWeb, Strathcona, XFinder, and XSnippet).<br />Locat...
Lessons Learned<br />Location<br />Results were ordered with respect to the query and not the end-to-end task.<br />Query ...
Lessons Learned Cont’d<br />Integration<br />Manual. Identifying the dependencies the code example might have is non-trivi...
Moving Forward<br />Repositories become out of date.<br />Solution: Maintainers need to not only keep source code up-to-da...
Moving Forward Cont’d<br />Attempting multiple integrations is tedious.<br />Solution: Integration phase should be better ...
Summary<br />End-to-end reuse approach is not supported by any single tool. <br />Current approaches using a collection of...
Upcoming SlideShare
Loading in …5
×

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

1,447 views

Published on

Exploratory study on the currently available tools in supporting developers performing the end-to-end reuse process.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,447
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • We have access to a vast amount of source code
  • W
  • W
  • Developers can quickly investigate potentially relevant examples.Investigate more examples.Discover better functionalityIdentify issues that are not easily apparent.
  • Developers can quickly investigate potentially relevant examples.Investigate more examples.Discover better functionalityIdentify issues that are not easily apparent.
  • Answer research questions
  • 3. (not necessarily to how well they fulfill the original match)5. (like reducing code duplication and eliminating dangling references)
  • 3. (not necessarily to how well they fulfill the original match)5. (like reducing code duplication and eliminating dangling references)
  • The End-to-End Use of Source Code Example: An Exploratory Study ICSM'09

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

    ×