Before building any kind of application, whether it may be desktop or mobile you should know all the phases of software development lifecycle. It will improve the development process and quality of the application. It consists of 5 phases to build an application as per the client requirement in a cost-effective way. Each phase has its own process and it looks like cycle manner. In SDLC lifecycle, we will know about:
- How to gather requirements from customer
- How to analyze the requirements
- Application deployment and maintenance
There are 9 types of software development models. They are Waterfall Model, Spiral Model, Rapid Model, Prototype Model, Increment Model, V Model, Fish Model, W Model, Agile/SCRUM Model. Based on the client requirement, we can choose which model is suitable to build an application. The lifecycle phases will vary based on the development model.
Here we have detail view about each phase,
Requirement Gathering and Analysis
Requirements describe the features of the system we are going to design, develop etc. This is a most crucial phase in the software development lifecycle. Business Analyst will collect basic requirements from the clients like what does the software actually do, who are target customers etc. Based on that, BA will accept or decline the project. If the project is acceptable, BA will focus on what should be achieved and how to achieve it.
After gathering the requirements, BA will prepare requirements document by adding all the customer needs. The requirements document should share with customers and it should accept by the customer. After getting approval from the customer, BA will give an overview for the team(team leads, designer, developers) to accomplish end user requirement. All requirements need to be documented perfectly. So, it will be easy for the whole team to understand the client expectations.
In this phase, system architect and team leaders will discuss software & hardware requirements for the overall system architecture based on the FRS(Functional Requirement Specification). System architect will prepare 2 types of document. One is the High-Level document and another one is the Low-Level document.
In the High-Level document, we will get an overview of what are the modules in the entire system, how we are going to implement each module, link between each module etc. In the Low-Level document, we will design flowcharts, blueprints, in which programming language we are going to implement this application, databases etc.
Only developers will involve in this phase and they will do programmatic part here. This is the longest phase of the SDLC. Developers will divide each module into different tasks and then will start coding/implementing each task. After completion of coding part, developers will do unit testing to find the logical errors in the initial stage.
At the time of unit testing, if developers find any major issue or enhancements regarding requirements they will report to requirements team for further process. After completion of this phase, the system will move to the testing phase.
Testers will test all the modules developed in the previous phase as a complete system. The QA will do different kinds of test approaches to certify the application. Testing types are functional testing, system testing, regression, load testing, performance testing, UAT etc.
QA team will write test cases for each module with the positive and negative scenarios. If they find any bugs at the time of testing, again the development process will take place.
After fixing all the defects, the software will handover to the customer. In this phase, UAT(User Acceptance Testing) will take place. And we should prepare a user document in this phase. The software will be delivered to the limited number of users only.
Once the software is deployed, it should be under maintenance for few days. Because in the user environment we may get errors at the time of functioning. We have to fix those issues to work the software in a smooth manner. And customers may add request any enhancements to improve the software as per the user requirements. If they add any enhancements, again we will do all the process.