Escolar Documentos
Profissional Documentos
Cultura Documentos
Development
Software process and
user-centered design
Readings:
(1) ID-Book, Chapter 9
(2) Ch. 1 from Task-Centered
User Interface Design (on web)
CS 305: Usability Engineering
Next:
Process of HCI/Interaction Design
Then, an intro to evaluation
HW1 is an assignment on evaluating an app
Integrating usability and user-centered
design into normal software
development
Goal: Get you to where you can do an
interesting HW quickly
What do you remember about phases in
SW Design? (Your list below)
What do you remember about phases in
SW Design? (Your list below)
User requirements
Specification
verification (after all steps?)
Design
Validation
Prototyping to get feedback from customer
Or, to see how something works
Implementation
// Testing (includes alpha beta versions)
Integration
Release (with celebration)
Packaged and delivered / installers / help, documentation
Maintenance
From on-line text
figure out who's going to use the system to do what
choose representative tasks for task-centered design
plagiarize
rough out a design
think about it
create a mock-up or prototype
test it with users
iterate
build it
track it
change it
A simple interaction design model
(more on this later)
Identify needs/
establish
requirements
(Re)Design
Evaluate
Build an
interactive
version
Final product
What Is Design in HCI?
It is a process:
a goal-directed problem solving activity
informed by intended use, target domain,
materials, cost, and feasibility
a creative activity
a decision-making activity to balance trade-offs
It is a representation:
a plan for development
a set of alternatives & successive elaborations
Four basic activities
There are four basic activities in Interaction
Design:
1. Identifying needs and establishing
requirements
2. Developing alternative designs
3. Building interactive versions of the
designs
4. Evaluating designs
Three key
characteristics
Three key characteristics permeate these four
activities:
1. Focus on users early in the design and
evaluation of the artifact
2. Identify, document and agree specific
usability and user experience goals
3. Iteration is inevitable. Designers never
get it right first time
Some practical
issues
Who are the users?
come from?
Humans stick to what they know works
But considering alternatives is important to
break out of the box
Designers are trained to consider
alternatives, software people generally are not
How do you generate alternatives?
Flair and creativity: research & synthesis
Seek inspiration: look at similar products
or look at very different products
How do you choose among
Evaluation withalternatives?
users or with peers e.g.
prototypes
Technical feasibility: some not possible
Quality thresholds: Usability goals lead to
usability criteria (set early and checked regularly)
safety: how safe?
utility: which functions are superfluous?
effectiveness: appropriate support? task coverage,
information available
efficiency: performance measurements
Lifecycle
models
Show how activities are related to each
other
Lifecycle models are:
management tools
simplified versions of reality
Many lifecycle models exist, for example:
from software engineering: waterfall,
spiral, JAD/RAD, Microsoft
from HCI: Star, usability engineering
A simple interaction design model
A simple interaction
design
model Identify needs/
establish
requirements
(Re)Design
Evaluate
Build an
interactive
version
Final product
Excerpts from
Introduction to
Software Engineering
From old slides from CS201.
Whats the Problem?
Software costs are increasing as hardware costs
decline.
Many software development disasters:
Cost overruns, late delivery
Reduced or wrong functionality, non-existent
documentation
Many failures attributed to software
Cost of failure becoming very high:
Financial
Loss of life or loss of equipment
Inconvenience
Definition of Software
Engineering
Fairleys:
Software engineering is the technological and
managerial discipline concerned with systematic
production and maintenance of software
products that are developed and modified on
time and within cost estimates.
Engineering versus science:
Production, practical, quality, maintenance,
reuse, standards, teams, management, etc.
SW Engineering Is and Is Not...
It is (or should be):
Engineering
Building software systems
Modifying software systems
A systematic, careful, disciplined, scientific
activity
It is not:
Just building small systems or new systems.
Hacking or debugging until it works.
Easy, simple, boring or pointless
One Way to Think About It
Build a bridge to cross a small creek
Cut down a tree. Drop a board across it.
Build a bridge across the Golden Gate
Need a big tree!
Whats different?
Size of project matters. Number of people involved. How
long does it has to last. Risk. Economics.
Programming in the large vs. Programming in
the small
Software Lifecycle and Phases
Stages or phases that are typical in software
development, from birth to death
There are various different models (more later)
Phases might include:
Requirements phase
Specification phase
Design phase
Implementation phase
Integration or testing phase
Maintenance phase
Also maybe conception and planning
Analogy: SE is like Construction
Think about how buildings come to be:
Requirements
Architecture
Construction
Differences?
Maintenance
Buildings dont change much
Design
Buildings really are less complex
Number of states
Remove one brick
Requirements, Design, and
Implementation
Requirements
Statements of what the system should do (or what
qualities it should have)
From the customer or client point of view
Not expressed in terms of a solution
Design
A description of how we will implement a solution
A model or blueprint for meeting requirements
Done before implementation, so it can be evaluated
Many possible designs for a set of requirements. How to
choose?
Often models are used to describe either of these
Three Key Elements in SE
Process:
life-cycle model used, project management and
assessment, quality assurance, etc.
Method:
Approaches for solving a particular problem. The how
tos for doing some specific task.
E.g. object-oriented design; black-box testing; prototypes for
requirements analysis.
Tools:
Software that supports methods and/or processes
CASE: Computer-aided Software Engineering
Test environments, 4GLs, Design tools, etc.
Example: Process, Method, Tools
Unit testing of code modules (before integration)
Process: How its to be done? When, who, etc.?
Documents:
Overall SW QA Plan
Software Test Plan
Based on design; includes test strategies, test cases, etc. for
each module
Who?
Development team has a SQA lead
Perhaps a department or company SQA group
Independent testers, or tested by developers?
How do we verify (check) that its been done?
Example: Process, Method, Tools (contd)
Module
coding
7% 8%
Design 5%
6%
Specification (Analysis)
5%
Requirements 2%
Maintenance 67%
Software Development
Processes
Outline
Whats this all about?
Some example models for life-cycle
General principles
Life-cycle Process Models
Process means the events or tasks a development
organization does, and their sequence
Again, think about construction
Organizations want a well-defined, well-
understood, repeatable software development
process. Why?
Design
Code
Test
Maintenance
Flaws of the Waterfall
Need iteration and feedback
Things change (especially requirements)
Change late requires change in earlier results
Often need to do something multiple times, in stages
As described, its very rigid
Not realistic to freeze results after each phase
The model does not emphasize important issues
Risk management
Prototyping
Quality
A Quality-based View
People who do testing and
SW Quality often re-draw
the waterfall to emphasize
testing activities that are
not explicit in the last
diagram
Important features
Risk analysis and other management are
explicitly shown in the model at each
stage
Prototyping and iterative development
fit in this model
Repetition of activities clearly in model
Suggests that alternatives can be explored
The Spiral Model
Features of the Spiral Process Model
Each cycle around the spiral can be like a
phase
Each cycle has four stages
1. Determine objectives, constraints (i.e. plan!)
2. Identify and manage risks. Explore alternatives as
part of risk management
3. Develop and verify next stage or level of the
product
Depending on the spiral, Product might be a
requirements document, a high-level design, code, etc.
4. Review results and plan for next stage
May include getting client/customer feedback
Is the Spiral Model the Answer?
For some situations, yes. (There is no one answer.)
Original study that analyzed the spiral model says:
Intended for internal development of large systems
Internal: developers and clients in same organization
Intended for large-scale systems where cost of not doing
risk management is high
But, the spiral model is important
Historically
And as an illustration of many desired features of a
software development process
End of SW Engin Review
A simple interaction
design
model Identify needs/
establish
requirements
(Re)Design
Evaluate
Build an
interactive
version
Final product
Traditional waterfall
lifecycle
Requirements
analysis
Design
Code
Test
Maintenance
The Star lifecycle
model
Suggested by Hartson and Hix
Important features:
Evaluation at the center of activities
No particular ordering of activities.
Development may start in any one
Derived from empirical studies of
interface designers
Star Lifecycle model
A Lifecycle for RAD
Project set-up (Rapid Applications
Development)
JAD workshops
Iterative design
and build
Engineer and
test final prototype
Implementation
review
The Spiral Model
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
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 weve seen
Try looking for books on this with Google or at
Amazon