Professional Documents
Culture Documents
Contents
INTRODUCTION................................................................................................................................... 2
USER-CENTRED DESIGN....................................................................................................................................... 6
JP 11/11/2004
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
Introduction
In previous chapters we have looked at the cognitive aspects of HCI and at interaction design.
We now deal with design methods for the design of interactive systems. We take a look at the
traditional waterfall model of system development and also at some more user-oriented
principles
A good representation is accurate enough to reflect the features of the system, but simple enough
to avoid confusion.
Representations of software are equivalent to the various representations used in the design of a
car. What do you think the purposes of the following would be?
Page 2
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
Waterfall model
The waterfall model is a software life-cycle model, described by W. W. Royce in 1970, in which
development is supposed to proceed linearly through the phases of requirements analysis,
design, implementation, testing (validation), integration and maintenance.
There have been a number of criticisms of the standard waterfall model, including
• There is a ‘contract’ relationship between client and developers – the user is not involved
beyond the initial phase.
• Problems are not discovered until system testing
• Requirements must be fixed before the system is designed, whereas in reality it is often
impossible to understand requirements fully until a fair amount of design has been
undertaken.
• System performance cannot be tested until the system is almost coded
The standard waterfal model is associated with the failure or cancellation of a number of large
systems. It can also be very expensive. As a result, the software development community has
experimented with a number of alternative approaches, including the spiral model and the star
model.
The waterfall model. The boxes are representations of the system and the arrows are
processes or activities
Page 3
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
Spiral model
The spiral model (Boehm, 1988) uses incremental development, with the aim of managing risk. In
the spiral model, developers define and implement features in order of decreasing priority. An
initial version of the system is developed, and then repetitively modified based on input received
from customer evaluations. The development of each version of the system is carefully designed
using the steps involved in the waterfall model. With each iteration around the spiral (beginning at
the centre and working outward), progressively more complete versions of the system are built.
• Project Objectives. Similar to the system conception phase of the Waterfall Model.
Objectives are determined, possible obstacles are identified and alternative approaches
are weighed.
• Risk Assessment. Possible alternatives are examined by the developer, and associated
risks/problems are identified. Resolutions of the risks are evaluated and weighed in the
consideration of project continuation. Sometimes prototyping is used to clarify needs.
• Engineering & Production. Detailed requirements are determined and the software piece
is developed.
• Planning and Management. The customer is given an opportunity to analyze the results
of the version created in the Engineering step and to offer feedback to the developer.
The Spiral model relies heavily on prototyping. When using prototyping, the developer builds a
simplified version of the proposed system and presents it to the customer for consideration as
part of the development process. The customer in turn provides feedback to the developer, who
goes back to refine the system requirements to incorporate the additional information. Often, the
prototype code is thrown away and entirely new programs are developed once requirements are
identified. We will look at prototyping methods in a later chapter.
Page 4
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
The star model can give the user a significant role throughout the project since evaluation is
central to the cycle. It is particularly oriented towards the development of interactive systems that
will be usable by people.
Evaluation can be based on any representation of the system. A variety of representations may
be used during the development, including sketches, scenarios, prototypes and formal models.
Page 5
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
User-centred design
User centred design is an approach to software development user-centred design focuses
specifically on making products usable. The approach typically entails involving users in the
design and testing of the system so that their feedback can be obtained. Prototypes are usually
employed to do this and designs are modified in light of the user feedback.
Initially it may seem that the user-centred approach complicates the software development task,
due to the need to make iterative refinements to the software in light of user feedback. However
the benefits to be gained are considerable. The process promotes communication between
users, managers and those developing the software and identifies problematic issues early on in
the development schedule when it is much cheaper to implement changes.
An OMS kiosk
After some initial analysis of the requirements for the system, printed scenarios of the user
interface were prepared. These were commented on by designers, management and prospective
users. As a result of this early evaluation, a number of the system functions were altered and
others were dropped completely
The design team also produced brief user guides aimed at explaining what the system did and
how it worked These were tested on the main user groups (Olympians, their families and friends)
and were developed iteratively (over 200 slightly modified versions were produced) before the
final form was decided.
Page 6
BSc Applied Computing Human Computer Interaction: 12. User-Centred Design
Early simulations of the messaging system were also constructed and evaluated for the purpose
of designing help messages. These simulations were tested with users. One thing that these tests
revealed, for example, was that an ‘undo’ or ‘backup’ key was required so that users could
retrieve a previous position if they made a mistake.
Many other methods were used to collect information about what was needed, including tours of
the Olympic village sites, early demonstrations of the system, interviews with the different people
involved in the Olympics and discussions with an experienced ex-Olympian who was part of the
design team.
A prototype was then developed which was tested with different user groups. This resulted in
many more iterations and retesting.
Gould commented that of 450 system designers and developers who were asked to write down
the steps they recommend in the design of an office system, 26 percent of them mentioned none
of the principles, and another 35 percent mentioned only one of the principles. Clearly, the
principles of user-centred design were far from being obvious to designers at that time.
Software for Use by Larry Constantine and Lucy Lockwood is an excellent read to get the basics right for inculcating
the habit of usage centered design approach. They stress on a Model based approach while designing a system which
would yield the best returns in the form of user experience and efficiency of the software. More details on this can be
accessed on their website
Every software development methodology framework acts as a basis for applying specific approaches to develop and
maintain software. Several software development approaches have been used since the origin of information
technology. These are:[2]
Waterfall: a linear framework
Prototyping: an iterative framework
Incremental: a combined linear-iterative framework
Spiral: a combined linear-iterative framework
Rapid application development (RAD): an iterative framework
Extreme Programming
Waterfall development
The Waterfall model is a sequential development approach, in which development is seen as flowing steadily
downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation),
integration, and maintenance. The first formal description of the method is often cited as an article published by
Winston W. Royce[3] in 1970 although Royce did not use the term "waterfall" in this article.
The basic principles are:[2]
Project is divided into sequential phases, with some overlap and splashback acceptable between phases.
Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one
time.
Tight control is maintained over the life of the project via extensive written documentation, formal reviews,
and approval/signoff by the user and information technology management occurring at the end of most phases
before beginning the next phase.
Prototyping
Software prototyping, is the development approach of activities during software development, the creation of
prototypes, i.e., incomplete versions of the software program being developed.
The basic principles are:[2]
Not a standalone, complete development methodology, but rather an approach to handling selected parts of a
larger, more traditional development methodology (i.e. incremental, spiral, or rapid application development
(RAD)).
Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-
of-change during the development process.
User is involved throughout the development process, which increases the likelihood of user acceptance of the
final implementation.
Small-scale mock-ups of the system are developed following an iterative modification process until the
prototype evolves to meet the users’ requirements.
While most prototypes are developed with the expectation that they will be discarded, it is possible in some
cases to evolve from prototype to working system.
A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem.
Incremental development
Various methods are acceptable for combining linear and iterative systems development methodologies, with the
primary objective of each being to reduce inherent project risk by breaking a project into smaller segments and
providing more ease-of-change during the development process.
The basic principles are:[2]
A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small part of a
system, before proceeding to the next increment, or
Overall requirements are defined before proceeding to evolutionary, mini-Waterfall development of individual
increments of a system, or
The initial software concept, requirements analysis, and design of architecture and system core are defined via
Waterfall, followed by iterative Prototyping, which culminates in installing the final prototype, a working
system.
Spiral development
Other practices
Other methodology practices include:
Object-oriented development methodologies, such as Grady Booch's object-oriented design (OOD), also
known as object-oriented analysis and design (OOAD). The Booch model includes six diagrams: class, object,
state transition, interaction, module, and process.[7]
Top-down programming: evolved in the 1970s by IBM researcher Harlan Mills (and Niklaus Wirth) in
developed structured programming.
Unified Process (UP) is an iterative software development methodology framework, based on Unified
Modeling Language (UML). UP organizes the development of software into four phases, each consisting of
one or more executable iterations of the software at that stage of development: inception, elaboration,
construction, and guidelines. Many tools and products exist to facilitate UP implementation. One of the more
popular versions of UP is the Rational Unified Process (RUP).
Agile software development refers to a group of software development methodologies based on iterative
development, where requirements and solutions evolve via collaboration between self-organizing cross-
functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated.
Integrated software development refers to a deliverable based software development framework using the three
primary IT (project management, software development, software testing) life cycles that can be leveraged
using multiple (iterative, waterfall, spiral, agile) software development approaches, where requirements and
solutions evolve via collaboration between self-organizing cross-functional teams.
Page 7