2. Definition and Stages
It is a process used by software (IT) industry to design,
implement and test high quality software's and for Modify or
replace specific software. The life cycle defines a methodology
for improving the quality of software and the overall
development process.
The various Stages of SDLC.
1. Planning/ requirement gathering
2. Analysis
3. Design
4. Coding/ Development
5. Testing
6. Deployment
Deployment SDLC Design
Planning/
requirement
gathering
Analysis
Testing
Coding/
Developme
nt
3. Preliminary Investigation:
• What are the basic requirements & functions of the proposed system? Can we complete the proposed system be in time
to be useful? How much will it cost – do we have enough budgeted for it?
Requirements Definition:
• What features are important? What do the users need it to do? What restrictions (site, environment, materials
availability) are there? What software do we need? What hardware do we need to run it? What connectivity do we
need?
Design:
• What do we need the system to output? What inputs do we have available? What processing do we need to do to turn
the input into the output? Is there an existing system we can leverage to do this? Can we buy a boxed product or make
our own? Does the boxed product meet our requirements? If we need to build our own, what components will we
need?
Construction:
• Put all the objects gathered in the design phase. Redesign if the system does not work. Do we have sufficient training
material & documentation?
Deployment:
• Are the users and support staff trained? What bugs are there? Does everyone agree that the system meets the
requirements?
Maintenance:
• What new features are requested? What new regulations does it need to comply to? What training will new employees
need?
Obsolescence:
• What safety hazards are there? Can we trade the hardware in or recycle it?
Description of each Stages
4. 6 Basic SDLC Methodologies
1. Waterfall Model: Waterfall is the oldest and most straightforward of the structured SDLC methodologies —
finish one phase, then move on to the next. No going back.
2. V-Shaped Model: Also known as the Verification and Validation model, the V-shaped model grew out of
Waterfall and is characterized by a corresponding testing phase for each development stage. Like Waterfall, each
stage begins only after the previous one has ended.
3. Iterative Model: The Iterative model is repetition incarnate. Instead of starting with fully known
requirements, you implement a set of software requirements, then test, evaluate and pinpoint further requirements.
A new version of the software is produced with each phase, or iteration. Rinse and repeat until the complete system
is ready.
4. Spiral Model: One of the most flexible SDLC methodologies, the Spiral model takes a cue from the Iterative
model and its repetition; the project passes through four phases over and over in a “spiral” until completed, allowing
for multiple rounds of refinement.
5. Big Bang Model: A bit of an anomaly among SDLC methodologies, the Big Bang model follows no specific
process, and very little time is spent on planning. The majority of resources are thrown toward development, and
even the client may not have a solid grasp of the requirements.
6. Agile Model: By breaking the product into cycles, the Agile model quickly delivers a working product and is
considered a very realistic development approach. The model produces ongoing releases, each with small,
incremental changes from the previous release. At each iteration, the product is tested.
5. Waterfall Model:
The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-
sequential life cycle model. It is very simple to understand and use.
When to use the waterfall model:
This model is used only when the requirements are very well known, clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available freely
The project is short.
Requirement Analysis
Design
Implementation
Testing
Deployment
Maintenance
6. V-Shaped Model:
V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life
cycle is a sequential path of execution of processes. Each phase must be completed before the next
phase begins.
When to use the waterfall model:
The V-shaped model should be used for small to medium sized projects where requirements are clearly
defined and fixed.
The V-Shaped model should be chosen when ample technical resources are available with needed technical
expertise.
Code
Unit TestingCoding
Component Testing
LLD (Low Level
Design)
System Integration
Testing
HLD (High Level
Design)
System Testing
SRS (System Req
Specifications)
Acceptance Testing
BRS (Business Req
Specifications)
Developers Life Cycle
(Verification Phases)
Testers Life Cycle
(Verification Phases)
7. Iterative Model:
An iterative life cycle model does not attempt to start with a full specification of requirements.
Instead, development begins by specifying and implementing just part of the software, which can
then be reviewed in order to identify further requirements. This process is then repeated,
producing a new version of the software for each cycle of the model.
When to use the waterfall model:
Requirements of the complete system are clearly defined and understood.
When the project is big.
Major requirements must be defined; however, some details can evolve with time.
Design 0
Implementation 0
Analysis 0
Design 0
Implementation 0
Analysis 0
Design 0
Implementation 0
Analysis 0
8. Spiral Model:
The spiral model is similar to the incremental model, with more emphasis placed on risk analysis.
The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software
project repeatedly passes through these phases in iterations (called Spirals in this model). The
baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each
subsequent spirals builds on the baseline spiral.
When to use the waterfall model:
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment unwise because of potential changes to economic priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
9. Agile Model:
Agile development model is also a type of Incremental model. Software is developed in
incremental, rapid cycles. This results in small incremental releases with each release building on
previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It
is used for time critical applications. Extreme Programming (XP) is currently one of the most well
known agile development life cycle model.
When to use the waterfall model:
When new changes are needed to be implemented. The freedom agile gives to change is very important. New
changes can be implemented at very little cost because of the frequency of new increments that are produced.
To implement a new feature the developers need to lose only the work of a few days, or even only hours, to
roll back and implement it.
Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile
assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be
discussed and features can be newly effected or removed based on feedback. This effectively gives the
customer the finished system they want or need.
Both system developers and stakeholders alike, find they also get more freedom of time and options than if the
software was developed in a more rigid sequential way. Having options gives them the ability to leave
important decisions until more or better data or even entire hosting programs are available; meaning the
project can continue to move forward without fear of reaching a sudden standstill.