2. 2
A software life cycle is the series of identifiable
stages that a software product undergoes during its
lifetime.
A software life cycle model is a descriptive and
diagrammatic representation of the software life
cycle.
A life cycle model represents all the activities
required to make a software product transit through
its life cycle phases.
It also captures the order in which these activities
are to be undertaken.
Different life cycle models may map the basic
development activities to phases in different ways.
3. 3
Why do we require a life cycle model?
The primary advantage is that it encourages
development of software in a systematic and
disciplined manner.
When a software product is developed by a team, it
is necessary to have a precise understanding among
the team members as to – when to do what.
Otherwise it may lead to confusions and project
failure.
4. 4
The Waterfall Model
Communicat ion
Planning
Modeling
Const ruct ion
Deployment
analysis
design
code
t est
project init iat ion
requirement gat hering estimating
scheduling
tracking
delivery
support
f eedback
5. 5
1. Real project rarely follow sequential flow that the model
proposes
2. Linear model can accommodate iteration, it does
indirectly
3. Can cause confusion as the project team proceeds.
4. Difficult for the customer to state all requirement
explicitly
5. Customer must have patience
6. Linear nature of water flow leads to “blocking state”
7. Leads the team member to wait until previous member
finishes
8. Time spent waiting is more compared with time spent
for productive work
9. It is inappropriate
10. Requirement is fixed and proceed in linear manner.
6. 6
Incremental Process Model
analysis design code test
System/information
engineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of
1st increment
delivery of
2nd increment
delivery of
3rd increment
delivery of
4th increment
calendar time
7. 7
Incremental Process Model
Combines elements of the waterfall model
applied in an iterative fashion.
Incremental applies linear sequences as
the calendar time progress.
Limited software functionalities and
expands functionalities in later software
release.
8. 8
Increment Model
Each linear sequence produces a deliverable
‘increment’ of the software
Eg. Word processing software
First increment is often a core product
Basic requirements are addressed, but many
supplementary remains undelivered.
Customers evaluate this core product and the
next increment is planned based on suggestions
and next set of features
The plan addresses the modification of core
product and delivery of additional features and
functionalities.
Process is repeated until complete product is
produced.
9. 9
Increment Model
Useful when
Staff is unavailable for complete implementation and
deadline is tight
If core product is well received, additional staff can
implement next increment
Increment can be planned to manage technical risks
Partial functionalities can be delivered to end – user
without inordinate delay.
11. 11
RAD Model
Rapid Application Development Model
It is incremental software development process.
A short development cycle
It is “high speed” adaptation of linear sequential
model.
Done by component based construction.
Requirements should be well understood and
scope must be limited.
Enables development team to create “fully
functional” system with short time period.
12. 12
RAD model
Generic framework activities of RAD are :
Communication: What information is required, who
generates it, who processes it, where does
it go etc.
Planning: Multiple software team works in parallel on
different functions.
Process modeling: 3 modeling
- Business modeling
- Data modeling
- process modeling
Construction : Code generation
Deployment : Is faster because of reusable
components.
13. 13
RAD model
Advantages of RAD model
1. Can be used for projects which can be modularized.
2. Separate RAD teams can work on different modules.
3. Overall time requirement is very less.
Problems or disadvantages
1. Large manpower required to create large number of RAD
teams.
2. Developers and customers must be committed to this type of
model. Fast responses are required from both the parties.
3. Not useful for all types of systems i.e. if it is not possible to
modularize.
4. Not useful when technical risks are high i.e. new software
using new technology or new software has to work with
existing hardware.
14. 14
Prototype Model
Customer defines objective to software engineer,
but not specifies input , process ,output
requirements.
Developer may be unsure about efficiency of
algorithm, adaptability of OS, or human-machine
interaction
In this situation Prototype is best approach
15. 15
Evolutionary Process Model
1. These models are more suited to object oriented systems.
2. They are iterative.
3. They enable the software developer to develop
increasingly more complex versions of the software
4. Like all complex systems, software evolves over a period
of time and hence evolutionary models are more suited to
software development.
5. Requirements change while software gets developed.
16. 16
Prototype Model
Used as standalone Process model
Used in all technique implemented in any
process model
Prototype paradigm assists software and
customer to better understand and build the
software when requirement is fuzzy
18. 18
Prototype Model
1. Communication
- Software Engineer and customer defines overall
objective
- Identifies requirements and outline area
- Definition is mandatory
2. Quick plan is made
3. Quick design: A Prototype iteration is planned quickly and
modeled
4. Design leads to constructing a prototype
5. Prototype deployed and delivered to end user
Feedback is used to refine requirement for software
Iteration occurs as the prototype is tuned to satisfy
customers need and developers to better understand which
needs to be done.
19. 19
Prototype Model
Limitations
At the prototype level no focus on software quality
or long-term maintainability
In order to make the prototype working quickly,
the developer often makes implementation
compromises and becomes familiar with these
choices
20. 20
Spiral Model
Proposed by Boehm - Evolutionary software process
model
Couples Iterative nature of prototyping + waterfall model
Potential for rapid development of increasingly more
complete version of software
Spiral Model - software is developed in a series of
evolutionary releases.
Early iteration - Paper model / prototype (trial product)
Later increasingly more complete version of engineering
software is produced
21. 21
Spiral Model
Divided into set of framework activities defined by software
engineering team
Each Framework activities represents 1 segment of spiral
path
As evolutionary process begins software performs activities
implied by circuit around clockwise direction
Begins at center
Risk is considered at each revolution
Milestone: Combination of work product + conditions with
spiral model in each evolutionary process
23. 23
Spiral Model
1st
circuit – development of a product specification
2nd
circuit – prototype (trial product)
3rd
and rest – sophisticated versions of software
Each pass through planning : Adjustment of project
plan is done
Cost & schedule: Adjusted based on feedback of
customer after delivery
Project manager: Adjusts number of iteration to
complete software
24. 24
Spiral Model
I’st circuit - “concept development project”
starts with core
“New project development” -multiple iteration
until project completes
Last spiral - represents “project enhancement
project”
25. 25
Spiral Model
Advantage:
• Realistic approach of development in large scale
• Developer and customer satisfaction
• Reacts to risk at evolutionary level
• Uses prototype - Risk reduction mechanism
• Enables developer to apply prototype in any stage
• Stepwise approach
• Direct consideration of technical risk at all step.
26. 26
Spiral Model
Disadvantage:
Difficult to convince customers
Demands considerable risk assessment expertise
Model has not been used as widely as the linear
sequential or prototype paradigm
27. 27
The Concurrent development model
This model is suited to all types of software but is generally
used for client server applications
In real life the software development activities do not take
place in sequence
Most activities will be going on concurrently but reside in
different states.
The states will change when some event occurs
So in this model all the activities are shown along with their
states at any point of time.
As time goes on the states of the activities will change.
It provides an accurate picture of the current state of a
project.
29. 29
The Concurrent development model
Definition:
It defines software engineering as a network of activities
each in a different state, each dependent on one another and
each going on concurrently.
Awaiting changes state – after the completion of the 1st
iteration (communication activity)
None state – while initial communication is carried out
(modeling activity)
Under development state – after the communication is
completed.
Awaiting changes state – if any changes in the requirement
must be made.
30. 30
Specialized Process Models
Component Based model
Object oriented technologies are the base
Spiral model + prepackaged software components
The steps to determine the user requirements are same.
The steps involved in this model for the engineering activity are:
1. Examine data to be manipulated and the algorithms to
manipulate.
2. Component integration is considered
3. A software architecture is designed to accommodate the
components
4. Components are integrated into architecture
5. Comprehensive testing is conducted to ensure proper
functionalities
31. 31
Component Based model
Steps
Identification of candidate classes
Find if the class exists
If exists, extract and reuse, else develop
Advantages of component reuse
Development cycle time is reduced by 70%
Cost decreased by 84%
Productivity increases
Faster development and testing
These results are a function of the robustness of the
component library
32. 32
The Formal Methods Model
A set of activities that leads to formal mathematical
specification of computer software
Enable a software engineer to specify, develop and
verify a computer based system by applying a
accurate mathematical notation
Set theory and logic notations are used to create a
clear statement of requirements
They provide a mechanism for removing the
difficulty during the development.
33. 33
The Formal Methods Model
This model can provide defect free software.
Problems
Time consuming and expensive
Software developer must be trained before developing
systems using formal methods
Difficult to communicate it to the users for technically
unsophisticated customer
But, it can be very useful for developing safety
critical software or where the cost of failure is very
high.
34. 34
Assignment -2 Submission Date 22-7-08
1. What do you mean by SDLC? Why is it
required?
2. Explain in detail about all the process
models. Mention its advantages and
disadvantages.