Mod1 ProcessModels
Mod1 ProcessModels
Sofware Process 1
Software Process
Process is distinct from product – products
are outcomes of executing a process on a
project
SW Engg. focuses on process
Premise: Proper processes will help
achieve project objectives of high QP
Sofware Process 2
Software Process…
Process: A particular method, generally involving
a number of steps
Software Process: A set of steps, along with
ordering constraints on execution, to produce
software with desired outcome
Many types of activities performed by diff people
in a software project
Better to view software process as comprising of
many component processes
Sofware Process 3
Component Software Processes
Two major processes
Development – focuses on development and quality
steps needed to engineer the software
Project management – focuses on planning and
controlling the development process
Development process is the heart of software
process; other processes revolve around it
These are executed by different people
developers execute engg. Process
project manager executes the mgmt proces
Sofware Process 4
Component Processes…
Other processes
Configuration management process: manages
the evolution of artifacts
Change management process: how changes
are incorporated
Process management process: management of
processes themselves
Inspection process: How inspections are
conducted on artifacts
Sofware Process 5
Process Specification
Sofware Process 7
ETVX approach
Sofware Process 8
Desired Process Properties
Provide high Q&P
Support testability as testing is the most
expensive task; testing can consume 30 to 50%
of total development effort
Support maintainability as maintenance can be
more expensive than development; over life up
to 80% of total cost
Remove defects early, as cost of removing
defects increases with latency
Sofware Process 9
High Q&P: Early Defect Removal…
Cost of a defect increases with latency
I.e. fixing a req defect in operation can
cost a 100 times the cost of fixing it in
requirements itself
Hence, for high Q&P, the process must
support early defect removal
That is why there is a V in ETVX, and
quality control tasks in the sw process
Sofware Process 10
Early Defect Removal…
Sofware Process 11
Desired Properties…
Predictability and repeatability
Process should repeat its performance when
used on different projects
I.e. outcome of using a process should be
predictable
Without predictability, cannot estimate, or say
anything about quality or productivity
With predictability, past performance can be
used to predict future performance
Sofware Process 12
Predictability…
Predictable process is said to be under
statistical control
Repeatedly using the process produces similar
results
Results – properties of interest like quality,
productivity, …
To consistently develop sw with high Q&P,
process must be in control
Sofware Process 13
Predictability…
Sofware Process 14
Support Change
Software changes for various reasons
Requirements change is a key reason
Requirement changes cannot be wished
away or treated as “bad”
They must be accommodated in the
process for sw development
Sofware Process 15
Summary
Process – method for doing something
Process typically has stages, each stage
focusing on an identifiable task
Stages have methodologies
Software process is the methods for
developing software
Best to view it as comprising of multiple
processes
Sofware Process 16
Summary
Goal is to produce software with high
quality and productivity
Process is the means
Development process is central process
Mgmt process is for controlling dev
Other supporting processes
Sw process should have high Q&P,
predictability, and support for change
Sofware Process 17
Development Process and
Process Models
Sofware Process 18
Software Project
Project – to build a sw system within cost
and schedule and with high quality which
satisfies the customer
Project goals – high Q and high P
Suitable process needed to reach goals
For a project, the process to be followed is
specified during planning
Sofware Process 19
Development Process
A set of phases and each phase being a
sequence of steps
Sequence of steps for a phase - methodologies
for that phase.
Why have phases
To employ divide and conquer
each phase handles a different part of the problem
helps in continuous validation
Sofware Process 20
Development Process
Commonly has these activities:
Requirements analysis, architecture,
design, coding, testing, delivery
Different models perform them in different
manner
Sofware Process 21
Requirement Analysis
Distribution of effort :
Req. - 10-20%
Design - 10-20%
Coding - 20-30%
Testing - 30-50%
Coding is not the most expensive.
Sofware Process 26
Distribution of effort…
Sofware Process 27
Defects
Sofware Process 28
Defects…
Cost to fix
Error ( log scale)
Time
Cheapest way to detect and remove defects
close to where it is injected.
Hence must check for defects after every
phase.
Sofware Process 29
Process Models
A process model specifies a general
process, usually as a set of stages
This model will be suitable for a class of
projects
I.e. a model provides generic structure of
the process that can be followed by some
projects to achieve their goals
Sofware Process 30
Projects Process
If a project chooses a model, it will generally tailor it to
suit the project
This produces the spec for the projects process
This process can then be followed in the project
I.e. process is what is actually executed; process spec is
plan about what should be executed; process model is a
generic process spec
Many models have been proposed for the development
process
Sofware Process 31
Typical Student Process Model
Get problem stmt – Code – do some
testing – deliver/demo
Why this process model cannot be used
for commercial projects?
Produces student-software, which is not what
we are after
Cannot ensure desired quality for industrial-
strength software
Sofware Process 32
Common Process Models
Waterfall – the oldest and widely used
Prototyping
Iterative – currently used widely
Timeboxing
Sofware Process 33
Waterfall Model
Linear sequence of stages/phases
Requirements – HLD – DD – Code – Test
– Deploy
A phase starts only when the previous has
completed; no feedback
The phases partition the project, each
addressing a separate concern
Sofware Process 34
Sofware Process 35
Waterfall…
Sofware Process 37
Waterfall disadvantages
Assumes that requirements can be
specified and frozen early
May fix hardware and other technologies
too early
Follows the “big bang” approach – all or
nothing delivery; too risky
Very document oriented, requiring docs at
the end of each phase
Sofware Process 38
Waterfall Usage
Has been used widely
Well suited for projects where
requirements can be understood easily
and technology decisions are easy
I.e. for familiar type of projects it still may
be the most optimum
Sofware Process 39
Prototyping
Prototyping addresses the requirement
specification limitation of waterfall
Instead of freezing requirements only by
discussions, a prototype is built to
understand the requirements
Helps alleviate the requirements risk
A small waterfall model replaces the
requirements stage
Sofware Process 40
Prototyping
Sofware Process 41
Prototyping
Development of prototype
Starts with initial requirements
Only key features which need better
understanding are included in prototype
No point in including those features that are
well understood
Feedback from users taken to improve the
understanding of the requirements
Sofware Process 42
Prototyping
Cost can be kept low
Build only features needing clarification
“quick and dirty” – quality not important,
scripting etc can be used
Things like exception handling, recovery,
standards are omitted
Cost can be a few % of the total
Learning in prototype building will help in
building, besides improved requirements
Sofware Process 43
Prototyping
Advantages: req will be more stable, req
frozen later, experience helps in the main
development
Disadvantages: Potential hit on cost and
schedule
Applicability: When req are hard to elicit
and confidence in reqs is low; i.e. where
reqs are not well understood
Sofware Process 44
Iterative Development
Counters the “all or nothing” drawback of the
waterfall model
Combines benefit of prototyping and waterfall
Develop and deliver software in increments
Each increment is complete in itself
Can be viewed as a sequence of waterfalls
Feedback from one iteration is used in the future
iterations
Sofware Process 45
Iterative Enhancement
Sofware Process 46
Iterative Development
Products almost always follow it
Used commonly in customized
development also
Businesses want quick response for sw
Cannot afford the risk of all-or-nothing
Sofware Process 47
Iterative Development
Benefits: Get-as-you-pay, feedback for
improvement,
Drawbacks: Architecture/design may not
be optimal, rework may increase, total cost
may be more
Applicability: where response time is
important, risk of long projects cannot be
taken, all req not known
Sofware Process 48
Timeboxing
Iterative is linear sequence of iterations
Each iteration is a mini waterfall – decide
the specs, then plan the iteration
Time boxing – fix an iteration duration,
then determine the specs
Divide iteration in a few equal stages
Use pipelining concepts to execute
iterations in parallel
Sofware Process 49
Time Boxed Iterations
General iterative development – fix the
functionality for each iteration, then plan
and execute it
In time boxed iterations – fix the duration
of iteration and adjust the functionality to fit
it
Completion time is fixed, the functionality
to be delivered is flexible
Sofware Process 50
Time boxed Iteration
This itself very useful in many situations
Has predictable delivery times
Overall product release and marketing can
be better planned
Makes time a non-negotiable parameter
and helps focus attention on schedule
Prevents requirements bloating
Overall dev time is still unchanged
Sofware Process 51
Timeboxing – Taking Time Boxed
Iterations Further
What if we have multiple iterations
executing in parallel
Can reduce the average completion time
by exploiting parallelism
For parallel execution, can borrow
pipelining concepts from hardware
This leads to Timeboxing Process Model
Sofware Process 52
Timeboxing Model – Basics
Development is done iteratively in fixed duration
time boxes
Each time box divided in fixed stages
Each stage performs a clearly defined task that
can be done independently
Each stage approximately equal in duration
There is a dedicated team for each stage
When one stage team finishes, it hands over the
project to the next team
Sofware Process 53
Timeboxing
With this type of time boxes, can use
pipelining to reduce cycle time
Like hardware pipelining – view each
iteration as an instruction
As stages have dedicated teams,
simultaneous execution of different
iterations is possible
Sofware Process 54
Example
An iteration with three stages – Analysis,
Build, Deploy
These stages are appx equal in many situations
Can adjust durations by determining the
boudaries suitably
Can adjust duration by adjusting the team size
for each stage
Have separate teams for A, B, and D
Sofware Process 55
Pipelined Execution
AT starts executing it-1
AT finishes, hands over it-1 to BT, starts
executing it-2
AT finishes it-2, hands over to BT; BT
finishes it-1, hands over to DT; AT starts it-
3, BT starts it-2 (and DT, it-1)
…
Sofware Process 56
Timeboxing Execution
Software
Sofware Process 57
Timeboxing execution
First iteration finishes at time T
Second finishes at T+T/3; third at T+2 T/3,
and so on
In steady state, delivery every T/3 time
If T is 3 weeks, first delivery after 3 wks,
2nd after 4 wks, 3rd after 5 wks,…
In linear execution, delivery times will be 3
wks, 6 wks, 9 wks,…
Sofware Process 58
Timeboxing execution
Duration of each iteration still the same
Total work done in a time box is also the
same
Productivity of a time box is same
Yet, average cycle time or delivery time
has reduced to a third
Sofware Process 59
Team Size
In linear execution of iterations, the same
team performs all stages
If each stage has a team of S, in linear
execution the team size is S
In pipelined execution, the team size is
three times (one for each stage)
I.e. the total team size in timeboxing is
larger; and this reduces cycle time
Sofware Process 60
Team Size
Merely by increasing the team size we
cannot reduce cycle time - Brook’s law
Timeboxing allows structured way to add
manpower to reduce cycle time
Note that we cannot change the time of an
iteration – Brook’s law still holds
Work allocation different to allow larger
team to function properly
Sofware Process 61
Work Allocation of Teams
Build Team Build for TB1 Build for TB2 Build for TB3 Build for TB4
Deployment
Deployment for TB1Deployment for TB2 Deployment for TB3
Team
Sofware Process 62
Timeboxing
Advantages: Shortened delivery times,
other adv of iterative, distr. execution
Disadvantages: Larger teams, proj mgmt
is harder, high synchronization needed,
CM is harder
Applicability: When short delivery times v.
imp.; architecture is stable; flexibility in
feature grouping
Sofware Process 63
Summary
Process is a means to achieve project
objectives of high QP
Process models define generic process,
which can form basis of project process
Process typically has stages, each stage
focusing on an identifiable task
Many models for development process
have been proposed
Sofware Process 64
Summary – waterfall
Sofware Process 65
Summary – Prototyping
Strength Weakness Types of Projects
Sofware Process 66
Summary – Iterative
Sofware Process 68