In this paragraph, we will point out how the graphical human-computer interface subsystem is separated from the application functional core subsystem. The latter handles the communication (synchronisation) with the host application and keeps the connected directed graph (the group's shared information space or context) at the client level up to date. Note that our client-host concept is quite different than the client-server model. We intend to create a system in which almost all intelligence is located in the client. Only then is a connection to the host made, when the group member needs either an update on the current state of the shared environment, or when an operation must be performed for which the client application has insufficient data (for example, book an appointment with other members of the group).
According to Lee [1994], a dialogue-independent software architecture divides software into a subsystem processing only the human-computer interactions and another subsystem processing only application functional core. Dialogue-independent software architecture allows separate evolutionary refinement of human-computer interfaces, as well as ease of maintenance. Do not get a false impression:
human-computer interaction design should not become an isolated activity!
In fact, it is just turning into a multi-disciplinary field, including psychology, philosophy, anthropology, computer science, engineering, design, art, and -hopefully- many more.
We have divided The COOPerator client into two layers: the application functional core layer and the human-computer interface layer. Lee even proposes a further division of the graphical human-computer interface subsystem into an object-oriented and a contextual subsystem. The former should focus on mapping the objects toward a vendor-specific style guide (e.g., the Microsoft Windows® Interface design guide) whereas the contextual design provides additional dynamic behaviour which he considers critical to any human-computer interaction design. A context-sensitive interface provides visual cues and contextual messages to guide users throughout their application sessions. Visual cues are graphical information reflecting current context with specific cursor shapes, highlighting, or shades of color. Contextual messages offer status, information, warning, confirmation, error, and help messages specific to current context. For our prototype we rely heavily on established Microsoft Windows'-based techniques for presenting status information and the like (e.g., common Windows' cursor shapes and error dialogues).
Providing the user with sufficient information, deserves a designer's full attention. Context-sensistivity, providing the user with dynamic information about his most recent actions, should be an integral part of the system's design. Mostly, the vendor-specific style guide is the first to hand the designer some important mechanisms for incorporating contextual information: changing cursor shapes, context-sensitive menus as well as context-sensitive on-line help, applying different shades, colours, and numerous highlighting mechanisms.
We have baptised our application model the COOPerator Engineering Model. The engineers are one of the initiators of The COOPerator project, also the designer and implementor of the functional core, Jeroen Bosters, and the designer and implementor of the human-computer interface, the author of this thesis. Though it is simple, it has proven to be powerful enough. Its functionality is probably best described in the following manner:
In our case, the model was (no more than) an agreement; it was not enforced by any automated system nor was it supported by any special communicating mechanism other than electronic mail. It was based on mutual trust. In practice, this worked fine. However, if an engineering team consists of more than two persons it may be essential to provide more complete support for cooperative software engineering which is, for example, described by Rodden and Sommerville.
Sjoerd Michels, Tilburg, The Netherlands