Lecture 4 - Software Process Model
Lecture 4 - Software Process Model
Muhammad Nasir
[email protected]
Outline
Evolutionary Process Models
Prototyping
Spiral Model
Component based development (CBD)
Evolutionary Process Model
A process model that has been explicitly designed to
accommodate a product that evolves over time.
Produce an increasingly more complete version of the
software with each iteration.
Evolutionary Models are iterative.
Evolutionary models are:
Prototyping
Spiral Model
Evolutionary Process Models:
Prototyping
Prototyping (cont..)
Often, a customer defines a set of general
objectives for software, but does not identify
detailed requirements for functions and features.
In this case Prototyping is best suited
Prototyping can be used together with other
models for elicitation of requirements
The prototype can serve as “the first system.”
Some prototypes are “Throw Away” while others
also evolve and become part of the actual system
Prototyping (cont..)
Both customers and developers like the prototyping paradigm.
Customer/End user gets a feel for the actual system
Developer get to build something immediately.
Problem Areas:
Developer often makes implementation in order to get a prototype
working quickly without considering long term maintainability and
Quality, efficient algorithms etc.
Customer cries foul and demand that “a few fixes” be applied to
make the prototype a working product, due to that software quality
suffers as a result.
Customer and developer both must agree that the prototype is built to
serve as a mechanism for defining requirement.
Spiral Model
Spiral Model
Combines iterative nature of prototyping
with the controlled and systematic aspects
of the linear sequential model
Using spiral, software developed in as series
of evolutionary release.
Early iteration, release might be on paper
or prototype.
Later iteration, more complete version of
software.
Spiral Model
Evolutionary process begins in a
clockwise direction, beginning at the
center risk.
First circuit around the spiral might result
in development of a product specification.
Subsequently, develop a prototype
while progressively constructing more
sophisticated version of software.
Unlike other process models that end
when software is delivered.
Spiral Model (cont.)
Concept Development Project:
Start at the core and continues for multiple iterations until it is complete.
If concept is developed into an actual product, the process proceeds
outward on the spiral.
New Product Development Project:
New product will evolve through a number of iterations around the spiral.
Later, a circuit around spiral might be used to represent a “Product
Enhancement Project”
Product Enhancement Project:
There are times when process is dormant or software team not developing
new things but change is initiated, process start at appropriate entry point.
Spiral Model (cont.)
The spiral model uses prototyping as a risk
reduction mechanism.
It maintains the systematic stepwise approach
suggested by the classic life-cycle
But incorporates it into an iterative framework
that more realistically reflects the real world.
The spiral model demands a direct
consideration of technical risks at all stages
of the project
Spiral Model (cont..)
Problem Area:
It may be difficult to convince customers (particularly in
contract situations) that the evolutionary approach is
controllable.
It demands considerable risk assessment expertise
Specialized Process Model
Specialized process models take on
many of the characteristics of one or
more of the traditional models
presented in the preceding sections.
However, these models tend to be
applied when a specialized or
narrowly defined software
engineering approach is chosen.
Component Based Development Model