CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More...
Transcript of CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More...
![Page 1: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/1.jpg)
11/13/2004 1
CS 160: Lecture 21
Professor John CannyFall 2004
![Page 2: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/2.jpg)
11/13/2004 2
Design for ErrorsSome favorite error messages:* 404 not found* Fatal error 312: aborting* Syntax error near line 1025* Internal compiler error* Segmentation fault:
core dumped* Add your favorite here:
![Page 3: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/3.jpg)
11/13/2004 3
Design for ErrorsSome 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?
![Page 4: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/4.jpg)
11/13/2004 4
Naïve usersFatal error 312:* 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.
![Page 5: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/5.jpg)
11/13/2004 5
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
![Page 6: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/6.jpg)
11/13/2004 6
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 its the
user that did something wrong when their silly program crashes?
![Page 7: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/7.jpg)
11/13/2004 7
User Testing
Solution for programmers:* 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 would you put it into a program?
![Page 8: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/8.jpg)
11/13/2004 8
Human error recoveryPeople 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.
![Page 9: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/9.jpg)
11/13/2004 9
Human error recoveryAside: People attribute personality based on the kind of language others use. For instance, psychologists have analyzed the personality of writers, politicians etc. from their writings. They can classify them using standard personality categories, Like Myers-BriggsPeople interact better with others when their personalities are compatible.
![Page 10: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/10.jpg)
11/13/2004 10
Human error recovery
Reeves and Nass studied human interaction with text-based OS’es, found that similar results apply. i.e. people have better interactions with textinterfaces when the system’s(text) personality is compatiblewith theirs.MS help wizards are a consequence of this work.
![Page 11: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/11.jpg)
11/13/2004 11
Humane error recoveryIn 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, application programs often try to escape from the repair process, leaving the user stranded.
![Page 12: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/12.jpg)
11/13/2004 12
Types of errorsMistakes* 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 (or mere presence or “demo” effects).
![Page 13: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/13.jpg)
11/13/2004 13
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 over $20 B.
Note: most Windows XP exploits have been standard buffer overruns.
![Page 14: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/14.jpg)
11/13/2004 14
Minimizing ErrorNote: Omission of array-bound checking, esp. in I/O code, has no possible justification in a modern computer. Its sometimes justified on the basis of impact on performance (speed).If you believe that argument, you can make your car “faster” by removing its brake pads (the small air gap slows the car). Think about orders of magnitude – between instruction cycles and network/file system speed.
![Page 15: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/15.jpg)
11/13/2004 15
Minimizing ErrorUser errors: * Use Intuitive command names. * Include short explanations as “tool tips”. * Put longer explanations in help system.
![Page 16: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/16.jpg)
11/13/2004 16
Minimizing ErrorRecognition 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).
![Page 17: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/17.jpg)
11/13/2004 17
Typical ErrorsFrom 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.
![Page 18: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/18.jpg)
11/13/2004 18
Mode ErrorsWhy are mode errors so common in certain devices (watches, VCRs)?Several attributes:* There aren’t enough command
keys for all the operations –so the mode determines whateach button does.
* There isn’t enough display space to provide strongfeedback about the mode.
![Page 19: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/19.jpg)
11/13/2004 19
Mode ErrorsSolutions:* Strive for consistent behavior
of buttons across modes.* Provide display feedback
about behavior of keysin the current mode.
* Provide an option forscrolling help tips if possible.
* Allow the device to be programmed externally (e.g.from a PC with Bluetooth).
![Page 20: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/20.jpg)
11/13/2004 20
Mode ErrorsIf you don’t have a tiny screen, then make the context clear!i.e. use color, tabs, navigation graphics etc. to make clear to the user “where” they are in the interface.
![Page 21: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/21.jpg)
11/13/2004 21
Typical ErrorsDescription 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.
![Page 22: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/22.jpg)
11/13/2004 22
Typical ErrorsCapture error: (aka the tongue twister 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.
Solution: be aware of and testfor this error. Try differentcommand names.
![Page 23: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/23.jpg)
11/13/2004 23
Detecting ErrorsThe 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
![Page 24: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/24.jpg)
11/13/2004 24
System Response
Stop the user from continuing the way they were going (and possibly compounding the error).Take “safe” recovery actions - e.g. auto-save the state with a unique name. Begin the recovery process…
![Page 25: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/25.jpg)
11/13/2004 25
Break
![Page 26: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/26.jpg)
11/13/2004 26
RecoveryGagWarnDo NothingSelf CorrectTeach MeLet’s talk about it
![Page 27: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/27.jpg)
11/13/2004 27
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!
![Page 28: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/28.jpg)
11/13/2004 28
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.
![Page 29: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/29.jpg)
11/13/2004 29
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 can be useful in automation/DB queries –* It allows scripts/queries to continue executing,
but e.g. don’t copy a file onto itself.
![Page 30: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/30.jpg)
11/13/2004 30
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.
![Page 31: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/31.jpg)
11/13/2004 31
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.
![Page 32: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/32.jpg)
11/13/2004 32
Teach Me
System informs user what they can do.
Common in speech recognizers. Include command “what can I say?”, or run speech tutorial.
![Page 33: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/33.jpg)
11/13/2004 33
ExplanationsThe 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…”
![Page 34: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/34.jpg)
11/13/2004 34
RecoveryThe 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.
![Page 35: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/35.jpg)
11/13/2004 35
RecoveryRun 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.
![Page 36: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/36.jpg)
11/13/2004 36
Research ApproachesIntentional 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.
![Page 37: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/37.jpg)
11/13/2004 37
Research ApproachesAccountable 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.
![Page 38: CS 160: Lecture 21 - University of California, Berkeleyjfc/cs160/SP06/... · 11/13/2004 5 More sophisticated users Segmentation fault: core dumped * This lazy programmer slept through](https://reader033.fdocuments.in/reader033/viewer/2022060417/5f147d9b20da927dd82e95c9/html5/thumbnails/38.jpg)
11/13/2004 38
SummaryError 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.