- human-computer interaction - the process of design, implementation and evaluation of interactive systems from a PoV of the user
- interaction meaning two-way communication
- user centered design (UCD)
- design over user needs
- involvement of users in the design process
- preparation stage
- user research - process of gathering tidbits of data about the users, domain, etc.
- user modeling - creation of context
- design phase
- sketching - communication of the main idea to our users
- rapid prototyping - creation of prototypes of varying complexity
- implementation
- evaluation
- sales
- preparation stage
- the reality is far less rigid, stages often blend into one another
- as part of SW frameworks
- waterfall - design stage
- mini-waterfall - implementation stage
- users want
- to be in control
- to focus on the task at hand
- not to feel stupid
- not to think too much
- attempt to cater to different kinds of users, but do not attempt to fill every niche
- usability
- recall - (long-term) memorability of the environment
- efficiency - the concept of flow
- simplicity - controls are easy to learn
- low error rate - prevent the users from making them in the first place, give valuable feedback
- user satisfaction
- terminology
- task - set sequence of activities
- action - one step performed as part of a task
- story - short narrative description of user activities written by user
- scenario - informal narrative story, personal, natural, not generalizable
- use case - set of scenarios
- storyboard - a series of sketched key frames
- hierarchical task analysis
- visualizes division of tasks into subtasks
- gain insight on structure of tasks (sequence of atomic steps) needed to achieve goal
- can be used to capture user requirements, in UI design (sequence of queries, menu design, etc.)
- tree structure (goal - tasks - subtasks - steps) / textual summary
- plans - optimal tree traversal to achieve sth (mention only leaves)
- level of decomposition depends on individual task and importance of doing so
- visualizes division of tasks into subtasks
- sketch
- crude, hand-drawn
- describes ideas, arouses creativity (for coming up with solutions)
- do not confuse with low-fidelity prototype, sketches should not include application screens, just the general flow of the experience
- suggest x describe, question x answer, explore x refine, propose x test
- mockup
- a crude and incomplete version of prototype
- includes only important states, elements
- too basic for user testing
- design studio
- workgroup for brainstorming ideas
- should include all stakeholders
- end result - sketches
- lo-fi prototype
- short time frame (hours, days)
- enables for quick edits (fast workflow)
- does not use target devices
- prerequisites - user research, task analysis (HTA, scenarios, mockups)
- information architecture
- domain entities and their relations
- HTA, card sorting
- hi-fi prototype
- longer time frame (weeks/months)
- should feel like the final product, essentially a facade
- should adhere to HIG of target platform (UI design, input methods)
- does not have to include app logic (usage of mock data, WoZ technique)
- needs to contain all key parts of the application
- evaluation process
- summative
- at the conclusion of SW development process
- formative
- throughout development (continuous evaluation)
- summative
- communication between controller and view (MVC) - complete separation is often violated in practice
- dialog
- typically not structured
- modeling - graph with conditional transitions
- typical features
- sequence of actions
- fixed parts
- variable parts
- dialogue models
- state transition diagrams (STN)
- pretty much a FSM
- transitions can be conditional
- can be hierarchical (for sub-menus, etc.)
- ATN - uses registers
- we can use graph theory to find shortest paths and check validity of the final graph
- all states should be reachable (strongly connected graph) easily (subjective)
- a tour across all nodes can help determine complexity of the solution
- we should be able to get back to previous states
- automatic tests and even semi-automatic generation!
- all states should be reachable (strongly connected graph) easily (subjective)
- concur-task trees (CTT)
- introduces symbols
- user task (think something through)
- interaction task (select something)
- cooperation task
- application task (computer crunches through shit)
- abstraction task
- introduces operators
- binary
- >> - enabling
- [> - disabling
- |> - interruption
- [] - choice
- ||| - concurrency
- unary
- T* - iteration
- [T] - optionality
- binary
- introduces symbols
- petri nets (PN)
- utilizes token shift
- used programming constructs
- concurrency
- synchronization
- sequencing
- selection
- control branching
- looping
- state transition diagrams (STN)
- monolithic architecture - presentation, dialogue, application (PDA)
- as with MVC, a change in one part propagates to other parts
- feedback
- lexical - movement of mouse
- syntactic - menu highlights
- semantic - sum of numbers changes
- often slow, the user demands fast reactions
- use syntactic feedback to alleviate this issue
- UI models
- seeheim
- presentation
- generates output
- receives input events (lexical parsing)
- dialog control
- parsing of tokens into syntax
- maintains state
- application interface model (AIM)
- interface between UI and the rest of the software
- semantic feedback - checks validity of inputs
- presentation
- seeheim
- perception
- bottom-up - focus on pattern building
- top-down - dependent on attention, focus on a single part
- low-level features analyzed
- form (size, rotation)
- color
- motion
- pop-out effect
- object is sufficiently different from its neighbors
- should be used for important objects
- use primary features (size, rotation, color, motion)
- do not combine multiple features at the same time
- objects should retain their look (e.g. button should not look like an advertisement)
- stylistic consistency leads to comparatively longer visual search process
- biased feature competition
- we already have a prior knowledge of how the object looks like
- gestalt principles
- proximity
- similarity
- closure
- symmetry
- continuity
- use color coding, familiar shapes
- problem with interference of specific cognitive processes
- ex. with colored text
- use maximum of 4 colors
- beware of cultural context
- be consistent (for the most part)
- use fall-back (e.g. for colorblind people)
- problem with interference of specific cognitive processes
- icon design
- findability (placement)
- recognition (floppy disc -> save dialogue)
- information scent
- attractiveness
- cognitive modeling
- deals with producing computational models of how humans perform tasks and solve problems
- used to estimate task and training time and answer design questions
- model human processor (MHP)
- short-term memory processes perception and motor movement
- cognition is processed in both short- and long-term memories
- processing can be serial, parallel
- parameters
- processor - cycle time
- memories - storage capacity, information decay, information type
- memories
- sensory - "buffer" for stimuli - visual, audio, tactile
- short-term - 70ms access time, 7s decay, stores 2-4 chunks
- long-term - 100ms access time, slow decay, large capacity
- declarative information - facts, data, events
- procedural - how to do stuff (if - then)
- stimuli goes from sensory memory to short-term memory via attention
- storage in LTM
- via rehearsal
- the more time we spend rehearsing, the more we remember
- spreading learning over different time periods helps
- presence of structure, knowledge of meaning (domain) also helps
- forgetting information in LTM
- interference with new information (German v English) or replacement
- gradual decay
- memory is selective and can be subconsciously affected by mood
- information retrieval from LTM
- recognition - helped by stimuli
- recall - no outside help, spontaneous
- cognitive processes
- selective attention
- focus on one object
- failure in object formation
- switching attention
- takes 100-200ms
- Cocktail party effect
- learning
- parts
- memorization
- understanding concepts and rules
- acquiring and automating motor skills
- can be helped
- structure
- similarities with something else
- repetition
- is hindered by
- conflicting previous knowledge
- inconsistency
- parts
- problem solving
- deductive (rule-based, if - then)
- inductive (generalizing from previous cases)
- abductive (causation)
- language
- rules, patterns
- selective attention
- models of human behavior
- GOMS
- predicts user performance
- can be used in design stage
- parts
- goals
- what we want to achieve
- can be decomposed into subgoals
- operators
- actions (as atomic as possible)
- ex. move mouse to icon, press button
- we assign a time value to each operator
- methods
- sequence of operators to accomplish goal
- ex. move mouse, depress button, drag mouse, release button
- selection rules
- decision tree
- if there are multiple ways to achieve goal, decides which method to use
- goals
- output
- total execution time
- rank ordering
- procedures executed
- pitfalls
- we presume the user is trained
- we can assign a time value to every operator
- we presume no outside interference
- keystroke-level problem (KLM)
- based on GOMS, inherits basic characteristics
- used operators
- K - keystroke
- P - point (mouse dragging)
- H - homing (movement of hand from default position)
- D - drawing
- M - mental activity
- R - response (output / system)
- time duration is provided for user operators
- experienced users may be capable of multitasking (mental operations run in parallel with other actions)
- power law of practice
- time to complete task on n-th try
- Tn = T1 * n^(-a)
- T1 - time for first trial
- n - number of trials
- a - learning rate (0.2 - 0.6)
- applies only to skilled behavior (perceptual, motor)
- hick-hyman law
- time it takes for the user to make a mental decision
- T = a + b * log2(n + 1)
- a - basic processing time
- b - additional time per choice
- n - number of choices
- fitt's law
- measures movement time for selection tasks
- the time increases with distance, decreases with size of target
- T = a + b * log2(2d / w)
- a, b - constants
- need to be acquired by testing and subsequent statistical analysis
- d - distance
- w - width of shape (in direction of motion)
- a, b - constants
- measures movement time for selection tasks
- GOMS
- guidelines set rules, these can be simplistic, abstract
- HIG are meant to enforce a unified design philosophy across elements of a specific ecosystem
- ISO guidelines - software ergonomics, haptic interactions, displays, etc.
- patterns are context specific
- tabs - selected tab should be clearly highlighted, they are used for alternate views within same context
- sliders - used when precision is not required
- types of impairment - hearing, visual, motor, cognitive
- offer alternative means of input, output
- heuristics
- content parseable by screen reader (respect HIG)
- alt text
- use headings
- immediate validation
- focus on user's abilities rather than limitations, design from scratch
- intelligent system capabilities
- reasoning - derivation of new knowledge based on existing knowledge (transitivity in graphs)
- learning - improvement of behavior
- adaptability to changes in environments
- intelligent user interface
- link between user and intelligent interactive system
- natural method of communication, accessible (UI adapts to user's capabilities), low cognitive load (UI personalization)
- computer mediated interaction
- synchronous x asynchronous
- local x remote