Software
Development Life Cycle – SDLC
- Software Development Life Cycle is a process followed by software industries to design,implement and test the software products. SDLC is the acronym for Software DevelopmentLife Cycle.
- SDLC has six
stages while each phase has its own deliverables which serve as the input forthe
next phase.
Six stages of SDLC
1. Requirement gathering &
Analysis
2. Design
3. Implementation & Coding
4. Testing
5. Deployment
6. Maintenance
1. Requirement
gathering & Analysis
Requirement gathering
and analysis is
the fundamental phase
of software development.Business requirements and
specifications are gathered during this phase.
Top level management of the company like
project managers, directors, sales, consulting,marketing and other stakeholders
are mainly involved in drafting the requirements of thesoftware. Answers
to the following
general questions are
answered during the
projectmeeting.
👉What is the purpose of the system?
👉How will the system be used?
👉Who will use the system?
👉What is the required data?
👉What is the outcome/usage of the system?
Deliverable: Business
Requirement Documentation (BRD),
Software
RequirementSpecifications (SRS), Technical Requirement
Specifications documents are created
whichserves as the input for next phase- Design.
2. Design
The
design phase is
the second phase
of software development. System
Architecture isdesigned during
this phase. Design
architects, Business
Analysts are mainly
involved indrafting the design of
the software.
High-level design (HLD) and Low-level design (LLD) are designed with the help of therequirements gathered in the first phase of the software development. Following are some ofthe design documents that helps in developing the software effectively.
👉Use case Diagram
👉Class Diagram
👉Entity-Relationship (ER) Diagram
👉Component Diagram
👉Workflow diagram
👉Activity Diagram
Design documents serve as the input for the
implementation/coding phase. Testers come upwith test strategy during this phase
like what to test and how to test
Deliverable: System Architecture, HLD,
LLD, Detailed Design
Specifications (DDS) arecreated
which serves as the input for next phase – Coding.
3. Implementation/Coding
Coding is the third phase of software
development. Detailed design specifications are used asthe input
by developers to
build the software
product. The main
focus of this
phaseis development. Entire
design will be broken
into modules and
developers will work onindividual modules, then they will
integrate the separate modules into one system finally.
Deliverable: Working software is developed
which serves as the input for the next phase –Testing.
4. Testing
Testing is the fourth phase of software
development. Working software is used for testing.The main focus of this phase
is to ensure quality and to validate the tests against the customerrequirements
to make sure the product satisfies the customer needs. Test cases and test
scriptsare used for testing to validate the requirements. Following types of
testing are done but thelist is not limited:
👉System testing
👉System Integration testing
👉Component testing
👉Component Integration testing
👉Performance testing
👉Usability testing
👉Acceptance testing
Software product bugs, issues, defects are
tracked, reported and retested until the productachieves quality.
Deliverable: Test Summary Report, Test
results, QA plan, Revised bugs list, User Acceptancetest are submitted which
serves as the input for the next phase – Deployment.
5. Deployment
Deployment is the fifth phase of software
development. Once the product is successfullytested, the software product can
be released or deployed to the customers for their usage. If any changes or
enhancements required for the software is also conveyed to the team so thatthe
changes will be incorporated in their subsequent releases.
Beta testing is done at the customer’s site
before the final deployment to ensure the productmeets customer requirements.
Beta testing feedbacks and issues are
reported back to theengineering team to
ensure they address them sooner or later.
Once the issues are fixed, then the product
is finalized and will be ready for final deployment.
Deliverable: Deployed software, Customer’s
review, Live Production environment, and Dataare submitted which serves as the
input for the next phase – Maintenance.
6. Maintenance
Maintenance is
the sixth phase
of software development. Once
the product is
used bycustomers, the issues
faced by them are addressed during the maintenance phase. Supportprovided for
the deployed software is called Maintenance. Handling of bugs those are
missedin the testing phase are taken care of during this phase.
If the deployed system is modified for the
new needs, then the existing system should bemaintained. If existing system
cannot be maintained once the new needs are being added,then the whole software
system should be re-designed to accommodate the new changes. Theperformance of
the system is also monitored during this phase. Maintenance phase
ensureswhether the customer is satisfied with the product that has been
delivered.
Deliverable:
Updated version of the product, Code maintenance, Live system
Types of
SDLC Models
SDLC Models are developed based on the
phases of SDLC. The difference between each model would be the sequence in
which they happen and the interaction between phases. Common and most popular
SDLC Models are,
👉Waterfall Model
👉Agile Model
👉Iterative Model
👉V-Model
👉Spiral Model
👉Big Bang Model