3. Review of Related Work and Literature



This chapter will examine some of the current work being carried out in the area of Human-Computer Interaction and user interface design, and includes a brief look at the subject of participative design.


3.1 Computer-Based Testing



Since the 1980's, and the arrival of the home computer, many psychologists and others have investigated and discussed the impact of computer systems on children. From theories of addictiveness on one side, to benefits from the use of suitable educational software on the other hand, there have been many differing views. One positive effect of this research was the realisation that microcomputers could be used by psychologists in clinical practice. The use of such systems with children with a range of disabilities has been considerable, and to much good effect. For example, research has shown that communication via computer (for example, putting a questionnaire on a computer, and asking people to answer the questions there), can alleviate some of the stress experienced in interpersonal communication, even in the case of severely disturbed adolescents [Zimmerman, 1987]. A trial in which reasoning problems were presented to college students either by computer or human tester produced the following report [Johnson & Baker, 1972]:
Computer-run subjects are more apt to pause for long periods of time without typing anything into the computer. Human-run subjects may feel under some pressure to keep behaving even at the risk of doing something wrong. Computer-run subjects have been heard (through the semi-soundproofed wall of their cubicles) to shout for joy, curse, bang the walls, and sing, certainly modes of expression which a typical subject avoids in the presence of an experimenter.
Another positive feature of computer testing, is the computer's ability to choose test items in the light of the user's previous scores. Adjusting the difficulty of tests so that the user is not put off is likely to improve motivation.
There are, however, possible negative aspects to the use of computers in psychological testing:

"Computers don't make mistakes" - It is possible that people tend to believe the results of a computer program even when it is obviously wrong. Also, if software is out of date, so that the results of the program are no longer valid or the assumptions upon which it is based have been disproven, then it is possible that erroneous results may be taken as correct results [Groth-Marnat & Schumaker, 1989], simply because "computers do not make mistakes".

Unstandardised behaviour - If a test is completely administered by computer any unstandardised observations that could have been recorded by a skilled clinician would be lost. Unstandardised behaviour can be regarded as those behaviours the interface is not designed to sample. This could include verbal comments, facial expressions, and non-verbal behaviour such as tapping the desk impatiently.


3.2 Human-Computer Interaction Issues



There are a number of HCI issues which must be considered when designing computer systems, since many aspects of complex computer systems depend upon interaction with people. Psychologists trained in the areas of cognition are well suited to offer help in the design of such systems. This has lead to the study of human-computer interaction, and the application of well-known psychological principles to the development of computer interfaces.

3.2.1 Memory

Work by Campbell in the area of memorisation [Campbell, 1982], shows that people do not remember complete events, but simple sets of rules which allow events to be reconstructed. Every event is recorded in terms of previous events. It is this phenomenon which makes us remember the one occasion in which something out of the ordinary happened, but not the hundred-other times where nothing extraordinary occurred. If a person is already familiar with something, then it does not need to be memorised, and this is the power behind the use of metaphors (see section 3.2.3). These observations lead us to the conclusion that by using a simple conceptual model, few rules need to be memorised to form an accurate user model, and hence the user will find the system easy to use. Furthermore, it is possible to design systems so that they themselves act as a repository for information that would otherwise have to be memorised by the user.

The display of a computer [can act as] an external memory that is an extension of the user's own internal memory, one with which he can remember and keep track of more information than otherwise. [Card, Pavel & Farrell, 1985]


3.2.2 Consistency

One of the aspects of computer systems which can make them easier to use is the concept of consistency. All Macintosh programs should adhere to Apple's "User Interface Guidelines", which hold that Macintosh programs must embody three qualities: "Responsiveness, Permissiveness and Consistency" [Rose et al, 1985]. Responsiveness has to do with users perceiving their actions to have direct results, thus operations are performed intuitively. "Permissiveness" means that the program must allow the user to do anything which is reasonable, and should avoid narrowing choices unnecessarily. "Consistency" has to do with all Macintosh applications behaving in the same way where this is feasible, so that having learned how to use one application, the skills acquired are transferable, and the user can apply these skills when using another application.

"Consistency asserts that mechanisms should be used in the same way wherever they occur" [Smith et al., 1983]

Consistency both within and across applications leads to reductions in training time [Polson, 1988]. Consider, for example, if every word-processing application that you ever used employed different keys for special function such as underlining or bold text, or if a single application had many modes where certain keys had different effects. Such an application would be difficult to learn, and would be likely to be difficult to use, and the knowledge gathered as the result of learning one application would be of little help in using any other. Compare this with applications which use a standard set of operations, and simply add to those for purposes specific to the application. Once you had learned the operations for one application, this knowledge could be transferred to the domain of other applications.

3.2.3 Metaphors

The User Interface of the Macintosh has undergone rigorous user tests to see what works and what does not, and Apple have a User Interface team who work on modifications and enhancements to the interface as embodied in the Macintosh. Most users are introduced to the Graphical User Interface (G.U.I.) of the Macintosh via the Finder, that part of the Macintosh operating system which handles file and disk operations. The Finder employs the metaphor of the desktop. This has been chosen to suggest to the user the way in which they are expected to interact with the computer. A desk often contains documents and tools for operating on them such as pens & pencils etc. Metaphors are useful tools in the design of user interfaces, as they can anchor a user's understanding of the computer to some other domain with which they already have a familiarity.

The metaphor is perhaps one of man's most fruitful potentialities. Its efficacy verges on magic, and it seems a tool for creation which God forgot inside one of His creatures when He made him. [Gasset & Ortega, 1925]

Appropriate metaphors can help make an interface intuitive, though they can have a number of disadvantages. One problem in their use lies in those aspects of the interface that have deviated from the chosen metaphor sufficiently to cause confusion.

Metaphors serve as natural models; they allow us to take our knowledge of familiar objects and events and use it to give structure to abstract, less well understood concepts. [Erickson, 1990]

Another difficulty with metaphors is that there is currently no methodology for finding suitable ones, and it is unlikely that any exist for complex systems [Norman, 1986]. Carrol, Mack and Kellog suggest that there are, however, sources for generating metaphors [Carroll Mack & Kellog, 1988]:

Predecessor tools and systems - base the new metaphor on an existing system that the user will have some experience of.

Human propensities - the new metaphor could exploit some aspect of the user's real world. Pointing and dragging for example.

Sheer invention - a new metaphor could be created by designers based on their intuition that it will provide sufficient context to permit understanding.

A further problem with metaphors, is the possibility of differing interpretations by different users. Sometimes a user's background or experience will colour their perceptions sufficiently to confuse what would otherwise be clear.

3.2.4 Programming for Errors

It is the usual stance of the programmer, that no-one will make a mistake in using a program that they have written, and so there is no need to take into account the effect of an erroneous action, or permit the user to "change their mind" about something. Program designers need to remember that everyone makes mistakes, and that not being able to recover from them can lead to frustration with the program, and thence to a dislike of the program, and eventually to an unwillingness to use it.

If an error is possible, someone will make it. The designer must assume that all possible errors will occur and design so as to minimise the chance of the error in the first place, or its effects once it gets made. Errors should be easy to detect, they should have minimal consequences, and, if possible, their effects should be reversible. [Norman, 1988]

Whenever a user has to make a choice, they must subsequently be able to discard their choice, and choose again. Program designers need to:

1. Understand the causes of error and design to minimise the causes.

2. Make it possible to reverse actions - to "undo" them - or make it harder to do what cannot be reversed.

3. Make it easier to discover the errors that do occur, and make them easier to correct.

4. Change the attitude towards errors. Think of an object's user as attempting to do a task, getting there by imperfect approximations. Don't think of the user as making errors; think of the actions as approximations of what is desired.
[Norman, 1988]

If designers follow these rules, the user is more likely to want to use the system, since it is "forgiving" of mistakes, the sort of everyday mistake that any person might make.


3.2.5 Providing a Feature-Rich Environment

The constraints of any programmed system lead to limitations on the range of options available to the user at any one time. Attempts should be made to provide the user with "room for manoeuvre" without being too restricted in the range of possible actions. The general problem is summed up by the Turing tar-pit metaphor:

Beware the Turing tar-pit, in which everything is possible but nothing of interest is easy. [Hutchins Hollan & Norman, 1986]

and the converse of this

Beware the over-specialised system where operations are easy, but little of interest is possible. [Fischer & Lemke, 1988]

Somewhere in between the two extremes lies the optimal system. Any computer system which attempts to model real-life situations cannot offer the full range of options which would be available, there are simply too many alternatives. Instead, one possible answer is to present enough options, in order to give sufficient choice, whilst not limiting the possibilities needlessly. Another approach which could be used in tandem with this would be to use hierarchical choosing tools, which would at a stroke limit the number of alternatives that need to be offered at every step. Limiting choices and disregarding inappropriate options is particularly important where the user of the system is young or inexperienced.

3.3 Mental Models and Learnability



Many items we use every day would appear meaningless without training. Consider the controls on a cooker: most of the controlled items are distant from the associated switches and knobs, and the operation of switches vary - some are rotary, some push and others slide. Often the layout of the controls does not match the layout of the hobs, grill and oven (see figure 3.1). Some electric ovens have the grill as part of the oven, and have more than one knob to control the associated heating elements. Which knob controls which item, and how do they interrelate? It is only by using such a system and creating a mental model, and perhaps using skills learned from other such systems that a person can learn how to operate it. One important aspect of a child's upbringing is the familiarisation with systems which are quite complex, but which when learned, eventually form part of everyday life.


fig. 3.1 Four different cooker hob designs. The two on the left need to have labelled knobs, since the connection between control and controlled item is not apparent from the control's position. The two designs on the right do not, yet the changes in design from the left ones are slight.


3.3.1 Complexity

In terms of computer software, more control by the user is desirable, but an increase in the number and complexity of tools for increasing the user's control has a negative utility [Fischer & Lemke, 1988], and this is true in other contexts as well. Where a large number of controls are required, it may be better to reduce the apparent complexity of a system by careful positioning of the controls - hiding those that are not often required for example. Quite often a small fraction of the functionality of complex systems is used. It can be seen that some complex systems are easy to operate - consider driving a car for example. There are a large number of components to a car, and yet the user of the car needs to be directly aware of only a subset of them, the rest only being important occasionally. Compare this with the modern digital telephone found in many offices (figure 3.2): many fewer controls, and yet despite training sessions, many people cannot make their telephone perform more than the basic functions.


fig. 3.2 Digital office-telephone.



When a person uses a control to perform an operation they produce a mental model of the mapping between the control and the result. This mapping need not be the actual one, as long as it allows the person to remember that their action leads to the result. There can be problems, however, if the mapping that is produced leads to some incorrect assumptions about the underlying system. For example, in many cars the brake light on the dashboard serves as an indicator that the hand-brake is on - courtesy of a switch on the brake, and also to warn of problems with the braking system. Most drivers never see the light used as a warning, and so if it is lit could be forgiven for thinking that the switch on the hand-brake was not working properly. This conclusion could be a dangerous one. A designer of a control needs to be aware that users will need to create the mapping, and help them by perhaps employing natural mappings - physical analogies and cultural standards [Norman, 1988]. For example, suppose that the designer wants a control which allows the user to adjust an amount of something. A natural mapping for this is the cultural standard that a rising level means more.
There are two mental models associated with every system (see figure 3.3). The first model is the design model. This is the model that the designers have of how the system should work. The design model is interpreted by the programmer to produce a system image. The user sees the system image and creates a user model of it in order to be able to work with it. This user model may sometimes be very different from the original design model, and may carry with it ideas from other designs that the designer never intended to be part of this one. This can lead the user to actions which are inappropriate when examined in light of the design model, but which are perfectly reasonable in the user model.


fig. 3.3 the two mental models associated with a system.


Any mismatches between the user's mental model, and the designer's mental model can be reduced by the designer:

Develop a simple, smooth design model, reflective of the needs of the user, not the limitations of the hardware or the difficulties of the coding process. [Tognazzini, 1991].


3.3.2 The Gulfs of Execution and Evaluation

The user's goals and intentions are separated from concepts and operations represented in the system by two gulfs: the gulf of execution and the gulf of evaluation (see figure 3.4).


fig. 3.4 The gulfs of execution and evaluation between the user and the system.



The gulf of execution refers to the conversion of the user's goals and intentions into actions that are required by the system. The gulf of evaluation signifies the problem of representing the system's concepts and operations in a form which can be interpreted by the user. According to Ziegler and Fähnrich [Ziegler & Fähnrich, 1988], interfaces which rely on the direct manipulation of objects help bridge these gulfs by allowing the user to utilise elements of the system's output as components of the user's input language. In a direct manipulation system such as the desktop environment of the Macintosh, the user can select an output from the system and continue to manipulate it directly, thereby reducing the gulfs of execution and evaluation.

3.3.3 Feedback

Feedback is an important concept in the design of controls. The user needs to be aware that an action has been performed. Consider how much harder it must be to talk to someone if you cannot hear your own voice. The feedback given must also be appropriate to the task. Some automated teller machines at banks give only audio feedback as you enter your PIN on the keypad. Such systems are difficult to use if you cannot hear the beeps due to high levels of background noise from cars etc. As computers have become more powerful, the sort of feedback that they are able to give has become more varied. Consider the action of copying a file from one directory to another. In early, less powerful computer systems there would be little feedback; perhaps a message saying the file had been successfully copied once the copying was complete. If you wished to stop the copying once it had started there was no easy way to determine how much of the file had been copied, and how much was left to do. In modern graphical computer systems, the copying process may appear as a window indicating the progress of the copy (figure 3.5), and perhaps an animation of the icon for the file moving from one place to another. This gives immediate feedback to the user that an action is taking place, even if it takes an appreciable amount of time. Some systems even present a button to enable the copying to be stopped - the user is always aware how much is left to do, and can see that it is perfectly feasible to stop the copying.



fig. 3.5 - the Finder's standard file-copy progress dialog box.


Feedback is important even if the amount of time taken to do something is increased by providing the feedback. For example, some CPU-intensive applications on the Macintosh draw a progress dialog-box (such as that in figure 3.5 above) while they perform their calculations. There is an amount of CPU power used to repeatedly draw the progress-bar, and this is obviously not available to do the work whose state of completion the progress-bar is indicating. It would seem at first sight that the best thing to do is to utilise all the CPU power for doing the calculation, but by displaying a progress-bar, the user has feedback about how much of the operation is left to perform, and by retaining the user's interest the calculation may actually seem quicker as a result.

3.4 Lessons Learned From Game Design



Crawford argues that a number of important interface lessons have been learned as a result of the development of computer games [Crawford, 1990]. He suggests that in order to make an interface more usable attempts should be made to:

Move away from the keyboard - although there are times when use of the keyboard is necessary, it is often much more meaningful to gather input in a different form. Click on a wanted item rather than type its name, move things around by dragging them, etc.

Make more use of Graphics and Sounds - It is often better to represent a concept using sounds or pictures rather than using words. An image can often show a concept directly, rather than describe it indirectly using text.

Don't leave your user in the dark - When a program is involved in something, it is important that it should not ignore the user, but that it should provide some feedback that an operation is in progress. Games designers have learned this lesson - your player will get bored quickly if the game spends a lot of time processing without any feedback to the user, or if its responses are sluggish.


3.5 Important Macintosh User-Interface Basics



3.5.1 The Mouse

The most important way that a user communicates with the Macintosh is via the mouse. It has been shown that the mouse is faster than joysticks, step keys, or text keys for positioning the cursor on objects.

The positioning time of the mouse is significantly faster than that of the other devices. This is true overall and at every distance and size combination save for single-character targets, for which it is roughly equal to other devices. [Card, Moran & Newell, 1983].


The mouse provides a good mapping of action to result.

The feature of the Macintosh mouse which distinguishes it from most other computer mice is the fact that it has only one button. Some computer systems have two or three mouse-buttons, but the Macintosh's operating system was specifically designed to work with one. The main reason for this was as a result of user-testing by Apple. In early tests performed by researchers at Apple, users were timed performing a number of tasks with the mouse, using both single, and multiply-buttoned mice, and it was found that the single-button mouse was faster. The reason for this appears to be connected with the way a mouse is used. A mouse is simple to use because it embodies a metaphor for a concept which we learn in infancy: that of pointing at things. The problem is that we do not usually care about which finger we use to do the pointing, pointing itself is the aim of the exercise. In a situation where it is important to use a particular finger to point, the person pointing has to make a decision as to the appropriate finger every time they point, and this is true whether they are expert pointers or amateur pointers. Experts may be able to decide which one more quickly, but the decision is still required every time the action is performed. This is precisely analogous to the mouse and the mouse-button. With a single-button mouse it is obvious which button needs to be pressed. There is no choice to make other than "should I press or not?". In multiply-buttoned mice a decision is required every time the user wants to click a button. It is also possible that the uses for the mouse buttons are not consistent or well-defined. This means that not only must the user make a choice about the appropriate button, but also that the appropriate button may be different in different programs, even if the desired effect is the same!
Problems with single-button mice do occur when it becomes necessary to press modifier keys while using the mouse. These actions are difficult to learn and to remember, and difficult to do. More mouse buttons would alleviate these problems, but at the cost of increased complexity of the mapping of functions to buttons.
Whenever the number of possible actions exceeds the number of controls, there is apt to be difficulty.[Norman, 1988]

The choice of one button for the Macintosh mouse is therefore a tradeoff.

3.5.2 The Menu Bar

With the advent of multi-tasking versions of the Macintosh Operating System a lot has been said about the undesirability of the single menu-bar at the top of the screen. In some multi-window/multi-processing environments, a menu-bar is attached to every window, or to windows belonging to currently executing processes. The advantage of this approach in a multi-window environment is that it allows a user to know which menu is appropriate for a particular window, something that having a single menu-bar may make confusing. Fitts' law [Fitts 1954] states that the further away the target, and the smaller its size, the longer it will take to hit it. This would, at first sight, seem to show that it would be easier to hit menu items where the menus pop-up under the mouse, or are attached to each window. In fact, Walker and Smelcer [Walker, et al, 1990] showed that this was not the case, and figured out why this was so. Fitts' law shows that it easier to hit an item that is closer than a distant one, where the objects are the same size. This would seem to show that the menu-bar at the top of the screen should be more difficult to select from, but on the Macintosh a menu at the top of the screen is not at all the same size as the menu at the top of a window, or a pop-up menu under the mouse for the following reason. When the mouse is pushed to the top of the Macintosh screen it stops and is prevented from going beyond it. This means that it is not necessary to be so accurate about the mouse vertical position. The menus can be thought of as being infinitely tall. Trying to hit a small target means that a person must slow down when they approach it to avoid overshooting it. With menus at the top of the screen a person can accelerate up the screen without the fear that they will overshoot the menu.

3.5.3 Colour

The use of colour in interfaces is a complex problem, not least because the perception of a colour depends upon other colours around it. One colour may be perceived to be a different shade when placed next to another. It is important that colour is used appropriately and is not overused. Thin lines in light colours are difficult to see: light blue is the worst, which makes such lines useful as ruler lines on paper or grid-squares on a graph [Apple, 1992]. Items in red can denote a warning, but since the eye is drawn to such items it is possible that someone is more likely to click on a red button, or choose a red menu item, than any other colour. Colour should be used as an adjunct to the interface, and not as the sole source of information about some aspect of it.

3.5.4 Sound

Natural sound is as important as visual information, because it informs us of things that we cannot see, and it does so while our eyes are occupied elsewhere [Norman, 1988]. Many of the things we use every day produce sounds that indicate their state; for example, the sounds made by a kettle when the water starts to boil, or the clunk of a car door that isn't properly closed. Sound is an important adjunct to the interface, but it must also be used sparingly, otherwise it can become annoying. It must never be used as the sole indication that something has happened, since it is possible that the user may not actually hear it, or have the sound-volume set to zero. Sounds to indicate different things should be significantly different, otherwise the average user may not be able to tell them apart.

3.5.5 Speech

Consider now the use of sound in speech. The application of speech input to computer programs is in its early stages, and much research work is being done to produce accurate results [Helander, Moody & Joost, 1988]. Two types of algorithm are commonly used in speech recognition: phoneme-based, and template based.

Phoneme based systems take the input speech and attempt to segment it into phonemes, which are then passed to a word-matcher.

Template-based systems are usually speaker-dependent. They must be trained with examples of the users speech from which they extract characteristic features. Some template-based systems utilise "Hidden Markov Modelling" to vary the templates in use [Rabiner & Levinson, 1985]. This permits such systems to be trained in advance for specific groups of people whose accents possess a small amount of variance.

Apple Computer released a new speech input system known as Caspar in the Summer of 1993, which is able to recognise speaker-independent speech by utilising hidden Markov models. Caspar requires a lot of processing power, and the first Macintosh models to support it get that power from a Digital Signal Processor chip. Even programs not written especially for speech-input are able to use the system, since it enables the user to select menu options by speaking, rather than selecting by mouse. The initial release of Caspar was programmed to specifically recognise North-American English. Speech output on the Macintosh was enhanced at the same time as the release of Caspar, with the associated release of MacinTalk II . This is a much enhanced version of the original MacinTalk phoneme-based speech synthesiser for the output of speech from any program, and will be usable if a program supports the sound manager (which nearly all programs do).

Despite much research, the use of speech as an input and output medium for computer systems is still very far from that which science-fiction has depicted for many years: of the computer fully controllable by anyone by simply talking to it, and able to reply with a clear and natural-sounding voice.

3.5.6 Animation and Video

Interfaces for learning should present movement and animation at an appropriate rate to support the learner's understanding of critical concepts [Nicol, 1990]. Where movement is used in the package to enhance an interface concept, it is important that the meaning should be clear so that the user can connect the movement to an action that they have instigated. Simple effects such as rectangles zooming from one location to another can be used to relate the selection of an item to its appearing in another, disconnected, location.

Desktop environments make use of icons to represent items and actions that can be performed. The static nature of such icons limits the amount of information that they are able to convey. One possible way of extending the information content of an icon is to use an animated icon. This could also be used to clarify the function of the icon. Consider the eraser icon used in a number of drawing and painting packages on the Macintosh. Its representation is usually as in figure 3.6, amongst the other tools on the tool palette in Adobe PhotoShop. A naive user could be forgiven for not realising what the icon was meant to represent, although once used, it becomes obvious that it is an eraser. One possible way around this is to represent the tools using an animated representation - actually show the eraser rubbing something out for example. Baecker and Small have developed an animated eraser on a tool palette [Baecker & Small, 1990] (see figure 3.7). The particular animation also involved showing the eraser singing an "eraser song", all about what it did and how it did it. While this was evidently an extreme example, it was obvious that once you'd seen it you would not forget about the eraser. Such an animation would appeal to children and be informative.


fig. 3.6 (left) Tool palette in Adobe PhotoShop 2.5.
fig. 3.7 (right) Views of an animated icon for an eraser [Baecker & Small, 1990].


QuickTime is Apple Computer's video and animation system which brings support for video and animated images to the operating system (see figure 3.8). A number of alternative video systems are becoming available for other computer systems. Currently, the main system in use is the MPEG system, so called because it was defined by the Motion Picture Expert Group - a group of people who met under the International Standards Organisation to generate standards for digital video and audio compression. MPEG utilises sophisticated and cpu-intensive motion-search algorithms to reduce the amount of data that must be stored for a moving image. This system exists for the Macintosh, but is not as efficient as QuickTime on that platform. MPEG I has been completely specified - it is defined as compressed video and audio optimised to fit into a bit stream of 1.5 Mbits per second, which is the data rate of uncompressed CDs and DATs (Compact Disc and Digital Audio Tape). Work continues on specifying MPEG II, which is defined to fit into a bit stream of 3 to 10 Mbits per second. The different specifications are suited to particular applications and physical transport systems (playback from CDROM, transmission across Ethernet networks etc.).
Microsoft has produced "Video For Windows", which runs on PCs, and Apple have ported their QuickTime system to the PC and other platforms, though only for playback so far. If the PC is the required destination platform, the current consensus seems to be to use Macintosh systems for the production and editing of desktop video because the software tools are much more developed, then to port to the PC when the production is complete. The wide variety of hardware in the PC world leads to difficulties in supporting the complete range of systems, and since video is so CPU-intensive, only a medium to high-end PC system can cope with the data throughput.


fig. 3.8 - 3 non-consecutive frames from a sign-language QuickTime video used by the package.



3.6 Participative Development



Any project which calls upon a mix of people from different disciplines can suffer from problems caused by the lack of familiarity of the participants in all the relevant fields of knowledge. Being aware of just what is wanted, and what is possible, can be a formidable task, and it is usually the case that participative development (PD) leads to a new perspective on behalf of both the users and the experts - what Erran et al. refer to as mutual reciprocal learning [Erran et al., 1993]. Research in PD shows that users involved in the design of a system feel increased competence and confidence [Miller, 1993], they feel that they have important input into an end product, and are not just passive users of it. This also means, however, that users are responsible for the system that they get, and cannot blame the experts if they do not like it. It has been shown, however, that it is less likely for such a system to fail, since it has been tested in precisely the way in which it is to be used, and by those who will be using it. It is the responsibility of the computer experts to ensure that users are made aware of the technological possibilities and limitations of the systems, and also to listen to what the users want, and not to implement something that they don't want, simply because it makes sense from a programmer's viewpoint [Bjerknes, 1993]. Erran et al. [Erran et al., 1993] refer to two themes which govern practical implementation of PD, the first being mutual reciprocal learning, referred to above, and the other design by doing, in which "low-tech" and more recently "high-tech" tools are used to prototype the design. Low tech tools include such things as white-boards, flip charts and Post-It notes. One of the latest high-tech tools is HyperCard, used as a quick interface-prototyping tool. HyperCard is particularly good for creating evolutionary prototypes.

Among the problems with the mixing of disciplines is the potential for confusion over jargon used in the different domains. It is possible that some jargon in one domain has a completely different meaning in another, or is a concept that is totally alien. Participative Development had some bearing on the development of the computer system documented in this thesis, and this will be considered in section 7.3.2.


3.7 Costs and Consequences of Restructuring Interactive Software



The Macintosh computer was the first mass-market machine to offer an easy to use graphical interface. This interface, which is used consistently across all Macintosh programs, provides the user with an easy to use system, but gives the programmer more work to do to produce even a simple program. The reason for this is that although the operating system of the Macintosh provides many services that the programmer needs to produce good, consistent programs, there are a lot more steps to take to produce such a program. Take, for example, a program which asks for some input, performs an operation on the input and then produces some output. In many computer systems this would involve using for example the Pascal readln statement to get input, and the Pascal writeln statement to produce the output. On the Macintosh, for a program to remain consistent with other Macintosh programs, input is received via a dialog box, whose contents and position must be defined, and whose result must be converted into an appropriate form. Output is also usually done via a dialog box, with all the appropriate code to set up and handle the insertion of values. For example, figure 3.9 shows a typical Pascal program to get input from a user, and to write some output after a calculation.

readln(InputNum);
{...}
{do some calculation here}
{...}
writeln('The output is: ',theResult:4);
fig. 3.9 Typical Pascal program to get input, perform a calculation and write output.


A similar program segment for the Macintosh follows in figure 3.10. Note that it requires the definition of the dialog boxes to be set up in advance of their use. One way of doing this is using Apple's ResEdit program, which is discussed in appendix E. Meaningful variable names have been used in the listing, and in a real program, these would have to be declared by the programmer.

InputDlog:=GetNewDialog(myInputDlogID,nil,pointer(-1));{show dialog}
repeat
    ModalDialog(nil,itemHit);{handle events until we get a mouse-click}
until itemHit=OKItem; {repeat until we click OK}
{get a handle Item to the text object that holds the input string}
GetDItem(InputDlog,TheInputStrID,ItemType,Item,ItemLocation);
GetIText(Item,InputText);{get the text we entered}
StrToNum(InputText,InputNum);{convert it into a number}
DisposDialog(InputDlog);{and put away the dialog box}
{...}
{do some calculation in here}
{...}
NumToStr(theResult,ResultText);{convert result into string for display}
OutputDlog:=GetNewDialog(myOutputDlogID,nil,pointer(-1));
{show dialog}
{get a handle Item to the text object that will be used to hold the result}
GetDItem(OutputDlog,TheOutputStrID,ItemType,Item,ItemLocation);
{replace the dialog box text item with the required string}
SetIText(Item,ResultText);
ModalDialog(nil,itemHit);{and wait until the user clicks something...}
DisposDialog(OutputDlog);{...then dispose of the dialog box}
fig. 3.10 Typical Macintosh Pascal program to get input, perform a calculation and write output.

From this small example, it can be seen that much more code is required to perform a task on the Macintosh, than on a typical text-based computer system. It is this aspect of Macintosh programming that means that Macintosh programs are typically much bigger than would be the case on text-based systems. Programmers have to make more effort to produce programs which are consistent with the Macintosh ethos, and Apple publish guidelines which programmers should follow. Programmers who do not follow the guidelines (and there are some) tend to produce programs which are more difficult or obscure to use, and which often fail when there are upgrades to the Operating System, or changes in CPU.

There are, however, significant advantages to using the resource-based approach to programming, particularly when modifications to the program are required. Since resources are separate from the program code it is possible to change certain aspects of the appearance of some objects by modifying the resources which define them. Such modifications do not require the recompilation of the program source. It is also possible to write program code which can take advantage of the number and type of certain resources available to it. For example, replacing one picture by another, or by a sequence of video.


3.8 Summary



It has been shown in this chapter that there are many aspects to consider in the production of an easy to use interface, and that the input of designers with skills in all the appropriate areas of knowledge can lead to a system which a designer without this expertise could not envisage. The next chapter examines the design of the computer system based on the SAGE approach to interviewing covered in chapter 2, and utilising human-computer interaction principles discussed in this chapter to produce an easy to use interface aimed primarily at children.
back to Chapter 2. forward to Chapter 4