In 1991-1992 I carried out the work for my Masters Thesis. All of the work was done at the Graphics, Visualization, and Usability Center at the Georgia Institute of Technology in Atlanta, GA, USA.

Context-sensitive help as an integral part of a use interface design environment

This work describes a system which can generate context-sensitive help for a user interface created with a particular design environment. In this thesis the context is meant to include the state of the application, not just the location of the pointer as is more commonly used. This is accomplished by specifying behaviour of the interface in terms of pre- and postconditions. The help system can use the preconditions to infer why a particular interface element is not avaiable at a given time. The postconditions can be used to further reason about actions that may be taken to make the interface element available again. The model of using pre- and postconditions was loosely based on UIDE, the User Interface Design Environment.

A PostScript version of the thesis is available.

A demonstration application

Image of an interface for loading and firing a cannon

The Cannon interface depicted in the screenshot was the simplest interface I could think of to demonstrate my work. It depicts a simple cannon, which needs to be loaded in order to be fired. To further complicate the situation, a safety switch was added to the cannon.

In the state depicted in the figure, the cannon can not be fired, as is shown by a grayed-out button. It is easy to see that this is both because the safety is on, and because the cannon is not loaded. When asked for help on the fire button, this is what the help system gathers from the preconditions. When either the safety is switched to off, or the cannon is loaded, the help message will change accordingly.

When help is requested on how to fire the cannon, the help system will examine the postconditions, infer that pressing the load button and switching the safety off will have the desired effect of making the fire button available. This information is then presented to the user.