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

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.
1 IBM Software Group ® PRJ270: Essentials of Rational Unified Process Module 3: RUP Structure and Navigation.
Network Design and Implementation
1 DAFFODIL Effective Support for Using Digital Libraries Norbert Fuhr University of Duisburg-Essen, Germany.
University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin.
Customer: Rosalva Gallardo Team members: Susan Lin Buda Chiou Jim Milewski Marcos Mercado November 23, 2010.
Navigating Working Sets Brad Myers D: Human Aspects of Software Development (HASD) Spring, Copyright © 2011 – Brad Myers.
Chapter 12: Web Usage Mining - An introduction
SE 470 Software Development Processes James Nowotarski 21 April 2003.
Use cases and requirement specification - 1 Use case diagrams 3 use cases System boundaries Remember: Use case diagramming is a tool, not the requirements.
1 CS 430 / INFO 430 Information Retrieval Lecture 24 Usability 2.
Nu Project Management Office A web based tool to Manage Projects.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Visual Studio 2005 C# IDE Enhancements Luca Bolognese C# Program Manager Microsoft Corporation.
Damian Gordon.  Summary and Relevance of topic paper  Definition of Usability Testing ◦ Formal vs. Informal methods of testing  Testing Basics ◦ Five.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 15 Designing Effective Output
Software Configuration Management (SCM)
Fusion GPS Externalization Pilot Training 1/5/2011 Lydia M. Naylor Research Lead.
Developing a Context-Aware Application Using Existing Technology A Prototype for Human-Centered Computing Danyel Fisher Fall, 1999.
11 Chapter 3: Getting Started with Tasks 3.1 Introduction to Tasks and Wizards 3.2 Creating a Frequency Report 3.3 Generating HTML, PDF, and RTF Output.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation.
Put it to the Test: Usability Testing of Library Web Sites Nicole Campbell, Washington State University.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Chapter Three The UNIX Editors. 2 Lesson A The vi Editor.
Fusion GPS Externalization Pilot Training 3/1/2011 Lydia M. Naylor Research Lead.
SharePoint Workflows with Visual Studio Stuart Cox RBA Consulting techpunch.wordpress.com.
What is Usability? Usability Is a measure of how easy it is to use something: –How easy will the use of the software be for a typical user to understand,
CSE 219 Computer Science III Program Design Principles.
A technical writer’s role in software quality – an experiment Asha Mokashi, SCT Software Solutions, Bangalore.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
A Case Study of Interaction Design. “Most people think it is a ludicrous idea to view Web pages on mobile phones because of the small screen and slow.
Lab Course / Praktikum: S ummer Semester 2012 Project Management and Software Development for Medical Applications Computer Aided Medical Procedures (CAMP),
Matthew van Cittert Supervisor: Prof. Shaun Bangay A second look at the “glorified text-editor”
Visual Basic.NET BASICS Lesson 1 A First Look at Microsoft Visual Basic.NET.
“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
Mik Kersten Thesis defense December 15, 2006 Focusing Knowledge Work with Task Context.
Information Architecture & Design Week 3 Schedule -Syllabus Updates -Group Project Deliverables -IA Methodologies -Research Topic Presentations.
Chapter Three The UNIX Editors.
Controlling Computer Using Speech Recognition (CCSR) Creative Masters Group Supervisor : Dr: Mounira Taileb.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Information Architecture & Design Week 4 Schedule -Group Project Proposal Due -Planning IA Structures -Other Readings -Research Topic Presentations.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
1 Advanced.Net Debugging Using Visual Studio, R# and OzCode IT Week, Summer 2015.
1 DAFFODIL Effective Support for Using Digital Libraries Norbert Fuhr University of Duisburg-Essen, Germany.
Business Process Management Tools and Techniques December 8, 2009 Dan Oneufer, PMP.
The Emergent Structure of Development Tasks
Building Enterprise Applications Using Visual Studio®
Chapter 3: Getting Started with Tasks
1. Introduction to Visual Basic
Managing and Printing Documents
Analysis models and design models
Delivering great hardware solutions for Windows
Rapid Data Exploration:
Microsoft Office System UK Developers Conference
DEV322 Visual Studio 2005 C# IDE Enhancements
MAPO: Mining and Recommending API Usage Patterns
Programming Logic and Design Eighth Edition
Presentation transcript:

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

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

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

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

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.

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

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

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

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

Demo of Team Tracks

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

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

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