[comp.edu] User Interface Development Module for Educators

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