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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    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)

    Favorites, Groups & Events

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

    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
    4. Example
    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.
    SlideShare Zeitgeist 2009

    + Rylan CottrellRylan Cottrell Nominate

    custom

    150 views, 0 favs, 1 embeds more stats

    Exploratory study on the currently available tools more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 150
      • 149 on SlideShare
      • 1 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds
    • 1 views on http://www.icottrell.com

    more

    All embeds
    • 1 views on http://www.icottrell.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories