Keystroke-level model: Difference between revisions

Content deleted Content added
Changed introduction and included sources. This edit is part of a reorganisation of the whole article, which adds reliable sources to each statement and was done as part of the media informatics masters programme of the Universität Regensburg.
Added the section "Structure of the Keystroke-Level Model" and deleted the sections "Step terminology" (does not refer the original source of the KLM and has only short explanations) and "Testing steps" (lacks a proper source with page numbers)
Line 1:
The Keystroke-Level Model (KLM) predicts how long it will take an expert user to accomplish a routine task without errors using an interactive computer system. <ref>{{cite journal|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Allen|first3=Newell|title=The keystroke-level model for user performance time with interactive systems|journal=Communications of the ACM|date=1980|volume=23|issue=7|page=396|doi=10.1145/358886.358895|ref=1}}</ref> It was proposed by [[Stuart K. Card]], [[Thomas P. Moran]] and [[Allen Newell]] in 1980 in the [[Communications of the ACM]] and published in their book "The Psychology of Human-Computer Interaction" in 1983, which is considered as a classic in the HCI field. <ref>{{cite web|last1=Sauro|first1=Jeff|title=5 Classic Usability Books|url=http://www.measuringu.com/blog/usability-books.php|website=MeasuringU|accessdate=22 June 2015|ref=7}}</ref><ref>{{cite web|last1=Perlman|first1=Gary|title=Suggested Readings in Human-Computer Interaction (HCI), User Interface (UI) Development, & Human Factors (HF)|url=http://hcibib.org/readings.html|website=HCI Bibliography : Human-Computer Interaction Resources|accessdate=22 June 2015|ref=8}}</ref> The foundations were laid in 1974, when Card and Moran joined the [[PARC (company)|Palo Alto Research Center (PARC)]] and created a group named Applied Information-Processing Psychology Project (AIP) with Newell as a consultant aiming to create an applied psychology of human-computer interaction. <ref>{{cite book|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The Psychology of Human-Computer Interaction|date=1983|publisher=L. Erlbaum Associates Inc|___location=Hillsdale|isbn=0898592437|pages=ix-x|ref=4}}</ref> The KLM is still relevant today, which is shown by the recent research about mobile phones and touchscreens (see [[#Adaptions|Adaptions]]).
 
== Structure of the Keystroke-Level Model ==
==Step terminology==
The Keystroke-Level Model consists of six operators: the first four are physical motor operators followed by one mental operator and one system response operator <ref>{{cite journal|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The keystroke-level model for user performance time with interactive systems|journal=Communications of the ACM|date=1980|volume=23|issue=7|pages=398-400|doi=10.1145/358886.358895|ref=5}}</ref>:
* K (keystroke or button press): it is the most frequent operator and means keys and not characters (so e.g. pressing SHIFT is a separate K operation). The time for this operator depends on the motor skills of the user and is determined by one minute typing tests, where the total test time is divided by the total number of non-error keystrokes.
* P (pointing to a target on a display with a mouse): this time differs depending on the distance to the target and the size of the target,<ref>{{cite journal|last1=Fitts|first1=Paul M|title=The information capacity of the human motor system in controlling the amplitude of movement|journal=Journal of Experimental Psychology: General|date=1992|volume=121|issue=3|doi=10.1037/h0055392|ref=3}}</ref> but is held constant. A mouse click is not contained and counts as a separate K operation.
* H (homing the hand(s) on the keyboard or other device): This includes movement between any to devices as well as the fine positioning of the hand.
* D (drawing (manually) n<sub>D</sub> straight-line segments with a total length of D(n<sub>D</sub>, l<sub>D</sub>) cm): where n<sub>D</sub> is the number of the line segments drawn and l<sub>D</sub> is the total length of the line segments. This operator is very specialized because it is restricted to the mouse and the drawing system has to constrain the cursor to a .56 cm grid.
* M (mentally preparing for executing physical actions): denotes the time a user needs for thinking or decision making. The number of Ms in a method depends on the knowledge and skill of the user. Heuristics are given to help decide where an M should be placed in a method. For example, when pointing with the mouse a button press is usually fully anticipated and no M is needed between both operators.<ref>{{cite journal|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The keystroke-level model for user performance time with interactive systems|journal=Communications of the ACM|date=1980|volume=23|issue=7|pages=400-401|doi=10.1145/358886.358895|ref=5}}</ref> The following table shows the heuristics for placing the M operator <ref>{{cite journal|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The keystroke-level model for user performance time with interactive systems|journal=Communications of the ACM|date=1980|volume=23|issue=7|pages=400|doi=10.1145/358886.358895|ref=5}}</ref>:
 
{| class="wikitable collapsible" border="1"
Kieras (1993, 2001) defines the following operations:
|-
{| class="wikitable"
| colspan="2" | Begin with a method encoding that includes all physical operators and response operations.<br />
! Code !! colspan="2"|Operation !! Time
Use Rule 0 to place candidate Ms, and then cycle through Rules 1 to 4 for each M to see whether it should be deleted.
|-
| width="10%" align="center" | Rule 0 || Insert Ms in front of all Ks that are not part of argument strings proper (e.g., text strings or numbers).<br />
| rowspan="8" align="center"|'''K'''
Place Ms in front of all Ps that select commands (not arguments).
| rowspan="8"|Key press and release (keyboard)
| Best Typist (135 wpm) || 0.08 seconds
|-
| width="10%" align="center" | Rule 1 || If an operator following an M is fully anticipated in the operator just previous to M, then delete the M (e.g., PMK -> PK).
| Good Typist (90 wpm) || 0.12 seconds
|-
| width="10%" align="center" | Rule 2 || If a string of MKs belong to a cognitive unit (e.g., the name of a command), then delete all Ms but the first.
| Poor Typist (40 wpm) || 0.28 seconds
|-
| width="10%" align="center" | Rule 3 || If a K is a redundant terminator (e.g., the terminator of a command immediately following the terminator of its argument), then delete the M in front of the K.
| Average Skilled Typist (55 wpm) || 0.20 seconds
|-
| width="10%" align="center" | Rule 4 || If a K terminates a constant string (e.g., a command name), then delete the M in front of the K; but if the K terminates a variable string (e.g., an argument string) then keep the M.
| Average Non-secretary Typist (40 wpm) || 0.28 seconds
|}
 
* R (response time of the system): the response time depends on the system, the command and the context of the command. It only used when the user actually has to wait for the system. For instance, when the user mentally prepares (M) for executing his next physical action only the non-overlapping part of the response time is needed for R because the user uses the response time for the M operation (e.g. R of 2 seconds – M of 1.35 seconds = R of .65 seconds). To make things clearer, Kieras <ref>{{cite web|last1=Kieras|first1=David|title=Using the Keystroke-Level Model to Estimate Execution Times|url=http://www-personal.umich.edu/~itm/688/KierasKLMTutorial2001.pdf|accessdate=22 June 2015|ref=9|page=3}}</ref> suggests the naming waiting time (W) instead of response time (R) to avoid confusion. Sauro suggests taking a sample of the system response time.<ref>{{cite journal|last1=Sauro|first1=Jeff|editor1-last=Jacko|editor1-first=Julie A|title=Estimating productivity: Composite operators for keystroke level modeling|journal=Human-Computer Interaction. New Trends: Proceedings of the 13th International Conference (LNCS)|date=2009|volume=5610|page=355|doi=10.1007/978-3-642-02574-7_40|ref=10|publisher=Springer-Verlag|___location=Berlin Heidelberg}}</ref>
 
The following table shows an overview of the times for the mentioned operators as well as the times for suggested operators:
 
{| class="wikitable"
|-
! width="50% | operator !! time (sec)
| Typing Random Letters || 0.50 seconds
|-
| K || total typing test time/total number of non-error keystrokes<br />
| Typing Complex Codes || 0.75 seconds
Guidelines:<ref name="klm-paper-operators-table">{{cite journal|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The keystroke-level model for user performance time with interactive systems|journal=Communications of the ACM|date=1980|volume=23|issue=7|pages=399|doi=10.1145/358886.358895|ref=5}}</ref><ref name="klm-book-operators-table">{{cite book|last1=Card|first1=Stuart K|last2=Moran|first2=Thomas P|last3=Newell|first3=Allen|title=The Psychology of Human-Computer Interaction|date=1983|publisher=L. Erlbaum Associates Inc|___location=Hillsdale|isbn=0898592437|pages=264|ref=4}}</ref><br />
.08 (135 wpm: best typist)<br />
.12 (90 wpm: good typist)<br />
.20 (55 wpm: average skilled typist)<br />
.28 (40 wpm: average non-secretary typist)<br />
.50 (typing random letters)<br />
.75 (typing complex codes)<br />
1.20 (worst typist and unfamiliar with the keyboard)
|-
| P || 1.1<ref name="klm-paper-operators-table" /><ref name="klm-book-operators-table" />
| Worst Typist (unfamiliar with keyboard) || 1.20 seconds
|-
| H || 0.4<ref name="klm-paper-operators-table" /><ref name="klm-book-operators-table" />
| align="center"|'''P''' || colspan="2"|Point the mouse to an object on screen || 1.10 seconds
|-
| D || .9n<sub>D</sub> +. 16 l<sub>D</sub><ref name="klm-paper-operators-table" /><ref name="klm-book-operators-table" />
| align="center"|'''B''' || colspan="2"|Button press or release (mouse) || 0.10 seconds
|-
| M || 1.35<ref name="klm-paper-operators-table" /><ref name="klm-book-operators-table" />
| align="center"|'''H''' || colspan="2"|Hand from keyboard to mouse or vice versa || 0.40 seconds
|-
| R || system dependent<ref name="klm-paper-operators-table" /><ref name="klm-book-operators-table" />
| align="center"|'''M''' || colspan="2"|Mental preparation || 1.20 seconds
|-
| colspan="2" | suggested operators
| align="center"|'''T(n)''' || colspan="2"|Type string of characters || n &times; K seconds
|-
| B (mouse button press or release) || 0.1<ref>{{cite web|last1=Kieras|first1=David|title=Using the Keystroke-Level Model to Estimate Execution Times|url=http://www-personal.umich.edu/~itm/688/KierasKLMTutorial2001.pdf|accessdate=22 June 2015|ref=9|page=2}}</ref>
| align="center"|'''W(t)''' || colspan="2"|User waiting for the system to respond
|-
| Click a Link/ Button [7, S. 357] || 3.73<ref name="sauro-suggested-operators">{{cite journal|last1=Sauro|first1=Jeff|editor1-last=Jacko|editor1-first=Julie A|title=Estimating productivity: Composite operators for keystroke level modeling|journal=Human-Computer Interaction. New Trends: Proceedings of the 13th International Conference (LNCS)|date=2009|volume=5610|page=357|doi=10.1007/978-3-642-02574-7_40|ref=10|publisher=Springer-Verlag|___location=Berlin Heidelberg}}</ref>
| align="center"|'''D(n0, l0)''' || colspan="2"|Draw n0 straight line segment with mouse of total length l0 centimeters
|}-
| Pull-Down List (No Page Load) || 3.04<ref name="sauro-suggested-operators" />
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==
 
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''' &mdash; Obtain a working prototype of computer interface or a step by step operational description of a task.
 
'''Step 2''' &mdash; Identify the goals or the desired outcome of work .
 
'''Step 3''' &mdash; For each of these goals, find subgoals or tasks that achieve the main goals.
 
'''Step 4''' &mdash; Identify methods to main goals and all subgoals.
 
'''Step 5''' &mdash; Convert description of methods to pseudo-code (the terminology that is described above).
 
'''Step 6''' &mdash; State any and all assumptions used in the making of pseudo-code and goals.
 
'''Step 7''' &mdash; Determine appropriate mental or keystroke operators for each step.
 
'''Step 8''' &mdash; Assign time values to mental or keystroke operators.
 
'''Step 9''' &mdash; Add up execution times for operators.
 
'''Step 10''' &mdash; Adjust total time of task to be sensitive by age of expected users.
{| class="wikitable"
! Age (years) !! Time Adjustment Multiplier (Multiply task time by this value)
|-
| Pull-Down List (Page Load) || 3.96<ref name="sauro-suggested-operators" />
| Use as is ||
|-
| Date-Picker || 6.81<ref name="sauro-suggested-operators" />
| 30–40 || ???
|-
| Cut & Paste (Keyboard) || 4.51<ref name="sauro-suggested-operators" />
| 40–55 || By 1.4
|-
| Typing Text in a Text Field || 2.32<ref name="sauro-suggested-operators" />
|-
| Scrolling || 3.96<ref name="sauro-suggested-operators" />
| 55–60 || By 1.7
|-
| > 65 || By 2.2
|}
'''Step 11'''-Validate results
 
==Example Calculation==