HCI in the software
process
Chapter 6
Agenda
Software engineering and the design process
for interactive systems
Iterative design and prototyping
When is each best?
Self study read and take your own notes
Usability engineering
Design rationale
The software lifecycle
Software engineering is the discipline for
understanding the software design process, or life
cycle
Designing for usability occurs at all stages of the life
cycle, not as a single isolated activity
There are many models of the software life cycle we
will look at the 2 main ones.
Waterfall, which assumes all the requirements can be
predefined
Prototyping, which assumes the system must be build for
the requirements to emerge.
In reality most software development is somewhere
between these two extremes
The waterfall model
Requirements
specification
Architectural
design
Detailed
design
Coding and
unit testing
Integration
and testing
Operation and
maintenance
Activities in the life cycle
Requirements specification
designer and customer try
capture what the system is
expected to provide can be
expressed in natural language
or more precise languages,
such as a task analysis would
provide
Informal design and scenario
based design will result in
better requirements analysis
Detailed design
Detailed design of the interface
Move from informal to formal specification
Separation of layers
A layered approach to software development
will provide for more flexibility
Data
Logic
Interface
Testing
Testing is not only about functionality of
code
Usability testing
There are some basics that are nearly
always important
Layout
Language
Number of click/steps to perform task
Choose rather than remember
More detail in weeks 7 & 8
The life cycle for interactive
systems
Requirements cannot assume a linear
specification
sequence of activities
Architectural as in the waterfall model
design
Detailed
design
Coding and
unit testing
Integration
lots of feedback! and testing
Operation and
maintenance
Iterative design and prototyping
Iterative design overcomes inherent problems
of incomplete requirements
Requirements
Review Design
Implement
Prototypes
simulate or animate some features of
intended system
different types of prototypes
paper
throw-away
incremental
Evolutionary
When do you move from paper prototype to a functional
prototype?
What are the consequences of moving too early or too late?
Research example
We wanted to build a paperless
assignment grading product with pen
annotation of assignments.
New paradigm
Few studies
Technical challenges
Build a prototype
Waterfall or Prototype
Waterfall Prototype
Interaction paradigm The interaction paradigm
standard and well new or poorly
understood? understood?
The problem is well The problem definition is
understood? incomplete or poorly
defined?
Data centric systems Interface centric systems
Information systems games
Data warehouse Modelling
Design tools
Waterfall or prototype
It doesnt have to be a one or the other
decision
Many systems are a blend
With some parts are prototyped to elicit
requirements
There isnt one best way
Nor is there a silver bullet