Supporting Software History Exploration Alexander W. J. Bradley Gail C. Murphy Software Practices Lab Department of Computer Science University of British.

Slides:



Advertisements
Similar presentations
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Advertisements

Houston: We are in overload Gail Murphy University of British Columbia Note: This presentation involves many animations, videos, etc. Some of these are.
Project activities and experiences in an Albanian software company Luan Jubica Zagreb 2004.
Using Information Fragments to Answer the Questions Developers Ask Thomas Fritz and Gail C. Murphy University of British Columbia.
Software Engineering COMP 201
Writing Good Software Engineering Research Papers A Paper by Mary Shaw In Proceedings of the 25th International Conference on Software Engineering (ICSE),
Evaluations and recommendations for a user support toolkit Christine Cahoon George Munroe.
11 C H A P T E R Artificial Intelligence and Expert Systems.
 CS 5380 Software Engineering Chapter 8 Testing.
Overview of the rest of the semester Building on Assignment 1 Using iterative prototyping.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering Chapter 16 User Interface Design Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
12 Developing a Web Site Section 12.1 Discuss the functions of a Web site Compare and contrast style sheets Apply cascading style sheets (CSS) to a Web.
1 Asking and Answering Questions during a Programming Change Task, By Jonathan Sillito, Member, IEEE, Gail C. Murphy, Member, IEEE, and Kris De Volder.
Active Code Completion Cyrus Omar Computer Science School of Computer Science Carnegie Mellon University [ICSE12] YoungSeok Yoon Software Engineering Brad.
Software Prototyping Rapid software development to validate requirements.
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
CSE 303 – Software Design and Architecture
Using Document Collaboration, Integration, and Charting Tools
1 Presentation Methodology Summary B. Golden. 2 Introduction Why use visualizations?  To facilitate user comprehension  To convey complexity and intricacy.
1 Evaluating the User Experience in CAA Environments: What affects User Satisfaction? Gavin Sim Janet C Read Phil Holifield.
Overview of Socio-cognitive Engineering General requirements Theory of Use Design Concept Contextual Studies Task model Design space System specification.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Microsoft Expression Web - Illustrated Unit A: Getting Started With Microsoft Expression Web.
Lesson 7 -Collaborative Editing Objectives In this lesson we will: ● Introduce the idea of Wiki ethics, ● Explore the Recent changes page, ● and diff &
Section 31a and Accountability
Human Computer Interaction Lecture 21 User Support
Chapter 6 : User interface design
Usability Overview Upsorn Praphamontripong CS
Prototyping in the software process
Software Prototyping.
Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals Wikis are collections of searchable,
Database Development (8 May 2017).
User-centred system design process
Human Computer Interaction Lecture 21,22 User Support
Teacher Configurable Coding Challenges for Block Languages
Introduction to Event-Driven Programming
Computing Fundamentals
Chapter 18 Maintaining Information Systems
Unified Modeling Language
Usability Evaluation, part 2
Creative Writer’s Editor
UNIT 15 Webpage Creator.
IS442 Information Systems Engineering
Amazing The Re:Search Engine Jaime Teevan MIT, CSAIL.
Author(s): Rahul Sami, 2009 License: Unless otherwise noted, this material is made available under the terms of the Creative Commons Attribution Noncommercial.
Team Covalence TED LI COURTNEY NOH LOGAN SHORT EMMA TOWNLEY-SMITH.
Teaching with Instructional Software
Lessons Learned from Clippit
Planning a Group Policy Management and Implementation Strategy
SWE-795 Presentation 01 11/16/2018 Asking and Answering Questions during a Programming Change Task Jonathan Sillito, Member, IEEE Computer Society, Gail.
Tools of Software Development
Program Usability Based on the Perception of Bugs as Features
Learner Characteristic and ICT in the Classroom
Practical Software Engineering
The Technology Integration Planning Model
HCI Evaluation Techniques
Historian as a Discipline
15. Human-Computer Interaction
A Geographer’s World Chapter 1.
HCI What ? HCI Why ? What happens when a human and a computer system interact to perform a task? task -write document, calculate budget, solve equation,
11. MVC SE2811 Software Component Design
Engaged Learning Activities (ELAs)
11. MVC SE2811 Software Component Design
Chapter 7 Software Testing.
Chapter 4 Summary.
Cognitive Walkthrough
Introduction Software maintenance:
Don’t just listen to music; listen to people
Presentation transcript:

Supporting Software History Exploration Alexander W. J. Bradley Gail C. Murphy Software Practices Lab Department of Computer Science University of British Columbia

Supporting Software History Exploration – Bradley and Murphy – MSR Why was the code implemented this way? When, how, by whom and why was this code changed or inserted? What bugs are related to this code? Cf. LaToza, Venolia and DeLine, 2006; Ko, DeLine and Venolia, 2007; LaToza and Myers, 2010

Supporting Software History Exploration – Bradley and Murphy – MSR History exploration UI styles ● Element-based ● Separate views from editor ● Gives deep information related to single code element ● Line-based ● Integrated into editor (at side) ● Gives recent information for many code lines (breadth-first)

Supporting Software History Exploration – Bradley and Murphy – MSR Why was the code implemented this way? When, how, by whom and why was this code changed or inserted? What bugs are related to this code? Person Bug Code Revision

Supporting Software History Exploration – Bradley and Murphy – MSR

6 Deep Intellisense Holmes and Begel (MSR 2008) – as replicated for our experiments ● Element-based ● Separate views from editor ● Gives deep information related to single code element

Supporting Software History Exploration – Bradley and Murphy – MSR Deep Intellisense Selection of code elements (SCE)

Supporting Software History Exploration – Bradley and Murphy – MSR Deep Intellisense Opening of new view (ONV) Double-click

Supporting Software History Exploration – Bradley and Murphy – MSR Deep Intellisense Filter application (FA)

Supporting Software History Exploration – Bradley and Murphy – MSR Rationalizer ● Line-based ● Integrated into editor (at side) ● Gives recent information for many code lines (breadth-first)

Supporting Software History Exploration – Bradley and Murphy – MSR Rationalizer Opening of new view (ONV) Ctrl -click

Supporting Software History Exploration – Bradley and Murphy – MSR Rationalizer Filter application (FA)

Supporting Software History Exploration – Bradley and Murphy – MSR Rationalizer Visual scan while scrolling through column data (VS) Image credit for eye: Wikipedia (public domain image)

Supporting Software History Exploration – Bradley and Murphy – MSR Model Predictions “Deep history” prediction – Deep Intellisense will have a significant advantage over Rationalizer for finding entire history of elements with long history ● “History to source” prediction ● Rationalizer will have a significant advantage over Deep Intellisense for finding many sections of code affected by persons or bugs

Supporting Software History Exploration – Bradley and Murphy – MSR Deep History Find all the revisions that have affected a code element

Supporting Software History Exploration – Bradley and Murphy – MSR Deep History Find all the revisions that have affected a code element

Supporting Software History Exploration – Bradley and Murphy – MSR Deep History Deep Intellisense: 1 SCE

Supporting Software History Exploration – Bradley and Murphy – MSR Deep History Rationalizer: O(r) ONV r past revisions

Supporting Software History Exploration – Bradley and Murphy – MSR History to Source Find which code elements have been affected by a given bug or person

Supporting Software History Exploration – Bradley and Murphy – MSR History to Source... Deep Intellisense: O(E) SCE + O(E) FA E code elements in class

Supporting Software History Exploration – Bradley and Murphy – MSR History to Source Rationalizer: 1 FA + O(l a ) VS l a lines affected

Supporting Software History Exploration – Bradley and Murphy – MSR Summary of Predictions

Supporting Software History Exploration – Bradley and Murphy – MSR Evaluation – Overview 11 participants answered 8 questions – Focus on 5 “prediction-testing” questions – Look for whether user strategies conform to predictions – Measure correctness and user satisfaction Elicit user preferences about the two UIs Gather feedback about possible improvements Set A Set B Set A

Supporting Software History Exploration – Bradley and Murphy – MSR Results – Strategy Conformance For 9/10 question-tool combinations, observed user strategies were as difficult as expected – Usually took as many operations as predicted – For “history to source” questions, sometimes used alternative strategies that seemed at least as difficult as our predicted strategies

Supporting Software History Exploration – Bradley and Murphy – MSR Results – Measurements Significant differences (p <.05) in answer correctness scoresSignificant differences (p <.05) in user satisfaction scores

Supporting Software History Exploration – Bradley and Murphy – MSR Results – Tool & UI Preferences Preferences nearly evenly split for UI characteristics and tool preferences

Supporting Software History Exploration – Bradley and Murphy – MSR Results – General User Comments

Supporting Software History Exploration – Bradley and Murphy – MSR Discussion Improving UIs for history exploration – Allow for both breadth- and depth-based exploration Merge best features of DI and Rationalizer – Further studies needed to find relative frequencies of these kinds of tasks in practice Improving our model – Should take into account user confusion, disorientation and mistakes

Supporting Software History Exploration – Bradley and Murphy – MSR Related Work Information needs [Sillito, Murphy and De Volder, SIGSOFT/FSE 2006; LaToza, Venolia and DeLine, ICSE 2006; Ko, DeLine and Venolia, ICSE 2007; LaToza and Myers, PLATEAU 2010] Models of software history entities [ Čubranić and Murphy, ICSE 2003; Venolia, MSR 2006] User interaction strategies – GOMS [Card, Moran and Newell, 1980] Software visualization [e.g., Ball and Eick, 1996] –Software evolution visualization [e.g., Voinea and Telea, 2009]

Supporting Software History Exploration – Bradley and Murphy – MSR Summary Introduced Rationalizer, which provides extensive software history information integrated into editor Our model can help predict how hard users will have to work to answer history exploration questions with different UI styles Interested in the tools? Contact a.bradley [at] alumni.cs.ubc.ca