Professor John Canny Spring 2004

Slides:



Advertisements
Similar presentations
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Advertisements

Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Installing Windows XP Professional Using Attended Installation Slide 1 of 35Session 9 Ver. 1.0 CompTIA A+ Certification: A Comprehensive Approach for all.
Prevent Errors Do not let the user make the mistake in the first place. Limit choices –Hide or gray out unusable functions Look ahead –Have the system.
Errors & Error Assistance Discussion Section Wed 8:30-9:30 & Thu 1:30-2:30 Introductory HCI: User Interface Design, Prototyping, and Evaluation CSE 440.
Errors & the Art of Error Assistance CSE 440 Autumn 2008.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Usability Evaluation/LP Usability: how to judge it.
CS160 Discussion Section Final review David Sun May 8, 2007.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
More on Design of Everyday Things. Turn it up, or shut it down?
Programming Errors. Errors of different types Syntax errors – easiest to fix, found by compiler or interpreter Semantic errors – logic errors, found by.
Fall 2002CS/PSY Preventing Errors An Ounce of Prevention Errors  Avoiding and preventing  Identifying and understanding  Handling and recovering.
Prof. James A. Landay University of Washington Spring 2008 Guest Lecturer: Kate Everitt Web Interface Design, Prototyping, and Implementation Errors &
Class03 Introduction to Web Development (Hierarchy and the IDE)
Visual Basic.NET Windows Programming
CEN3722 Human Computer Interaction Title of Presentation
Development Environment
Wrapping up DOET.
AP CSP: Cleaning Data & Creating Summary Tables
Mobile Testing - Bug Report
AP CSP: Data Assumptions & Good and Bad Data Visualizations
The Desktop Screen image displayed when a PC starts up A metaphor
Errors & the Art of Error Assistance
Topics Introduction to Repetition Structures
Testing and Debugging.
Guide To UNIX Using Linux Third Edition
A451 Theory – 7 Programming 7A, B - Algorithms.
Introduction to Computers
Saving, Modifying page, grammar & spell checking, and printing
Nicholas Shahan Spring 2016
Lab: ssh, scp, gdb, valgrind
ENGLISH TEST 45 Minutes – 75 Questions
Handling Complaints.
Software engineering USER INTERFACE DESIGN.
Professor John Canny Fall 2004
Exceptions and files Taken from notes by Dr. Neil Moore
CONFIGURING HARDWARE DEVICE & START UP PROCESS
CSE 341: Programming Languages Section 1
A NEW FACE OF THE TECHNICAL COMMUNICATOR – UX IS OUR STRENGTH – WE DESIGN TO WRITE BY CHRIS GANTA © 2016, STC INDIA CHAPTER.
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
CS160 Discussion Section Design Patterns April
Exceptions and files Taken from notes by Dr. Neil Moore
Programming Fundamentals (750113) Ch1. Problem Solving
OSU Payroll Services Overpayments Hello. Introduce everyone and the topic for today’s discussion. 12/4/2018 OSU Payroll Services
Heuristic Evaluation Jon Kolko Professor, Austin Center for Design.
Revision of Simple troubleshooting
One-timer?. A new face of the technical communicator – UX is our strength – we design to write.
PROGRAMMING AND LANGUAGES
Programming.
Algorithm and Ambiguity
10 Design Principles.
Professor John Canny Spring 2003
Programming Fundamentals (750113) Ch1. Problem Solving
GUI Design 24-Feb-19.
To Err is Human Owen Brennan.
Tonga Institute of Higher Education IT 141: Information Systems
Programming Fundamentals (750113) Ch1. Problem Solving
An Introduction to Debugging
Nilesen 10 hueristics.
Tonga Institute of Higher Education IT 141: Information Systems
Exceptions 25-Apr-19.
Exceptions 22-Apr-19.
The Troubleshooting theory
Exceptions 10-May-19.
CS 5010 Program Design Paradigms "Bootcamp" Lesson 12.1
Lab 8: GUI testing Software Testing LTAT
Exceptions 5-Jul-19.
Programming Logic and Design Eighth Edition
Professor John Canny Fall 2001 Nov 13, 2001
Presentation transcript:

Professor John Canny Spring 2004 CS 160: Lecture 21 Professor John Canny Spring 2004 5/1/2019

Design for Errors Some favorite error messages: 404 not found Fatal error 312: aborting Syntax error near line 1025 Internal compiler error Segmentation fault: core dumped What do these messages communicate? What is the solution to each? 5/1/2019

Naïve users Fatal error 312: 404 not found User messed up and someone will die (computer?). Solution: log off and pretend nothing happened. 404 not found The computer misplaced something (the “404”?). Solution: Maybe it will find it if you try later… Segmentation Fault: core dumped Something bad happened Solution: someone will probably have to clean out the “core” stuff that was dumped inside the computer. 5/1/2019

More sophisticated users Segmentation fault: core dumped This lazy programmer slept through their programming classes and didn’t learn about array bounds checking, invariants or memory management. Solution: Move them to the user support hotline 5/1/2019

More sophisticated users 404 + the other messages Why can’t programmers explain what is wrong in normal English? Why do the messages sound like bad movie titles? “fatal error” etc. Why do programmers usually assume that the user did something wrong when their program crashes? 5/1/2019

User studies Solution for programmers: Why isn’t this is good idea? Test out error messages in person on your boss. E.g. walk into office, say “segmentation fault: core dumped”, deposit printout of memory on their desk, and walk out. Why isn’t this is good idea? Why is it a good idea to put it into a program? 5/1/2019

Human error recovery People make mistakes in communication all the time, and are adept at repairing them. Repair need not involve assignment of blame. E.g. “I’m sorry, I didn’t understand. Can you rephrase?” Tells the speaker you heard what they said, but were unable to interpret it. They should repeat, but express it differently. There is no assertion that what they said was ungrammatical or incorrect, and you accept some blame by default. 5/1/2019

Human error recovery Aside: Users respond better when machine dialogue matches their own personality. Reeves and Nass studied this phenomenon in text-based OS’es, and used Myers-Briggs personality types. 5/1/2019

Humane error recovery In human communication, an error is the beginning of a process of repair. It is “normal” to make errors. In human-machine interaction, errors normally lead to the end of the current task. Errors are treated as “abnormal”. In other words, user interfaces usually try to escape from the repair process, leaving the user stranded. 5/1/2019

Types of errors Mistakes Slips User intended to do what they did, and it led to an error. User would probably do the same thing again. Slips User did not mean to do what they did. They can recover by doing it differently again. Slips are not just for beginners. Experts often make them because they devote less conscious attention to the task. 5/1/2019

Minimizing Error System errors: Program defensively (assert, bounds check (please!!)) Estimated loss of productivity due to Windows OS crashes $170 B. Estimate for Windows XP $17 B. Note: most Windows XP vulnerabilities are standard buffer overruns. 5/1/2019

Minimizing Error User errors: Use Intuitive command names. Include short explanations as “tool tips”. Put longer explanations in help system. 5/1/2019

Minimizing Error Recognition over recall Easier to select a file icon from a folder than to remember and type in the filename. Auto-completion can help fix this. Use appropriate representations E.g. graphical file selector good for choosing individual files Textual file names support automation, richer organization (using command line options). 5/1/2019

Typical Errors From Norman’s 1983 survey: Mode errors: User forgets what mode they’re in, and does the command appropriate for another mode. Digital watches, VCRs etc. Common where there aren’t enough command keys for all the operations You can still explain the mode by giving the user feedback on what keys do in the display. 5/1/2019

Typical Errors Description error: The action is insufficiently specified by the user. User may not know all the command line switches, or all the installation options for a program. Solution: Warn the user that the command is ambiguous, or “unusual”. Provide help about options in several standard ways. 5/1/2019

Typical Errors Capture error: Command sequences overlap, and one is more common. User reflexively does the common one when trying to do the unusual one. E.g. try typing “soliton” very fast. 5/1/2019

Detecting Errors The earlier the better: Check for consistency whenever possible (“asserts” for user input). If there’s a high risk of error, check for unusual input, or for common slips (spelling correction). E.g. google’s “did you mean XX?” response 5/1/2019

System Response Stop the user from continuing the way they were going (possibly compounding the error). Take “safe” recovery actions - e.g. auto-save the state with a unique name. Begin the recovery process. 5/1/2019

System Responses Gag Warn Do Nothing Self Correct Teach Me Let’s talk about it 5/1/2019

Break 5/1/2019

Gag Response Machine freezes, often not even accepting input. Generally a bad idea, but there are good uses: Raskin’s FLOW system, refuses to accept keystrokes that are not legal commands. Intended for naïve users. Even random typing produces legal programs! 5/1/2019

Warn Response Machine accepts input, even if not legal. Warns user about problem(s). Allows user to get into deeper trouble. Allow backtracking “undo”, back to start of trouble if possible. 5/1/2019

Do Nothing Response Machine accepts input, even if not legal. Machine does nothing User has to figure out that something’s wrong. Usually a bad idea, but sometimes useful in automation (don’t copy file to itself etc.). 5/1/2019

Self Correct DWIM (Do What I Mean) was an aggressive self-correcting system. Spell checkers are of this type. Generally good but: Sometimes override user intent. Can frustrate on frequently-used strings: “naïve” is good but not “Hsi”. Solutions: Don’t repeat correction if overridden. Watch user behavior over time. 5/1/2019

Let’s talk about it Inspired by human error recovery. Machine explains its understanding of the situation, gives the user some options. Examples: network diagnostic wizard, modem wizard,… Very difficult to program these, but they’re very valuable. Need some analysis of previous user problems. Look at help desk logs. 5/1/2019

Teach Me System informs user what they can do. Common in speech recognizers. Include command “what can I say?”, or run speech tutorial. 5/1/2019

Explanations The first part of the recovery process is to explain what appears to be wrong. Remember the user is only supposed to have a functional model of what’s going on. Try to give an explanation at high level. People understand basic resources like filespace, memory etc. “I’m afraid the program has an internal fault in the code that <<reads and writes files>>, which was called when trying to <<save your user preferences>>. We regret the inconvenience, and are trying to recover…” 5/1/2019

Recovery The system should always give the user a reasonable amount of information about the problem. Better to err on the side of too much information. Some problems are amenable to automatic repair: retry, use redundant information, backup data etc… DWIM (Do What I mean) was an editor that attempted to correct common user errors. You need an “undo” key to use this approach. 5/1/2019

Recovery Run a “diagnostic wizard” for common or unreliable subsystems (e.g. the network). These can interact with the user to get extra information needed to fix the problem. 5/1/2019

Research Approaches Intentional interfaces: build models of user intention from their actions. Assumes that people have clear goals that the system can understand. Can get confused if people multi-task or do sub-optimal things. 5/1/2019

Research Approaches Accountable systems: The system maintains a user-oriented model of internal behavior, somewhere between a structural and a functional model. If an error occurs, this “account” can give a sensible explanation, and often recovery suggestions. 5/1/2019

Summary Error messages are often masterpieces in bad communication. That’s not necessary. Error recovery is a “normal” process. Types of errors: slips and mistakes. Some common error types. Five responses to errors. Recovery. Research approaches. 5/1/2019