Back

The importance of good interface design

Introduction
One part of the operating system is responsible for providing a user with an interface. A user doesn't need to know how the computer does what it does. They only need to be able to click on icons and select items from menus, for example, (assuming the interface is a 'Graphical User Interface') and then let the computer, or rather the operating system, work out what actually needs to be done with the hardware. The screens that are provided by the operating system, the methods by which the user enters data into the computer and what the user sees on the screen are all part of the user interface.

A computer is made up of hardware like a motherboard, a DVD drive and so on. A human needs to interact with them to use them but how? Humans don’t understand the ‘machine code’ that the components use and the components don’t speak the language of the human user. If they are to interact, if the user is to be able to give commands to the hardware and understand messages sent back by them, then they need to find a way. This is where the user interface comes in. The user interface is a screen which users can see (usually) and understand and it also includes the input devices like the mouse and keyboard as well as the outboard devices, such as the monitor. As commands are entered, as icons are clicked and menus selected, the user interface converts them into commands the hardware can understand. Messages sent by the hardware are also converted by the user interface and displayed in a form the user can understand, for example, by displaying a message on the screen. In this way, a human user can interact with something that does not speak or understand the language of the user.

Communication between a user and a computer is two-way. We know that one of the jobs of the operating system is to provide a ‘user interface’, so that a human can communicate with the hardware that makes up a computer. When you buy a piece of software, it too will have a user interface, so that you can access and use the software. A user will give data and instructions to a computer and a computer will give information back to a user. The way that a computer and a user communicate is known as the ‘interface’. There are alternative terms to describe this. Another common term is the Human-Computer Interface, also known as the HCI. If you are going to describe the interface fully, you need to talk about the input devices, the software interface and the output devices. In this section, we will concentrate on the nature of the software interface. We will describe the five different types of software interface and identify their characteristics.

    1. Form-based interfaces.
    2. Menu-based interfaces.
    3. Graphical User Interfaces (or GUIs).
    4. Command line interfaces.
    5. Natural language interfaces.

  Four types of interface

I. Forms
The first kind of software interface we will look at is the form-based interface. Just for a moment consider a paper-based form that you are asked to fill in, perhaps for the membership of a club or an application for a driving licence. What you have to write down is highly directed. There are instructions to help you, boxes where you write or select information from some choices and boxes where you simply tick one of a selection. A form-based software interface on a computer is similar to a paper-based 'interface'. The input into the computer is predictable. If you used a range of form-based interfaces, you would start to see a number of common characteristics.

    • There are field names, names next to a place where information must be entered. The places where information should be entered in by the operator are known as ‘response fields’.
    • Other types of response fields include radio buttons and drop-down selectors.
    • The cursor 'tabs' automatically from one response field to the next. This guides the user logically through the form, ensuring that all the information needed is gathered.
    • As data is entered, it is ‘validated’. Validation attempts to ensure that only sensible data is entered into the system and data that is not sensible is rejected. Validation helps ensure that data entered into any system maintains its ‘consistency’. This means that any data stored is only of the format expected in a particular field. Data can be validated using a range of methods.. The methods include:
          1. A range check.
          2. A character length check.
          3. A data input mask.
          4. A presence check.
          5. Getting the user to select from a list using combo boxes or look-up tables.
          6. Using check digits.
    • Input can be changed or cancelled if necessary.
    • Data is finally entered into the system only when an 'OK' button, ENTER or something similar is pressed.
    • There is some kind of HELP facility.
    • Some options are not displayed on the main screen, to avoid cluttering up the form. Access to less commonly needed facilities is via a selection button that links to a separate screen.

Form-based interfaces are suitable for any application that involves entering predictable pieces of information into the computer:

    • Someone taking telephone orders for a product such as a CD.
    • Someone recording responses to questions in a telephone questionnaire.
    • Someone entering in details of people who want to apply for a credit card.
    • Someone applying to join a club or open a free email account on the Internet.
    • Someone who is buying something online.

All of these activities might be done with the aid of a form-based interface. This is because the same, predictable information will be asked for by the operator or by the web-based organisation over and over again for each order or questionnaire or application. Here is an example of a form-based interface:

Form

II. Menus
Menu-based systems are ideal for situations where the user's IT skills cannot be guaranteed or in situations which require selections to be made from a very wide range of options or in situations which require very fast selection.

The user of a system that uses a menu-based interface will be presented with a limited number of options on the screen. Once a selection has been made, the user is presented with a sub-menu. This gives them further options. They make another selection and may be presented with a further sub-menu. This continues until the user is able to select exactly what they want from the choices finally displayed on the screen. Here is an example of a menu-based screen that might be found at a tourist office.

A tourist, who may not have any IT skills, could be presented with a screen with 9 buttons on it, perhaps including theatres, cinemas, pubs and trains, for example. They would touch the touch screen in the area of one of the buttons to make a selection. If they selected 'Cinemas', for example, they would then be presented with a sub-menu. This might look like another menu-based screen with six buttons on it, for example, one for each cinema in the area. If they then selected one of those, they would be presented with the films that are currently showing and the times they are on. This type of user interface is about as simple as you can get. You do not need any computer skills to access the wealth of information on a system like this.

Menu

A menu-based information system.
Consider a factory where workers are working in a noisy, dirty environment. Workers may not want to be fiddling around with keyboards, typing in commands. They could have a menu-based interface instead. This would quickly allow them to find the option they wanted and to select it, simply by touching a touch screen. Consider a stockbroker. Their job may involve sitting at a computer screen and watching how many different share prices are changing. Shares may be grouped and they can select a particular group or an individual share quickly by selecting a type of share from a menu. They might then select a subset of that type from a sub-menu and so on, until they get the group of shares or the individual share they want to monitor. It is far quicker to find what they want using menus and sub-menus than it is typing in commands.

III. Graphical User Interfaces (GUI)
Interfaces that are graphical in nature are known either as Graphical User Interfaces (GUI) or WIMP interfaces (Windows, Icons, Menus and Pointer).

Typically, you would expect these types of interfaces to be available in multi-tasking environments (where you open and use more than one piece of software at a time) or in applications software that involve a considerable degree of complexity. You will all have used a GUI hundreds of times, when you used Windows, or Word, or a Star Office application, or Paint in primary school, or Explorer or Netscape to surf the web and so on. Each of these applications has its own ‘window’ that it opens up into, and you can open up more than one application (and therefore more than one window) at a time. Only one application is ‘active’ at any one time. In Windows, you know which one is active because the active window has a bright blue bar at the top of the window, as opposed to a dimmed blue bar. There are also icons you can click on for fast access to the tools in the application. There are drop down menus that ensure you don’t have hundreds of options constantly on display, taking up room on the screen. The pointer is usually a mouse. A mouse ensures that you can make selections quickly rather than having to use a keyboard, which is slower and prone to mistakes.

To summarise, you would typically expect to find the following in a GUI or WIMP user interface:

    • A 'window' for each open application. Many windows can be open at the same time but only one window can be active at any one time. There may be some way of indicating which one is active (perhaps by making the bar at the top of the active window bright blue).
    • Menus and icons. Available functions can be selected in one of two ways, either by using pop-up menus or drop-down menus, or by clicking on 'icons'. An icon is simply a small picture that represents a specific function - clicking on it selects that function.
    • A pointing device, to make selections. It is typically a mouse or a graphics tablet and pen. The use of a keyboard to navigate through the application is minimised because it is a relatively time-consuming way of working.

Companies who make different applications usually try to keep a common 'feel' to the interface in each application. This helps users who are familiar with one application to quickly pick up a new application designed by the same company. You probably have had some experience of this yourselves. You know how to save a file in a new application because it is done in the same way as in another application you used by the same manufacturer.

IV. Command line interface

CLI

A command line interface requires a user to type in commands from a list of allowable commands. Suppose you want to back-up a file called donkey.doc to a folder (directory) called animals on your floppy disk. In a GUI, you would open your file manager, click on the file you want to save and drag it to the folder called animals on the floppy disk. Anyone can do that! If you wanted to do the equivalent in DOS, for example, which has a command line interface, you would have to know how to construct the command to copy a file from one place to another. You would have to type: C:\> copy donkey.doc  a:\animals

This type of interface can take a long time to learn and is not intuitive. For inexperienced users it can be a frustrating type of interface whilst for experienced users it can be very powerful. This is because command line interfaces provide commands that can get a user very close to the workings of the components of a computer system. There are commands that can manipulate the hardware and software in a computer system in a way that simply cannot be done using a GUI. Indeed, there are tasks where you have to use a command line interface to carry them out. UNIX and DOS are good examples of operating systems that use this kind of interface.

Typical users of command line interfaces are technicians and network managers. They need to perform many set-up tasks and system tasks. These tasks can only be done using this type of interface.

V. Natural language
This kind of interface requires the user to enter responses to questions asked by the computer. The questions are displayed on the VDU and the answers are entered via the keyboard. This kind of interface is called a 'natural language' interface because the computer and the user appear to be holding a conversation. For example, imagine the user has initiated a 'save file' request. The 'conversation' might go like this:

USER: Save file
COMP: What is the file name?
USER: chapter1.txt
COMP: What folder?
USER: UserGuide
COMP: File already exists. Overwrite?
USER: Yes
COMP: Done.

This kind of interface can be found on data entry terminals and other types of ‘dumb terminals’ connected to a network where non-expert users are guided by the computer through the complex tasks they need to perform.

Designing the user interface
We have seen that the way a user interacts with a computer is known as the 'user interface'. It is also commonly called the 'Human-Computer Interface', or HCI. Communication is two-way. The user must get information into the computer using appropriate methods and devices and the computer must send back data and information to the user. If you want to discuss fully the HCI, you need to discuss:

    • The hardware needed to get information into the computer.
    • The hardware needed to get information out of the computer.
    • The methods provided by the software to aid data input.

We have already seen that there are a range of software interfaces that could be used; forms, menus, GUIs, command line and natural language. When an interface (the input and output hardware and the software methods) is being designed for a new situation, the designer must run through a checklist of things to consider. If this is not done properly, the interface may be cumbersome to use. It may not allow the user to get the right information into the computer easily, efficiently and effectively. If the wrong information is put into the computer, any processing will be invalid because it will be based on inappropriate data. A poorly designed interface may output confusing data and this will diminish a user's understanding of it. They may not be able to make sense of it and so it will be of limited value. What sort of things should be on the designer's checklist? The following list is not exhaustive but does attempt to give you some ideas of the questions that need to be asked.

Who will use the interface?
If a user has a disability, that will affect the selection of input devices needed, the style of the software interface as well as the nature of the output devices. Someone with restricted mobility may need a concept keyboard or a natural language input method. Someone with a visual impairment may appreciate audio output. Some consideration may need to be given to the screen. You may want to consider decreasing the resolution and increasing the size of the icons and menus, using a high-contrast set of colours and making a magnifier available. The age of the users is important. Clearly, the interface for a three year old will be different to an adult. For one thing, the child may not be able to read any but the most basic words and will therefore not be in a position to make selections based on written instructions. A QWERTY keyboard will be of limited use while a concept keyboard may be a much better choice.

The experience of a user will also be important. Many people have grown up with computers and will be comfortable with a GUI. Others with a little more experience may be happy to use a command line interface. Some users may have had little opportunity on computers and need a very basic menu system and touch screen, just to persuade them to even use the system!

What does the new system seek to do?
If it is trying to simulate flying a plane, then a joystick and pedals should be provided as input devices. If it is simulating driving a car then a steering wheel would be an appropriate input device. A process control system may need pushbuttons, keypads and selector switches so that a system can be told what situation to aim for and how to achieve it. If the system is seeking to entertain or be as realistic as possible then special effects in the shape of a vibrating steering wheel or sound effects may help, for example. If the system were a real-time simulation then a realistic visual depiction of the world would be appropriate on a suitable screen. If the application were to monitor and control the flow of trains in and out of a train station, for example, then a diagrammatic depiction of the current situation, regularly refreshed, would be an appropriate method of output, perhaps using indicator lights. If the application were to monitor and control the flow of water around some pipes, there would be a need for sensors to continuously monitor the flow and pressure of water and feed these back to the computer. There would also be a need for actuators (any computer-controlled devices that cause movement) to adjust valves and switch pumps on and off, thereby adjusting water flows. Again, a diagrammatic depiction on a large VDU or other large display unit would be necessary to show the operators the current situation.

What is the environment in which the system will be used like?
If it is a dirty, dusty place, a membrane keyboard or a touch screen may be necessary to prevent the keyboard quickly becoming unusable. If any systems are critical, for example, in nuclear reactors, then the use of klaxons may be necessary to signal the urgency of a situation to users. A hospital, which has patients on life support, may use a similar system or flashing indicator lights to alert nurses to a problem with a patient. If the system is to be used in an office to enter in information from paper forms then a QWERTY keyboard or natural language may be fine, in conjunction with forms-based input screens. Simple laser-jet or ink-jet printers may suffice for most office-type applications. However, if large, accurate engineering drawings are needed using colour, then a plotter may be selected as the output device. If the system was to be used under water then any input devices such as sensors should be waterproof and corrosion-resistant. If it was to be used in the open air, similar consideration should be given to any environmental factors that may affect system components.

Where will the information sent out from the system be used?
If the information is to be used at the computer system, it may only be necessary to provide a 'standard' VDU. Of course, engineering design applications may warrant the purchase of a 21-inch screen, for example. If the information is to be sent to someone or hardcopy is required for legal reasons then a printer will have to be selected. In a warehouse environment, a printer may be needed so that an order can be printed off and taken by the warehouseman around the warehouse while they collect together the order.

Back