perlman@tut.cis.ohio-state.edu (Gary Perlman) (07/28/89)
At the Software Engineering Institute (SEI) at Carnegie-Mellon University there is a Curriculum Development Project as part of the Education Program. A major goal of the curriculum development project is to devise model curricula and support-materials for teaching all topics in software engineering. For topics such as unit testing, software design, requirements analysis, and so on, there are curriculum modules to help teachers prepare courses. I have written, and hope soon to update, a module on User Interface Development, described in detail below. It has proven to be useful to all people interested in the teaching of user interface development to software engineers. Some of my experiences with the module are summarized in a paper published in the Proceedings of the 1988 Human Factors Society Meeting in Anaheim, CA: "Teaching User Interface Development to Software Engineers." This module, like other SEI modules, are available free of charge by writing to the Director of Education (Norm Gibbs): Director of Education Software Engineering Institute Carnegie-Mellon University Pittsburgh, PA 15213 THE USER INTERFACE MODULE The SEI User Interface Development module is divided into several sections. The introduction contains orientation material, including a capsule description that might be used in a course catalogue, the module author's philosophy, the educational objectives, prerequisites, and some guidance on using the module. The module content is an annotated outline of the areas of user interface development. The annotated outline documents the knowledge about topics and provides guidance to teachers (e.g., demonstration suggestions and hints about teaching specific topics). A section on teaching considerations gives general advice to teachers (e.g., sources of information, priorities and schedules, exercises and projects). The module ends with an annotated bibliography of about 150 citations of books (with tables of contents), papers (with abstracts), and software. The following objectives of the material are quoted from the module (Perlman, 1988): "A student who has worked through this module should have learned: + the importance of the user interface + the impact of good and bad user interfaces + the diversity of users and applications + the tradeoffs of design decisions involving different dialogue types and input/output devices + the information sources available for design + the benefits and costs of developing tools for user interface implementation + the need to integrate training materials with the user interface + the need to evaluate system usability + about some design and evaluation tools + when and how to work with human factors engineers as consultants for design and evaluation + when and how to work with technical writers for implementation of a system of user guidance + the difficulty of measurement and the complexity of making decisions based on data, and when and how to work with a statistical consultant" MODULE CONTENT The module content is designed around an iterative model of the user interface development lifecycle: design, implementation, and evaluation. Design. Ideas for the design of a system are drawn from many sources. The inputs to software design are the system requirements, and task analysis is critical to user interface design. The user interface connects the user to the software system, so it is useful to understand the human side of that relationship. Two key lessons for software engineers are that psychological variables do not correspond to physical variables and that human behavior is unintuitive. Many software engineers want simple answers to their user interface design questions, and comprehensive guidelines can answer some of these and direct the designer to sources on which guidelines are based and methods for defining system-specific rules. Many software engineers have little knowledge of input and output devices, the primary physical interaction for users; a survey of these is necessary. A survey of dialogue types (e.g., menus, forms, command languages, graphic interaction) is accompanied with situations where each is suitable. Methods for adapting user interfaces for expert use do not fit well into any area of design, but must be covered. Prototyping of user interfaces following an iterative design model is an acknowledgement that user interface design is an indefinite area, and must be paired with evaluation to feed back to the design process. The output of design might be a working prototype but also might be a specification (e.g., a design document or a formal specification). Implementation. The implementation section of the module emphasizes the use of software tools. The concepts of independence and reusability relate to maintaining common user interfaces across different applications, interchanging different devices with the same system, and adapting to different types of users. The concept of ease-of-use applies to both the end-user interface, and also the usability of tools for building user interfaces. In the design section, the properties of different dialogue types are covered, but in the implementation section, the focus is on methods for defining relevant data structures and algorithms. Interaction libraries, such as window packages and routines for input validation are introduced. Models of the control structure of user interfaces include the event model, grammar-based models, and models based on state-transition diagrams. User interface management systems integrate all of the above, and separate the specification of the user interface, thereby allowing human factors experts to work separately with a high level specification language. The implementation of user guidance deals with different types and levels of users and help. The role of a technical writing consultant is stressed in the implementation of user guidance. Evaluation. User interface evaluation is divided into two different orientations. The traditional orientation is empirical, and tries to give software engineers a foundation in measurement and data collection methods, and to a lesser extent, in data analysis. The role of a statistical consultant is stressed here. The other orientation is based on theoretical/predictive models. As part of the foundations of measurement, the concepts of operational definitions, scales of measurement, validity and reliability, and sampling are covered. The methods for collecting user interface data include expert/peer commentary and customer interviews, video and audio protocols of users, survey questionnaires, and program instrumentation. Practical considerations, such as the methods and costs of collecting and analyzing different types of data are covered. There is some coverage of experimental design to cover the logic of experiments and multi-factor designs. The second area of user interface evaluation is the evaluation of a specification of a user interface based on a predictive or theoretical model. Such evaluation methods can as easily be viewed as part of design, but understanding them requires an empirical background. Models predicting task completion time, learning time, and screen layout quality are covered. TEACHING CONSIDERATIONS Sources of Information. There are many useful sources of information for instruction on user interface development. The SEI user interface development module lists a relatively complete set of books, journals, conferences, SIGGRAPH/SIGCHI video tapes, software and hardware, and human technical resources. General books such as Baecker & Buxton (1988) and Shneiderman (1987) can serve as course books. Books suited to subtopics include: Design: Rubenstein & Hersh (1984) Smith & Mosier (1986) Evaluation: Campbell (1974) Solso & Johnson (1984) Reference: Salvendy (1987) Helander (1988) Some books had excellent scientific foundations (Card, Moran, & Newell, 1983), but were too theoretical for pragmatically oriented software engineers. The human technical resources that can be employed in user interface development are substantial: software engineers, human factors specialists, graphics designers, technical writers, statistical consultants, and customers can make characteristic contributions. Priorities and Schedules. The SEI curriculum module is large. The module content is about 25 pages of typeset text. The annotated bibliography is about 30 pages with about 150 citations. There is clearly enough material for a year-long course, and perhaps even enough for a masters level specialty track. Few educational programs have the resources or the need for such concentration, so it is necessary to place priorities on the material: what every software engineer should know about user interface development. In a three week unit, which might be part of a systems engineering course, the following topics might be covered: process lifecycle, design guidelines, input and output devices, dialogue types and interaction libraries, user guidance, collecting usage data. Advanced courses might concentrate on design specification and user interface management systems, and on empirical methods. REFERENCES Baecker, R. & Buxton, W. A. S. (1987) Readings in Human-Computer Interaction: A Multidisciplinary Approach. Los Altos, CA: Morgan Kauffman. Campbell, S. K. (1974) Flaws and Fallacies in Statistical Thinking. Englewood Cliffs, NJ: Prentice-Hall. Card, S. K., Moran, T. P., & Newell, A. (1983) The Psychology of Human Computer Interaction. Hillsdale, NJ: Lawrence Erlbaum Associates. Helander, M. (1988) The Handbook of Human Computer Interaction. Amsterdam, The Netherlands: North-Holland Perlman, G. (1988) User Interface Development. SEI-CM-17, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA. Rubenstein, R. & Hersh, H. (1984) The Human Factor: Designing Computer Systems for People. Bedford, MA: Digital Press. Salvendy, G. (1987) Handbook of Human Factors. New York: Wiley. Shneiderman, B. (1987) Designing the User Interface: Strategies for Effective Human-Computer Interaction. Reading, MA: Addison-Wesley Smith, S. L. & Mosier, J. N. (1986) Guidelines for Designing User Interface Software. (Report ESD-86-278) Bedford, MA: MITRE Corporation Solso, R. L. & Johnson, H. H. (1984) An Introduction to Experimental Design in Psychology: A Case Approach. (3rd Edition) New York: Harper & Row. -- Gary Perlman Department of Computer and Information Science perlman@cis.ohio-state.edu The Ohio State University 614-292-2566 2036 Neil Avenue Mall Columbus, OH 43210-1277