• Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint

Lab 3.3 Exercises

3.3.1. Understand Basic Concepts of Dialogs

a) Communication can only occur when all of the parties involved have common “language” in which they can apply the information being transmitted. Discuss the main concepts that are involved in communication and what problems need to be considered.




Answer: Communication involves the exchange of symbols. For humans, these symbols can be things we normally consider as symbols, such as words that represent certain ideas or even the color red to represent danger or a warning. Although transmitting the symbols between the participants, no communication takes place unless the meaning assigned to the symbols are agreed upon by all parties. If not, either no communication takes place or, at worst, the communication is actually misunderstood.

One of my favorite examples of misunderstanding symbols involves a statement by Nikita Khrushchev, who was premier of the Soviet Union when John F. Kennedy was President. He said, “We will bury you.” This was taken as a very hostile, aggressive comment. People assumed that Khrushchev and the USSR would overrun us, beat us in a war, or any number of things that meant something aggressive. Instead, it comes from an old Russian saying, whereby Khrushchev was simply implying that the USSR would outlive (not attack) the US. We understood the words (symbols) of what Khrushchev was saying, but without the correct context we did not have true understanding.

Another of my favorite examples comes directly from software. I have received messages from programs that ask “Are you sure you really want to exit?” I am then presented with the choices “Continue” and “Quit.” What does this mean? Does “Continue” mean to continue the program or continue exiting? Does “Quit” mean quitting the process of exiting or really quitting the program? Here again, the symbols (words) are known but what is really meant is unclear.

b) In a human-computer dialog, explain the roles of style, structure, and content.




Answer: Style defines one of the five possible dialog styles. Structure refers to the parts and ordering of elements of the dialog. The two parties must both understand the content of the dialog elements.

3.3.2. Identify the Range of Dialog Styles

a) Command language is the oldest and still the most commonly used dialog style. Such languages originated with the need to command operating systems to carry out sequences of tasks or jobs. What features do structured command languages provide and what advantages/disadvantages do they have?




Answer. Structured command languages are essentially program executions with parameters specifying data inputs and outputs. Commands in the language are designed to provide a close link between the user's work context and the notation. Command language also emulates familiar human-human communication. The sequence is first to issue the command, then observe the outcome, and then respond according to the perceived success or failure of the command.

Perhaps the most significant advantage with a structured command languages is that they provide more direct, specific control over a program or system. This can be something as mundane as changing the permission on a file, but can be more complicated such as removing all temporary files older than 30 days or starting a full backup of your system. Another advantage is the ability to integrate structured command languages into your own automation or repeated tasks more easily than with other methods.

The most significant disadvantage is that there are often a large number of options, which can be overwhelming for the beginner. The options and the command names can be cryptic, making them hard to remember.

Structured command languages are not going to go away in the foreseeable future. They are an integral part of many systems such as operating systems, computer-aided manufacturing, and so forth. Plus the advantages they currently provide over other input methods far outweigh the disadvantages. Other advantages include:

  • The ability to perform tasks relevant to the user's tasks

  • Flexibility for novice and expert users

  • Compatibility with existing language notations

Like any language, a command language must be learned so that a user can instruct the machine to carry out tasks. In some cases, this allows only skilled users to compose commands. However, many systems, such as the Linux operating system, have programs that specifically address this issue. Instead of just single character options, which are available on most other systems, Linux commands provide for longer options, which are more easily remembered and understood.

Command languages are designed to emulate human-human conversation. The usage sequence is:

  1. Command issued

  2. Observe the outcome

  3. If outcome expected, issue next command

  4. If outcome unexpected, adopt new strategy depending on outcome

To be successful in this dialog, the user must recall the correct notation and be capable of initiating creative action, that is, composing the command. Both of these tasks are difficult and prone to inaccuracy. In addition, the user must also be able to understand any messages, whether they indicate problems or successful completion of the program. This means the programmers need to ensure the program produces intelligible output. I am constantly annoyed by messages I have seen in the system logs of Microsoft Windows NT where they say something along the lines of “The command could not be executed due to an unexpected condition: The command completed successfully.” Is it really unexpected that the command completes successfully? This is a case where the programmer did not interpret the result of an error message correctly and thereby produced a message that was confusing to the user.

Obviously, command language design is a skill in its own right. Commenting on the unsuitability of natural language, Charles Babbage says:

I soon felt that the forms of ordinary language were far too diffuse . . . I was not long in deciding that the most favourable path . . . [was] to contrive a notation which ought, if possible, to be at once simple and expressive, easily understood at the commencement, and capable of being readily retained in the memory. (Schneiderman, 1992)

The typical command language notation is the verb—noun phrase, possibly augmented with arguments for the verb (action) or noun (object). At every stage in the command language design, there are a number of important features to be taken into account:

  • Model of objects and actions

  • Macros/procedures

  • Prompting

  • Error messages

  • Command structures

  • Naming and abbreviation

We find command languages at almost every turn in most major operating systems and software suites. There are the multitude of command languages in Unix (shells), the batch commands of MS DOS, and even the command level in Microsoft Windows NT. Office suites and graphical design packages have their macro languages, which come close to programming languages. On the Web, we see pages containing scripts expressed in extensions of command languages.

Database management has its own special command language. A special case of command language allows users to request information from databases using the Structure Query Language, SQL. Such is the complexity of SQL that users struggle with the correct syntax. It is not surprising that visual SQL query design tools now proliferate to aid users to construct correct SQL.

User queries in help systems and online search engines attempt to use another special variant of command language, natural language itself. Ostensibly, a user's natural language allows untrained users to speak or type inputs. However, after decades of effort we know that natural language is very difficult to implement. Usually this enormous task of translating natural language limits its use to very simplified forms. Remember that when humans converse they speak in half sentences, skip words, interrupt one another once the message is understood, and utter single words that have special meaning in a particular context. Reproducing such behavior in a natural language interpreter has so far proved elusive.

b) Many programs provide the user with a series of questions and await answers in order to perform their required function. Discuss the kinds of applications where this method is used and discuss the advantages and disadvantages.




Answer: This dialog style is very common in character-based applications and installation programs. Character-based programs do not have the luxury of a graphical input, so this is the only method available to them. The dialog style is also suited to simple interactions with untrained users or elucidating input from a single important question as part of another dialog type.

The key advantage is that the programmer can guide the user along, following the necessary steps in the right order and thereby avoiding mistakes. In addition, this method is obviously a requirement on systems that do not have a graphical interface. Installation programs use this method as the questions often need to be asked in particular order or the program needs to ensure that all of the questions are answered.

One major problem is that a great many programs of this type do not allow the user any chance of backing up, depending on the environment where they are used. This usually means that if the user makes a mistake, he or she must start over from the beginning. A solution would be to temporarily store the answers for later retrieval. Often, there is no easy solution to this problem without using other dialog styles.

When using this simple dialog style, the most important rule to remember is always give the user a terminate option. This allows a possibly long sequence of questions and answers to be cancelled by the user at any time. I also believe that as much of the actual work needs to wait until all of the questions are answered just in case the user decides to quit. This helps avoid conflicts should the user restart the program later.

In addition, since it emulates a common form of human-to-human dialog, this is regarded as a “natural” interaction. Consider an exchange with your doctor, “Where does it hurt?” then “What kind of pain is it?” then “Does it hurt when you do this?”

c) Form-filling dialogs are considered a more “modern” approach, allowing several varied inputs per interaction. Discuss the kinds of applications where this method is used and discuss the advantages and disadvantages.




Answer: Form filling is well-suited to tasks where many values must be seen at one time or when the input of the information does not need to be in any specific order. For example, a registration form where you fill in all of your personal information. Humans are used to filling in paper forms. Emulating the paper form for a user interface makes it instantly recognizable.

One major advantage is the simple input method for the user. Users are already familiar with forms and do not always fill them out in a particular order. This makes it a “natural” interaction for literate users. Other benefits are that all prompts (field names) are visible and help is available on the same screen.

This input method requires a lot more work on the part of the developer. Some conventions are needed for interfield navigation that must be learned by users. From the user interface implementers' standpoint, interfield validation is necessary for each value entered into a field. Most importantly, checks for noncompletion must be included and a suitable mechanism put in place for informing users of input inconsistencies.

A full-fledged form consists of a unique identity, a title, some help text, and a series of fields. A field consists of an identifier, a prompt, some help text with information about the value to be entered into the field, such as the data type, the range, a default value, display attributes, and the entry and exit conditions (validation). You will see quickly that designing form user interfaces is a complex task.

We should also mention here the great success of the spreadsheet user interface, which is a cousin of form filling. Spreadsheets, too, mimic the accountant's ledger in a natural way. In a spreadsheet user interface, the form field names are derived from the row and column names of a regular grid. This leaves more screen space for the data values. Spreadsheets have a dual nature in that the cell values are used for both input and display. The spreadsheet user interface is regarded as one of the most valuable gems in all of user interface design.

Filling in forms is such a natural interface that it is not surprising to find it was the first interactive user interface to be implemented in Web pages. Coupled with a small set of powerful form user interface components, Web forms are flexible and powerful. Their use has always suffered from the complexities of writing CGI scripts to support their use at the Web server.

d) Menu selection allows users to select from a list of alternatives. Discuss the kinds of applications where this method is used and discuss the advantages and disadvantages.




Answer: Menu selections are useful in applications where you have a number of different possible inputs, but the inputs are limited in number. For example, a company's Web site might have a menu of the various departments. You have a choice of which department you want, but the choice is limited.

The benefits of using menus are many, and it is not surprising that this dialog category has become the interaction style of choice. Because of this universal adoption, users need little training and may easily use the system infrequently without loss of productivity. By scanning the menus, the user can receive help with the terminology of a particular application. Since the menus correspond directly with the tasks and subtasks that an application supports, users are aided in structuring their decision-making process.

Menus are also of great benefit to novice users. The menus are shown on the screen and do not require memorization by users.

There are few problems with menus. The major problem is designing the structure of complex menus, which have many options, in a manner that is intelligible to the user.

A menu is similar to a form and consists of an identity, a title, help text, and a series of options or menu items. Each item might have a title, a selector string or method, and an action to be taken if that item is selected. Menu selection is well suited to interactions with untrained or occasional users as it avoids extensive learning and memorization of complex command sequences.

Menu structure plays a major role in aiding user understanding. Lessons can be learned from printed “menu” styles such as restaurant menus. However, screen space has traditionally been limited, leading to a need to structure menus into submenus in a tree structure. Effective menu selection requires careful user interface design. The important issues are:

  • Semantic organization and grouping

  • Menu system structure

  • Number of menu items

  • Menu sequencing and shortcuts

  • Selection mechanism

  • Layout, phrasing, format, and graphics

  • Online help

Early visual display devices were only capable of displaying lines of characters. Menus in this environment consist of numbered lines, each containing a menu item. To select an item, the user types the corresponding number. With a GUI, we have a choice of several menu types:

  • Pull-down menus reveal a vertical list of menu items when the user clicks on the menu title. Clicking on a menu item selects it.

  • Pop-up menus reveal a vertical list of menu items when the user employs a special click sequence (right mouse button or hold down single mouse button) anywhere on the screen (or major portion of it).

  • Pull-aside menus result in an additional vertical list of menu items when the user clicks on a specially marked menu item from a pull-down or pop-up menu item list.

  • Toolbar menus are arrays of icons or tools, each representing a menu item. When the cursor moves over a tool, a tool tip box containing a text menu item is revealed.

Modern GUI applications will typically use all of these menu types in combination.

Menu organization and grouping involve the clustering of features around tasks and subtasks that the users undertake. A task analysis, discussed in Lab 3.5, will provide the grouping of the top-level menu items. The user interface designer then must decide upon the ordering and structure of the lower level menu items.

Experimental parameters from the model human information processor and experience over a number of years have resulted in some simple rules for menu design. The question of structure reduces to how many items should appear in each menu and how many menus must be traversed to reach a particular menu item—i.e., menu breadth versus depth. Early research indicated that you should restrict menu item choice at any stage to a small subset of items using the rule of 7±2. More recent research indicates that broad, shallow menus are what most users prefer.

Modern thinking guides us to design menus so that:

  • At each level the number of items is large enough for the user to scan but not so large that the screen is cluttered or confusing.

  • The menu has sufficient levels to split the task into manageable subtasks but avoid long, boring submenu sequences.

  • Order each list by meaningful category names into a logical sequence perceived by most users.

Other rules relate to the expected frequency of use of menu items. Frequently used items should be placed near the top of the hierarchy. Infrequently used items, or those items intended for expert users, should be relegated to lower menu levels.

e) Menus in graphic applications present a unique set of problems. Discuss these problems and how a developer would address them.




Answer: The biggest problem is the level of complexity that menus in a graphical application have. Typically, you are presented with all of the menus at once. However, depending on the state of the application at any given time, many of the menu items may not make sense. The developer needs to address this problem.

One way is to eliminate menu entries not appropriate to the current state. This has the problem of causing the position of the menu entries to change, which cause the user to search for the appropriate entry, thereby wasting time. Alternatively, the menu entry could be “grayed out.” The position of the menu entry remains the same, but may cause confusion as the user asks why he or she cannot use that entry.

With limited space, we present two examples of menus from the Microsoft Word 2000 application. This very recent application shows the trends in GUI menu design at a high level of sophistication. Several other software packages could have been selected. When we come to consider Web page user interfaces, we will see the lack of menus as a major omission.

Menu design for GUI applications has become very sophisticated. Figure 3.2 shows part of a screen dump from Microsoft Word 2000. Note that the top-level menus, the pulldown titles File, Edit, View, and so on, are nine in number. The pulled-down Edit menu has fourteen menu items, some of them grayed out. Note the specification of shortcut keys for some menu items. At the left of some menu items, such as Paste, we see a small icon that you will see repeated on the toolbar below the pulldown menu bar. There is a growing trend to implement toolbars that repeat the capabilities of menus.

Figure 3.2. Menu Screen Fragment from Microsoft Word 2000

We will see later that using an application that appears to operate in a single mode allows users to be more productive. Modeless operation dictates, however, that some menu items may not be available for selection in order to impose appropriate sequencing on tasks. It is necessary to indicate these unavailable items in some way. The method of “graying out” unavailable options has two very substantial advantages:

  • Menu lengths remain constant allowing users to learn menu item “positions” thus reducing search time

  • Users are made aware of all the options that are available, thus becoming conversant with the full potential of the system

We saw earlier on in our discussion the importance of feedback. This applies equally to menu selection. A feedback mechanism indicating the menu item selected is essential. Highlighting the menu item under the cursor has become the universal feedback for menus.

Another benefit of GUI menus is having the menu bar visible. This allows it to indicate the current settings where “on-off” options are involved. Tick marks or other suitable characters can be used as well as italicizing, making bold, or outlining the text. Graphic symbols or icons can also be used in menus to indicate the current status of a setting.

Other new trends in menu design are shown in Figure 3.3, another example from Microsoft Word 2000. First, it shows the pull-aside menu for Background. In this case, the third-level menu contains much more than just text items. We see an array of buttons. In general, other user interface components controls can be present such as slider controls and the like.

Figure 3.3. Another Example Menu from Microsoft Word 2000

Building sophisticated menus as shown in Figure 3.3 requires considerable effort on behalf of user interface designers. Not surprisingly, specialist software tools are now available to the designers to construct the menus, visualize them, and allow for amendment and extension as the development progresses.

f) Although menus are very useful, having to take your hands from the keyboard to operate the mouse can become a burden. Discuss how menu acceleration addresses this problem.




Answer: For typical office applications, or any application that makes full use of the keyboard, moving the hand from the keyboard to the mouse is a time-consuming operation. Providing key equivalents for common menu items is essential.

We noted the use of shortcut keys to provide an alternative method of selecting menu items. This is a vital facility to keep expert users satisfied.

The key shortcut approach has a number of advantages. First, no single selection method is imposed on users, and they can switch between methods to suit themselves. Experienced users are provided with a shortcut, and the accelerator option is displayed alongside the visible option. On the other hand, it is not a completely ideal solution. Because of the limited number of keys on a keyboard, the key used often bears no memorable connection with the menu item, and not all accelerators are standard across all applications. Of course, this latter problem is similar to the diversity of commands in different command languages.

g) Direct manipulation is where the data or object is manipulated directly. Discuss how this could be accomplished and what the advantages and disadvantages are.




Answer: Direct manipulation is only possible within a GUI, and it represents the most major advance in human-computer communication using human vision and motor reflexes. Because of this, direct manipulation is often referred to as the point-and-click or drag-and-drop user interface.

In most situations, direct manipulation leaves the user in control of the dialog, thus giving the user a feeling of empowerment, which is one of the key advantages. For example, the user drags the file onto the email program to send it as an attachment as compared to opening up a dialog via a menu or shortcut key. Contrast this to the subservient user role with command languages—the user issues a request (command) to the operating system and waits to see if it is actioned or not.

One of the more stunning benefits of direct manipulation is the elimination of whole classes of errors. In a file storage management interface, you cannot request the deletion of a nonexistent file; this is perfectly possible in a command language dialog. You cannot select an inappropriate action since it will be grayed out. Selection of inappropriate objects is impossible since they won't respond to the selection request.

The biggest disadvantage is the limited scope of the control. You typically perform just a single action. There are no options to change the behavior.

The early GUI experiments in the 1970s aimed at a new type of user interface that would give the following benefits:

  • Novices can learn basic functionality quickly.

  • Experts can work extremely rapidly.

  • Intermittent users can retain operational concepts.

  • Error messages are rarely needed.

  • Users can immediately see if their actions are furthering their goals.

  • Users have reduced anxiety because of reversibility.

The direct engagement at the user interface provides the user with a feeling of confidence resulting from the perception of control. The user interface is designed to enable all commands and associated data to be represented in such a way as to be controllable with the mouse. The keyboard is only used when text must be input.

To carry out a task with direct manipulation, the basic functionality, a user performs two actions: select an object or objects and action the task to be performed.

Except in simplified browsing user interfaces, selecting an object requires a single mouse click, while dragging selects multiple objects, depending on the application. Selection feedback requires the object(s) to be highlighted in some way—usually by inverting the colors. Actioning the task either means selecting a menu item or dragging the selected object(s) over another object in the user interface. Once learned, this basic selection-with-feedback functionality applies to all similar applications using direct manipulation. Even if a long period of time elapses until next use, this functionality is so simple it is easily remembered.

With direct manipulation, the task outcomes will be visible immediately. Deleted objects disappear, amended objects remain, and newly created ones appear. Progressive feedback appears for long-running actions.

We should also mention the reversibility benefit of direct manipulation. This benefit is actually independent of the user interface to be used. It simply refers to the ability to undo any user action. We see parallels to this idea in the rollback facilities of database management systems. Reversibility can be incorporated into any software such that the current state of data structures is copied before each action. If the action must be undone, the data structures are returned to their previous state. This is a simple concept but difficult to implement efficiently without resorting to copying every data structure in the application every time an action is performed. The need for reversibility and its beneficial impact on the user interface came out of detailed studies of user behavior.

Forms were added to allow a degree of interactivity. Increasingly, Web pages are becoming the user interface for interactive Web applications. The lack of any support for GUI menus is immediately noticeable. Likewise, direct manipulation and keyboard shortcuts are also missing. These omissions punch big holes into any claim that Web page front-end user interfaces can equate to freestanding applications. It is not surprising that attempts to extend the Web page user interface with the missing features have received strong support. Plug-ins, Java applets, and ActiveX controls all fill the feature gap to a greater or lesser extent. Unfortunately, these solutions are browser or platform specific and do not offer a globally acceptable solution. However, the dynamic HTML document object model, which is available in the latest browsers, is starting to offer browser-independent solutions to this problem.



Not a subscriber?

Start A Free Trial

  • Creative Edge
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint