controlling user interaction
The user of an interactive application is in an anamolous position, especially if he is not one of the elite class known as "computer bums". This mythical user is at the end of a process totally controlled by a computer and a program. His communications with the program may suffer greatly because of this total dependence.Control of communication in the batch environment is much more a one-way street. Here the user supplies the program data, and the batch program informs him if something has gone wrong by evicting his run from the machine. The user then consults available documentation (if it exists) or a computer expert (if one exists) for help in solving the problem. The communication between program and user is not critical in this environment; the user is expected to know what to do before he starts the run and can seek assistance outside of the computer.The interactive environment, however, has the user totally at the mercy of the program for diagnostic and prompting information. Even sophisticated graphics-oriented applications, which provide large amounts of useful information through pictures, may not adequately control the user's interaction. The user needs direction imposed on him to successfully solve his problem. At the same time, the system must provide flexibility, i.e., he must not be constrained to a single path of action that may only suit the code's implementor. No user's manual can capture a flow of this nature because of the inherently static nature of words on paper. Furthermore, paging back and forth in a manual to decipher what is to be done next destroys the spontaneity implicit in a successful interactive system.The user must be the main concern of the interactive system for it to be successful. With this goal in mind, Battelle-Columbus has developed a structured approach to controlling user interaction. The approach benefits the implementor as well as the user. It places emphasis on design and checkout of interaction as the first, rather than the last, step in an interactive application.
control user user interaction interaction interactive applications applications posit class computation process communication dependencies environments data informal documentation help critic interaction environment direct timing systems flexibility action code flow paper paging interactive system structure place design graphics