Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,565 views

Published on

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

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

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 />

×