Keystroke-Level Model

Keystroke-Level Model: Intro


The simplest of all GOMS models: OM only!!!

No explicit goals or selection rules

Operators and Methods (in a limited sense) only
“Useful where it is possible to specify the user’s interaction
sequence in detail” (CMN83, p. 259).
1

Control structure: Flat

Serial or Parallel: Serial

Level of Analysis: Keystroke-level operators
Rensselaer
Cognitive
Science
Keystroke-Level Model: Example
 TAO example
area code
1
2
3
num
7
0
3
2
exchange
4
5
6
9 9 3
7
1
line
8 9 10
3 5 7
pin
11 12 13 14
1 2 3 4
Rensselaer
Cognitive
Science
Keystroke-Level Model: Overview
 Step 1: Lay out assumptions
 Step 2: Write out the basic action sequence (list the keystrokelevel physical operators involved in doing the task)
 Step 3: Select the operators and durations that will be used
 Step 4: List the times next to the physical operators for the task
 Step 4a: If necessary, include system response time operators
for when the user must wait for the system to respond
 Step 5: Next add the mental operators and their times
 Step 6: Sum the times of the operators
3
Rensselaer
Cognitive
Science
Keystroke-level Model: Operators
 K: Keystroke
 T(n): Type a sequence of n characters on a keyboard
 P: Point with mouse to a target on a display
 B: Press or release mouse button
 BB: Click mouse button
 H: Home hands to keyboard or mouse
 M: Mental act of routine thinking
 W(t): Waiting time for system to respond
4
Rensselaer
Cognitive
Science
Card, Moran, and Newell on “Mentals”
 “M operations represent acts of mental preparation for applying
physical operations. Their occurrence does not follow directly
from the physical encoding, but from the specific knowledge
and skill of the user” p. 267
 “The rules for placing M’s embody psychological assumptions
about the user and are necessarily heuristic, especially given
the simplicity of the model” p. 267.
5
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of
argument strings proper (e.g., text or numbers). Place M’s in front of all
P’s that select commands (not arguments) or that begin a sequence of
direct-manipulation operations belonging to a cognitive unit.
•Pointing to a cell on a spreadsheet is pointing to an argument -- no M
•Pointing to a word in a manuscript is pointing to an argument -- no M
•Pointing to a icon on a toolbar is pointing to a command -- M
•Pointing to the label of a drop-down menu is pointing to a command -- M
6
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
 Rules 1-4 are heuristics (rules of thumb) for deleting
mentals

“A single psychological principle lies behind all the deletion
heuristics . . . physical operations in methods are chunked into
submethods” p. 268
7
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument
strings proper (e.g., text or numbers). Place M’s in front of all P’s that
select commands (not arguments) or that begin a sequence of directmanipulation operations belonging to a cognitive unit.
RULE 1: If an operator following an M is fully anticipated1 in an
operator just previous to M, then delete the M (e.g., PMK --> PK or
PMBB --> PBB).
•That is, the “M” drops out because the “P” and “BB” belong
together in a chunk -- mental unit.
•The button press “BB” is fully anticipated as the cursor is being
moved to the target.
8
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands (not
arguments) or that begin a sequence of direct-manipulation operations belonging to
a cognitive unit.
RULE 1: If an operator following an M is fully anticipated1 in an operator just
previous to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the
name of a command), then delete all M’s but the first.
•Works with command names -- but what is a command name in a GUI
interface?
•Physical actions: P(File)+ B + P(Save) + B
•RULE 0: MP + MB + MP + MB
•RULE 1: MPB + MPB
•Does rule 2 apply to eliminate the middle mental? MPBPB ?
9
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument
strings proper (e.g., text or numbers). Place M’s in front of all P’s that select
commands (not arguments) or that begin a sequence of direct-manipulation
operations belonging to a cognitive unit.
RULE 1: If an operator following an M is fully anticipated1 in an operator
just previous to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the
name of a command), then delete all M’s but the first
RULE 3: If a K is a redundant terminator (e.g., the terminator of a
command immediately following the terminator of its argument),
then delete the M in front of it.
•Applies to clicking OKAY in dialog buttons after you select a
command; e.g., in Powerpoint, you have selected text, gone to
the FORMAT:FONT palette, clicked on bold, and now point and
click on OKAY -- pointing to and clicking on OKAY is PBB, not
MPBB
10
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands
(not arguments) or that begin a sequence of direct-manipulation operations
belonging to a cognitive unit.
RULE 1: If an operator following an M is fully anticipated1 in an operator just
previous to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the name of a
command), then delete all M’s but the first
RULE 3: If a K is a redundant terminator (e.g., the terminator of a command
immediately following the terminator of its argument), then delete the M in front
of it.
RULE 4: If a K terminates a constant string (e.g., a command name), then
delete the M in front of it; but if the K terminates a variable string (e.g., an
argument string), then keep the M in front of it.
11
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
 The four heuristics do NOT capture the notion of
method chunks precisely -- these are only
approximations
 Ambiguities: Is something “fully anticipated” or is
something else a “cognitive unit”?
 Much of this ambiguity stems from variations in
expertise of the users we are modeling
12
Rensselaer
Cognitive
Science
Heuristics for inserting mental operators
Basic psychological principle: physical operations in
methods are chunked into submethods.
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands
(not arguments) or that begin a sequence of direct-manipulation operations
belonging to a cognitive unit.
RULE 1: If an operator following an M is fully anticipated1 in an operator just
previous to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the name of a
command), then delete all M’s but the first
RULE 3: If a K is a redundant terminator (e.g., the terminator of a command
immediately following the terminator of its argument), then delete the M in front
of it.
RULE 4: If a K terminates a constant string (e.g., a command name), then delete the
M in front of it; but if the K terminates a variable string (e.g., an argument string),
then keep the M in front of it.
13
Rensselaer
Cognitive
Science
KLM--mentals: example 1.

Example: SET COLUMN WIDTH 5<cr>

List the keystroke level physical operators involved in doing the task



RULE 0

M+KKKK+M+KKKKKKK+M+KKKKKK+K+M+K or

M+4K(set_)+M+7K(column_)+M+6K(width_)+1K(5)+M+1K(<cr>)
RULE 1


No change in this example
Rule 4

14
M+17K(set_column_width_)+1K(5)+M+1K(<cr>)
RULE 3


no change in this example
RULE 2


KKKKKKKKKKKKKKKKKKK (19 K’s)
No change in this example
Rensselaer
Cognitive
Science
KLM--mentals: example 2

Example: spellcheck “catelog”

List the keystroke level physical operators involved in doing the task


RULE 0


n/a
RULE 4

15
n/a (“catelog” + spellcheck do not form a cognitive unit)
RULE 3


P+BBBB+M+PBB
RULE 2


P+M+BBBB+M+P+M+BB
RULE 1


P+BBBB+P+BB (where BB is a mousedown + mouseup, and BBBB is a doubleclick)
n/a
Rensselaer
Cognitive
Science
KLM--mentals: example 3
 Example: save a file on a Mac using menus
 List the keystroke level physical operators involved in doing the
task

P+B+P+B
 RULE 0

M+P+M+B+M+P+M+B
 RULE 1

M+P+B+M+P+B
 RULE 2

n/a or M+P+B+P+B ???
 Issue: Is this FILE-->SAVE menu selection a single cognitive unit
or two?
16
Rensselaer
Cognitive
Science
Keystroke-Level Model: m1 current
 Step 1: Lay out your assumptions

There are several fields on the display, first thing that any error
recovery method must do is to identify the field to be changed.
In this case the field is the calling-card field (CCN).

For purposes of this exercise, we assume the error is made in
the second number of the exchange.

TAO’s hands are on the keyboard
 Step 2: Write out the basic action sequence (the
physical operators)

17
ƒkey(ccn) + digit(14) + enterKey
Rensselaer
Cognitive
Science
Keystroke-Level Model: m1 current
 Step 3: select the operators and durations that will be
used

We will use the ones from Kieras (1993).
operator
mental
keystroke-<key>
mouseDown or Up
click (mouseD & Up)
homing
pointing w/mouse
doubleClick
18
abbrev
M
K
B
BB
H
P
BBBB
duration
1200msec
280msec
100msec
200msec
400mec
1100msec
400msec
Rensselaer
Cognitive
Science
Keystroke-Level Model: m1 current
 Step 4: List the times next to the physical operators
for the task.
Method 1 of TAO task
press reset function keyfKEY(ccn)
type digits
digit
outpulse new number toenter
dbase
19
NUM op type
1
K
14
K
1
K
total time
time
0.28
3.92
0.28
4.48
Rensselaer
Cognitive
Science
Keystroke-Level Model: m1 current
 Step 5: Next add the mental operators and their times
Method 1 of TAO task
M before cmd
press reset function key
type digits
M terminates argument string
outpulse new number to dbase
fCCN
digit
enter
NUM op type
1
M
1
K
14
K
1
M
1
K
total time
time
1.20
0.28
3.92
1.20
0.28
6.88
 Step 6: Sum the times of the operators

Predicted time for current method is 6.88 sec

(note: this time is the same regardless of “where” the error is
made)
20
Rensselaer
Cognitive
Science
Keystroke-Level Model: m2 bs/delete


Step 1: Lay out your assumptions

s/a model 1 except;

delete key backs up and deletes each digit
Step 2: Write out the basic action sequence (the physical
operators)


21
ƒkey(ccn) + delKey(10) + digit(10) + enterKey
Step 3: Same operators as for model 1.
Rensselaer
Cognitive
Science
Keystroke-Level Model: m2 bs/delete

Step 4: List the times next to the physical operators for the task.
Method 2: bs/delete
press reset function key
bs/delete to digit
digits to retype
outpulse new num to dbase
total time
22
fCCN
delKey
digit
enter
NUM op type
1
K
10
K
10
K
1
K
time
0.28
2.80
2.80
0.28
6.16
Rensselaer
Cognitive
Science
Keystroke-Level Model: m2 bs/delete

Step 5: Next add the mental operators and their times
Method 2: bs/delete
M before cmd
press reset function key
bs/delete to digit
digits to retype
verify done
outpulse new num to dbase
total time

23
fCCN
delKey
digit
enter
NUM op type
1
M
1
K
10
K
10
K
1
M
1
K
time
1.20
0.28
2.80
2.80
1.20
0.28
8.56
Step 6: Sum the times of the operators
Rensselaer
Cognitive
Science
Keystroke-Level Model:m3 bkup/delete

Step 1: Lay out your assumptions

s/a model 1 except;

backup key backs up without deleting. Delete key backs up and
deletes

Step 2: Write out the basic action sequence (the physical
operators)


24
ƒkey(ccn) + bkupKey(9) + delKey(1) + digit(1) + enterKey
Step 3: Same operators as for model 1.
Rensselaer
Cognitive
Science
Keystroke-Level Model: m3 bkup/delete

Step 4: List the times next to the physical operators for the task.
Method 3: bkup-delete
press reset function key
backup to digit
delete digit
digits to retype
outpulse new num to dbase
total time
25
fCCN
bkup
del
digit
enter
NUM op type
1
K
9
K
1
K
1
K
1
K
time
0.28
2.52
0.28
0.28
0.28
3.64
Rensselaer
Cognitive
Science
Keystroke-Level Model: m3 bkup/delete

Step 5: Next add the mental operators and their times (Your turn!!!
Our answer are on the next page, no peeking!!!)
Method 3: bkup-delete
NUM op type
time
press reset function key
fCCN
1
K
0.28
backup to digit
bkup
9
K
2.52
del
1
K
0.28
digits to retype
digit
1
K
0.28
outpulse new num to dbase
enter
1
K
0.28
delete digit
total time
26
Rensselaer
Cognitive
Science
Keystroke-Level Model: m3 bkup/delete

Step 5: KLM w/mentals.
Method 3: bkup-delete
set up workstation to retype
number
press reset function key
backup to digit
delete digit
digits to retype
verify done
outpulse new num to dbase
total time
27
NUM op type
fCCN
bkup
del
digit
enter
1
1
9
1
1
1
1
M
K
K
K
K
M
K
time
1.20
0.28
2.52
0.28
0.28
1.20
0.28
6.04
Rensselaer
Cognitive
Science
Keystroke-Level Model: m4 zap-gp

Step 1: Lay out your assumptions

s/a model 1 except;

Four separate function keys, zaps (deletes) either area code,
exchange, line, or pin number. Retyping need only retype the
zapped numbers.

Step 2: Write out the basic action sequence (the physical
operators)


28
ƒkey(ccn) + zapExch(1) + digit(3) + enterKey
Step 3: Same operators as for model 1.
Rensselaer
Cognitive
Science
Keystroke-Level Model: m4 zap-gp

Step 4: List the times next to the physical operators for the task.
Your turn!! (Our answer are on the next page, no peeking!!!)
Method 4: zap-gp
NUM op type
time
total time
29
Rensselaer
Cognitive
Science
Keystroke-Level Model: m4 zap-gp

Step 5: Next add the mental operators and their times (Your turn!!!
Our answer are on the next page, no peeking!!!)
Method 4: zap-gp
press reset function key
30
NUM op type
time
fCCN
1 K
0.28
zap-group
zap
1 K
0.28
digits to retype
digit
3 K
0.84
outpulse new num to dbase
total time
enter
1 K
0.28
Rensselaer
Cognitive
Science
Keystroke-Level Model: m4 zap-gp

Step 5: KLM model w/mentals
Method 4: zap-gp
set up workstation to retype
number
press reset function key
zap-group
digits to retype
verify done
outpulse new num to dbase
total time
31
NUM op type
fCCN
zap
digit
enter
1
1
1
3
1
1
M
K
K
K
M
K
time
1.20
0.28
0.28
0.84
1.20
0.28
4.08
Rensselaer
Cognitive
Science
Keystroke-Level Model:

Summary
Method 1: Current
Method 2: bs/delete
Method 3: bkup-delete
Method 4: zap-gp
predicted time
6.88
8.56
6.04
4.08
Of the three new methods, only one seems likely to be
fast enough to justify expense of redesign
32
Rensselaer
Cognitive
Science