Chapter 15 - User Interface Design
Overview
This chapter introduces the principles of user interface design as it relates
to the development of software products. Proper interface design begins with
careful analysis of the user, the task and the environment. Once the user's
tasks are identified, user scenarios are created and validated. Good user
interfaces are designed, they don't happen by chance. Prototyping is a common
approach to user interface design. Early involvement of the user in the design
process makes him or her more likely to accept the final product. User
interfaces must be field tested and validated prior to general release.
Place User in Control
- Define interaction in such a way that the user is not forced into
performing unnecessary or undesired actions
- Provide for flexible interaction (users have varying preferences)
- Allow user interaction to be interruptible and reversible
- Streamline interaction as skill level increases and allow customization of
interaction
- Hide technical internals from the casual user
- Design for direct interaction with objects that appear on the
screen
Reduce User Memory Load
- Reduce demands on user's short-term memory
- Establish meaningful defaults
- Define intuitive short-cuts
- Visual layout of user interface should be based on a familiar real world
metaphor
- Disclose information in a progressive fashion
Make Interface Consistent
- Allow user to put the current task into a meaningful context
- Maintain consistency across a family of applications
- If past interaction models have created user expectations, do not make
changes unless there is a good reason to do so
User Interface Design Models
- Design model (incorporates data, architectural, interface, and procedural
representations of the software)
- User model (end user profiles - novice, knowledgeable intermittent user,
knowledgeable frequent users)
- User's model or system perception (user's mental image of system)
- System image (look and feel of the interface and supporting media)
User Interface Design Process (Spiral Model)
- User, task, and environment analysis and modeling
- Interface design
- Interface construction
- Interface validation
Task Analysis and Modeling
- Software engineer studies tasks human users must complete to accomplish
their goal in the real world without the computer and map these into a similar
set of tasks that are to be implemented in the context of the user interface
- Software engineer studies existing specification for computer-based
solution and derives a set of tasks that will accommodate the user model,
design model, and system perception
- Software engineer may devise an object-oriented approach by observing the
objects and actions the user makes use of in the real world and model the
interface objects after their real world counterparts
Interface Design Activities
- Establish the goals and intentions of each task
- Map each goal/intention to a sequence of specific actions (objects and
methods for manipulating objects)
- Specify the action sequence of tasks and subtasks (user scenario)
- Indicate the state of the system at the time the user scenario is
performed
- Define control mechanisms
- Show how control mechanisms affect the state of the system
- Indicate how the user interprets the state of the system from information
provided through the interface
Interface Design Issues
- System response time (time between the point at which user initiates some
control action and the time when the system responds)
- User help facilities (integrated, context sensitive help versus add-on
help)
- Error information handling (messages should be non-judgmental, describe
problem precisely, and suggest valid solutions)
- Command labeling (based on user vocabulary, simple grammar, and have
consistent rules for abbreviation)
User Interface Evaluation Cycle
- Preliminary design
- Build first interface prototype
- User evaluates interface
- Evaluation studied by designer
- Design modifications made
- Build next prototype
- If interface is not complete then go to step 3
User Interface Design Evaluation Criteria
- Length and complexity of written interface specification provide an
indication of amount of learning required by system users
- Number of user tasks and the average number of actions per task provide an
indication of interaction time and overall system efficiency
- Number of tasks, actions, and system states in the design model provide an
indication of the memory load required of system users
- Interface style, help facilities, and error handling protocols provide a
general indication of system complexity and the degree of acceptance by the
users