The term "Software Development Life Cycle" (SDLC) refers to a methodology for producing high-quality software that includes well-defined processes. The phases of software development that the SDLC approach focuses on in depth are as follows:
3. - Definition of SDLC
What is SDLC?
01
- Describe SDLC phases
Software Development Life Cycle: Phase
02
- Predictive SDLC Models
-Adaptive SDLC Models
Models of SDLC
03
-Choose perfect model for your project
How to choose SDLC model
04
AGENDA:
-
Conclusion
05
4. WHAT IS
SDLC?
DEFINITION
SDLC or the Software Development Life Cycle is a process
that produces software with the highest quality and lowest
cost in the shortest time possible. SDLC provides a well-
structured flow of phases that help an organization to quickly
produce high-quality software which is well-tested and ready
for production use.
It’s also important to know that there is a strong focus on the
testing phase. As the SDLC is a repetitive methodology, you
have to ensure code quality at every cycle. Many
organizations tend to spend few efforts on testing while a
stronger focus on testing can save them a lot of rework,
time, and money. Be smart and write the right types of tests.
There are many different SDLC models in software
engineering, and they vary according to many factors. Still,
the sequence of software life cycle phases usually remains
the same, with a few exceptions. Let’s see what software life
cycle phases there are and what should be done during
each.
5. Software Development
Life Cycle: Phase
1. Requirement Phase
This is the first and fundamental step in the Life Cycle of Software Development. It starts
with gathering the requirements from customers or clients. In most organizations, this role is
taken care of by Business Analysts. A Business Analysts interacts with the customer/clients,
set up daily meetings, document the requirements in Business Requirement Specifications
(or Simple Business Specification), and hand over the final documented requirement to the
development team. It is the responsibility of Business Analysts that every detail is captured
and documented and also to make sure that everyone clearly understands the client
requirements.
2. Analysis Phase
Once the Requirement Gathering phase is completed, the next task is to analyze the
requirements and get them approved by the customer/clients. This is achieved through
Software Requirement Specification (SRS), which consists of all the requirements gathered
and developed during the Requirements Gathering phase. This phase is mainly done by
Project Managers, Business Analysts, and Consultants
3. Design Phase
Once the Analysis Phase is over, next comes the
need to come up with the most accurate, robust,
efficient and cost-effective architecture of the
product that needs to be developed. Usually,
more than one design is proposed in this phase,
and the best one is selected based on different
parameters such as robustness, durability,
timeline, cost-effectiveness, and many more! The
different design architecture is generally
documented in Design Document Specification or
DDS.
This phase consists of 2 design approaches:
Low-Level Design: This task is performed by the
Senior Developers where they specify the
function of each module of the product
architecture that has to be developed.
High-Level Design: This task is performed by
Architects/Senior Architects where they design
different possible architectures of the product that
has to be developed.
6. Software Development Life Cycle: Phase
4. Development Phase
This phase is where the actual implementation of programming languages and different
frameworks are being utilized for the development of the product. In this phase, all
developers are involved. Developers are expected to follow certain predefined coding
standards and guidelines; they are expected to complete the project modules within the
defined deadline for the project. This phase is also the longest and one of the most critical
phases in the Software Development Life Cycle. This phase is documented as a Source
Code Document (SCD).
5. Testing Phase
Once the Development phase is completed, the next step is to test the developed software.
The developed software is sent to the testing team, where they conduct different types of
testing thoroughly on the software and look for defects. If any defect is found, the testing
team records and document which is again sent back to the development team for error
removal. This role is taken care of by Software Testers and Quality Analysts of the company.
The testing team has to make sure that each component of the software is error-free and it
works as expected.
6. Deployment and Maintenance Phase
After the testing phase is over, the first version
of the software is deployed and delivered to
the customer for their use. Once the customer
starts using the developed software, there is
the scope of bug fixing that was not detected
during the testing phase as when a large group
of end-users starts using the software; there
could be some probability that few boundary
cases might have been missed. There is also
scope for upgrading the software with newer
versions and the latest security patches and
technologies. And finally, there is also scope
for enhancement of the software by adding
more features into the existing software..
8. The waterfall is a cascade SDLC model
that presents the development process
like the flow, moving step by step
through the phases of analysis,
projecting, realization, testing,
implementation, and support. This
SDLC model includes gradual execution
of every stage. Waterfall implies strict
documentation. The features expected
of each phase of this SDLC model are
predefined in advance.
Waterfall
Model
SDLC MODEL
9. Waterfall Model
ADVANTAGE DISADVANTAGE
Simple to use and understand The software is ready only after the last stage is
over
Management simplicity thanks to its rigidity: every
phase has a defined result and process review
High risks and uncertainty
Development stages go one by one Not the best choice for complex and object-
oriented projects
Perfect for the small or mid-sized projects where
requirements are clear and not equivocal
Inappropriate for the long-term projects
Easy to determine the key points in the
development cycle
The progress of the stage is hard to measure while
it is still in the development
Easy to classify and prioritize tasks Integration is done at the very end, which does not
give the option of identifying the problem in
advance
10. This model starts with a smaller set of
requirements, and it does not need the full
context of product specification in order to
start the SDLC process. This process is
repetitive, and on each iteration of the SDLC
process, a newer version of the software is
made. Each iteration may be between 2-6
weeks. Each iteration develops a separate
component in this approach. This model also
requires a mode resource than the waterfall
model.
Iterative
Model
SDLC MODEL
11. Iterative Model
ADVANTAGE DISADVANTAGE
Some functions can be quickly developed at the
beginning of the development lifecycle
Iterative model requires more resources than the
waterfall model
The paralleled development can be applied Constant management is required
The progress is easy measurable Issues with architecture or design may occur
because not all the requirements are foreseen
during the short planning stage
The shorter iteration is – the easier testing and
debugging stages are
Bad choice for the small projects
It is easier to control the risks as high-risk tasks are
completed first
The process is difficult to manage
Problems and risks defined within one iteration can
be prevented in the next sprints
Integration is done at the very end, which does not
give the option of identifying the problem in advance
12. This model starts with a smaller set of
requirements, and it does not need the full
context of product specification in order to
start the SDLC process. This process is
repetitive, and on each iteration of the SDLC
process, a newer version of the software is
made. Each iteration may be between 2-6
weeks. Each iteration develops a separate
component in this approach. This model also
requires a mode resource than the waterfall
model.
This model is a combination of a Waterfall
and Spiral model, and it works in an iterative
manner. Based on the risk involved in the
project, this model guides the team to adopt
elements of one or more SDLC models such
as a waterfall or Iterative model. Here the
lifecycle of Software is divided into smaller
parts, and new functionality can be added to
the software even at the late stages of SDLC.
Spiral
Model
SDLC MODEL
13. Spiral Model
ADVANTAGE DISADVANTAGE
Lifecycle is divided into small parts, and if the risk
concentration is higher, the phase can be finished
earlier to address the treats
Can be quite expensive
The development process is precisely documented
yet scalable to the changes
The risk control demands involvement of the
highly-skilled professionals
The scalability allows to make changes and add
new functionality even at the relatively late stages
Can be ineffective for the small projects
The earlier working prototype is done – sooner
users can point out the flaws
Big number of the intermediate stages requires
excessive documentation
14. This model starts with a smaller set of
requirements, and it does not need the full
context of product specification in order to
start the SDLC process. This process is
repetitive, and on each iteration of the SDLC
process, a newer version of the software is
made. Each iteration may be between 2-6
weeks. Each iteration develops a separate
component in this approach. This model also
requires a mode resource than the waterfall
model.
V model is basically an expansion to the
waterfall model where the testing and the
development phases are planned in parallel.
One side consists of the verification phase,
while the other one consists of the validation
phase, which is finally joined by coding. The
next state starts only when the previous state
gets completed.
V-Model
SDLC MODEL
15. V-Model
ADVANTAGE DISADVANTAGE
Every stage of V-shaped model has strict results
so it’s easy to control
Lack of the flexibility
Testing and verification take place in the early
stages
Bad choice for the small projects
Good for the small projects, where requirements
are static and clear
Relatively big risks
16. HOW TO CHOOSE THE SDLC
MODEL
When it’s time to choose the software development approach, there’s a strong chance of getting confused over
numerous options. However, if you learn a little about each, it all starts shaping up. Each software development
methodology has some significant distinctions that you may proceed from. In addition, it’s usually project or delivery
managers who are in charge of choosing the right approach. Their knowledge of the peculiarities of each methodology
noticeably facilitates the task.
Still, let’s find out what logic is implied in choosing the technique that will make the best fit for your project. Firstly, it’s
necessary to think about:
How precise the requirements are
How lengthy the project is
How complex the project is
How large the budget is
How extensive the client wants the documentation to be
As soon as you have answered these questions, you should integrate them with your knowledge about software
development techniques. Let’s briefly go over each question.
17. CONCLUSION
Methodologies eliminate the need to invent new management and
development techniques. They are a framework for the software
development process. Also, they provide every team member with a clearly
defined plan so that everyone understands what they’re doing, why, and
what’s the final goal.
Different models were created during the SDLC evolution to meet a wide
variety of development requirements and expectations. Nowadays, the world
is moving towards flexibility instead of excessive regularity and orderliness.
Still, agile approaches perfectly combine responsiveness and well-organized
project management.
Reference:
https://www.educba.com/what-is sdlc/
https://existek.com/blog/sdlc-models