HUMAN-COMPUTER INTERACTION SECOND EDITION
Dix, Finlay, Abowd and Beale


Search Results


Search results for evaluation
Showing 21 to 30 of 110 [<< prev] [next >>] [new search]


Chapter 5 The design process 5.5.2 Warning about iterative design Page 211

First, it is often the case that design decisions made at the very beginning of the prototyping process are wrong and, in practice, design inertia can be so great as never to overcome an initial bad decision. So, whereas iterative design is, in theory, amenable to great changes through iterations, it can be the case that the initial prototype has bad features that will not be amended. We will examine this problem through a real example of a clock on a microwave oven2. The clock has a numeric display of four digits. Thus, the display is capable of showing values in the range from 00:00 to 99:99. The functional model of time for the actual clock is only 12 hours, so quite a few of the possible clock displays do not correspond to possible times (for example, 63:00, 85:49), even though some of them are legal four-digit time designations. That poses no problem, as long as both the designer and the ultimate users of the clock both share the knowledge of the discrepancy between possible clock displays and legal times. Such would not be the case for someone assuming a 24 hour time format, in which case the displays 00:30 and 13:45 would represent valid times in their model but not in the microwave's model. In this particular example, the subjects tested during the evaluation must have all shared the 12 hour time model, and the mismatch with the other users (with a 24 hour model) was only discovered after the product was being shipped. At this point the only impact of iterative design was a change to the documentation alerting the reader to the 12 hour format, as it was too late to perform any hardware change.


Chapter 5 The design process 5.5.2 Warning about iterative design Page 212

The second problem is slightly more subtle, and serious. If, in the process of evaluation, a potential usability problem is diagnosed, it is important to understand the reason for the problem and not just detect the symptom. In the clock example, the designers could have noticed that some subjects with a 24 hour time model were having difficulty setting the time. Say they were trying to set the time for 14:45, but they were not being allowed to do that. If the designers did not know the subject's goals, they might not detect the 24/12 hour discrepancy. They would instead notice that the users were having trouble setting the time and so they might change the buttons used to set the time instead of other possible changes, such as an analog time dial, or displaying AM or PM on the clock dial to make the 12 hour model more obvious, or to change to a 24 hour clock.


Chapter 6 Models of the user in design 6.5 Participatory design Page 229

Participatory design has three specific characteristics. It aims to improve the work environment and task by the introduction of the design. This makes design and evaluation context or work oriented rather than system oriented. Secondly, it is characterized by collaboration: the user is included in the design team and can contribute to every stage of the design. Finally, the approach is iterative: the design is subject to evaluation and revision at each stage.


Chapter 7 Task analysis 7.2 Differences between task analysis and other techniques Page 262

In terms of the design life cycle (Chapter 5) task analysis belongs at the beginning in requirements capture, whereas the cognitive models are normally used towards the end of the process during evaluation.


Chapter 8 Dialog notations and design 8.5.4 Distributed and centralized dialog description Page 328

Alternatively, the notation can choose to put associated parts of the syntax and semantics together, as in input-tools. This has the advantage that parts of the interaction can be examined in detail, allowing the evaluation of the syntax and semantics in tandem. It also has advantages of abstraction; associated semantics and syntax can be packaged together. Its disadvantage is that, like the typical program, it has a distributed dialog description. One has to examine diverse pieces of the specification in order to obtain an understanding of the large-scale flow of the interaction.


Chapter 10 Implementation support 10.1 Introduction Page 378

In the remainder of this chapter, we will address the various layers which constitute the move from the low-level hardware up to the more abstract programming concepts for interaction. We begin in Section 10.2 with the elements of a windowing system, which provide for device independence and resource sharing at the programming level. Programming in a window system frees the programmer from some of the worry about the input and output primitives of the machines the application will run on, and allows her to program the application under the assumption that it will receive a stream of event requests from the window manager. In Section 10.3 we describe the two fundamental ways this stream of events can be processed to link the interface with the application functionality: by means of a read--evaluation control loop internal to the application program or by a centralized notification-based technique external to it. In Section 10.4, we describe the use of toolkits as mechanisms to link input and output at the programming level. In Section 10.5, we discuss the large class of development tools lumped under the categories of user interface management systems, or UIMS, and user interface development systems, UIDS.


Chapter 10 Implementation support 10.3 Programming the application Page 384

The first programming paradigm is the read--evaluation loop, which is internal to the application program itself (see Figure 10.4). Programming on the Macintosh follows this paradigm. The server sends user inputs as structured events to the client application. As far as the server is concerned, the only importance of the event is the client to which it must be directed. The client application is programmed to read any event passed to it and determine all of the application-specific behaviour which results as a response to it. The logical flow of the client application is indicated in the leftmost box of Figure 10.4. In pseudocode the read--evaluation loop would look like the following:

repeat     
     read-event(myevent)
     case     myevent.type
          type_1 :     
               do type_1 processing
          type_2 :     
               do type_2 processing
          .
          .
          .

          type_n :     
               do type_n processing
     end case
end repeat

Chapter 10 Implementation support 10.3 Programming the application Page 388

Control flow is centralized in the notifier, which relieves the application program of much of the tedium of processing every possible event passed to it by the window system. But this freedom from control does not come without a price. Suppose, for example, that the application program wanted to produce a pre-emptive dialog box, perhaps because it has detected an error and wants to obtain confirmation from the user before proceeding. The pre-emptive dialog effectively discards all subsequent user actions except for ones that it requires, say selection by the user inside a certain region of the screen. To do this in the read--evaluation paradigm is fairly straightforward. Suppose the error condition occurred during the processing of an event of type type_2. Once the error condition is recognized, the application then begins another read--evaluation loop contained within that branch of the case statement. Within that loop, all non-relevant events can be received and discarded. The pseudocode example given earlier would be modified in the following way:

repeat     

     read-event(myevent)

     case     myevent.type

          type_1 :     

               do type_1 processing

          type_2 :     

               Š

               if     (error-condition) then

                    repeat     

                         read-event(myevent2)

                         case     myevent2.type

                              type_1 :


                              .

                              .

                              .

                              type_n :

                         end case

                    until (end-condition2)

               end if

               Š

          .

          .

          .

          type_n :     

               do type_n processing

     end case

until (end-condition)

Chapter 10 Implementation support 10.5.1 UIMS as a conceptual architecture Page 396

In Section 10.3, we described the two basic approaches to programming the application within an interactive system. In the read--evaluation loop, the control of the dialog is internal to the application. The application calls interface procedures when input or output is required. In notification-based programming, the dialog control resides external to the application. When the user performs some input action, the notifier then invokes the correct application procedure to handle the event. Most UIMS fall into this class of external dialog control systems, since they promote, to a greater extent, the separation between presentation and application. They do not, however, all use the technique of callbacks as was demonstrated in Section 10.3 for the use of toolkits.


Chapter 10 Implementation support 10.6 Summary Page 402

In this chapter, we have concentrated on describing the programming support tools which are available for implementing interactive systems. We began with a description of windowing systems, which are the foundation of modern WIMP interfaces. Window systems provide only the crudest level of abstraction for the programmer, allowing her to gain device independence and multiple application control. They do not, however, provide a means of separating the control of presentation and application dialog. We described two paradigms for interactive programming, and saw that these relate to two means of controlling that dialog -- either internal to the application by means of a read--evaluation loop or external to the application by means of notification-based programming. Toolkits used with particular windowing systems add another level of abstraction by combining input and output behaviours to provide the programmer with access to interaction objects from which to build the components of the interactive system. Toolkits are amenable to external dialog control by means of callback procedures within the application. Other dialog control techniques are provided with yet another level of abstraction in interactive system development: user interface management systems. UIMS provide a conceptual architecture for dividing up the relationship between application and presentation, and various techniques were described to implement the logical components of a UIMS. An interesting additional means of dialog control can be seen to emerge in the use of graphical specification languages which move dialog control all the way across the spectrum to reside entirely within the presentation language. This presentation control opens up interactive programming to the non-expert programmer, but at the cost of a loss of expressiveness.


Search results for evaluation
Showing 21 to 30 of 110 [<< prev] [next >>] [new search]

processed in 0.007 seconds


feedback to feedback@hcibook.com hosted by hiraeth mixed media