15.04.2013 Views

GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin

GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin

GOMS - Zentrum Mensch-Maschine-Systeme - TU Berlin

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!