# GOMS

GOMS is a specialized human information processor model for human-computer interaction observation that describes a user's cognitive structure on four components. In the book The Psychology of Human Computer Interaction, written in 1983 by Stuart K. Card, Thomas P. Moran and Allen Newell, the authors introduce: "a set of Goals, a set of Operators, a set of Methods for achieving the goals, and a set of Selection rules for choosing among competing methods for goals." GOMS is a widely used method by usability specialists for computer system designers because it produces quantitative and qualitative predictions of how people will use a proposed system.

## Overview

A GOMS model is composed of methods that are used to achieve specific goals. These methods are then composed of operators at the lowest level. The operators are specific steps that a user performs and are assigned a specific execution time. If a goal can be achieved by more than one method, then selection rules are used to determine the method.
* Goals are symbolic structures that define a state of affairs to be achieved and determinate a set of possible methods by which it may be accomplished
* Operators are elementary perceptual, motor or cognitive acts, whose execution is necessary to change any aspect of the user's mental state or to affect the task environment
* Methods describe a procedure for accomplishing a goal
* Selection Rules are needed when a goal is attempted, there may be more than one method available to the user to accomplish it.
There are several different GOMS variations which allow for different aspects of an interface to be accurately studied and predicted. For all of the variants, the definitions of the major concepts are the same. There is some flexibility for the designer's/analyst's definition of all of the entities. For instance, an operator in one method may be a goal in a different method. The level of granularity is adjusted to capture what the particular evaluator is examining. For a simple applied example see CMN-GOMS.

## Qualification
### Advantages

The GOMS approach to user modeling has strengths and weaknesses. While it is not necessarily the most accurate method to measure human-computer interface interaction, it does allow visibility of all procedural knowledge. With GOMS, an analyst can easily estimate a particular interaction and calculate it quickly and easily. This is only possible if the average Methods-Time Measurement data for each specific task has previously been measured experimentally to a high degree of accuracy.

### Disadvantages

GOMS only applies to skilled users. It does not work for beginners or intermediates for errors may occur which can alter the data. Also the model doesn't apply to learning the system or a user using the system after a longer time of not using it. Another big disadvantage is the lack of account for errors, even skilled users make errors but GOMS does not account for errors. Mental workload is not addressed in the model, making this an unpredictable variable. The same applies to fatigue. GOMS only addresses the usability of a task on a system, it does not address its functionality.
User personalities, habits or physical restrictions (for example disabilities) are not accounted for in any of the GOMS models. All users are assumed to be exactly the same. Recently some extensions of GOMS were developed, that allow to formulate GOMS models describing the interaction behavior of disabled users.

## Variations

Basically there are five different GOMS models: the Keystroke-Level Model, CMN-GOMS, NGOMSL, CPM-GOMS, and SGOMS. Each model has a different complexity and varies in activities.

### KLM

The Keystroke-Level Model (KLM) is the first and simplest GOMS technique Stuart Card, Thomas P. Moran and Allen Newell created. Estimating an execution time for a task is done by listing the sequence of operators and then totaling the execution times for the individual operators. With KLM the analyst must specify the method used to accomplish each particular task instance. Furthermore, the specified methods are limited to being in sequence form and containing only keystroke-level primitive operators. The biggest difference between GOMS and KLM is how time is assigned to cognitive and perceptual operators when it comes to execution time predictions. Another major difference is that the goal-hierarchy is explicit in GOMS while it was implicit in the KLM. The nature of unobservable operators is another important difference. KLM has a single M operator that precedes each cognitive unit of action. In contrast, GOMS assigns no time to such cognitive overhead. But both models include M-like operators for substantial time-consuming mental actions such as locating information on the screen and verifying entries. Both methods assign roughly the same time to unobservable perceptual and cognitive activities. Also they make different assumptions about unobservable cognitive and perceptual operators and so distribute the time in different ways.
KLM's execution part is described in four physical-motor operators:
* K keystroking/ keypressing
* P pointing with a mouse to a target
* H homing the hand on the keyboard
* D drawing a line segment on a grid
One mental operator M that stands for the time a user has to mentally prepare themselves to do an action, and a system response operator R in with the user has to wait for the system. Execution time is the sum of the times spent executing the different operator types:
    T$_{execute}$ = T$_K$ + T$_P$ + T$_H$ + T$_D$ + T$_M$ + T$_R$.
Each of these operators has an estimate of execution time, either a single value or a parameterized estimate.

#### Touch Level Model (TLM)

GOMS and it variants were designed for keyboard interfaces, nowadays a new type of interface is omnipresent. This addition to the GOMS family, together with updates to the existing KLM operators, is called the Touch Level Model (TLM). Andrew D. Rice and Jonathan W. Lartigue propose this model for the used to model human task performance on a constrained input touchscreen device and, with proper benchmarking, accurately predict actual user performance.
The goal is to provide an instrument for quantitative analysis of touchscreen interfaces.
A number of operators are added for touchscreen interactions:

##### Distraction (X)

    a multiplicative operator that is applied to other operators to model real world distractions

##### Gesture (G)

    gestures are conceptualized as specialized combinations of finger movements across the device's screen

##### Pinch (P)

    refers to the common two-finger gesture

##### Zoom (Z)

    the reverse application of the Pinch operator. value in MS = 200 Ms

##### Initial Act (I)

    KLM assumed the user is prepared to begin an action, touchscreen devices require users to prepare them for use (home button or password)

##### Tap (T)

    operator refers to the physical action of tapping an area on the touchscreen device in order to initiate some change or action

##### Swipe (S)

    usually a horizontally or vertically swipe like changing the page in a book. value in MS = 70 Ms

##### Tilt (L(d))

    used with an interacting with a devices equipped with accelerometers.

##### Rotate (O(d))

    gesture in which two or more fingers are placed on the screen and then rotated about a central point

##### Drag (D)

    similar to Swipe, Drag also involves tapping a location on the screen and then moving one or more fingers in specific direction

### CMN-GOMS

CMN-GOMS is the original GOMS model proposed by Stuart Card, Thomas P. Moran and Allen Newell.
CMN stands for Card, Moran and Newell and it takes the KLM as its basic and adds subgoals and selection rules. This model can predict operator sequence as well as execution time. A CMN-GOMS model can be represented in program form, making it amenable to analysis as well as execution. CMN-GOMS has been used to model word processors and CAD systems for ergonomic design(see CAD).
The CMN method can predict the operator sequence and the execution time of a task on a quantitative level and can focus its attention on methods to accomplish goals on a qualitative level.
In the example by Bonnie E. John and David E. Kieras a simple CMN-GOMS on editing a manuscript is shown.
Shown below is a simple copy and paste example.

### NGOMSL

NGOMSL is a structured natural language notation for representing GOMS models and a procedure for constructing them. This program form provides predictions of operator sequences, execution time and time to learn methods. An analyst constructs an NGOMSL model by performing a top-down, breadth-first expansion of the user's top-level goals into methods, until the methods contain only primitive operators, typically keystroke-level operators. This model explicitly represents the goal structure just like the CMN-GOMS and can so represent high-level goals.
Shown below is a simple example.

### CPM-GOMS

Bonnie E. John and David Kieras describe four different types of GOMS. CMN-GOMS, KLM and NGOMSL assume that all of the operators occur in sequence and do not contain operators that are below the activity level. CPM-GOMS being the fourth method uses operators at the level of Model Human Processor which assumes that operators of the cognitive processor, perceptual processor, and the motor processor can work in parallel to each other. The most important point of CPM-GOMS is the ability to predict skilled behavior from its ability to model overlapping actions.

### SGOMS

SGOMS stands for Sociotechnical GOMS and was created to allow GOMS to model work in complex sociotechnical systems. GOMS is meant to model an individual user, working in isolation, with no unexpected interruptions, similar to a Cognitive Psychology experiment. This level of analysis is sometimes referred to as microcognition to distinguish it from macrocognition, which refers to real world cognition. SGOMS is meant to expand the applicability of GOMS to the macro cognitive level of analysis. To do this, SGOMS adds a high level control structure to GOMS, called the planning unit. This allows GOMS to deal with unexpected interruptions.
A planning unit is a list of unit tasks. Planning units can be ordered (the unit tasks must be done in order) or situated (the unit tasks in the list are done as the situation demands). Consistent with CPM-GOMS, SGOMS assumes that the agent can monitor the situation in parallel in order to detect threats (neurophysiologically, this function is associated with the amygdala). Planning units can be interrupted and bookmarked so they can be resumed later. When a planning unit is interrupted the agent considers the situation and can resume the same planning unit or bookmark it and switch to a different planning unit. SGOMS does not prescribe how this choice is made but, if the decision is based on routine expertise, it can be included in the SGOMS model.

## Assumptions and errors
### Importance of assumptions in GOMS analysis

Accurate assumptions are vital in GOMS analysis. Before applying the average times for detailed functions, it is very important that an experimenter make sure he or she has accounted for as many variables as possible by using assumptions. Experimenters should design their GOMS analysis for the users who will most likely be using the system which is being analyzed. Consider, for example, an experimenter wishes to determine how long it will take an F22 Raptor pilot to interact with an interface he or she has used for years. It can probably be assumed that the pilot has outstanding vision and is in good physical health. In addition, it can be assumed that the pilot can interact with the interface quickly because of the vast hours of simulation and previous use he or she has endured. All things considered, it is fair to use fastman times in this situation. Contrarily, consider an 80-year-old person with no flight experience attempting to interact with the same F22 Raptor interface. It is fair to say that the two people would have much different skill sets and those skill sets should be accounted for subjectively.

### Accounting for errors

The only way to account for errors in GOMS analysis is to predict where the errors are most likely to occur and measure the time it would take to correct the predicted errors. For example, assume an experimenter thought that in typing the word "the" it was likely that a subject would instead incorrectly type "teh". The experimenter would calculate the time it takes to type the incorrect word, the time it takes to recognize that a mistake has been made, and the time it takes to correct the recognized error.

## Applications of GOMS
### Workstation efficiency

A successful implementation of CPM-GOMS was in Project Ernestine held by New England Telephone. New ergonomically designed workstations were compared to old workstations in terms of improvement in telephone operators' performance. CPM-GOMS analysis estimated a 3% decrease in productivity. Over the four-month trial 78,240 calls were analysed and it was concluded that the new workstations produced an actual 4% decrease in productivity. As the proposed workstation required less keystrokes than the original it was not clear from the time trials why the decrease occurred. However CPM-GOMS analysis made it apparent that the problem was that the new workstations did not utilize the workers' slack time. Not only did CPM-GOMS give a close estimate, but it provided more information of the situation.

### CAD

GOMS models were employed in the redesign of a CAD (computer-aided design) system for industrial ergonomics. An applied GOMS model shows where the interface needs to be redesigned, as well as provides an evaluation of design concepts and ideas. In Richard Gong's example, when GOMS revealed a frequent goal supported by a very inefficient method, he changed the method to a more efficient one. If GOMS showed that there were goals not supported by any method at all, then new methods were added. GOMS also revealed where similar goals are supported by inconsistent methods, a situation in which users are likely to have problems remembering what to do, and showed how to make the methods consistent.

## Software tools

There exist various tools for the creation and analysis of Goms-Models. A selection is listed in the following:
* QGoms (Quick-Goms)
* CogTool KLM-based modelling tool
* Cogulator Cognitive calculator for GOMS modeling