HCI - Human-Computer Interaction
A program is often judged only on its GUI (rightly or rongly).
-
there is no method which, when followed, gives a good GUI
(and what does 'good' mean?
-
there are principles and guidelines.
Eg of a set of priciples
-
user familiarity (see below)
-
minimal surprise
-
recoverability
-
guidance
-
consistency
e.g of a guideline:
Users can't understand boolean logic
________________________________
| Do you wish to cancel disc |
| write protection over-ride? |
| OK Cancel |
|_______________________________|
Goals
The program should assist a user to achieve their goals, e.g:
-
do a task
-
easily?
-
fast?
-
have fun?
Some form of 'task analysis' is often done.
If goals are not met, the GUI is not suitable.
Users don't always want a 'fancy' GUI (eg.sales processing - paid by speed?)
Interaction Styles
Direct manipulation - uses familiar objects:
often termed 'desktop metaphor'
...but a GUI based on the real world might be too restrictive
(e.g
a computer calendar can scroll over years easily)
Command-line - eg
javac fred.java
java fred
For operating systems:
-
lots of commands
-
with many parameters
Unix e.g:
chmod 600 *.html
Benefits:
-
preferred by some expert users
-
we can build-up files containing a series of commands, and execute them with one command.
but - not for novices
Principle of familiarity
-
you don't have a free hand when designing a GUI
-
you CAN create new controls (e.g circular volume control knob)
but often you stick to those in your toolkit.
There are conventions, e.g:
-
what is under the File menu, where the help is...
-
shading of buttons...
(Microsoft publish guidelines on these)
Error messages
-
slow down the user
-
can the program handle the error rather than tell the user? (sometimes it can...)
Evaluation
May involve:
-
statistical tests
-
video of users
-
questionaire
-
'thinking aloud'
Even a limited evaluation may be effective.
Alan Cooper - Mr. VB says...
-
HCI design is not guesswork
-
HCI evaluation cannot produce good design.
-
programs have different patterns of use, e.g Word, an unzipper.
-
good interfaces are invisible.
Common ground - design patterns
provide a large set of reusable patterns for HCI.
Look at 'Go back to a safe place' in the booklet - have you seen it in use?