Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.

Slides:



Advertisements
Similar presentations
Debugging in End- User Software Engineering summarized by Andrew Ko Toward Sharing Reasoning to Improve Fault Localization in Spreadsheets Joey Lawrance,
Advertisements

System Integration Verification and Validation
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.
Making CHASE Mainstream Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009.
Designing and Documenting APIs Brad Myers D: Human Aspects of Software Development (HASD) Spring, Copyright © 2011 – Brad Myers.
Gild Project: Jan 8/2003 CSc 115/160 (S01) Gild: Groupware enabled Integrated Learning and Development for Java.
The Social Programmer Robert DeLine Microsoft Research University of Washington, 6 Oct 2009.
Navigating Working Sets Brad Myers D: Human Aspects of Software Development (HASD) Spring, Copyright © 2011 – Brad Myers.
10/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald Hugbúnaðar Fyrirlestrar 27 & 28 Debugging with the Whyline tool
1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School.
Usable Privacy and Security Carnegie Mellon University Spring 2008 Lorrie Cranor 1 Designing user studies February.
Lecture Exam Monday, March 27th 5:30 – 6:30 l bring a blue bubble sheet l lab sections 10, 11, 12 take test in Classroom Building 302 l lab sections 13,
Usability 2004 J T Burns1 Usability & Usability Engineering.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Advanced User Interface Software Brad Myers Human Computer Interaction Institute Spring, 2009.
“Retrospective vs. concurrent think-aloud protocols: usability testing of an online library catalogue.” Presented by: Aram Saponjyan & Elie Boutros.
Problem Solving Methodology
Introduction to Information System Development.
The Struggles of New College Graduates in their First Software Development Job Andrew Begel, Human Interactions in Programming, MS Research Beth Simon.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Planning and Writing Your Documents Chapter 6. Start of the Project Start the project by knowing the software you will write about, but you should try.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Quality Control Project Management Unit Credit Value : 4 Essential
DOCUMENTATION Research Data Management. Research Data Management Lab Books Why keep a Lab Book? Records are important for development and writing up of.
 Once the system has been installed it will be monitored to check whether it is working correctly. Sometimes problems with a system will not be found.
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
SEG3120 User Interfaces Design and Implementation
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
1 ISE 412 Usability Testing Purpose of usability testing:  evaluate users’ experience with the interface  identify specific problems in the interface.
Introduction to Systems Analysis and Design
1 Technical & Business Writing (ENG-315) Muhammad Bilal Bashir UIIT, Rawalpindi.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
Active Code Completion Cyrus Omar Computer Science School of Computer Science Carnegie Mellon University [ICSE12] YoungSeok Yoon Software Engineering Brad.
“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Evaluating a UI Design Expert inspection methods Cognitive Walkthrough
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
Testing and Evaluating Software Solutions Reporting on the Testing Process.
Problem Solving. o You notice something, and wonder why it happens. o You see something and wonder what causes it. o You want to know how or why something.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Demo of Scalable Pluggable Types Michael Ernst MIT Dagstuhl Seminar “Scalable Program Analysis” April 17, 2008.
Copyright © 2006 – Brad A. Myers Answering Why and Why Not Questions in User Interfaces Brad Myers, David A. Weitzman, Andrew J. Ko, and Duen Horng (“Polo”)
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Summer Project Marama2008 By Robert and Johnson. What is Marama? Marama is an Eclipses based toolset permits rapid specification of notational elements,
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
The Value of USAP in Software Architecture Design Presentation by: David Grizzanti.
The information systems lifecycle Far more boring than you ever dreamed possible!
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Developers Ask Reachability Questions
Testing Tutorial 7.
Human Computer Interaction Lecture 15 Usability Evaluation
Systems Planning and Analysis
User Interface Design The Golden Rules: Place the user in control.
John D. McGregor Session 9 Testing Vocabulary
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
Information Systems Development
Andrew J. Ko & Brad A. Myers Carnegie Mellon University
John D. McGregor Session 9 Testing Vocabulary
SY DE 542 User Testing March 7, 2005 R. Chow
Gathering Systems Requirements
One-timer?. A new face of the technical communicator – UX is our strength – we design to write.
KEY PROCESS AREAS (KPAs)
Gathering Systems Requirements
MAPO: Mining and Recommending API Usage Patterns
Seminar on empirical paper: “Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks”
A SIEM for the Forensic Analysis of Database Management System Logs
Presentation transcript:

Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University

Previous Years Alice Whyline – debug by asking why questions Slate – Objects of Measurement in a spreadsheet Mica – Uses Google to help find APIs Crystal – Why questions in applications Citrus – Toolkit for structured editors Barista – Editor for code Numerous studies of behaviors

3 This Year Mostly relevant to professional programmers Study of Bug Report Linguistics Jasper, for tracking task relevant information Study of the “Factory Pattern” Information needs of Microsoft developers Preliminary work on Java Whyline feasibility (15 papers submitted or published)

4 Study of Bug Report Linguistics Searched for patterns in report titles from 180,000 open source bug reports Used a small subset of English A large set of proper names Contained subject of failure, quality attribute, problem with quality and context of problem People identified problems by referring to output, user actions, and hardware

5 Jasper Tool for Working Sets CSD MS thesis of Michael Coblenz Jasper = Java Aid with Sets of Pertinent Elements for Recall Allow programmers to grab arbitrary fragments of code to represent working sets ‣ Also notes, documentation, and other meta- information about code Allow programmers to view fragments in one place, one screen Use for navigation, reminders, bookmarks, collaboration One working set for each task

6 Preliminary Implementation Eclipse plug-in ‣ Enormous difficulties and overhead in implementation

7 Study of APIs Work of PhD student Jeff Stylos How do design patterns affect API usability? ‣ While at Microsoft: constructors ‣ Summer: factory pattern All programming systems (end-user or professional) have APIs Measures: learnability, errors, preferences Expert and novice programmers Submitted to ICSE’07

8 Constructor Study at Microsoft Internal debate about whether to provide “default” (null) constructors in MS APIs ‣ MS devs: null constructors can cause errors Study of 30 professional programmers Results: ‣ Programmers used constructors differently than expected ‣ Null constructors actually helped (matched expectations, were faster, didn’t cause errors) ‣ True for novices and experts

9 “Factory” Pattern Objects must be created by another class: AbstractFactory f = AbstractFactory.getDefault(); Widget w = f.createWidget(); Used frequently in Java (>61) and.NET (>13) Lab study with 12 expert Java programmers ‣ Five programming and debugging tasks ‣ Within subject and between subject measures Results: ‣ No one expected factories when coding in Eclipse or on paper ‣ Finding and using factories took 2.1 to 5.2 times longer than using constructors, or an extra 6 to 11 minutes per object ‣ All subjects had difficulties using factories in APIs Recommendations: ‣ Use constructors or other patterns with same architectural advantages

10 Information Needs of MS Developers Andy’s summer MSR internship Observed 17 developers work on writing, understanding, debugging, designing Took notes about: ‣ The information looked for ‣ Where information was found ‣ What prevented it from being found Classified types, sources, outcomes

11 Information Needs of MS Developers Variation in task structure, interruptions and getting blocked Seven most deferred types of info ‣ What has my team been doing? ‣ How have my resources changed? ‣ In what situations does this failure occur? ‣ What could have caused this behavior? ‣ What actually caused this behavior? ‣ Why was this code written this way? ‣ What is this code supposed to do?

The Whyline Andy Ko’s thesis project ‣ Officially proposed last May Generalize the Whyline to general purpose imperative languages, larger programs Questions: ‣ What is the “output” at a given point in time that users will want to ask about? ‣ What information must we record to effectively answer users’ questions? ‣ How can users ask Why Didn’t questions about a lack of output? Develop infrastructure for instrumentation, tracing, and relating code to trace Instrumentation almost done

13 Next Year Finish and evaluate the Java Whyline More studies of API design decisions Extend work on Jasper