Pattern from Diane Love

Patterns for Selection

Introduction

The context of configuring a hardware Radio Panel used in Air Traffic Control leads to the identification of two patterns. The first is related to the Choice from a Large Set and Editable Collection patterns in Jenifer Tidwell's Common Ground pattern language:  Choice of Sublist from a Large List

The second pattern is a further refinement of Choice of Sublist from a Large List addressing the specifics of the hardware context:  Configuring Ordered Slots in Hardware.

Bold text is used to indicate references to patterns not defined in this paper. These are either to be found in Common Ground or in the following list:

The pattern template used is based on the pattern languages of Christopher Alexander and Jenifer Tidwell.
 


Choice of sublist from a large list

Contexts

  1. Selecting people to whom to send seasonal greeting cards (eg postcards, Christmas cards) from your personal address book;
  2. configuring the fonts and memory resident applications available in a personal computer's system software (eg early Macintosh system's Font DA Mover);
  3. configuring the text styles available in a word processor document (eg recent Microsoft Word style organiser).

Problem

How do we enable the user to specify the selection efficiently ?

Forces

Solution

Resulting Context

Use Text Direction to make the source list and destination list have a spatial relationship which is appropriate in the cultural context (eg source to the left of destination if text reads from left to right).

Use Choice from a Large Set to provide selection in the source and destination lists.

Use Disabled Irrelevant Things to make the availability of the moving controls depend on the existence of selected items in the relevant list.


Configuring Ordered Slots in Hardware

Contexts

Problem

How do we enable the user to specify the selection without memorising rules and codes ?

Forces

General

In all cases the number of slots available is limited by the hardware - 12 on the Radio Panel, 10 on the average telephone, perhaps 6 on a car radio and 10 or more on a TV or VCR.

Radio Panel

In the Radio Panel context, the frequencies required are largely determined by the sectors being controlled. It would be possible in theory to reconfigure the Radio Panel automatically every time the user took or relinquished control of a sector.  In practice, this could result in unsafe operation - a frequency could be removed while the user happened to be transmitting or receiving a transmission. Consequently, configuration is made the sole responsibility of the user.

It would be possible in theory to permit the user to type in the required frequency. This approach is rejected as it allows the user to enter a non-existent frequency in error.

Telephone

A push button telephone has a very limited user interface. There are keys (09, *, # plus a few function keys) and there may or may not be a graphical display.

How to configure memory buttons can't be determined by visual inspection, nor by visual or auditory prompts from the telephone. We can either look in the manual or use trial and error.

Configuring memory buttons is infrequent, so once it's done we forget how we did it.

Once configured, making a call using a memory button may be relatively frequent and so we are likely to remember how to do it, especially if the phone has a hand written card for the content of the memory buttons.

TV tuning

It is difficult for the user to identify the required TV channels.

Solution

Radio Panel

Telephone

If we were able to implement a similar control panel for a telephone it could have the following features: This is an expensive solution and is not likely to be suitable for domestic use at present. Alternatives are:

TV / VCR tuner

If we were able to implement a similar control panel for TV / VCR tuning:

Resulting Context

Based on Choice of Sublist from a Large List with destination list replaced by map of hardware slots.

Use Drag and Drop, if available, to move items between source list and destination map.

Use Numeric Keypad as a destination map if appropriate.
 


An example pattern prepared for the Usability Pattern Language Workshop at Interact '99