What is Software Development Life Cycle (SDLC)?
Step by step process of developing an application is known as SDLC. SDLC is a process used by the software industry to design, develop and test high-quality software.
Purpose of SDLC
It aims to produce quality software that meets customer expectations and reaches completion within time & budget.
SDLC Phases
- Requirement collection
- Feasibility study
- Design
- Coding
- Testing
- Installation
- Maintenance
Requirement collection
In this phase, we collect the business need of a customer in the form of a requirement document.
Feasibility study
Based on the customer requirement the team sits & decides if the project is durable or not.
Design
It is like a blueprint of an application that represents the flow of the application, modules, and components.
Coding
Once the blueprint is ready then the developer starts writing the logic or the program to develop an application.
Testing
Once the application is handed over to the Test engineer, they started checking the functionality of an application as per the requirement document, it is known as the “testing process”.
During the testing process, We (T.E) may find some bugs or defects which is given to the developer, and they fix them, WE (T.E) retest it and close the bug if it is working.
This process of testing the application goes on until the software becomes stable or bug-free.
Installation
After the application is Developed, Tested & Stable then the application is handed over to the customer I.E installed & deployed to the customer’s place.
Maintenance
After the application release is completed the customer may face some issues that need to be fixed as soon as possible & handed to the customer. This task is done under the maintenance phase.
Summery
(This is how we develop all the Software or application in the software industry.)
Models of SDLC
- Waterfall model
- Spiral model
- Prototype model
- V-V model
- Hybrid model
- Agile methodology
Waterfall Model
- It is a basic model. (All other models derived from the Waterfall model
- The developer used to test the application
- No parallel deliverable (No two teamwork at a time)
Advantages of the Waterfall Model:
- The waterfall model is a simple model which can be easily understood and is the one in which all the phases are done step by step.
Disadvantages of the Waterfall model:
- The waterfall model is time-consuming.
- No Requirement change is allowed.
Note-: When do we go for the waterfall model?
Generally, we go for the waterfall model only in the case of life-critical (Health care applications), Machine critical (Military base software).
Spiral model
Developing an application module by module & Delivering it to the customer is called the “Spiral model.”
Advantages
- Flexible for changing the requirements
- Customers can use the application part in the early stage.
- The developer and Test engineer will have more knowledge of the application.
Disadvantages
- No parallel deliverable (No two teamwork at a time)
- Requirement review doesn’t exist
Prototype model
in the prototype model where we develop a prototype, test a prototype & get the customer approval then we start our actual work like Design, coding, testing, installation & Maintenance
The actual software is built using the Waterfall model approach.
Advantages of the Prototype Model
- Customer satisfaction possible
- Customer review is possible
- Customer rejection is less
- The prototype can use for similar application
Disadvantages of Prototype Model
- No parallel deliverable
- Requirement review doesn’t exist.
- Time-consuming (If the customer keeps rejecting the prototype)
V-Model
In this model first execution happens in the Downward direction and after a certain point, we have an upward direction to complete the project during this process it came into a V shape. Hence it is known as the V model.
Advantages of the V –V Model
- It is a simple and easily understandable model.
- Parallel deliverable.
- Test documents can be reused
- Test engineers have good product knowledge.
- Customers get Robust product
Disadvantages of the V-V Model
- Time-consuming
- High-cost model
Note1-: V model is best suited for large & complex applications.
Hybrid-Model
A hybrid model means a combination of two or more models
For example
- Prototype+Spiral
- V model + prototype
Note-Generally we go for the hybrid model whenever we want to get the characteristic of multiple models in a single model.
Agile-Model
- It is an iterative or incremental approach.
- It is a method to develop and delivered a high-quality product or software application in the fastest way according to customer requirements.
Advantages of Agile Model:
- It allows more flexibility to adapt to the changes.
- The new feature can be added easily.
- Requirement change allowed.
- The release will be very fast
- Customers no need to wait a long time
Disadvantages:
Less focus on the documentation.