GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin
GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin
GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Modellbildung und<br />
Simulation in MMS 2<br />
<strong>GOMS</strong><br />
KLM-<strong>GOMS</strong><br />
N<strong>GOMS</strong>L<br />
Tutorial ACT-R<br />
11. Mai 2004<br />
Leon Urbas & Sandro Leuchter<br />
1
Thema<br />
1<br />
Selection of ...<br />
Cognitive Analysis of Dynamic Performance:<br />
Cognitive process analysis and modeling<br />
Workshop Presented at the HFES/IEA-2000<br />
Conference in San Diego, CA<br />
Wayne D. Gray, Ph.D.<br />
Deborah A. Boehm-Davis, Ph.D.<br />
Modellbildung und Simulation in<br />
George Mason University<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2<br />
Human<br />
sandro@zmms.tu-berlin.de<br />
Factors & Applied Cognitive Program<br />
2
<strong>GOMS</strong><br />
Definition of <strong>GOMS</strong><br />
Characterization of a task in terms of<br />
The user's Goals<br />
The Operators available to accomplish those goals<br />
Methods (frequently used sequences of operators and<br />
sub-goals) to accomplish those goals, and<br />
If there is more than one method to accomplish a goal,<br />
the Selection rules used to choose between methods.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 3
<strong>GOMS</strong><br />
What <strong>GOMS</strong> Is<br />
<strong>GOMS</strong> is a task analysis technique<br />
Very similar to Hierarchical Task Analysis<br />
(Indeed, <strong>GOMS</strong> is a hierarchical task analysis<br />
technique)<br />
Hard part of task analysis is goal-subgoal<br />
decomposition<br />
• Hard part of <strong>GOMS</strong> is goal-subgoal decomposition<br />
Different members of the <strong>GOMS</strong> family<br />
provide you with different sets of operators<br />
• With established parameters<br />
• But set is not complete (extensionable)<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 4
<strong>GOMS</strong><br />
Level 1: Task Analysis: Task Subtasks Subtasks <br />
TASK<br />
SUBTASKs<br />
SUBTASKs<br />
SUBTASKs<br />
Complete<br />
Session #1<br />
Scenario<br />
#1<br />
Hook<br />
Target<br />
ID#1<br />
Hook<br />
Target<br />
ID#2<br />
Complete<br />
Argus Prime<br />
Experiment<br />
Scenario<br />
#2<br />
Complete<br />
Session #2<br />
Hook<br />
Target<br />
ID#3<br />
Scenario<br />
#3<br />
• • • •<br />
Complete<br />
Session #3<br />
• • • •<br />
Hook<br />
Target<br />
ID#n<br />
Scenario<br />
#n<br />
Duration<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 5<br />
5 hr<br />
1-2 hrs<br />
12-30 min<br />
30 sec to 3 min
<strong>GOMS</strong><br />
Level 2: Subtask Unit Tasks<br />
yes<br />
Target<br />
acquisition<br />
Classified?<br />
no<br />
Target<br />
classification<br />
Feedbk<br />
check?<br />
yes<br />
Feedback check<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 6<br />
no
<strong>GOMS</strong><br />
Level 3: Cognitive Task Analysis: Unit Tasks Activities<br />
yes<br />
Target<br />
acquisition<br />
Classified?<br />
no<br />
Target<br />
classification<br />
Feedbk<br />
check?<br />
yes<br />
Feedback check<br />
no<br />
Classified?<br />
Method for goal: Determine if target is classifed<br />
Step 1 Select target by mouse click<br />
Step 2 Note target ID#<br />
Determine if radio button in info<br />
Step 3 window is black<br />
Verify that info window id# is same<br />
Step 4 as target id#<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 7
<strong>GOMS</strong><br />
Level 4: Embodied Cognition: Activity Microstrategy<br />
Method for goal: Determine if target is classifed<br />
Step 1 Select target by mouse click<br />
Step 2 Note target ID#<br />
Step 3<br />
Step 4<br />
Determine 50 50 if radio button in info<br />
50 50<br />
window verify is black initiate attend retrieve<br />
Verify crsr @ that info mouse window trgt id# is trgt same ID#<br />
target down ID#<br />
as target id#<br />
100<br />
mouseDn on<br />
target<br />
http://hfac.gmu.edu/~mm<br />
0<br />
50<br />
Information Window is<br />
updated<br />
attend<br />
visual<br />
initiate<br />
eye<br />
mvmt<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 8<br />
50<br />
100<br />
30<br />
perceive black<br />
radio button<br />
eye mvmt<br />
50<br />
verify<br />
trgt<br />
50<br />
retrieve<br />
trgt ID#<br />
50<br />
verify<br />
trgt<br />
ID#
<strong>GOMS</strong><br />
Level 5: Microstrategies Elements<br />
Production Rules<br />
Declarative memory elements<br />
Internal (created on RHS of production rules)<br />
External (created by shifts of attention in the<br />
external environment)<br />
Nicht im Bereich von <strong>GOMS</strong>!<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 9
<strong>GOMS</strong><br />
Level 6: Elements Parameters<br />
w -- amount of attentional capacity<br />
d -- decay rate<br />
s -- fluctuations in the strength of<br />
declarative memory elements<br />
rt -- retrieval threshold<br />
Nicht im Bereich von <strong>GOMS</strong>!<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 10
<strong>GOMS</strong><br />
Definition of <strong>GOMS</strong><br />
Characterization of a task in terms of<br />
The user's Goals<br />
The Operators available to accomplish those goals<br />
Methods (frequently used sequences of operators and<br />
sub-goals) to accomplish those goals, and<br />
If there is more than one method to accomplish a goal,<br />
the Selection rules used to choose between methods.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 11
<strong>GOMS</strong><br />
Definition Example of of G-O-M-S <strong>GOMS</strong><br />
To carry out a <strong>GOMS</strong> analysis of the<br />
following task involving a digital clock:<br />
• Set the clock<br />
Top level goal: SET CLOCK<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 12
<strong>GOMS</strong><br />
Example of G-O-M-S: Goals<br />
Goals and subgoals<br />
Set Clock<br />
Set Hour Set Min<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 13
<strong>GOMS</strong><br />
Example of G-O-M-S: Operators<br />
Operators are the most elementary steps in<br />
which you choose to analyze the task.<br />
Reach button<br />
Hold button<br />
Release button<br />
ClickOn button<br />
Decide: if then <br />
Verify<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 14
<strong>GOMS</strong><br />
Example of G-O-M-S: Methods<br />
Top-level user goals<br />
SET-CLOCK<br />
Method for goal: SET-CLOCK<br />
Step 1. Hold TIME button<br />
Step 2. Accomplish goal: SET-HOUR<br />
Step 3. Accomplish goal: SET-MIN<br />
Step 4. Release TIME button<br />
Step 5. Return with goal accomplished<br />
Method for goal: SET-<br />
Step 1. ClickOn button<br />
Step 2. Decide: If target = current , then return with<br />
goal accomplished<br />
Step 3. Goto 1<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 15
<strong>GOMS</strong><br />
Example of G-O-M-S: Selection<br />
No selection rules in this example as this clock has only<br />
ONE method for accomplishing each goal, but . . .<br />
Selection rule for goal: SET-HOUR<br />
If target HOUR ≤ 4 hours from current HOUR,<br />
then Accomplish Goal: ClickOn HOUR<br />
If target HOUR > 4 hours from current HOUR,<br />
then Accomplish Goal : Click&Hold HOUR<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 16
<strong>GOMS</strong><br />
Applications of <strong>GOMS</strong><br />
Case 1. Design of mouse-driven text editor<br />
Case 2. Directory assistance workstation<br />
Case 3. Space operations database system (for orbital objects)<br />
Case 4. Bank deposit reconciliation system.<br />
Case 5. CAD system for mechanical design.<br />
Case 6. Television control system.<br />
Case 7. Nuclear power plant operator's associate.<br />
Case 8. Intelligent tutoring system.<br />
Case 9. Industrial scheduling system.<br />
Case 10. CAD system for ergonomic design.<br />
Case 11. Telephone operator workstation.<br />
List compiled by John & Kieras (1997a).<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 17
<strong>GOMS</strong><br />
Applications <strong>GOMS</strong> as Analytic of <strong>GOMS</strong> Modeling<br />
<strong>GOMS</strong> analysis produces a model of behavior<br />
Given a task, the model predicts the methods,<br />
or sequences of operators, that a person will<br />
perform to accomplish that task<br />
Can look at the <strong>GOMS</strong> model in different ways<br />
to qualitatively and quantitatively assess<br />
different types of performance<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 18
<strong>GOMS</strong><br />
<strong>GOMS</strong> Scope as of <strong>GOMS</strong>: Analytic What Modeling it can do<br />
Predict the sequence of operators an expert<br />
will perform<br />
Predict performance time of expert users -<br />
even in real-world situations<br />
Predict learning time in relatively simple<br />
domains<br />
Predict savings due to previous learning<br />
Help design on-line help and manuals<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 19
<strong>GOMS</strong><br />
Scope of <strong>GOMS</strong>: What it can can do<br />
<strong>GOMS</strong> has been applied to both:<br />
User-driven interaction<br />
“Situated” or event-driven interaction<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 20
<strong>GOMS</strong><br />
Scope of <strong>GOMS</strong>: What it might do<br />
Research has made progress on<br />
Predicting the number of some types of errors<br />
• see discussion in: Gray, W. D. (2000). The nature<br />
and processing of errors in interactive behavior.<br />
Cognitive Science, 24(2), 205-248.<br />
Predicting the effects of display layout on<br />
performance time<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 21
<strong>GOMS</strong><br />
Scope of <strong>GOMS</strong>: What it can can’t do do<br />
Predict problem-solving behavior<br />
Predict how <strong>GOMS</strong> structure grows from<br />
user experience<br />
Predict behavior of casual users,<br />
individual differences...<br />
Predict the effects of fatigue, user<br />
preference, organizational impact...<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 22
<strong>GOMS</strong><br />
General Factors to consider<br />
When deciding what type of <strong>GOMS</strong> model<br />
you need, you must consider...<br />
what control structure<br />
what level of analysis<br />
whether to approximate behavior with serial<br />
or parallel processes<br />
...different uses of <strong>GOMS</strong> models lead to<br />
different values of these factors<br />
These factors will be a recurring theme<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 23
<strong>GOMS</strong><br />
<strong>GOMS</strong> Family of Analysis Methods<br />
Keystroke-Level Model<br />
CMN-<strong>GOMS</strong><br />
N<strong>GOMS</strong>L<br />
CMN-<strong>GOMS</strong> for Highly Interactive<br />
Tasks<br />
CPM-<strong>GOMS</strong><br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 24
<strong>GOMS</strong><br />
<strong>GOMS</strong> Family of Analysis Methods<br />
Keystroke-Level Model<br />
CMN-<strong>GOMS</strong><br />
N<strong>GOMS</strong>L<br />
CMN-<strong>GOMS</strong> for Highly Interactive<br />
Tasks<br />
CPM-<strong>GOMS</strong><br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 25
KLM-<strong>GOMS</strong><br />
<strong>GOMS</strong> Family of Analysis Methods<br />
Keystroke-Level Model<br />
CMN-<strong>GOMS</strong><br />
N<strong>GOMS</strong>L<br />
CMN-<strong>GOMS</strong> for Highly Interactive<br />
Tasks<br />
CPM-<strong>GOMS</strong><br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 26
KLM-<strong>GOMS</strong><br />
Intro<br />
The simplest of all <strong>GOMS</strong> models: OM only!!!<br />
No explicit goals or selection rules<br />
Operators and Methods (in a limited sense) only<br />
“Useful where it is possible to specify the user’s<br />
interaction sequence in detail” (CMN83, p. 259).<br />
Control structure: Flat<br />
Serial or Parallel: Serial<br />
Level of Analysis: Keystroke-level operators<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 27
KLM-<strong>GOMS</strong><br />
Overview<br />
Step 1: Lay out assumptions<br />
Step 2: Write out the basic action sequence (list the<br />
keystroke-level physical operators involved in doing the<br />
task)<br />
Step 3: Select the operators and durations that will be<br />
used<br />
Step 4: List the times next to the physical operators for the<br />
task<br />
Step 4a: If necessary, include system response time<br />
operators for when the user must wait for the system to<br />
respond<br />
Step 5: Next add the mental operators and their times<br />
Step 6: Sum the times of the operators<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 28
KLM-<strong>GOMS</strong><br />
Operators<br />
K: Keystroke<br />
T(n): Type a sequence of n characters on a<br />
keyboard<br />
P: Point with mouse to a target on a display<br />
B: Press or release mouse button<br />
BB: Click mouse button<br />
H: Home hands to keyboard or mouse<br />
M: Mental act of routine thinking<br />
W(t): Waiting time for system to respond<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 29
KLM-<strong>GOMS</strong><br />
Mentals<br />
“M operations represent acts of mental<br />
preparation for applying physical operations.<br />
Their occurrence does not follow directly from<br />
the physical encoding, but from the specific<br />
knowledge and skill of the user” p. 267<br />
“The rules for placing M’s embody psychological<br />
assumptions about the user and are necessarily<br />
heuristic, especially given the simplicity of the<br />
model” p. 267.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 30
KLM-<strong>GOMS</strong><br />
Heuristics for Mentals<br />
Basic psychological principle: physical operations in<br />
methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of<br />
argument strings proper (e.g., text or numbers). Place M’s in front<br />
of all P’s that select commands (not arguments) or that begin a<br />
sequence of direct-manipulation operations belonging to a<br />
cognitive unit.<br />
• Pointing to a cell on a spreadsheet is pointing to an argument -- no M<br />
• Pointing to a word in a manuscript is pointing to an argument -- no M<br />
• Pointing to a icon on a toolbar is pointing to a command -- M<br />
• Pointing to the label of a drop-down menu is pointing to a command -- M<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 31
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Rules 1-4 are heuristics (rules of thumb)<br />
for deleting mentals<br />
“A single psychological principle lies behind<br />
all the deletion heuristics . . . physical<br />
operations in methods are chunked into<br />
submethods” p. 268<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 32
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Basic psychological principle: physical operations<br />
in methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of<br />
argument strings proper (e.g., text or numbers). Place M’s in<br />
front of all P’s that select commands (not arguments) or that<br />
begin a sequence of direct-manipulation operations belonging to<br />
a cognitive unit.<br />
RULE 1: If an operator following an M is fully anticipated 1 in an<br />
operator just previous to M, then delete the M (e.g., PMK --> PK or<br />
PMBB --> PBB).<br />
• That is, the “M” drops out because the “P” and “BB” belong<br />
together in a chunk -- mental unit.<br />
• The button press “BB” is fully anticipated as the cursor is<br />
being moved to the target.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 33
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Basic psychological principle: physical operations in<br />
methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings<br />
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands<br />
(not arguments) or that begin a sequence of direct-manipulation operations<br />
belonging to a cognitive unit.<br />
RULE 1: If an operator following an M is fully anticipated 1 in an operator just previous<br />
to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).<br />
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the<br />
name of a command), then delete all M’s but the first.<br />
• Works with command names -- but what is a command name in a GUI<br />
interface?<br />
• Physical actions: P(File)+ B + P(Save) + B<br />
• RULE 0: MP + MB + MP + MB<br />
• RULE 1: MPB + MPB<br />
• Does rule 2 apply to eliminate the middle mental? MPBPB ?<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 34
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Basic psychological principle: physical operations in<br />
methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings<br />
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands<br />
(not arguments) or that begin a sequence of direct-manipulation operations<br />
belonging to a cognitive unit.<br />
RULE 1: If an operator following an M is fully anticipated 1 in an operator just previous<br />
to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).<br />
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the name of a<br />
command), then delete all M’s but the first<br />
RULE 3: If a K is a redundant terminator (e.g., the terminator of a command<br />
immediately following the terminator of its argument), then delete the M in<br />
front of it.<br />
• Applies to clicking OKAY in dialog buttons after you select a<br />
command; e.g., in Powerpoint, you have selected text, gone to the<br />
FORMAT:FONT palette, clicked on bold, and now point and click on<br />
OKAY -- pointing to and clicking on OKAY is PBB, not MPBB<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 35
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Basic psychological principle: physical operations in<br />
methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument strings<br />
proper (e.g., text or numbers). Place M’s in front of all P’s that select commands<br />
(not arguments) or that begin a sequence of direct-manipulation operations<br />
belonging to a cognitive unit.<br />
RULE 1: If an operator following an M is fully anticipated 1 in an operator just previous<br />
to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).<br />
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the name of a<br />
command), then delete all M’s but the first<br />
RULE 3: If a K is a redundant terminator (e.g., the terminator of a command<br />
immediately following the terminator of its argument), then delete the M in front of it.<br />
RULE 4: If a K terminates a constant string (e.g., a command name), then<br />
delete the M in front of it; but if the K terminates a variable string (e.g., an<br />
argument string), then keep the M in front of it.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 36
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
The four heuristics do NOT capture the<br />
notion of method chunks precisely -these<br />
are only approximations<br />
Ambiguities: Is something “fully<br />
anticipated” or is something else a<br />
“cognitive unit”?<br />
Much of this ambiguity stems from<br />
variations in expertise of the users we are<br />
modeling<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 37
KLM-<strong>GOMS</strong><br />
Heuristics for inserting mental operators<br />
Basic psychological principle: physical operations<br />
in methods are chunked into submethods.<br />
RULE 0: Insert M’s in front of all K’s or B’s that are not part of argument<br />
strings proper (e.g., text or numbers). Place M’s in front of all P’s that<br />
select commands (not arguments) or that begin a sequence of directmanipulation<br />
operations belonging to a cognitive unit.<br />
RULE 1: If an operator following an M is fully anticipated 1 in an operator<br />
just previous to M, then delete the M (e.g., PMK --> PK or PMBB --> PBB).<br />
RULE 2: If a string of MK’s or MB’s belongs to a cognitive unit (e.g., the<br />
name of a command), then delete all M’s but the first<br />
RULE 3: If a K is a redundant terminator (e.g., the terminator of a command<br />
immediately following the terminator of its argument), then delete the M in<br />
front of it.<br />
RULE 4: If a K terminates a constant string (e.g., a command name), then<br />
delete the M in front of it; but if the K terminates a variable string (e.g., an<br />
argument string), then keep the M in front of it.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 38
KLM-<strong>GOMS</strong><br />
KLM--mentals: example 1.<br />
Example: SET COLUMN WIDTH 5<br />
List the keystroke level physical operators involved in doing the task<br />
KKKKKKKKKKKKKKKKKKK (19 K’s)<br />
RULE 0<br />
M+KKKK+M+KKKKKKK+M+KKKKKK+K+M+K or<br />
M+4K(set_)+M+7K(column_)+M+6K(width_)+1K(5)+M+1K()<br />
RULE 1<br />
no change in this example<br />
RULE 2<br />
M+17K(set_column_width_)+1K(5)+M+1K()<br />
RULE 3<br />
No change in this example<br />
Rule 4<br />
No change in this example<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 39
KLM-<strong>GOMS</strong><br />
KLM--mentals: example 2<br />
Example: spellcheck “catelog”<br />
List the keystroke level physical operators involved in<br />
doing the task<br />
P+BBBB+P+BB (where BB is a mousedown + mouseup,<br />
and BBBB is a doubleclick)<br />
RULE 0<br />
P+M+BBBB+M+P+BB<br />
RULE 1<br />
n/a<br />
RULE 2<br />
n/a (“catelog” + spellcheck do not form a cognitive unit)<br />
RULE 3<br />
n/a<br />
RULE 4<br />
n/a<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 40
KLM-<strong>GOMS</strong><br />
KLM--mentals: example 3<br />
Example: save a file on a Mac using menus<br />
List the keystroke level physical operators<br />
involved in doing the task<br />
P+B+P+B<br />
RULE 0<br />
M+P+M+B+M+P+M+B<br />
RULE 1<br />
M+P+B+M+P+B<br />
RULE 2<br />
n/a or M+P+B+P+B ???<br />
Issue: Is this FILE-->SAVE menu selection a<br />
single cognitive unit or two?<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 41
KLM-<strong>GOMS</strong><br />
Operators<br />
operator abbrev duration<br />
mental M 1200msec<br />
keystroke- K 280msec<br />
mouseDown or Up B 100msec<br />
click (mouseD & Up) BB 200msec<br />
homing H 400mec<br />
pointing w/mouse P 1100msec<br />
doubleClick BBBB 400msec<br />
Kieras, D. (1993). Using the keystroke-level model to<br />
estimate execution times. University of Michigan.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 42
N<strong>GOMS</strong>L<br />
<strong>GOMS</strong> Family of Analysis Methods<br />
Keystroke-Level Model<br />
CMN-<strong>GOMS</strong><br />
N<strong>GOMS</strong>L<br />
CMN-<strong>GOMS</strong> for Highly Interactive<br />
Tasks<br />
CPM-<strong>GOMS</strong><br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 43
N<strong>GOMS</strong>L<br />
Characterization<br />
Natural Language <strong>GOMS</strong><br />
based on structured natural language<br />
notation and a procedure for constructing<br />
them<br />
models are in program form<br />
Control Structure: Hierarchical goal stack<br />
Serial or parallel: Serial<br />
Level of Analysis: As necessary for your<br />
design question<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 44
N<strong>GOMS</strong>L<br />
N<strong>GOMS</strong>L - why?<br />
More powerful than KLM. Much more<br />
useful for analyzing large systems<br />
More built-in cognitive theory<br />
Provides predictions of operator<br />
sequence, execution time, and time to<br />
learn the methods<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 45
N<strong>GOMS</strong>L<br />
N<strong>GOMS</strong>L - Overall Approach (1)<br />
Step 1: Perform goal/subgoal decomposition<br />
Step 2: Develop a method to accomplish each<br />
goal<br />
List the actions/steps the user has to do goal (at as<br />
general and high-level as possible for the current<br />
level of analysis)<br />
Identify similar methods/collapse where appropriate<br />
Step 3: Add flow of control (decides)<br />
Step 4: Add verifies<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 46
N<strong>GOMS</strong>L<br />
N<strong>GOMS</strong>L - Overall Approach (2)<br />
Step 5: Add perceptuals, etc.<br />
Step 6: Add mentals for retrieves,<br />
forgets, recalls<br />
Step 7: Add times for each step<br />
Step 8: Calculate total time<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 47
N<strong>GOMS</strong>L<br />
N<strong>GOMS</strong>L - Example<br />
Car clock<br />
Presetting radio stations<br />
simple<br />
perverse<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 48
N<strong>GOMS</strong>L<br />
Car Radio example (1)<br />
Provides predictions of methods and operators used to complete a task. If<br />
you provide estimates of operator-duration, you can get predictions of<br />
error-free expert performance time.<br />
SEEK<br />
– <strong>TU</strong>NE +<br />
ON OFF<br />
PUSH CLOCK<br />
AM<br />
FM<br />
2:41<br />
1 2 3<br />
4 5 6<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 49<br />
EJ<br />
BASS<br />
– +<br />
TREBLE<br />
– +<br />
BALANCE<br />
L R<br />
FADE<br />
L R
N<strong>GOMS</strong>L<br />
Car Radio example (2)<br />
Goal/subgoal hierarchy<br />
set<br />
mode<br />
turn knob depress knob<br />
(and keep it<br />
depressed)<br />
set clock<br />
set hour<br />
press tune<br />
“-” button<br />
set<br />
minute<br />
press tune “+”<br />
button<br />
release knob<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 50
N<strong>GOMS</strong>L<br />
Car Radio example (3)<br />
Assumptions<br />
User's hands are NOT on the buttons at the beginning.<br />
Time to move hand & arm to time change level is<br />
estimated by 2ft "reach" from Barnes (1963): 410 msec.<br />
D = device time, time for clock to move forward one<br />
number, = 500 msec (we estimate this on the next<br />
slide)<br />
I am assuming a 12-hr clock. Seems good assumption<br />
for a car clock.<br />
Radio is off at beginning and end.<br />
Begin knowing the time you want to set the clock to.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 51
N<strong>GOMS</strong>L<br />
Car Radio example (4)<br />
D = device time, time for clock to move<br />
forward one number, = 500 msec<br />
Visual Perception<br />
Cognitive Operators<br />
Right Hand<br />
290<br />
perceive<br />
info (X)<br />
50<br />
verify<br />
info (X)<br />
Minimum time required to perceive<br />
clockTime=targetTime and to release the toggle lever<br />
50<br />
initiate release<br />
(X)<br />
release<br />
(X)<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 52<br />
100
N<strong>GOMS</strong>L<br />
Car Radio example (5)<br />
stmt op tot<br />
time oper time time assumptions<br />
Method for goal: SET-CLOCK<br />
Accomplish goal: set Mode to<br />
0.1 0.10<br />
Step 1 set Clock<br />
Decide: If curHr°targetHr Then:<br />
Accomplish goal: Change Hour<br />
0.1 0.10<br />
Step 2 display<br />
Decide: If curMin°targetMin<br />
Then: Accomplish goal: Change<br />
0.1 0.10<br />
Step 3 Minute display 0.1 0.10<br />
Step 4 Release "vol/on/off" knob 0.1 B 0.10 0.20<br />
Step 5 Return with goal accomplished 0.1 0.10<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 53
N<strong>GOMS</strong>L<br />
Car Radio example (6)<br />
stmt op tot<br />
time oper time time assumptions<br />
Method for goal: set Mode to set Clock 0.1 0.10<br />
Recall "vol/on/off" is<br />
retrieval from LTM or<br />
equivalent (location and<br />
perception of labels?) needed<br />
Step 1 modeSwitch 0.1 M 0.50 0.60 and takes - 500 msec<br />
For this example we assume<br />
that location is NOT known. If<br />
Decide: If location of<br />
known then tot. time for this<br />
modeSwitch is not known then<br />
step would be the stmt time,<br />
Step 2 Locate modeSwitch 0.1 M 1.20 1.30 0.10 sec<br />
Reach & Grasp "volume/on/off"<br />
source: Barnes, 1963, reach =<br />
Step 3 knob 0.1 R 0.48 0.58 410 msec, grasp = 070 msec<br />
Step 4 Turn knob<br />
Home thumb to "volume/on/off"<br />
0.1 T 0.34 0.44 source: Barnes, 1963<br />
Step 5 knob 0.1 H 0.40 0.50<br />
Step 6 Press and hold knob 0.1 B 0.10 0.20<br />
Step 7 Return with goal accomplished 0.1 0.10<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 54
N<strong>GOMS</strong>L<br />
Car Radio example (7)<br />
stmt<br />
op tot<br />
time oper time time assumptions<br />
Method for goal: Change display<br />
Decide: If location of setTime<br />
switch is not known then Locate<br />
0.1 0.10<br />
Step 1 setTime switch<br />
Decide: If finger is NOT on<br />
setTime switch then: Reach to<br />
0.1 M 1.20 1.30 assume that loc is not known<br />
Step 2 setTime switch 0.1 R 0.41 0.51<br />
Step 3<br />
Retrieve-from-LTM that <br />
= "+ or -" 0.1 M 0.50 0.60<br />
retrieval from LTM or equivalent<br />
(location and perception of labels?)<br />
needed and takes - 500 msec<br />
Step 4 Determine current setting 0.1 P 0.32 0.42<br />
based upon cpm-goms analysis it should<br />
take 420 msec for eye to move to clock<br />
and for user to perceive the hour.<br />
Press and hold setTime switch<br />
cpm-goms calc. is -250 msec, go with<br />
Step 5 to 0.1 B 0.10 0.20 KLM<br />
System response time is 500<br />
msec/digit, this is enough time for Ss<br />
Hold until =<br />
to perceive and initiate keyUp<br />
Step 6 , (500 x #digits) W<br />
response.<br />
Step 7 Verify display 0.1 M 1.20 1.30<br />
Step 8 Return with goal accomplished 0.1 0.10<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 55
N<strong>GOMS</strong>L<br />
Car Radio example (8)<br />
time for SetClock goal 0.70<br />
time for setMode goal 3.82<br />
time for setHour from 1 to 10 9.03<br />
time to setMin from 56 to 50 31.53<br />
total 45.08<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 56
N<strong>GOMS</strong>L<br />
PreSetting a station (1)<br />
Set Mode to<br />
Radio<br />
etc<br />
Select<br />
AM/FM<br />
General goal hierarchy for presetting a station<br />
Initiate<br />
seek<br />
PreSET Network<br />
Show<br />
Locate<br />
Station<br />
Identify<br />
Station Terminate<br />
seek<br />
Enter PreSet<br />
MODE<br />
Set PreSET<br />
Enter PreSet<br />
Button<br />
Exit PreSet<br />
MODE<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 57
N<strong>GOMS</strong>L<br />
PreSetting a station (2)<br />
Set Mode to<br />
Radio<br />
etc<br />
Select<br />
AM/FM<br />
Goal hierarchy for optimal design<br />
Locate<br />
Station<br />
seek &<br />
identify<br />
PreSET Network<br />
Show<br />
Set PreSET<br />
press & hold<br />
preset button until<br />
sound returns<br />
Note differences between this and previous slide.<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 58
N<strong>GOMS</strong>L<br />
PreSetting a station (3)<br />
MODEL 1: SETTING A PRESET TO A NETWORK SHOW -<br />
OPTIMAL DESIGN<br />
Method for goal: preset network show<br />
Step1: Decide: IF radio is not playing, THEN Accomplish goal:<br />
set-mode-to-radio<br />
Step2: Decide: IF show N.E. intended show, THEN Accomplish<br />
goal: locate-station<br />
Step3: Accomplish goal: set-preset<br />
Step4: Return with goal accomplished<br />
Method for goal: locate-station<br />
Step1: Decide: IF band N.E. desired band, THEN Accomplish<br />
goal: select AM/FM<br />
Step2: Accomplish goal: seek&identify<br />
Step3: Return with goal accomplished<br />
Method for goal: select AM/FM<br />
Step1: Reach to button for desired band<br />
Step2: Press button for desired band<br />
Step3: Verify band correct<br />
Step4: Return with goal accomplished<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 59
N<strong>GOMS</strong>L<br />
PreSetting a station (4)<br />
Method for goal: seek&identify<br />
Step1: Reach to right side of "Seek" button<br />
Step2: Press "Seek" button<br />
Step3: Decide: IF show N.E. intended show, THEN Goto 2<br />
Step4: Verify show correct<br />
Step5: Return with goal accomplished<br />
Method for goal: set-preset<br />
Step1: Reach to desired "Preset" button<br />
Step2: Press and hold "Preset" button<br />
Step3: Wait until sound returns<br />
Step4: Remove finger from "Preset" button<br />
Step5: Return with goal accomplished<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 60
N<strong>GOMS</strong>L<br />
PreSetting perverse (1)<br />
Set Mode to<br />
Radio<br />
etc<br />
Select<br />
AM/FM<br />
Enter<br />
seek<br />
mode<br />
Initiate<br />
seek<br />
seek &<br />
identify<br />
Goal hierarchy for perverse design<br />
Exit<br />
seek<br />
MODE<br />
PreSET<br />
Network Show<br />
Locate<br />
Station<br />
Enter<br />
delete<br />
MODE<br />
Delete old<br />
PreSET<br />
Enter PreSet<br />
Button<br />
Set PreSET<br />
Exit<br />
delete<br />
MODE<br />
Assign new<br />
PreSET<br />
Enter<br />
PreSet<br />
MODE<br />
Enter PreSet<br />
Button<br />
Exit<br />
PreSet<br />
MODE<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 61
N<strong>GOMS</strong>L<br />
PreSetting perverse (2)<br />
SEEK MODE<br />
SEEK<br />
– <strong>TU</strong>NE +<br />
ON OFF<br />
PUSH CLOCK<br />
Radio for Perverse Preset Design<br />
AM<br />
FM<br />
2:41<br />
1 2 3<br />
4 5 6<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 62<br />
EJ<br />
BASS<br />
– +<br />
ERASE PRESET<br />
MEMORIZE PRESET<br />
TREBLE<br />
– +<br />
BALANCE<br />
L R<br />
FADE<br />
L R
N<strong>GOMS</strong>L<br />
PreSetting perverse (3)<br />
MODEL 2: SETTING A PRESET TO A NETWORK SHOW -<br />
PERVERSE DESIGN<br />
Method for goal: preset network show (s/a optimal)<br />
Step1: Decide: IF radio is not playing, THEN Accomplish goal:<br />
set-mode-to-radio<br />
Step2: Decide: IF show N.E. intended show, THEN Accomplish<br />
goal: locate station<br />
Step3: Accomplish goal: set-preset<br />
Step4: Return with goal accomplished<br />
Method for goal: locate-station (s/a optimal)<br />
Step1: Decide: IF band N.E. desired band, THEN Accomplish<br />
goal: select AM/FM<br />
Step2: Accomplish goal: initiate-seek<br />
Step3: Return with goal accomplished<br />
Method for goal: select AM/FM (s/a optimal)<br />
Step1: Put finger on button for desired band<br />
Step2: Press button for desired band<br />
Step3: Verify band correct<br />
Step4: Return with goal accomplished<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 63
N<strong>GOMS</strong>L<br />
PreSetting perverse (4)<br />
Method for goal: initiate-seek<br />
Step1: Accomplish goal setMode-SEEK<br />
Step2: Accomplish goal: seek&identify<br />
Step3: Accomplish goal: exit seek mode<br />
Step4: Return with goal accomplished<br />
Method for goal: setMode-<br />
Step1: Reach for button<br />
Step2: Press button<br />
Step3: Verify correct<br />
Step4: Return with goal accomplished<br />
Method for goal: seek&identify (s/a optimal)<br />
Step1: Reach to right side of "Seek" button<br />
Step2: Press "Seek" button<br />
Step3: Decide: IF show N.E. intended show, THEN Goto 2<br />
Step4: Verify show correct<br />
Step5: Return with goal accomplished<br />
Method for goal: set-preset<br />
Step1: Accomplish goal: delete-previous-preset<br />
Step2: Accomplish goal: assign-new-preset<br />
Step3: Return with goal accomplished<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 64
N<strong>GOMS</strong>L<br />
PreSetting perverse (5)<br />
Method for goal: delete-previous-preset<br />
Step1: Accomplish goal: setMode-deletePreSet-on<br />
(setMode-)<br />
Step2: Accomplish goal: enter-preset-button<br />
Step3: Accomplish-goal: setMode-deletePreSet-off<br />
(setMode-)<br />
Step4: Return with goal accomplished<br />
Method for goal: assign-new-preset<br />
Step1: Accomplish goal: setMode-preset-on (setMode-<br />
)<br />
Step2: Accomplish goal: enter-preset-button<br />
Step3: Accomplish-goal: setMode-preset-off (setMode-<br />
)<br />
Step4: Return with goal accomplished<br />
Method for goal: enter-preset-button<br />
Step1: Reach to desired "Preset" button<br />
Step2: Press "Preset" button<br />
Step3: Return with goal accomplished<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 65
N<strong>GOMS</strong>L<br />
comparison of optimal and perverse<br />
Optimal Perverse<br />
number of different methods 6 11<br />
number of methods used 6 18<br />
number of different steps 21 38<br />
number of steps required 21 66<br />
Modellbildung und Simulation in<br />
<strong>Mensch</strong>-<strong>Maschine</strong>-<strong>Systeme</strong>n 2 sandro@zmms.tu-berlin.de 66