SDLC - Models
SDLC - Models
Software Development Life Cycle (SDLC) Models
Common SDLC Models
• Waterfall Model
• Iterative Model
• Spiral Model
• V Model
• Agile Model
10/23/2019 www.cdac.in 2
1
10/23/2019
Waterfall Model
• The Waterfall model is the earliest SDLC approach that was used for
software development.
• Also referred to as a linear‐sequential life cycle model.
• Each phase must be completed before the next phase can begin and
there is no overlapping in the phases.
• Illustrates the software development process in a linear sequential
flow. This means that any phase in the development process begins
only if the previous phase is complete.
10/23/2019 www.cdac.in 3
Waterfall Model
Requirement Analysis
Design
Development
Testing
Deployment
Maintenance
10/23/2019 www.cdac.in 4
2
10/23/2019
Waterfall Model‐ Applications
Some situations where the use of Waterfall model is most
appropriate are −
• Requirements are very well documented, clear and fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• Ample resources with required expertise are available to
support the product.
• The project is short.
10/23/2019 www.cdac.in 5
Waterfall Model‐ Advantages
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Each
phase has specific deliverables and a review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are
very well understood.
• Clearly defined stages.
• Well understood milestones.
• Easy to arrange tasks.
• Process and results are well documented.
10/23/2019 www.cdac.in 6
3
10/23/2019
Waterfall Model‐ Disadvantages
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object‐oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to
high risk of changing. So, risk and uncertainty is high with this process
model.
• It is difficult to measure progress within stages.
• Cannot accommodate changing requirements.
• Adjusting scope during the life cycle can end a project.
• Integration is done as a "big‐bang. at the very end, which doesn't allow
identifying any technological or business bottleneck or challenges early.
10/23/2019 www.cdac.in 7
Iterative Model
• In the Iterative model, iterative process starts with a simple implementation of a
small set of the software requirements and iteratively enhances the evolving
versions until the complete system is implemented and ready to be deployed.
• 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 is then reviewed to identify further requirements.
This process is then repeated, producing a new version of the software at the
end of each iteration of the model.
10/23/2019 www.cdac.in 8
4
10/23/2019
Iterative Model
Build 1
Design and Testing Implementation
Development
Build 2
Build 3
10/23/2019 www.cdac.in 9
10/23/2019 www.cdac.in 10
5
10/23/2019
10/23/2019 www.cdac.in 11
10/23/2019 www.cdac.in 12
6
10/23/2019
10/23/2019 www.cdac.in 13
Spiral Model
Spiral model is one of the most important Software Development Life Cycle models,
which provides support for Risk Handling.
10/23/2019 www.cdac.in 14
7
10/23/2019
Spiral Model
Cumulative Cost
1. Determine 2. Identify and
Objectives resolve risks
Risk Analysis
Prototypes
Review
Design
Code
Integration
4. Evaluation and Plan 3. Development and
the next iteration Test
Test
Implementation
Release
10/23/2019 www.cdac.in 15
10/23/2019 www.cdac.in 16
8
10/23/2019
10/23/2019 www.cdac.in 17
10/23/2019 www.cdac.in 18
9
10/23/2019
• It works best for large projects only also demands risk assessment expertise.
• For its smooth operation spiral model protocol needs to be followed strictly.
• It is not advisable for smaller project, it might cost them a lot.
• Spiral may go on indefinitely.
• End of the project may not be known early.
• Large number of intermediate stages requires excessive documentation.
10/23/2019 www.cdac.in 19
V Model
• The V‐model is an SDLC model where execution of processes happens in a
sequential manner in a V‐shape. It is also known as Verification and
Validation model.
• The V‐Model is an extension of the waterfall model and is based on the
association of a testing phase for each corresponding development stage.
This means that for every single phase in the development cycle, there is a
directly associated testing phase. This is a highly‐disciplined model and the
next phase starts only after completion of the previous phase.
10/23/2019 www.cdac.in 20
10
10/23/2019
V Model
V Acceptance
Test Design V
E
A
R Requirement Analysis Acceptance Testing
System L
I Test Design
I
F
System Design Integration System Testing D
I Test Design
A
C
Architecture T
A Design Unit Test
Integration Testing
I
T Design
O
I Module
Unit Testing
Design N
O
N Coding
Under the V‐Model, the corresponding testing phase of the development phase is planned in parallel. So, there are Verification
phases on one side of the ‘V’ and Validation phases on the other side. The Coding Phase joins the two sides of the V‐Model.
10/23/2019 www.cdac.in 21
V Model
• The V‐model is an SDLC model where execution of processes happens in a sequential
manner in a V‐shape. It is also known as Verification and Validation model.
• The V‐Model is an extension of the waterfall model and is based on the association of
a testing phase for each corresponding development stage. This means that for every
single phase in the development cycle, there is a directly associated testing phase.
This is a highly‐disciplined model and the next phase starts only after completion of
the previous phase.
10/23/2019 www.cdac.in 22
11
10/23/2019
2. System Design:‐ Once you have the clear and detailed product requirements, it is time to design the complete
system. The system design will have the understanding and detailing the complete hardware and
communication setup for the product under development. The system test plan is developed based on the
system design. Doing this at an earlier stage leaves more time for the actual test execution later.
10/23/2019 www.cdac.in 23
4. Module Design:‐ In this phase, the detailed internal design for all the system modules is specified, referred to as Low
Level Design (LLD). It is important that the design is compatible with the other modules in the system architecture
and the other external systems. The unit tests are an essential part of any development process and helps eliminate
the maximum faults and errors at a very early stage. These unit tests can be designed at this stage based on the
internal module designs.
10/23/2019 www.cdac.in 24
12
10/23/2019
V Model- Application
V‐ Model application is almost the same as the waterfall model, as both the models are
of sequential type. Requirements have to be very clear before the project starts,
because it is usually expensive to go back and make changes. This model is used in the
medical development field, as it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V‐Model
application.
• Requirements are well defined, clearly documented and fixed.
• Product definition is stable.
• Technology is not dynamic and is well understood by the project team.
• There are no ambiguous or undefined requirements.
• The project is short.
10/23/2019 www.cdac.in 26
13
10/23/2019
V Model- Advantages
The advantages of the V‐Model method are as follows −
10/23/2019 www.cdac.in 27
V Model- Disadvantages
The disadvantages of the V‐Model method are as follows −
10/23/2019 www.cdac.in 28
14
10/23/2019
Agile Model
• Agile model believes that every project needs to be handled differently and
the existing methods need to be tailored to best suit the project
requirements. In Agile, the tasks are divided to time boxes (small time
frames) to deliver specific features for a release.
• Iterative approach is taken and working software build is delivered after each
iteration. Each build is incremental in terms of features; the final build holds
all the features required by the customer.
• Chain of rapid development and deployment.
10/23/2019 www.cdac.in 29
Agile Model
Develop Test
Develop Test Develop Test
Design Deploy
Design Deploy
1st Iteration 2nd Iteration
Design Deploy
3rd Iteration
Plan Review
Plan Review Plan Review
Launch
Launch
Launch
10/23/2019 www.cdac.in 30
15
10/23/2019
Values of Agile
RESPONDING TO
WORKING CUSTOMER
THE CHANGE
PEOPLE OVER SOFTWARE OVER COLLABORATION
RATHER THAN
PROCESS COMPREHENSIVE OVER RIGID
FOLLOWING A
DOCUMENTATION CONTRACTS
PLAN
• People over process − In Agile development, self‐organization and motivation are important, as are interactions
like co‐location and pair programming.
• Working software over comprehensive documentation − Demo working software is considered the best means
of communication with the customers to understand their requirements, instead of just depending on
documentation.
• Customer collaboration over rigid contracts − As the requirements cannot be gathered completely in the
beginning of the project due to various factors, continuous customer interaction is very important to get proper
product requirements.
• Responding to change rather than following a plan − Agile Development is focused on quick responses to change
and continuous development.
10/23/2019 www.cdac.in 31
Principles of Agile
• Satisfy the customer.
• Welcome changing requirements.
• Deliver working software frequently.
• Frequent interaction with stakeholders.
• Motivated individuals.
• Face to face communication.
• Measure by working software.
• Maintain constant pace.
• Sustain technical excellence and good design.
• Keep it simple.
• Empower self‐organizing team.
• Reflect and adjust continuously.
10/23/2019 www.cdac.in 32
16
10/23/2019
10/23/2019 www.cdac.in 33
10/23/2019 www.cdac.in 34
17
10/23/2019
10/23/2019 www.cdac.in 36
18
10/23/2019
Thank You
19