Professional Documents
Culture Documents
Introduction
• Designing for maximum usability
– the goal of interaction design
• Principles of usability
– general understanding
• Design patterns
– capture and reuse design knowledge
Types of Design Rules
• Principles
– abstract design rules
– low authority
Guidelines
– high generality
increasing generality
increasing generality
• Standards
– specific design rules
– high authority Standards
– limited application
• Guidelines
increasing authority
– lower authority increasing authority
Learnability
the ease with which new users can begin effective
interaction and achieve maximal performance
Flexibility
the multiplicity of ways the user and system
exchange information
Robustness
the level of support provided the user in
determining successful achievement and assessment
of goal-directed behaviour
Principle of Learnability
Predictability
– determining effect of future actions based on past
interaction history
– operation visibility
Synthesizability
– assessing the effect of past actions
– immediate vs. eventual honesty
Familiarity
– how prior knowledge applies to new system
– guessability; affordance
Generalizability
– extending specific interaction knowledge to new
situations
Consistency
– likeness in input/output behaviour arising from
similar situations or task objectives
Principles of Flexibility
Dialogue initiative
– freedom from system imposed constraints on input dialogue
– system vs. user pre-emptiveness
Multithreading
– ability of system to support user interaction for more than one task at a
time
– concurrent vs. interleaving; multimodality
Task migratability
– passing responsibility for task execution between user and system
Substitutivity
– allowing equivalent values of input and output to
be substituted for each other
– representation multiplicity; equal opportunity
Customizability
– modifiability of the user interface by user
(adaptability) or system (adaptivity)
Principles of Robustness
Observability
– ability of user to evaluate the internal state of the system from its
perceivable representation
– browsability; defaults; reachability; persistence; operation visibility
Recoverability
– ability of user to take corrective action once an error has been
recognized
– reachability; forward/backward recovery; commensurate effort
Responsiveness
– how the user perceives the rate of communication
with the system
– Stability
Task conformance
– degree to which system services support all of the
user's tasks
– task completeness; task adequacy
Design Rules – Standards (1.3)
repeat
read-event(myevent)
case myevent.type
type_1:
do type_1 processing
type_2:
do type_2 processing
...
type_n:
do type_n processing
end case
end repeat
Notification based
• in which the main control loop for the event processing does not
reside within the application.
• a centralized notifier receives events from the window system and
filters them to the application program in a way declared by the
program.
• The application program informs the notifier what events are of
interest to it, and for each event declares one of its own
procedures as a callback before turning control over to the notifier.
• Control flow is centralized in the notifier, which relieves the
application program of much of the tedium of processing every
possible event passed to it by the window system.
• Problem: pre-emptive dialog
Notification-based
int mySave(Event e) {
// save the current file
}
int myQuit(Event e) {
// close down
}
Tool Kits
• user’s perspective is that input and output behaviors
are intrinsically linked to independent entities on the
display screen.
• To aid the programmer in fusing input and output
behaviors, another level of abstraction is placed on top
of the window system – the toolkit.
• A toolkit provides the programmer with a set of ready-
made interaction objects – alternatively called
interaction techniques, gadgets or widgets – which
he/she can use to create his/her application programs.
• Interaction objects comes for free without any further
programming effort.
• Toolkits exist for all windowing environments.
• To provide flexibility, the interaction objects can be tailored
to the specific situation in which they are invoked by the
programmer.
• Programming with toolkits is suited to the notification-
based programming paradigm.
• One of the advantages of programming with toolkits is that
they can enforce consistency in both input form and output
form by providing similar behavior to a collection of
widgets. This consistency of behavior for interaction objects
is referred to as the look and feel of the toolkit.
• Two features of interaction objects and
toolkits make them amenable to an object
oriented approach to programming:
instantiation and inheritance.
Using toolkits
Interaction objects
– input and output
intrinsically linked