Agenda
• Software engineering and the design process
Lecture 2 for interactive systems
• Iterative design and prototyping
HCI in the software • When is each best?
process • Self study – read and take your own notes
Chapter 6 – Usability engineering
– Design rationale
The software lifecycle The waterfall model
Requirements
specification
• Software engineering is the discipline for
understanding the software design process, or Architectural
life cycle design
Detailed
• Designing for usability occurs at all stages of design
the life cycle, not as a single isolated activity
Coding and
unit testing
• There are many models of the software life
cycle we will look at the 2 main ones Integration
– Waterfall
and testing
– Prototyping
Operation and
maintenance
Detailed design
Activities in the life cycle
– Detailed design of the interface
•Requirements specification
–designer and customer try – Move from informal to formal specification
capture what the system is
expected to provide can be
expressed in natural language
or more precise languages,
• Separation of layers
such as a task analysis would – A layered approach to software development
provide
will provide for more flexibility
–Informal design and scenario • Data
based design will result in • Logic
better requirements analysis
• Interface
The life cycle for interactive
Testing
systems
• Testing is not only about functionality of Requirements cannot assume a linear
code sequence of activities
specification
• Usability testing Architectural as in the waterfall model
design
– There are some basics that are nearly
always important Detailed
design
• Layout
• Language Coding and
• Number of click/steps to perform task unit testing
• Choose rather than remember
Integration
– More detail in weeks 7 & 8 lots of feedback! and testing
Operation and
maintenance
Iterative design and prototyping
• Iterative design overcomes inherent problems • Prototypes
of incomplete requirements – simulate or animate some features of intended
system
– different types of prototypes
Requirements • throw-away
• incremental
• evolutionary
Review Design • Management issues
– time
– planning
– non-functional features
Implement – contracts
Techniques for prototyping Research example
Storyboards
• We wanted to build a paperless
need not be computer-based
can be animated assignment grading product with pen
Limited functionality simulations annotation of assignments.
some part of system functionality provided by designers – New paradigm
tools like HyperCard are common for these
– Few studies
Wizard of Oz technique
– Technical challenges
Warning about iterative design
design inertia – early bad decisions stay bad • Build a prototype
diagnosing real usability problems in prototypes….
…. and not just the symptoms
Waterfall or Prototype Waterfall or prototype
• Waterfall • Prototype • It doesn’t have to be a one or the other
– Interaction paradigm – The interaction paradigm decision
‘standard’ and well new or poorly
understood? understood? • Many systems are a blend
– The problem is well – The problem definition is – With some parts are prototyped to elicit
understood? incomplete or poorly
requirements
defined?
– Data centric systems – Interface centric systems • There isn’t one ‘best way’
• games
• Information systems
• Modelling
• Nor is there a ‘silver bullet’
• Data warehouse
• Design tools
Summary
The software engineering life cycle
– distinct activities and the consequences for
interactive system design
Design rationale
– recording design knowledge
– process vs. structure