Christophe Jacquet
Human-Computer Interaction Interaction Homme-Machine
EFREI, 2009-2010
Table of Contents
Introduction to Human-Computer Interaction ...............................................1-1 Graphical interfaces........................................................................................2-1 Architecture models for HCI..........................................................................3-1 Human factors ................................................................................................4-1 Web interfaces................................................................................................5-1 Struts: MVC for the web ................................................................................6-1 Design & evaluation of user interfaces ..........................................................7-1 Major interface design concepts.....................................................................8-1 Post-WIMP interfaces ....................................................................................9-1
Glossary.........................................................................................................A-1
C. Jacquet — Human-Computer Interaction
EFREI SI 2009-2010
Introduction to HCI
Human-Computer Interaction
CHAPTER
1
Introduction to Human-Computer Interaction
Course overview 1. 2. 3. 4. 5. 6. 7. 8. 9.
Introduction to Human-Computer Interaction Graphical Interfaces Architecture Models for HCI Human factors Web interfaces Struts: MVC for the web Design & evaluation of user interfaces Major interface design concepts Post-WIMP interfaces
2
Chapter outline Introduction to Human-Computer Interaction 1.1 What is HCI 1.2 A Short History of HCI 1.3 Classical Input Devices 1.4 Classical Output Devices 1.5 Advanced I/O Devices
1-1
C. Jacquet — Human-Computer Interaction
Introduction to HCI
1.1 What is HCI? HCI – Human-Computer Interaction IHM – Interaction Homme-Machine
4
Interactive system • Interactive system – System whose behavior depends on an external environment that it does not control
→ Open systems ≠ Closed system (autonomous, embedded systems)
5
HCI: human-computer inter… • Interaction: all physical and cognitive phenomena that occur when someone is performing tasks with a computer • Interface: a setup of hardware and software components that enable a computer to be used to perform some tasks • The interface does not necessarily make a usable system! 6
1-2
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Usability • Is the system useful to perform a task? • Account for: – The interface – The sequence of actions necessary to perform the task – Consistency with context of use
7
Why study HCI?
IBM 7030, 1961
iMac, 2004
Interfaces have made headway… 8
… but still need improvement
9
1-3
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Significance of HCI • Bad interface → unusable software – Even if functionally wonderful…
• HCI in software development – 1/3 project meetings – 48% (software) to 80% (web) of the code
• Financial point of view – Call center: new HCI → gained 600ms/call, saved $3 million / year – Solved 20 out of 75 usability problems in a database → turnover +66% 10
HCI topics • Design methodology – User-centered – Participative design
Social sciences
• Know the human being – Perception psychology – Social sciences
Life sciences
• Tools – Toolkits, languages – Interaction engineering
Engineering
• Design – Art, typography
Design
11
1.2 A Short History of HCI
1-4
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Early agenda • 1945 : Vannevar Bush, As We May Think • Memex (Memory Extender) • Early idea of a hypertext system: – Library with easy access (mechanical device) – Cross-references (links) – Trails
13
Memex • Imagined interface: Memex Desk – Head-mounted camera – Typewriters – Voice recognition, – Speech synthesis – Touch screens
14
First interfaces
Terminal = Console
ENIAC First computer ever (1946) Teletype (TTY) Model 33 (1961)
DEC VT-100 (1978)
15
1-5
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Dialogic interfaces • Unix (1969), VMS (1975), CP/M (1977), PC-DOS (1980) • Still in use today • Teletypes and then consoles (=terminals) (screen+keyboard) • Commands (verb+complement) • Answers
login: jacquet Password: Compaq Computer Corporation Tru64 UNIX jacquet@gonzales: ~ % pwd /urisc/si/jacquet jacquet@gonzales: ~ % cd /etc jacquet@gonzales: /etc % ls *.conf syslog.conf imapd.conf resolv.conf inetd.conf jacquet@gonzales: /etc %
16
Early personal computers Apple II (1977)
IBM PC-AT (1984)
French Minitel (1982) MS-DOS 3.3 (1987) 17
NLS: oN-Line System • Stanford, Douglas Engelbart, 1968 • Modern features: – Mouse – Raster-scan monitors – Hypertext – Groupware
• But difficult to learn
18
1-6
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Xerox Palo Alto Research Center • Xerox: copier business • “PARC”, 1970 • Funding • Significant researchers: Alan Kay, Butler Lampson, Mark Weiser • Many inventions • Somewhat failed to market them 19
PARC Outputs • • • •
Laser printer Graphical user interface Ethernet networking WYSIWYG: What You See Is What You Get
• Object-oriented programming (Smalltalk)
20
Xerox Alto • Bitmapped display • Mouse
1973
• Ancestor of personal computers and workstations • Internal use at Xerox + a few universities
21
1-7
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Xerox Alto GUI • Desinged for blackand-white bitmapped screens • Had most components of today’s GUIs: – Buttons – Lists of items
• Still crude though 22
Xerox Star 8010 • Commercial, 1981 • Very innovative: – – – – – – –
Mouse Bitmapped display GUI Icons, folders Ethernet File/print servers E-mail
23
Xerox Star interface
24
1-8
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Apple Lisa (1983) • Based on PARC’s concepts (Star) • Pull-down menus • Commercial failure
25
Apple Macintosh (1984) • Same concepts as Lisa • Cheaper ($2495 vs $9995) • Fewer bugs • Self-contained • Hi-res B&W display
26
Macintosh Interface
27
1-9
C. Jacquet — Human-Computer Interaction
Introduction to HCI
1985: Windows 1.0
Tiled windows (no overlap) 28
1990: Windows 3
Since then, no revolution in UI concepts on desktops
29
1.3 Classical Input Devices
1-10
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Input devices • Many devices available • Combination of several devices: complementarity – Example: mouse + keyboard
• Any input must produce a feedback – Physical keyboard, virtual keyboard – Mouse cursor
Laser keyboard for Palm… « complete with realistic tapping sounds »
Input devices: typology • Input type: – Discrete: keyboard – Continuous: mouse, optical pen, joystick
• Localization: – Direct: optical pen, touch screen – Indirect: mouse, trackball, joystick, graphics tablet – Absolute: touch screen, graphics tablet – Relative: mouse, trackball, joystick
Keyboards: 1- typewriter-style • Types of keys: – Rubber keyboards • Trendy at the beginning of the 1980’s • No longer used on desktop computers
– Mechanical keyboards
1-11
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Keyboards: 2- chorded keyboards • One-hand → several keys at a time • Transcribe talks (e.g. parliaments…) • Users with disabilities (e.g. blind people)
Speech recognition • Appealing: hands-free, natural • But error-prone: – Differences of accents across people – Natural language is ambiguous
• Uses: – Type text, enter commands – Not: pointing
• Application domains: – Telephones – Specific domains: ticket booking, medical reports
Pointing devices • Continuous devices – A discrete (software) grid can ease their use
• Localization: – Direct: optical pen, touch screen – Indirect: mouse, trackball, joystick, graphics tablet – Absolute: touch screen, graphics tablet – Relative: mouse, trackball, joystick
1-12
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Mouse • Invented by Douglas Engelbart (1963) • Indirect & relative • Buttons: 1, 2 & more • Scroll wheel(s)
Mouse: motion capture • Wheels (Engelbart) • Ball and wheels • Optical detection – CCD sensor – Specialized processor – Surface lit by red LEDs – Recently: laser light
Mechanism of a ball mouse
Wheels Ball Optical
1960
1970
1980
1990
2000
Mouse equivalents Indirect & relative • Trackball: – Inverted ball mouse – Used in laptops in the 1990s – Some standalone models
• Touchpad: – Capacity detection – Used in today’s laptops
1-13
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Graphics tablet • Indirect/absolute • Stylus • Good precision – Line art
• Detects: – – – –
Position Pressure Inclination Two stylus
• Drawback – Distant feedback
Touch screen • Direct & absolute • Pointing with: – Fingers – Stylus
• Applications: – Public kiosks e.g.: SNCF vending machines – PDAs – Tablet PCs
Light pen • Direct & absolute • Detection of the beam of cathodic ray tube (CRT) screens • Hype at the beginning of the 1980’s: – Thomson MO5, TO7 – BBC Micro
• Fell out of use
1-14
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Direct pointing devices touch screens, light pens • Benefits: – Very direct interaction – Very easy to learn
• Drawbacks: – Generally imprecise – Tiresome (hands and arms) – One hides the screen while pointing
Bimanual Interaction • 2 hands: primary → precise task secondary → simpler task • Example (Engelbart): Mouse (continuous) Chorded keyboard (discrete)
• In use today (Windows, MacOS…) – Chorded keyboard → special keys on the main keyboard (shift, alt, control)
Handwriting recognition • Touch screen + stylus: – Pointing – Writing
• Used on PDAs and Tablets
• Natural…?
1-15
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Handwriting recognition • Many errors → troublesome • Special alphabets + less error-prone − less natural; one has to learn an alphabet!
Xerox Unistrokes (1995)
Palm Graffiti 1 (1997)
Handwriting recognition • Newer systems: more natural
Palm Graffiti 2 (2003) ≈ Microsoft Block Recognizer
1.4 Classical Output Devices
1-16
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Graphics… Vector
Raster (bitmap)
Shape outlines
Colors of dots (=pixels)
Vector graphics • Shape outlines + stroke + fill • Suited for: – fonts – technical/geometric drawings – line art
• Lightweight • Arbitrary size • Postscript, SVG
Example (Postscript)
4 setlinewidth newpath 270.4799 156.37714 moveto 178.16158 406.71477 lineto 363.13514 406.71477 lineto 270.4799 156.37714 lineto 232.07009 89.328441 moveto 309.22664 89.328441 lineto 500.93876 592.36218 lineto 430.18385 592.36218 lineto 384.36162 463.3187 lineto 157.60897 463.3187 lineto 111.78674 592.36218 lineto 40.021039 592.36218 lineto 232.07009 89.328441 lineto stroke
Raster graphics • Color of each dot • Suited for:
Example
– Photographs – Any graphics at a given resolution
• Not scalable • JPEG, PNG, etc.
R 52%, G 47%, B 29% R 51%, G 44%, B 27% R 50%, G 42%, B 26% R 49%, G 41%, B 25% R 52%, G 47%, B 29% R 46%, G 36%, B 22% R 42%, G 30%, B 18% R 37%, G 26%, B 14% … R 53%, G 62%, B 56% … R 20%, G 29%, B 27% R 26%, G 35%, B 33%
1-17
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Screen • Vector-based monitors = X-Y displays (1950-1980) – Oscilloscope-like Cathodic Ray Tube (CRT) – Radars – Arcade games
• Bitmapped displays = raster displays – CRT: 1960-now – Liquid Crystal Displays (LCD): 2000-…
Raster display: typology • Resolution: pixels per inch [1 inch = 2.54 cm] – Physical size [inches] – Pixel size [pixels]
• Aspect ratio: width/height (4/3, 16/9…) • Color depth: bits per pixel – Number of colors: 2color depth
• Memory size: – (number of pixels) × (color depth)
Color on raster displays • Eye: red, green, blue cones to detect all colors • Same idea to synthesize colors: red, green, blue light-emitting dots →
→
→
→
→
→
→
→
R/G/B: primary colors
C/M/Y: secondary colors
1-18
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Color coding • Monochrome: 1 bit per pixel • True color: – Each component (R/G/B) coded by n bits – Example: 24bpp → 8 bits R, 8 bits G, 8 bits B
• Indexed
… Color: m bpp
Memory n bpp
… Color table: 2n entries
Display technologies • Cathode Ray Tube (CRT) – used the deflection of an electron beam that hit a surface covered with phosphorus dots – now phased-out 1 pixel
• “Flat screens”: – Liquid Crystal Display (LCD) – Organic Light-Emitting Diodes (OLED)
1.5 Advanced I/O Devices
1-19
C. Jacquet — Human-Computer Interaction
Introduction to HCI
3D gloves • Grasp objects in virtual reality • Still limited to research experiments
Head-mounted displays • LCD, CRT • Stereoscopic • Head movement tracker → look around • Virtual reality • Augmented reality
CAVE • Cave Automatic Virtual Environment • Setup – People in a large cubic room – Projectors → 4 to 6 faces – Stereoscopic shutter glasses – Fast computers to drive all this
• Applications – CAD – DNA exploration (Orsay)
1-20
C. Jacquet — Human-Computer Interaction
Introduction to HCI
Devices for handicapped people • • • •
Eye tracker Head movement tracker Braille terminal: keyboard + tactile display Mouse with tactile/Braille feedback
Virtouch VTPlayer
Braille terminal
1-21
C. Jacquet — Human-Computer Interaction
EFREI SI 2009-2010
Graphical interfaces
Human-Computer Interaction
CHAPTER
2
Graphical Interfaces
1
Chapter Outline Graphical Interfaces 2.1 WIMP 2.2 Windowing systems 2.3 Widgets and associated tasks 2.4 Linking widgets to applications
2
WIMP Concepts
3
2-1
C. Jacquet — Human-Computer Interaction
Graphical interfaces
WIMP • • • •
Windows Icons Menus Pointers
• Benefits – Soft learning curve – Standard environments – Simple to use and to implement 4
Windows, icons, menus
• Icons may stand for “reduced” (iconified) windows • All these graphical elements are called widgets 5
Pointers • Pointer: logical position • Pointing device: change the pointer’s position • Pointer → reflects the current state of the application or system: – Ready – Busy – Moving…
6
2-2
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Windowing systems
7
Window managers • Window manager : – draw "decorations" : title bar, borders – programmers need not worry about the actual configuration of the workstation nor other applications: notion of abstract terminal – users may manage windows : resize, move – example : X Window's window managers
• Compositing window manager – each window drawn independently to a buffer – windows "composited" on the desktop afterwards, generally using 3D acceleration – example : Windows Vista, MacOS X, Compiz 8
Windowing models • Tiled windows / overlapping windows
• Possibly hierarchical
9
2-3
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Window hierarchy • SDI – Single Document Interface A
– No hierarchy, one-level
• MDI – Multiple Document Interface
A
– Sub-windows
• TDI – Tabbed Document Interface
B
A
– Newer, ex: web browsers
B
B
C
B
10
Window manipulation • Classical operations – – – –
Place, move Resize Iconify, maximize, restore initial size Close
• Decorations – Border, title bar – Menu, window icon, keyboard shortcuts
• Special operations – Reduce to title bar – Always on top
11
Re-display hidden zones • Zones of windows get hidden (overlapped, off-screen) • Re-displayed when on-screen again • By the windowing system – Keep window content in memory
• By the applications – Have to be notified when necessary
12
2-4
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Looking back • What hasn’t changed since the Star – WIMP concepts
• What has changed – More applications – Screens have gotten bigger – Many windows per app → designed to run full-screen
• Consequence: new trend – Use the GPU instead of the CPU for graphics (MacOS X, Windows Vista) 13
Widgets and associated tasks
14
Widgets • Graphical interactive object → perform a task • 3 facets: – Presentation: how it looks – Behavior: response to user’s actions – Software interface: API
• Benefits: – Standard interaction styles – Code reuse 15
2-5
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Evolution of widgets • On the Macintosh (1984): – Button – Slider – Pull-down menu – Checkbox – Radio button – Text field – File open/save dialog
• Later: – Multi-level menus, lists, combo-boxes, tabs… 16
Actual radio buttons...
17
Elementary interaction tasks • • • • • •
Data input Selection Action firing Scrolling Arguments and properties specification …
→ Widgets for each task 18
2-6
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Input tasks • Text input – Text box
• Quantity input – Slider, spinner
• Position input – Pointing
• Path input – sampling
19
Selection tasks • Choosing one or several elements in a set – Variable or fixed count – Small or large count
• Fixed count – Menu, radio buttons, checkboxes
• Variable count – List, name input, combination
• Multiple selection: range, add, remove
20
Selection • Menus – Drop-down – Pop-up – Palettes, toolbars
• Organization – Hierarchical – Pie menus = Radial menus (circular pop-up)
21
2-7
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Selection: new techniques [Ahlberg & Shneiderman, 1994]
• Range slider – Easy selection of a range
• Alpha slider North by Northwest ←
→ ABC
DEF
GHIJKL
MN
OPQ
RST
UVWXYZ
22
Firing actions • Buttons and menus • Drag-and-drop – The action depends on the source and target
• Gestures – Specify both command and object Delete
Move 23
Scrolling • Scrollbars – Direction? – Spatial decoupling
• Direct scrolling
• Automatic scrolling
24
2-8
C. Jacquet — Human-Computer Interaction
Graphical interfaces
Specifying arguments and properties • Dialog boxes – Spatial and temporal decoupling between the specification of the command, the parameters, and the execution – Modal, non-modal
• Property boxes – Immediate effect on the selected objects 25
Linking widgets to applications
26
Linking widgets to applications • (1) Interface: set of widgets – Trigger actions – Display output & feedback
• (2) Functional core: business logic interactive system user
interface
LINK
functional core 27
2-9
C. Jacquet — Human-Computer Interaction
Graphical interfaces
1- Notifications Callback functions, messages... 1) Associated to widgets upon creation doPrint(…) { … }
2) Called upon activation doPrint(…) { … } 28
2- Read-evaluation loop The application actively waits for input Read input
Process input
Quit?
29
3- Active values • Bi-directional link between – the state of a widget – a variable i=12
i=26
i=15 30
2-10
C. Jacquet — Human-Computer Interaction
EFREI SI 2009-2010
Architecture Models for HCI
Human-Computer Interaction
CHAPTER
3
Architecture Models for HCI
1
Chapter outline Architecture Models for HCI 3.1 Why architecture models? 3.2 Classical architecture models 3.3 Swing, an example of MVC toolkit
2
3.1 Why Architecture Models?
3
3-1
C. Jacquet — Human-Computer Interaction
Architecture Models for HCI
Crucial question • When designing an application How to link the functional core to the user interface? interactive system/application (desktop, web, mobile...) user
interface
?
functional core
4
Example: typical PHP code ...