is a systematic process for building high-quality software that meets customer expectations and completed in the pre-defined time frame and cost.
SDLC is about how to plan, build, and maintain specific software.
Every phase of the SDLC has own process and they go one by one.
SDLC process divided into the following phases:
Phase 1 Analysis of requirements
It is the first stage in the SDLC process. It is a responsibility of the senior team members and all the stakeholders and domain experts in the industry. Should be done planning for the quality assurance requirements and recognization of the risks involved. At this stage, we can see more clearly the scope of the entire project, the anticipated issues, and opportunities.
Phase 2 Feasibility study
The second step is to define and document software needs based on 'Software Requirement Specification' document where is included everything which should be designed and developed during the project life cycle.
There are mainly five types of feasibilities checks:
Economic: whether we fit in the budget or not
Legal: can we handle this project as cyber law and other regulatory framework/compliances.
Operation feasibility: Can we create operations that are expected by the client?
Technical: whether our computer system can support the software
Schedule: whether we fit into the schedule or it should be corrected
Phase 3: Design:
Preparation of the system and software design documents based on the requirement specification document. We can define the overall system architecture.
There are two kinds of design documents developed in this phase:
High-Level Design (HLD) explains the architecture that is used for developing a software product.
Low-Level Design(LLD) is a component-level design process that follows a step-by-step refinement process. This process can be used for designing data structures, required software architecture, source code, and ultimately, performance algorithms.
Phase 4 Coding
In this phase, developers start to build the entire system by writing code using the chosen programming language. It is the longest phase of the Software Development Life Cycle process.
Phase 5 Testing
The testing team starts testing the functionality of the entire system in the testing environment. Verifying that the entire application works according to the customer requirement.
During this phase, QA and testing team may find some bugs/defects. The development team fixes the bug and sends back to QA for a re-test. This process continues until the software is bug-free, stable, and work according to the business needs of that system.
Phase 6 Installation/Deployment
The final deployment process starts after the software testing phase is ended.
Phase 7 Maintenance
Customers start to use the developed system.
The maintaining can be in the following way:
Bug fixing
Upgrade
Enhancement
There are different Software development methodologies.
Few words about some of them.
Waterfall is the traditional linear approach to software development. It's a step-by-step process that typically involves gathering requirements, formalizing a design, implementing code, code testing and remediation and release.
Agile is a team-oriented software development methodology. Each step in the work process is a sprint.
Scrum is a combination of both processes where developers are split into teams to handle specific tasks, and each task is separated into multiple sprints.