1 / 14

Towards understanding programs through wear-based filtering

Towards understanding programs through wear-based filtering. Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005. Developers often change unfamiliar code. Today’s business makes it unavoidable. Team membership is always changing

oshin
Télécharger la présentation

Towards understanding programs through wear-based filtering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005

  2. Developers often change unfamiliar code • Today’s business makes it unavoidable. • Team membership is always changing • Separate teams create features and fixes • Security teams consult across products • Teams consume outsourced products • How could today’s tools be better for this task? • We studied programmers to find usability issues • We suggest an approach for improving tools

  3. A pilot study and a hunch • We ran a pilot study and watched participants... • Take lots of fruitless navigation steps • Navigate to sort through the results of searches • Get frequently lost in the program text • Hunch: one can learn the important parts of the code by watching code navigation • Hypothesis: navigation frequency correlates with importance ratings

  4. Formative, observational study • Participants run singly in two hour sessions • 10 min code exploration, 20 min per task • We logged navigation and videoed • Tasks followed by quiz and ratings questionnaire • Dependent measures • Code traversal paths • Subjective importance ratings (1 to 5) • Plus, task completion and quiz scores

  5. Study participants • 7 experienced programmers • All male, average age 36 • Average 18 years programming • All work outside Microsoft • We screened for… • Working in teams, on long-term projects • Debugging or modifying others’ code • Familiarity with Visual Studio, GUI programming

  6. Participants modified a Tetris game • Code selected for familiarity, size, and high rating • Two comprehension tasks, two modification tasks 1 Which method chooses the next game piece? 2 Which method causes pieces to fall faster? 3 Add the missing square game piece. 4 Add a command to make the piece fall immediately to the bottom.

  7. Importance ratings do correlate to navigation frequency • Pearson product moment correlation, r=0.79, p<0.01

  8. Study results • Poor completion of modification tasks • 7 / 7 completed tasks 1 and 2 • 1 / 7 completed task 3 • 1 / 7 completed task 4 (different participant) • Participants used different learning styles • All started by exploring control flow • 2 / 7 used top-down, hypothesis-driven approach • 5 / 7 used bottom-up approach and visited more code

  9. Usability problems • Participants wanted more overview information • Architectural diagrams, e.g. UML class diagrams • Descriptions of the relationships among components • Short summaries of important algorithmic steps • Participants got lost in the program text • Had difficulty managing many open documents • Needed extra navigation to explore search results • Wanted help in tracking exploration (bread crumbs) • Participants overused short-term memory • Difficulty recognizing previously visited code • Annoyance when they couldn’t use spatial memory

  10. How can we make the task easier? • Let’s use navigation data for social filtering • The more often code is visited, the greater its importance for a newcomer. • The more often parts of code are visited in succession, the more related they are. • Team Tracks extends Visual Studio • Filters file & class browsers to most visited items • Recommends related code based on context

  11. Demo of Team Tracks

  12. Conceptual design not yet implemented • UML class diagram with navigation heat map

  13. Closest related work • Read wear/edit wear Hill, Hollan, Wroblewski, McCandless ’92 • Introduced idea of tracking document usage • Focus on team awareness • Project Watcher Schneider, Gutwin, Penner, Paquette ’04 • Applied read wear/edit ware idea to software artifacts • Focus on team awareness • ROSE Zimmermann, Weißgerber, Diehl, Zeller ’04 • Find change patterns in source history • Focus on recommending related code • Mylar Kersten, Murphy ’05 • Track file-level navigation per individual user • Focus on managing user’s working set

  14. On-going work • Team Tracks evaluation submitted to VL/HCC ’05 1 Lab study with same setup as formative study 2 Longitudinal study with compiler team • Further research • Compare navigation data with source history • Scope navigation data by person, by time • Help newcomers learn process, not just code • research.microsoft.com/hip Human Interactions in Programming

More Related