Task-Centered User Interface Design
A Practical Introduction
by Clayton Lewis and John Rieman
Copyright ©1993, 1994: Please see the "shareware notice" at the front of the book.
Contents | Foreword | ProcessUsers&Tasks | Design | Inspections | User-testing | Tools | Documentation |

6.1 Concepts
        6.1.1 Object-Oriented Programming
        6.1.2 Event-Driven Programs
        6.1.3 Resources
        6.1.4 Interapplication Communication
6.2 OSF/Motif in X-Windows -- Toolboxes in the Trenches
6.3 Rapid Prototyping in HyperCard
6.4 Windows, the Shared-Code Approach, and Visual Basic


Chapter 6: User Interface Management and Prototyping Systems



In this chapter we'll talk about some of the software tools that are essential for building the prototypes and the final version of your system. "Essential" is a strong word, but in a competitive market it's the right one. Successful application developers rely on these tools to get products to market faster, with better interfaces, more robust behavior, and fewer potential legal problems. This is true not only for big companies with internationally marketed products, but also for small local consulting firms and in-house development teams. To compete with the winners, you'll need to take a similar approach.


The software tools we'll describe have a variety of names and provide a variety of functionality. The simplest are "toolkits," libraries of program subroutines that create and run the many on-screen objects of a graphical user interface, such as windows, buttons, and menus. These can save some programming time and maintain consistency with existing applications, but they still leave most of the work to the programmer. A giant step up from toolkits are user interface management systems (UIMS). A UIMS gives you a toolkit and a programming environment for using it. With the better systems, the environment is largely visual, so instead of writing C or Pascal code that specifies the numerical coordinates of each button in a dialog box (i.e., 140,29,170,80 for its corners), you can just drag a button out of your design palette and drop it on the screen where it looks good.


Some UIMS packages are limited environments that provide very fast development of simple programs or early prototypes. Others may require more work to get started, but they allow you to start with a prototype and iterate it into a full- fledged, highly functional application. A survey in 1991 showed that over 40 percent of programmers in commercial environments were using some sort of UIMS with more power than a toolkit, spending roughly 40 percent of their application development time on the code that went into their applications' user interfaces. Toolkit users, by comparison, spent 60 percent of their time on the interface. In both cases, the interface accounted for about half of the total application code. (Brad Meyers & Mary Beth Rosson, "Survey on user interface programming," Proc. CHI'92 Conference on Human Factors in Computer Systems. New York: ACM, 1992, pp. 195-202.) The savings can be even greater if you can design your application as an embedded system that uses functionality provided by other programs the user already owns, a technique we'll describe in the section on Microsoft Windows.


The UIMS approach does more than save programming time. It also helps you build a better interface, by maintaining consistency within the application and across applications under a common operating system, and by making it easier to rapidly iterate through the implement-and-test cycle. An additional advantage is that a UIMS can provide answers to the difficult question of what you can legally copy. The fundamental purpose of a UIMS is to help programmers develop interfaces rapidly, by copying controls that users already know. That goal is shared by programmers, users, and the vendor of the underlying operating system. The UIMS is sold by a company that has legal rights to the interface techniques you want to use, and purchasing the UIMS gives you clearly defined rights to sell the systems you develop.


Here's the plan for the rest of this chapter. The next section introduces some programming concepts that underlie the UIMS approach. That's followed by three sections describing specific interface building packages that are representative of the systems you're likely to encounter.




Copyright © 1993,1994 Lewis & Rieman
Contents | Foreword | ProcessUsers&Tasks | Design | Inspections | User-testing | Tools | Documentation |