What is SDLC?
The software development lifecycle (SDLC) is the cost-effective and
time-efficient process that development teams use to design and build
high-quality software. The goal of SDLC is to minimize project risks
through forward planning so that software meets customer
expectations during production
Why is SDLC important?
Software development can be challenging to manage due to changing
requirements, technology upgrades, and cross-functional collaboration. The
software development lifecycle (SDLC) methodology provides a systematic
management framework with specific deliverables at every stage of the software
development process.
Here are some benefits of SDLC:
•Increased visibility of the development process for all stakeholders involved
•Efficient estimation, planning, and scheduling
•Improved risk management and cost estimation
•Systematic software delivery and better customer satisfaction
How does SDLC work?
The software development lifecycle
(SDLC) outlines several tasks required
to build a software application. The
development process goes through
several stages as developers add new
features and fix bugs in the software.
SDLC Phases:
•Requirement gathering and analysis
•Design
•Implementation or coding
•Testing
•Deployment
•Maintenance
• Requirement Gathering and Analysis
All the relevant information is collected from the customer to develop a product as per their
expectation. Business analyst and Project Manager set up a meeting with the customer to gather all
the information like what the customer wants to build, who will be the end-user, what is the purpose
of the product. Before building a product a core understanding or knowledge of the product is very
important.
For Example,
A customer wants to have an application which involves money transactions. In this case, the
requirement has to be clear like what kind of transactions will be done, how it will be done, in which
currency it will be done, etc.
Once the requirement gathering is done, an analysis is done to check the feasibility of the
development of a product. In case of any ambiguity, a call is set up for further discussion.
Once the requirement is clearly understood, the SRS (Software Requirement Specification) document
is created. This document should be thoroughly understood by the developers and also should be
reviewed by the customer for future reference.
• Design
SRS is the reference for product architects to come out with the best architecture for the product to be
developed. Based on the requirements specified in SRS, usually more than one design approach for the
product architecture is proposed and documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various parameters as risk
assessment, product robustness, design modularity, budget and time constraints, the best design
approach is selected for the product.
• Implementation or Coding
Actual development starts and the product is built. The programming code is generated as
per DDS during this stage. If the design is performed in a detailed and organized manner,
code generation can be accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate the
code. Different high level programming languages such as C, C++, Pascal, Java and PHP are
used for coding. The programming language is chosen with respect to the type of software
being developed.
• Testing
The development team combines automation and manual testing to check
the software for bugs. Quality analysis includes testing the software for
errors and checking if it meets customer requirements. Because many
teams immediately test the code they write, the testing phase often runs
parallel to the development phase.
• Deployment
Once the product is tested and ready to be deployed it is released formally
in the appropriate market. Sometimes product deployment happens in
stages as per the business strategy of that organization. The product may
first be released in a limited segment and tested in the real business
environment (UAT- User acceptance testing).
• Maintenance
After the deployment of a product on the production environment,
maintenance of the product i.e. if any issue comes up and needs to be fixed
or any enhancement is to be done is taken care by the developers
SDLC Models
There are various software development life cycle models defined and designed
which are followed during the software development process. These models are
also referred as Software Development Process Models".
•Waterfall Model
•Iterative Model
•Spiral Model
•V-Model
•Waterfall Model
The Waterfall Model was the 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. In a
waterfall model, each phase must be completed before the next phase can begin and
there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software
development.
The waterfall Model 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. In this waterfall model, the phases do not overlap.
Waterfall Model
Every software developed is different and requires a suitable SDLC approach to be
followed based on the internal and external factors. 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
•There are no ambiguous requirements.
•The project is short.
Waterfall Model - Application
Some of the major advantages of the Waterfall Model are as follows −
•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.
Waterfall Model - Advantages
Waterfall Model -
Disadvantages
The disadvantage of waterfall development is that it does not allow much reflection or
revision. Once an application is in the testing stage, it is very difficult to go back and change
something that was not well-documented or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as follows −
•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.

Software Design Architecture SDA SDLC DETAILS

  • 1.
    What is SDLC? Thesoftware development lifecycle (SDLC) is the cost-effective and time-efficient process that development teams use to design and build high-quality software. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production
  • 2.
    Why is SDLCimportant? Software development can be challenging to manage due to changing requirements, technology upgrades, and cross-functional collaboration. The software development lifecycle (SDLC) methodology provides a systematic management framework with specific deliverables at every stage of the software development process. Here are some benefits of SDLC: •Increased visibility of the development process for all stakeholders involved •Efficient estimation, planning, and scheduling •Improved risk management and cost estimation •Systematic software delivery and better customer satisfaction
  • 3.
    How does SDLCwork? The software development lifecycle (SDLC) outlines several tasks required to build a software application. The development process goes through several stages as developers add new features and fix bugs in the software.
  • 4.
    SDLC Phases: •Requirement gatheringand analysis •Design •Implementation or coding •Testing •Deployment •Maintenance
  • 5.
    • Requirement Gatheringand Analysis All the relevant information is collected from the customer to develop a product as per their expectation. Business analyst and Project Manager set up a meeting with the customer to gather all the information like what the customer wants to build, who will be the end-user, what is the purpose of the product. Before building a product a core understanding or knowledge of the product is very important. For Example, A customer wants to have an application which involves money transactions. In this case, the requirement has to be clear like what kind of transactions will be done, how it will be done, in which currency it will be done, etc. Once the requirement gathering is done, an analysis is done to check the feasibility of the development of a product. In case of any ambiguity, a call is set up for further discussion. Once the requirement is clearly understood, the SRS (Software Requirement Specification) document is created. This document should be thoroughly understood by the developers and also should be reviewed by the customer for future reference.
  • 6.
    • Design SRS isthe reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS - Design Document Specification. This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product. • Implementation or Coding Actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle. Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.
  • 7.
    • Testing The developmentteam combines automation and manual testing to check the software for bugs. Quality analysis includes testing the software for errors and checking if it meets customer requirements. Because many teams immediately test the code they write, the testing phase often runs parallel to the development phase. • Deployment Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometimes product deployment happens in stages as per the business strategy of that organization. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing). • Maintenance After the deployment of a product on the production environment, maintenance of the product i.e. if any issue comes up and needs to be fixed or any enhancement is to be done is taken care by the developers
  • 8.
    SDLC Models There arevarious software development life cycle models defined and designed which are followed during the software development process. These models are also referred as Software Development Process Models". •Waterfall Model •Iterative Model •Spiral Model •V-Model
  • 9.
  • 10.
    The Waterfall Modelwas the 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. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases. The Waterfall model is the earliest SDLC approach that was used for software development. The waterfall Model 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. In this waterfall model, the phases do not overlap. Waterfall Model
  • 11.
    Every software developedis different and requires a suitable SDLC approach to be followed based on the internal and external factors. 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 •There are no ambiguous requirements. •The project is short. Waterfall Model - Application
  • 12.
    Some of themajor advantages of the Waterfall Model are as follows − •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. Waterfall Model - Advantages
  • 13.
    Waterfall Model - Disadvantages Thedisadvantage of waterfall development is that it does not allow much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage. The major disadvantages of the Waterfall Model are as follows − •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.