Keystroke-level model

From Wikipedia, the free encyclopedia
  (Redirected from Keystroke-Level Model)
Jump to: navigation, search

Keystroke-level model, sometimes referred to as KLM or KLM-GOMS, is an approach to human–computer interaction (HCI), developed by David Kieras and based on CMN-GOMS. CMN-GOMS for its part was developed by Card, Moran, and Newell, and explained in their book The Psychology of Human-Computer Interaction, 1983. The model is an 11-step method that can be used by individuals or companies seeking ways to estimate the time it takes to complete simple data input tasks using a computer and mouse. By using KLM-GOMS, individuals often find more efficient or better ways to complete a task simply by analyzing the steps required in the process and rearranging or eliminating unneeded steps.

It is designed to be easier to use than other GOMS methods, such that companies who cannot afford human–computer interaction specialists can use it. KLM-GOMS is usually applied in situations that require minimal amounts of work and interaction with a computer interface or software design. The calculations and the number of steps required to accurately compute the overall task time increase quickly as the number of tasks involved increases. Thus, KLM-GOMS is best suited to evaluate time specific tasks that require, on average, less than 5 minutes to complete.

The KLM-GOMS model is designed to be as straightforward as possible. The sequence of operations is modelled as a sequence of a small number of operations. Each operation is assigned a duration, which is intended to model the average amount of time an experienced user would take to perform it.

Step terminology[edit]

Kieras (1993, 2001) defines the following operations:

Code Operation Time
K Key press and release (keyboard) Best Typist (135 wpm) 0.08 seconds
Good Typist (90 wpm) 0.12 seconds
Poor Typist (40 wpm) 0.28 seconds
Average Skilled Typist (55 wpm) 0.20 seconds
Average Non-secretary Typist (40 wpm) 0.28 seconds
Typing Random Letters 0.50 seconds
Typing Complex Codes 0.75 seconds
Worst Typist (unfamiliar with keyboard) 1.20 seconds
P Point the mouse to an object on screen 1.10 seconds
B Button press or release (mouse) 0.10 seconds
H Hand from keyboard to mouse or vice versa 0.40 seconds
M Mental preparation 1.20 seconds
T(n) Type string of characters n × K seconds
W(t) User waiting for the system to respond
D(n0, l0) Draw n0 straight line segment with mouse of total length l0 centimeters

A mouse click would be written "BB" (button press, button release) while a sequence of 3 keyboard key presses is "KKK" or "T(3)" ("T" stands for "type").

A common operation that involves pointing and clicking something on the screen would be written "MPBB" (think, point, press, release).

KLM is not the only technique for evaluating interfaces, but it can be used to compare the speed of two different interfaces designed to accomplish the same task.

Testing steps[edit]

The following 11 steps were developed based upon the methodologies and ideas of Kieras and Olson-Olson and describe the proper approach to calculate the time it takes to complete a task by using a computer interface and hardware.

Step 1 — Obtain a working prototype of computer interface or a step by step operational description of a task.

Step 2 — Identify the goals or the desired outcome of work .

Step 3 — For each of these goals, find subgoals or tasks that achieve the main goals.

Step 4 — Identify methods to main goals and all subgoals.

Step 5 — Convert description of methods to pseudo-code (the terminology that is described above).

Step 6 — State any and all assumptions used in the making of pseudo-code and goals.

Step 7 — Determine appropriate mental or keystroke operators for each step.

Step 8 — Assign time values to mental or keystroke operators.

Step 9 — Add up execution times for operators.

Step 10 — Adjust total time of task to be sensitive by age of expected users.

Age (years) Time Adjustment Multiplier (Multiply task time by this value)
Use as is
30–40  ???
40–55 By 1.4
55–60 By 1.7
> 65 By 2.2

Step 11-Validate results

Example Calculation[edit]

Change the code in Line 512 from "hte" to "the" ('the'the' in computer language) and then press Enter Key


" Change 512 'hte'the' "


  • Mentally prepare
  • 6 average speed keystrokes (for word "change")
  • 1 average speed keystrokes for space bar
  • 3 keystrokes for pressing numbers "512"
  • 1 average speed keystrokes for space bar
  • Mentally Prepare by reading what needs to be changed
  • 6 average keystrokes for typing hte and the
  • 3 keystrokes to press the 3 " ' "
  • 1 keystroke to press Return Key


K1 = average speed keystrokes (0.20 seconds)

K2 = typing random letters (0.50 seconds)

M = Mentally Prepare (1.35 seconds)

Put above steps into formula: M + 6K1 + K1 + 3K2 + K2 + M + 3K1 + K2 + 3K1 + K2 = 2M + 14K1 + 6K2 = 9.82 seconds

This method assumes that operator times are invariant and do not depend on the previous sequence of events. New physical operators can be added if their timing can be represented as a simple context-free function. KLM-GOMS does not account for either slips or mistakes automatically—the analyst must create separate models of error sequences and perform their own sensitivity analysis.

The placement of the keystrokes and pointer operations are straightforward, but the placement of the mental operations is not. Mental operations are placed by a set of rules that require some interpretation, such as determining a conceptual "cognitive unit" or grouping of actions. For instance, pressing ctrl and c simultaneously to perform a "copy" would be considered a single cognitive unit. Mental operations are inserted before each cognitive unit to account for cognitive preparation and decision-making.

The main reason a designer or analysts would use this technique is that it is a very fast. Different designs or systems can be compared against one another quickly. It does not require that the evaluator be an expert in GOMS because the procedure is an explicitly laid out recipe. A major caution is that the algorithm is designed to estimate the execution time for an expert user, which is typically faster than the time for a new user or an unfamiliar task.

See also[edit]

External links[edit]