HUMAN-COMPUTER INTERACTION
SECOND EDITION
Selection From the above snippet we see the use of the word select where the choice of methods arises. GOMS does not leave this as a random choice, but attempts to predict which methods will be used. This typically depends both on the particular user and on the state of the system and details about the goals. For instance, a user, Sam, never uses the L7-METHOD, except for one game, 'blocks', where the mouse needs to be used in the game until the very moment the key is pressed. GOMS captures this in a selection rule for Sam:
Representative of the linguistic approach is Reisner's use of Backus--Naur Form (BNF) rules to describe the dialog grammar [206]. This views the dialog at a purely syntactic level, ignoring the semantics of the language. BNF has been used widely to specify the syntax of computer programming languages, and many system dialogs can be described easily using BNF rules. For example, imagine a graphics system which has a line-drawing function. To select the function the user must select the 'line' menu option. The line-drawing function allows the user to draw a polyline, that is a sequence of line arcs between points. The user selects the points by clicking the mouse button in the drawing area. The user double clicks to indicate the last point of the polyline.
draw-line ::= select-line + choose-points + last-point select-line ::= position-mouse + CLICK-MOUSE choose-points ::= choose-one | choose-one + choose-points choose-one ::= position-mouse + CLICK-MOUSE last-point ::= position-mouse + DOUBLE-CLICK-MOUSE position-mouse ::= empty | MOVE-MOUSE + position-mouse
The names in the description are of two types: non-terminals, shown in lower case, and terminals, shown in upper case. Terminals represent the lowest level of user behaviour, such as pressing a key, clicking a mouse button or moving the mouse. Non-terminals are higher-level abstractions. The non-terminals are defined in terms of other non-terminals and terminals by a definition of the form
name ::= expression
The '::=' symbol is read as 'is defined as'. Only non-terminals may appear on the left of a definition. The right hand side is built up using two operators '+' (sequence) and '|' (choice). For example, the first rule says that the non-terminal draw-line is defined to be select-line followed by choose-points followed by last-point. All of these are non-terminals, that is they do not tell us what the basic user actions are. The second rule says that select-line is defined to be position-mouse (intended to be over the 'line' menu entry) followed by MOUSE-CLICK. This is our first terminal and represents the actual clicking of a mouse.
To see what position-mouse is, we look at the last rule. This tells us that there are two possibilities for position-mouse (separated by the '|' symbol). One option is that position-mouse is empty -- a special symbol representing no action. That is, one option is not to move the mouse at all. The other option is to do a MOVE-MOUSE action followed by position-mouse. This rule is recursive, and this second position-mouse may itself either be empty or be a MOVE-MOUSE action followed by position-mouse, and so on. That is, position-mouse may be any number of MOVE-MOUSE actions whatsoever.
Similarly, choose-points is defined recursively, but this time it does not have the option of being empty. It may be one or more of the non-terminal choose-one which is itself defined to be (like select-line) position-mouse followed by MOUSE-CLICK.
The BNF description of an interface can be analyzed in various ways. One measure is to count the number of rules. The more rules an interface requires to use it, the more complicated it is. This measure is rather sensitive to the exact way the interface is described. For example, we could have replaced the rules for choose-points and choose-one with the single definition
choose-points ::= position-mouse + CLICK-MOUSE | position-mouse + CLICK-MOUSE + choose-points
Both goal hierarchical and grammar-based techniques were initially developed when most interactive systems were command line or at most keyboard and cursor based. There are significant worries about how well these approaches can therefore generalize to deal with more modern windowed and mouse-driven interfaces.
Another problem for grammars is the lowest-level lexical structure. Pressing a cursor key is a reasonable lexeme, but moving a mouse one pixel is less sensible. In addition, pointer-based dialogs are more display oriented. Clicking a cursor at a particular point on the screen has a meaning dependent on the current screen contents. This problem can be partially resolved by regarding operations such as 'select region of text' or 'click on quit button' as the terminals of the grammar. If this approach is taken, the detailed mouse movements and parsing of mouse events in the context of display information (menus etc.) are abstracted away.
B -- Pressing a mouse button.
processed in 0.005 seconds
| |
HCI Book 3rd Edition || old HCI 2e home page || search
|
|
feedback to feedback@hcibook.com | hosted by hiraeth mixed media |
|