software engineering process - International Institute of Information

CS3600: Software Engineering:
Process and Product*
*Most of the Content drawn from Pressman
Vasudeva Varma
[email protected]
Spring 2002
International Institute of Information Technology, Hyderabad
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 1 of 32
Quick Review – Last week
• Studied the definitions of SE
• Discussed SDLC – Different phases
• Discussed Fred Brooks’ work on SE
This week… We shall
• Discuss Product and Process concepts
• Look at various software Process models
• Discuss CMM and PSP (Friday)
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 2 of 32
What is Software Engineering?
•
•
•
•
A modeling activity
A problem-solving activity
A knowledge acquisition activity
A rationale-driven activity
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 3 of 32
What Causes SW Projects to Fail?
• Unrealistic plans, based on optimistic
estimates
• Ineffective tracking of performance
• Volatile requirements
• Risks
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 4 of 32
But, Why do We Let it Happen?
• People tend to be risk averse when there is
potential of loss
• People are unduly optimistic in their plans
and forecasts
• People prefer to use intuitive judgment
rather than quantitative models
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 5 of 32
Controlling Human Nature
• Documenting the way work is performed
• Provide guidance and quantifiable criteria
where possible
• Record decisions and the data used to make
them
• Analyze the results and improve the process
where possible
• Learn - individually and organizationally
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 6 of 32
Software Engineering
Products and Processes
The software customer wants
quality software products at reasonable prices
The software producer wants
a well managed software production process
that consistently produces quality software
in a cost-effective manner
Some organizations have a defined and managed
software engineering process
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 7 of 32
The Software Process
• The software product is created as part of the
Software Engineering Process
Definition:
– the Software Process is a description of the
process which guides the software engineers
as they work
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 8 of 32
The Software Product
 Composed
of programs, data and documents
 Delivers hardware computing potential
 Delivers information
Software Product Characteristics
» developed or engineered,
not manufactured
» doesn’t wear out
» most is custom built
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 9 of 32
The Software Process
The set of activities which produce a software
product
The sequence of steps to develop and maintain
software
Sets out the technical and management
framework for applying methods, tools and
people to the software task
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 10 of 32
A Layered Technology
Software Engineering
tools
methods
process
a quality focus
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 11 of 32
The Software Process ...
Software Engineering Layers




Quality Focus - bedrock of SE
Process
» defines a framework as a basis for management
control of projects and context for technical methods
Methods
» technical ‘how to’ for building software
Tools
» automated support for the process and the methods
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 12 of 32
The Software Process ...
There is no ‘right’ or ‘wrong’ software process.
The ‘wrong’ process reduces the quality or
usefulness of the product
Software processes are complex and involve a
large number of activities
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 13 of 32
The Software Process ...
Generic Phases (Pressman)
Phase focuses on ‘what’
 Development Phase focuses on ‘how’
 Maintenance Phase focuses on change
 Definition
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 14 of 32
The Software Process ...
Has a common process framework containing:

framework activities - for all software projects
work tasks
 project milestones
 software work products and deliverables
 quality assurance points


umbrella activities - occur throughout the process
software quality assurance
 software configuration management
 software metrics or measurement

Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 15 of 32
A Common Process Framework
Common Process Framework
Framework Activities
Task sets
Tasks
Milestones, deliverables
SQA points
Umbrella activities
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 16 of 32
Software Process Models ...
Evolutionary development
Linear or waterfall model
Prototyping (throw away)
Rapid Application Development
Incremental Process
Spiral Model
Concurrent Development Model
Fourth Generation Techniques
Extreme Programming
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 17 of 32
SDLC - the reality
Overlapping phases
 Large,
complex systems are usually broken into
subsystems and other smaller components
 Each subsystem may have its own mini-lifecycle.
 In reality there will be a continuous stream of
change requests.
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 18 of 32
Process as Problem Solving
problem
definition
technical
development
status
quo
solution
integration
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 19 of 32
Linear Models - Problems
• Change handling during the process
• Requires that all requirements are stated
clearly at the beginning of the process
• Working version is delivered at the end of
the process cycle; mistakes at earlier stages
may be disastrous
• “Blocking States”
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 20 of 32
Iterative Models - Prototyping
listen
to
customer
build/revise
mock-up
customer
test-drives
mock-up
Prototyping
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 21 of 32
Prototyping - The Problems
• There is a “working version” of software
before the requirements for the overall
quality and maintainability are satisfied.
• Implementation compromises, made to
create a quick “working version” often
become a part of the final version.
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 22 of 32
Iterative Models RAD
team #3
team #2
business
mode ling
team #1
business
modeling
dat a
mode ling
process
mode ling
business
modeling
data
modeling
application
generat ion
testing
&
turnover
process
modeling
data
modeling
application
generation
process
modeling
testing
&
turnover
application
generation
testing
&
turnover
60 - 90 days
Rapid Application Development (RAD)
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 23 of 32
RAD - The Problems
• For large, but scalable projects, requires
significant human resources
• Requires customers and developers willing
to work in a rapid development environment
• If the requirements can not be modularized,
this approach may not be suitable
• If fine-tuning is needed, this approach may
not be suitable
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 24 of 32
Evolutionary Models - The Incremental Model
increment 1
System/information
engineering
analysis
design
increment 2
code
analysis
test
design
delivery of
1st increment
code
increment 3 analysis
increment 4
delivery of
2nd increment
test
design
analysis
code
delivery of
3rd increment
test
design
code
test
delivery of
4th increment
calendar time
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 25 of 32
Evolutionary Models - Spiral Model
Pla nning
Risk Analysis
Customer
Communic a tion
Engineering
Customer
Evaluation
Construc tion & Relea se
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 26 of 32
Spiral Model - The Lifecycle of SW
Product
•
•
•
•
Concept Development Projects
New Product Development Projects
Product Enhancement Projects
Product Maintenance Projects
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 27 of 32
Spiral Model Characteristics
Advantages
Disadvantages
• application in large
systems and software
• used well as a risk
reduction mechanism
• controllability
(demands high risk
assessment and
expertise)
• has not been applied as
much (little history)
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 28 of 32
Component Assembly
Model
Pla nning
Risk Analysis
Customer
Communica tion
identify candidate
components
construct nth
iteration of the
system
look up
components in
library
put new
components in
library
extract components
if available
Engineering
build components if
available
Customer
Evaluation
Construc tion & Relea se
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 29 of 32
Concurrent
Model
none
Under
development
Analysis activity
Awaiting
changes
Under revision
Under
development
Baselined
Done
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 30 of 32
Still Other Process Models
• Formal methods—the process to apply
when a mathematical specification is to be
developed
• Cleanroom software engineering—
emphasizes error detection before testing
• 4GT (fourth generation techniques) —
automatic code generation
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 31 of 32
Product and Process - Keep
Thinking!
Software Engineering Spring 2002-2003 (C) Vasudeva Varma
Class 03 - 32 of 32