COSC368 Exam Notes

Pillars of usability:

HCI should aim for simplicity; aim to make the UI match the complexity of the domain.

Don Norman’s Model of Interaction:

               constructs
   Designer/ -------------> System/system image
designer model                ^
                    Provides  | Provides input based on
                    feedback/ | their prediction of how
                     output   |  to achieve their goal 
                              v
                             User/
                          user model

Designer model:

User model:

System Image:

Execute-Evaluate Cycle:

UISO:

Mappings:

Humans Input:

Human output:

Fitt’s Law

Steering Law:

Hick/Hyman Law of Decision Time:

Power Law of Practice:

Novice to Expert:

Human Memory:

Slips:

Human phenomena:

Top-level design process:

Iterative design: don’t find a single idea and improve on that: leads to premature commitment, local maxima, and tunnel vision

Elaborative/reduction: first explore the full design space, then refine the design(s)

Task-Centered System Design (TCSD):

User-Centered System Design (UCSD):

Nielson’s Ten Heuristics:

  1. Simple and natural dialogue
    • Make it as simple as possible but no simpler
    • Presentation + navigation should be natural and consistent
    • Design: organize, economize, communicate
  2. Speak the user’s language
    • Affordances (it is used the way it looks like it should be used)
    • Mappings
    • Metaphors
    • Base terminology on user’s task language, not implementation
  3. Minimize memory load
    • Recall slow; use recognition where possible
    • Show input formats, provide defaults (e.g. date fields - what format is it supposed to be entered in, can a sensible default be provided?)
    • Support reuse/re-visitation (e.g. show a few of the most commonly or recently used)
    • Support unit exchange
    • Support generalization: universal commands, modifiers
  4. Consistency
    • In graphic design
    • In command structure (e.g. pick command then select object or select object and run command)
    • Internally
    • Externally (within the platform)
    • Beyond computing
  5. Feedback
    • Continuous feedback about the system state and system’s interpretation of user input
    • Feedback should be:
      • Specific
      • Consider feed-forward: show effect of action before it is committed
    • Autocomplete
      • Must be stable and predictable - muscle memory, not reading
      • Consider persistance: how disruptive and enduring should the feedback be?
  6. Clearly-marked exits; don’t trap the user
    • Cancel buttons, universal undo, interrupt long-running operations etc.
    • More recent actions should override older ones
    • Quit
      • ‘Do you want to save changes to ${filename}?’: ‘Don’t Save’, ‘Cancel’, ‘Save’; should be specific
  7. Shortcuts
    • Keyboard accelerators
    • Command completion, type-ahead
    • Function keys
    • Double clicking
    • Gestures
    • History
    • Customizable toolbars
  8. Prevent errors, avoid modes
    • Syntactic correctness - disable items that aren’t valid
    • Feedback reduces chance of slips
    • Easy correction - universal undo
    • Commensurate effort: states difficult to get to should be difficult to irreversibly leave
    • Forcing functions: prevent behavior until problem corrected
      • Interlocks: force right order of operations (e.g. remove card before ATM dispenses cash)
      • Lock-ins: force user to remain in space (e.g. would you like to save changes dialog on close)
      • Lock-outs: force user leaving space or prevent event from occurring
      • Don’t just ignore illegal actions - user must infer what is wrong
    • Mode errors:
      • Have as few modes as possible
      • Make current mode easily apparent
      • Spring-loaded modes: ongoing action required to stay in mode
  9. Deal with errors positively and helpfully
    • Clear language, not codes
    • Precise
    • Constructive - offer solutions
  10. Help and documentation
    • Documentation is not permission to design a crappy UI
    • Write the manual before the system
    • Reminders: tooltips
    • Wizards: puts system, not user in control. Don’t overuse
    • Tutorials

Heuristic evaluation:

Gestalt Laws of Perceptual Organization:

PARC Principles:

Misc:

UI Evaluation:

TODO: 03. User Interface Evaluation.