The Software Development Life Cycle (SDLC) is a framework that defines activities performed throughout the software development process.
This is the first phase of any SDLC model. The project objective is determined during this phase. The client and company developing the software decide if they should keep the existing system as is, if changes are necessary, or if there is a need for new software. In the event that there is a need for new software, an estimate of resources (e.g., people, cost, etc.) is established during this phase. This information is then assembled into a project plan and submitted for management approval.
The stakeholders, system users, and developers meet during this phase to decide the requirements of the application they are building. The goal of this phase is for everyone to understand each software requirement and the scope of work. Questions that require answers during this phase include:
Next, a software requirement specification (SRS) document is created. This SRS document acts as the guidelines for the next phase.
Crafting a high-level design of the software build is the primary objective of the third SDLC phase. Decisions are made about hardware and software required to build the product, in addition to the system architecture. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams, and pseudo codes (when applicable). A design specification document (DSD) records this information.
Within this phase, engineers code the software as per the established requirements and design. The front-end, backend, and the connection between the two are created during what is often the longest phase of the SDLC.
The testing phase ensures that the software requirements are in place and that the software works as expected. In the event that a defect is identified, testers inform the developers. If the defect is valid, developers resolve it and create a new version of the software which then repeats the testing phase. The cycle continues until all defects are mitigated and the software is ready for deployment into the production environment.
Once there are no issues present within the software, it is deployed into the production environment. At this point, customers test the software (also known as beta testing). Any bugs identified within this phase go to the engineering team for resolution. The final deployment takes place once all bugs are resolved. Once the software moves into production, the maintenance team monitors the software’s performance and continuously evaluates it. If there are any issues in production, the team works to mitigate them immediately.
The primary advantages of pursuing an SSDLC approach include:
The Agile Security Manifesto