Virtual University
Human-Computer Interaction
Lecture 16
HCI Process and Methodology
Imran Hussain
University of Management and Technology (UMT)
1 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Distinctions Between HCI andSoftware
Engineering
The fundamental difference between HCI
engineering and software engineering is that
they have separate problem domains. HCI
engineering focuses on the tasks of people
using the system or product, on the information
and interactions that the users need to perform
their tasks, on the environment in which they
work.
2 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Distinctions Between HCI and Software
Engineering
Software engineering focuses on the software
capabilities needed for the system to perform its
functions, accomplish its objectives, meet its
requirements. Some of the software capabilities
are also needed to support the users in
performing their tasks and interacting with the
system. Their disparate problem domains give
these disciplines separate roles and
responsibilities in the process of specifying,
designing and developing the system or product.
3 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Distinctions Between HCI and Software
Engineering
4 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Correlation of HCI and software engineering
• The HCI and software engineering processes closely
cooperate during the design and implementation of
interactive systems and products. Figure 2 illustrates
the interactions and information exchanges between
the processes as they relate to HCI development
5 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Correlation of HCI and software engineering
6 Virtual University - Human Computer Interaction © Imran Hussain | UMT
HCI in the Software Process
• Software engineering and the design process for interactive
systems
• Usability engineering
• Iterative design and prototyping
• Design rationale
7 Virtual University - Human Computer Interaction © Imran Hussain | UMT
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
8 Virtual University - Human Computer Interaction © Imran Hussain | UMT
The Life Cycle for Interactive Systems
Requirements
cannot assume a linear
specification sequence of activities
as in the waterfall model
Architectural
design
Detailed
design
Coding and
unit testing
Integration
lots of feedback! and testing
Operation and
maintenance
9 Virtual University - Human Computer Interaction © Imran Hussain | UMT
A Simple Interaction Design Model
Identify needs/
establish
requirements
(Re)Design
Evaluate
Build an
interactive
version
Final product
Exemplifies a user-centered design approach
10 Virtual University - Human Computer Interaction © Imran Hussain | UMT
The Star Lifecycle Model
• Suggested by Hartson and Hix (1989)
• Important features:
— Evaluation at the centre of activities
— No particular ordering of activities. Development may start in any one
— Derived from empirical studies of interface designers
11 Virtual University - Human Computer Interaction © Imran Hussain | UMT
The Star Model (Hartson and Hix, 1989)
task/functional
Implementation
analysis
Requirements
Prototyping Evaluation specification
Conceptual/
formal design
12 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Usability Engineering Lifecycle Model
• Reported by Deborah Mayhew
• Important features:
– Holistic view of usability engineering
– Provides links to software engineering approaches, e.g. OOSE
– Stages of identifying requirements, designing, evaluating, prototyping
– Can be scaled down for small projects
– Uses a style guide to capture a set of usability goals
13 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Other Process Models
• The Unified Process
– A widely-adopted process model in industry
– Originally developed by Rational (now part of IBM)
– More complicated model that what we’ve seen
– Try looking for books on this with Google or at Amazon
• Many light-weight or Agile Process Models
– Best known example: Extreme Programming
http://www.extremeprogramming.org
– Look at the diagram. Compare to waterfall and spiral
14 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Agile Process Models
• Many developers and organization feel existing process models
have been too “heavy weight”
– Too many rules and documents. Inflexible. Not fun.
• XP and many other agile methods try to be alternatives
• XP says it’s: “a deliberate and disciplined approach to software
development.” (So it is a process model.)
– Claims to be good for risky projects with dynamic requirements, and when
continuous customer involvement is crucial (and possible)
– Emphasizes
• Team development: pair-programming
• Write tests before code (unit testing)
15 Virtual University - Human Computer Interaction © Imran Hussain | UMT
Final Thoughts on Process Models
• Every organization does have a process
– Might be chaos every time
– But, should be defined, documented, planned and managed
– Should be based on the nature of the projects the team is building
• People have strong feelings on this subject about what works!
16 Virtual University - Human Computer Interaction © Imran Hussain | UMT
And here endeth today’s lesson
17 Virtual University - Human Computer Interaction © Imran Hussain | UMT