In this tutorial we will discuss SDLC(software development life cycle), that how is the software made, and what steps software goes through to develop accurate software.
SDLC(Software Development Life Cycle)
SDLC is a process in which software goes through various steps to develop as per the client’s requirements. Software development not only requires the codding skills, yes it is necessary and it’s the main part of developing software but SDLC is also necessary because without it we can’t analyze what we have to make or Is we are developing the right thing.
Why do we need SDLC?
We need SDLC to develop the high-quality software, and complete it in a given time period, and also make it within the budget.
We can build software without SDLC also, but in this, there is a risk of budget overload, poor quality software, not being as per client requirement, and many more issues.
And in SDLC, we care about all of these functions, that what is the actual requirement of the client from the software, how we want, In how much budget he is agreed, Is we are developing the right thing.
Let me explain with an example:
Assume you are the builder who builds a school, college, and shopping malls, and a client came to you and ask you to develop a School. Then what will you do- Will you directly start to build the school or first make the list from a client that what design he want’s and how much is his budget.
- You will first ask about his budget.
- Then you will ask what design and how many classes and the room will be there in school.
- After that, you will make a blueprint of that design and shows it to your engineer and the workers.
- After that, you will analyze the requirements and collect the raw material for that.
- After that, you will start building.
All these processes come under Building Life Cycle, as the same happens with Software you have to follow the SDLC process for the software development.
you can read this: What is software engineering? and software crisis
Phases of SDLC
- Feasibility Analysis
- Requirement Analysis
- Gathering and Analysis
- Design Documents
- Development Phase
- Software Testing
- Software Maintenance
Feasibility Analysis is the most important and the first step of every software development life cycle.
It’s a senior-level department, where the main and basic information about the software is collected from the client. This is the main part as all the information and steps are manages by the senior project managers.
Infeasibility analyses we make a good or bad impression on clients as this is the first impression on clients here all the feasibilities are checked as we ensure the client that we are able to solve all his problems regarding this software. Infeasibility check all the resources regarding the software are checked.
Here are some feasibility Checks:
Economically Check: Every customer wants his project under his budget and also the companies have to develop the software under the client’s budget otherwise there is a bad impression on companies image, and there is a risk of the canceled project from the client-side.
Time Check: Time is a very important role in software development, companies have to complete the project or software under the given time by the customer or client.
Operational Check: In this, we check the software is according to the customer’s requirements or not. We have to ensure the project must be as per the customer’s needs, what he wants.
Legal Checks: This is an important check as every software or project which you are launching in the market should meet the cyber laws rules and other policies.
Technical Check: Under this software is checked that is it running on all the platforms of a computer system or does it support the mobile applications also, we have to check all the requirements according to clients that this software should support all the platforms.
After completing the feasibility check our next step is to software development is an analysis of Requirements in software development.
The aim of requirement analysis is to understand what exactly customer’s want’s and then document them properly
In this process, two phases are checked.
- Requirement Analysis
- Requirement Documentation(SRS)
The analysis of requirements is why important let me tell you, In requirement analysis software companies talk and make discussions with the client that what the design he wants, what structure or how many pages, menus, and supported system does he wants.
Let’s take an example that a customer who came to you and ask to develop a food delivery app for him. Then after the feasibility check, you will require the requirement analysis and ask the customer what he want’s in this app.
Then the customer says he wants a logo of his Food delivery Shop then a front page, some menus, images section of food, checkout, and payments gateway with all the features of Paytm and google pay or another payment gateway.
Requirement Documentation (SRS)
After the analysis of software from the customer, the comes to the SRS- Software Requirements specification.
This SRS means, collecting all the information from customers and write it in a systematic order in some documents. This is the key to the project, after all this document is important and this will help developers to do codding for the software.
After identifying requirements from the customer SRS document is ready and then the next phase starts.
After collecting the SRS requirements from the Customer the Design Phase starts the designer team designs the software according to the SRS document. The designing team designs the software or project in their system using various software like Photoshop, Figma, Illustrator or they make the Algorithms, Flowchart, Pseudocode, DFD, ER diagrams.
Designing is also important because if there is a small mistake or misunderstanding of the project then the whole project goes out of customer requirements as the design is directly handed over development team for the actual phase of software development.
Once the designing team completes the design phase then development starts.
They develop the software or any other project which the client had ordered.
The programmer’s team received the blueprint of the project and start codding according to the design. They have told and mentioned already before the statement of the project to develop it in which language whether it is Python, C, C++, Java, or any other language.
This is the main part of software development and programmers start their codding with all the developer’s team including Senior and Junior level Developers, and also the freshers.
After the Development phase is complete the Testing Phase starts.
In this, the software testing team Tests the software is it running as per customers requirement, and is this software running properly.
The testing is so simple word that everyone questions that “Why should we do testing?”
After the development phase, the software is tested by the testing team and there are many defects or some phases that are not running and not working because the developers are not “GOD” they can also do a mistake, so that’s why the tester tests the software.
As we cannot directly handed software to customers we have to do some more steps for this because this can down the image of the company.
After the testing team checks the software and if there is any error or anything which is not as per the customer’s requirements then the testing team handed over it to developers and tell them that this particular thing is not working.
Then the developer again codes for it and removes the bug or error from it, then it is again handed over to the testing team and the testing team checks it and if there is any problem again they again handed over to the developer’s team.
This goes again and again until the bug or error is removed.
After the development and testing team finishes their work the software is handed over customer, but the SDLC is not over here, this is the maintenance period in which the software is handed over customer but it will be the maintenance from time to time.
Software maintenance is a period of time where the bugs arrived that were not develop during the testing phase, so it is handed over to the customer for their feedback to ensure them how the software is developed, is it as per his requirements or not.
Regular maintenance or weekly maintenance is the perfect satisfaction for the customer and it will build the reputation of the company
Here are the phases for which software maintenance is needed.
- For any error or bug corrections
- Upgradaiton in software.
- Speed of software to be faster.
- Payment gateway security up-gradation from time to time.
- Design change over a period of time.
- Modifying the components
You can read these articles also: