Click for next page ( 19

The National Academies | 500 Fifth St. N.W. | Washington, D.C. 20001
Copyright © National Academy of Sciences. All rights reserved.
Terms of Use and Privacy Statement

Below are the first 10 and last 10 pages of uncorrected machine-read text (when available) of this chapter, followed by the top 30 algorithmically extracted key phrases from the chapter as a whole.
Intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text on the opening pages of each chapter. Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.

Do not use for reproduction, copying, pasting, or reading; exclusively for search engines.

OCR for page 18
OTHER METHODS Three additional methods are worth mentioning, though they do not fit neatly into the scheme above. They include the dialog specification procedure, experimental programming, and case studies. The dialog specification method is a global procedure that cuts across the first several steps outlined above. It is a procedure that prescribe. a method for developing an interactive dialog with a system and sets a design standard. The method includes task analysis and flow charting of user activities as well as standard means of communicating the specific design requirements to the programmer. The design standard describes acceptable screen layouts, interactive devices and how they are to be used, acceptable commend language syntax, etc., down to a level of detail compatible with the specificity of the range of applications to which it is intended to apply. For example, if all designs concerned telephone management applications, the specification would deal only with the range of tasks in this domain. These specifications are built from human factors principles as well as accumulated data from user testing. Pew et al. (1979) describe this method more fully. Experimental programming is similarly a more global method for designing systems and interfaces. It is a more flowing, adaptive technique involving users , designers, and progra - rs (sometimes all in the same person). Someone builds a prototype of a new system with same fraction of the functionality and some fraction of the user interface in place. This prototype is then used by a variety of programaer/usere who generate suggestions for new features and suggestions for revisions for exist- ing functions. As many suggestions as possible are incorporated into the prototype' the good features 18

OCR for page 18
19 survive, poor features disappear . Occasionally, when new features are incompatible with the old, a competing prototype is built. Sometimes someone merges the most popular ideas from both. This method is very informal. The only rules for its application are that everyone's opinion get a fair hearing and that anyone in the com~un- ity can implement a change. This method allows for progressively better understand- ing of the application as well as the computation and interface requirements. Its weakness lies in its casual nature and that it relies on the opinion of users, most of whom are programmers; its strength lies in its explora- tory, evolutionary, democratic nature. One well-known product that benefited from experimental programming is the EMACS text editor (Staliman, 1980), which pioneered such concepts as user-customization, on-line documenta- tion, and a particular command style. In addition, Teitelman (1972) used experimental programing to develop the concept called DWIM (~Do What I Mean.) , which included a set of facilities that automatically corrected predictable errors. A third global technique goes under the rubric of case stud i es . Case studies involve observation and analysis of a singe user, group, or project. The information collected may range from informal, subjective impressions to detailed quantitative data. Because case studies involve no comparison or control group, they are not very useful in infer r ing causality. As a result they are not appropriate for building a data base of basic research results from which to construct theories and principles. They can, however, be extremely useful for gaining insights when one is first investigating an area of interest and for providing concrete demonstrations of the use of new methods and tools. An example of a case study in which new insights were gained about a domain involved the use of the Ada system. The purpose of the study was to understand the problems that are likely to arise when the system is first intro- duced into an organization (Bailey et al., 1982) . A second case study involved a demonstration of new methods for designing system to be embedded in special purpose hardware, such as airplanes and tanks (Britton et al., 1981). The documentation and related products produced by this case study provide examples that others may use in trying to apply the methods to their own software projects. Brook. (1975) documents the use of a case study in a large computer programming project. And, the

OCR for page 18
20 case study by Baker (1972) was extremely influential in leading the structured programming revolution. Others include Gould and Boies (1978, 1983, 1984), and Heninger {1980) . 1