Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
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...
Prochain SlideShare
Chargement dans…5
×

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

1 566 vues

Publié le

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

Publié dans : Technologie, Formation
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

×