Human-Machine Interface (Introduction to Medical Informatics) (http://www.cpmc.columbia.edu/edu/textbook) LAST REVIEWED: 1 October 1997 HUMAN FACTORS THAT GO INTO THE DESIGN OF AN INTERFACE memory short term (STM) = 7 items +/- 2 working long term (large capacity, slow access) sequence is important to memory and men much munch mush must women men and women must munch much mush chunking is important pneumonoultramicroscopicasilicovolconiosis pneumono-ultra-micro-scopica-silico-volconi-osis (lung-very-small-looking-rocks-volcanic-condition) (better known as coal-miners lung) therefore, for UI do not exceed STM use sequencing and chunking must know user's background for sequencing and chunking visual design: gestalt rules known for centuries organization of visual stimuli into larger structures 1. proximity (things close to each other merge) 2. similarity 3. closure (connect the dots) 4. good continuation visual coding - use visual properties to: encode information create distinctions how many categories are needed: (maxcat = # categories/objects experimentally encoded at 95% error-free detection) technique maxcat ---------------------------- color 10 shape 15 area size 6 length 6 typeface orientation 24 intensity 4 texture line width line style visual coding depends on type of data (nominal, ordinal, ratio) nominal want to make distinction but induce no comparisons (male vs female, names) color (for limited #, this is most accurate) fill pattern, line style, typeface shape, size, intensity beware of inadvertant hidden meanings (red=China) ordinal categorical ranking (reflexes, edema 0-4+) line style, fill pattern (density), text size other methods may induce quantitative comparisons quantitative (ratio) numeric comparisons (height, weight, hematocrit) from best to least: position along common scale (ie, graphs) position on identical non-aligned scales length (ie, histograms) angle between 2 lines; line slope area (people see 4x area as 2x larger) volume, density, color saturation color hue (not effective) redundant coding is helpful use of color good for: coding categorical information associating areas highlighting imparting realism aesthetics but: meaningless use reduces user performance (33%) 8% of men are R/G color blind individual color perceptions differ unintended meanings and associations (red means being in financial trouble) limited by separation/size/background other physiologic and aesthetic findings usage rules 1. design for monochrome (then add color) 2. do not use too many <= 4-5 in a window <= 7 in an interface 3. color code to support user tasks highlight similarities, anomalous instances 4. give users color control 5. use a method to select colors traverse a smooth path in a color restrict colors to planes in color spaces of 3 color dimensions, move only two 6. background color few colors => complement of one many colors => neutral (grey or unsaturated) 7. do not color code small objects error prone at 20-40 min arc = .1 inch at 24 inches = 7 pixels on a 1024 display layout principles balance draw eye to center of work area, not to one side (eg, not put all controls on one side) gridding = visual alignment linear discontinuity needlessly grabs attention empty space gives neatness, aesthetic appeal proportion = some ratios are naturally more pleasing 1:1 - square 1:1.414 - square root of 2 1:1.618 - Golden ratio 1:2 - double square basic interaction tasks (BITs) all actions on computer can be broken into BITs 1. position - enter number coordinates with keys, arrow keys, cursor keys, mouse and click, head-mounted display, gloves 2. selection - naming with keys, pointing, function key, voice 3. quantity - number, set dial or slidebar 4. text - QWERTY keys, character recognition, gesture recognition, speech recognition independent of data entry technique are several issues: 1. position - what coordinate system, what resolution, how give feedback, learning time 2. selection - is it a small and fixed set or a large and varying set (scroll, hierarchy, popup, pulldown, radio button) item order (alphabet, functional, most frequent first) representation (test names, icons) current selection 3. quantity - range, precision, feedback 4. text - feedback BITs are combined into Composite Instruction Tasks (CITs) to accomplish a unit of interaction with the computer depends on style of interface; eg, dialog box for GUI user interface styles (usually mixed): 1. command language (Dos, Unix) concise and powerful cryptic and hard to use 2. menus recognition (of menu item) is easier than recall (cmd) but limits size of selection set 3. question-answer okay for samll answer set 4. WYSIWYG (what you see is what you get) fundamental to graphical user interfaces but incomplete screen may not really match printer not supposed to show useful control information WYSIAYG (what you see is all you get) 5. iconic represent object, object doing action, before-after 6. direct manipulation often in WYSIWYG, but not necessarily eg, emacs and vi editors let you move text powerful and easy to learn slow for experienced users (vs command with wild cards) 7. natural language advanced interaction likely used with other modalities ("Put that there.") 8. usually combined into GUI (graphical user interface) aka WIMP (windows, icons, menus, pointing device) when designing a user interface, keep in mind "It is easy to make things hard, it is hard to make things easy." "Learning to use a computer system is like learning to use a parachute: if a novice fails on the first try, odds are he or she will not try again." high level guidelines 1. avoid short term memory overflow 7 +/- 2 items are easy to recall 2. minimize memorization recognition - recognize command in list (easy) recall - remember commands (hard) 3. provide oppurtunities for closure chunk tasks and information reinforcement when task is completed 4. consider response time minimize variance of similar tasks (better to be slower but consistent) users willing to wait longer for more complex cmd 5. be consistent user should be able to generalize about the system user creates a mental model of the system fails to conform: surprise, confusion, frustration consistent codings (eg, colors code in same way) muscle memory (eg, menu choices in same place) 6. but do not be blindly consistent eg, file to trash icon means delete file to email icon means mail and delete file to print icon means print and delete? instead use "Law of Least Astonishment" what the user expects as natural, reasonable 7. simplicity easy to remember and fewer mistakes 8. provide feedback a. lexical - eg, mouse pointer on screen b. syntactic (sequence) - eg, highlight selection c. semantic - eg, percent completed control domain - defaults, font available, ... problem domain - position, existence of object 9. accomodate multiple skill levels prompts - suggest next action help facilities starter kit to hide complexity accelerator - hot key, cmd line */autocompletion extensible - macros to code sequence of cmds 10. avoid harmful modes mode = state in which subset of action can be done bad - entry into state is unclear to user duration is unclear difficult to exit serves no meaningful role to user good - current state is clear to user feedback show available cmds and options narrows choice of next appropriate cmd easy to exit or cancel 11. provide help globally available, able to invoke at any time provide several user entry points top - browse for information command - info specific to doing cmd error - for particular message help history information to guide back 12. minimize errors make it difficult to make mistakes context sensitivity - disable inappropriate cmds confirmation of destructive actions 13. provide error recovery undo - if already done abort - in progress cancel - before start error correction - retype, backspace 14. clear error messages do not expect user to understand program details BUILDING A HUMAN-MACHINE INTERFACE user interface standard - high level specification - defines a model of user interaction - crosses all platforms - independent of type of display (char, GUI) - provide consistency eg, Common User Access (CUA) principles get user's conceptual model to match application use metaphors user-driven interface consistent interface avoid most modes OK: modal dialog, spring-loaded, tool-driven make interface transparent used by: Windows OS/2 Motif X-Windows (essentially copied from Mac/Xerox) model of application (eg, word processor) user acts upon objects (documents) objects are composed of sub-objects (words) actions on objects as a whole (save) actions on portions of objects (paste) change view of object (zoom) interface composed of windows work area shows object menu bar of actions file (whole object) edit (parts of objects) view (customize appearance) options (customize object) help dialog boxes group and steer user interaction standard layout & keys for character-based standard layout, keys, pointer for GUI ... widget = graphical object used to build interface eg, scroll bar hierarchy for implementation - eg, CUA on Unix application - defines objects and actions Motif - defines how widgets are combined X-Windows Toolkit - widgets (scroll bar) X-Windows Intrinsics - low-level routines (draw line) operating system - some hardware independence hardware - physical interface tools purpose guide style of the interface (CUA) reduce programming cross platforms how interface is defined 4th Generation Language (user-friendly script) subroutines in native language screen painting how it works definition is compiled into native language definition is interpreted by runtime system