User Interface Software Technology BRAD A. MYERS Human Computer Interaction Institute, Carnegie Mellon University ͗[email protected]͘

The user interface of an application is the application to draw pictures on the the part that the person using the soft- screen and get input from the user, and ware sees and interacts with. The part the manager allows the end of the software that makes the user user to move windows around, and is interface work is often large, complex, responsible for displaying the title lines, and difficult to implement, debug, and borders, and icons around the windows. modify. Today direct manipulation in- However, many people and systems use terfaces (also called graphical user in- the name “window manager” to refer to terface (GUI’s)) are almost universal, both layers, since systems such as the and the part of the software that han- Macintosh and do dles the user interface generally takes a not separate them. significant percentage of the total sys- On top of the windowing system is the tem design and implementation time toolkit, which contains many commonly [Myers and Rosson 1992]. Therefore, used widgets such as menus, buttons, specialized software tools have been cre- scroll bars, and text-input fields. Tool- ated to ease the programmer’s burden, kits usually connect to application pro- and today virtually all new user inter- grams through call-back procedures de- face software uses tools that make the fined by the application programmer implementation easier. Many of these that are used when a widget is operated tools have demonstrated significant pro- by the end user. Examples of toolkits ductivity gains for programmers and include Motif for X/11 and the widgets have become important commercial in the Windows and Macintosh tool- products. Although most commercial boxes. There are also many research tools concentrate on building the sur- toolkits [Myers 1995], such as Garnet face look of the interface (the placement [Baecker et al. 1995], Amulet, Inter- of the menus and buttons and the choice Views, and tcl/tk. Virtual toolkits allow of colors), some systems have addressed an application to be written once and how the interface behaves (what hap- then to execute on Windows, Macintosh, pens when the buttons are pressed and or Motif (and others) by providing a objects are moved around). single programming interface and many There are many different kinds of different “looks and feels.” Another user interface software [Myers 1995]. name for these tools is “cross-platform The windowing system supports the development systems.” Examples of separation of the screen into different commercial virtual toolkits include Gal- (usually rectangular) regions, called axy, Open Interface, and XVT. “windows.” The X/11 window system for On top of the toolkit might be higher- Unix divides the window functionality level tools that help the designer use the into two layers: the window system, toolkit widgets, which include the fol- which is the functional or programming lowing: interface, and the window manager, which is the user interface. The window Prototyping tools, which allow the de- system provides procedures that allow signer to quickly mock up some exam-

Copyright © 1996, CRC Press.

ACM Computing Surveys, Vol. 28, No. 1, March 1996 190 • Brad A. Myers

ples of what the screens in the pro- generation languages (4GLs) that gram will look like. Often these tools support defining the interactive forms cannot be used to create the real user for accessing and entering data also interface of the program because they fall into this category. only simulate the widgets. The first Screen scrapers or front-enders, which prototyping tool was probably Dan provide a to Bricklin’s Demo. Apple’s HyperCard old programs without changing the and MacroMedia’s Director are often existing application code by providing used as prototypers. A research sys- an in-memory buffer that pretends to tem is SILK, which allows free-hand be the screen of an old character ter- gestures and storyboards for sketch- minal. A leading program of this type ing the initial designs [Landay and is Easel. Myers 1995]. User interface management systems Card-based tools, which support inter- (UIMSs) [Olsen 1992], which usually faces that can be presented as a se- provide a new language in which the quence of mostly static , some- user interface is programmed. Exam- times called “frames,” “cards,” or ples include HP/Apollo’s Open-Dia- “forms.” The most famous example is logue, VAPS from Virtual Prototypes, Apple’s HyperCard. and many research systems. UIMSs Interface builders, also called Interface have used state-transition networks, Development Tools, which allow the context-free grammars, event lan- designer to create dialog boxes, guages, declarative languages, and menus, and windows by laying out constraint languages to specify the widgets interactively with the mouse. behavior of the interface. Other properties of the widgets can be Automatic generation tools, which cre- set using property sheets. The behav- ate parts of the user interface such as ior (what happens when widgets are the dialog boxes from a list of the operated) must usually be pro- contents. A research system that pro- grammed separately by writing con- vides this is ITS from IBM Research ventional code. An early research ex- [Baecker et al. 1995]. ample is Steamer, and there are literally hundreds of commercial tools Demonstrational tools [Cypher et al. in this category today, including 1993], which allow parts of the inter- UIM/X for Motif and Novell’s App- face other than the widgets to be spec- Ware for PCs. Microsoft’s Visual Ba- ified interactively without program- sic is essentially an Interface Builder ming. For example, Lapidary and coupled with an interpreted program- Marquise allow the dynamic creation ming language. and behavior of objects to be demon- Application frameworks, which gener- strated. ally provide an object-oriented archi- A comprehensive list of commercial and tecture that guides programmers and research tools for general use is avail- helps define how the software should able at http://www.cs.cmu.edu/ϳbam/ be designed. Examples include Ap- toolnames.html. ple’s MacApp [Wilson 1990] and Mi- crosoft’s OLE [Brockschmidt 1995]. Database interfaces, which support REFERENCES form-based or GUI-based access to da- tabases. Major database vendors such BAECKER,R.M.,GRUDIN, J., BUXTON,W.A.S.,AND GREENBERG, S. 1995. Readings in Human- as Oracle provide tools that allow the Computer Interaction: Toward the Year 2000. user interface to be designed using Morgan Kaufmann, San Francisco, CA. interactive form editors (which are es- BROCKSCHMIDT, K. 1995. Inside OLE, 2nd ed. sentially interface builders). Fourth- Microsoft Press, Redmond, WA.

ACM Computing Surveys, Vol. 28, No. 1, March 1996 User Interface Software Technology • 191

CYPHER, A., HALBERT,D.C.,KURLANDER, D., tools. ACM Trans. Comput. Human Interac- LIEBERMAN, H., MAULSBY, D., MYERS,B.A., tion 2, 1 (March), 64–103. AND TURRANSKY, A., EDS. 1993. Watch What MYERS,B.A.AND ROSSON, M. B. 1992. Survey I Do: Programming by Demonstration. MIT on user interface programming. Human fac- Press, Cambridge, MA. tors in computing systems. In: Proceedings LANDAY,J.AND MYERS, B. A. 1995. Interactive SIGCHI’92, (Monterey, CA, May), 195–202. sketching for the early stages of user interface OLSEN,D.R.,JR., 1992. User Interface Manage- design. Human factors in computing systems. ment Systems: Models and Algorithms. Mor- In: Proceedings SIGCHI’95. (Denver, CO, gan Kaufmann, San Mateo, CA. May), 43–50. WILSON, D. 1990. Programming with MacApp. MYERS, B. A. 1995. User interface software Addison-Wesley, Reading, MA.

ACM Computing Surveys, Vol. 28, No. 1, March 1996