Software Development Life Cycle
Published Feb 26, 2023
Contribute to Docs
The Software Development Life Cycle (SDLC) is a structured process that is ideally used to efficiently produce cost-effective and high-quality software. It is a standard industry approach to software development that documents an entire project and timeline. Through clear documentation, internal stakeholders can collectively understand the direction of a project.
Phases
The SDLC phases are as follows:
- Plan: The phase where requirement gathering and analysis takes place. It involves brainstorming ideas to solve some problem as a result of customer feedback or need.
- Define: The phase where requirement defining takes place and involves creating a Software Requirement Specification (SRS). The SRS document defines the purpose, product, and technical requirements. This allows everyone working on the software to understand the product’s mission.
- Design: Based on the SRS and results in a Design Document Specification (DDS). The DDS is reviewed by all stakeholders based on a set of criteria.
- Develop: The building phase that deals with reviewing and implementing code that will be integrated into the software.
- Test and Integrate: The phase that software tests are performed to determine if the software satisfies the SRS. If it meets requirements, then the product or feature is integrated into the software.
- Maintain: An ongoing phase that involves supporting and updating the software as needed.
Models
The Waterfall Model was the first model to be created, however, there are currently many different models for implementing a SDLC:
- Agile: Iterative development and continuous integration. The scrum methodology is a common implementation of the agile model in which teams work in sprints. Sprints are time-constrained periods where a team works to complete a certain goal.
- Big Bang: Named after the physical theory, this model involves creating a product through available resources for technical development. There is little planning or documenting.
- Iterative: Depending on the requirements of the product, the software is modified upon each iteration and changes are released as a new version of the software.
- Prototype: A prototype, that does not necessarily represent the final logic of the software, is created and tested until it meets requirements for deployment or integration.
- Rapid Application Development (RAD): Meets requirements through prototyping iteratively.
- Spiral: Based on the waterfall and iterative models.
- V: Based on the waterfall model.
- Waterfall: The goal is to create a minimum viable product (MVP). Each phase in the SDLC must be completed before moving on to the next phase.
Software Development Life Cycle
- Agile Model
- Emphasizes iteration, flexibility, and cross-team collaboration.
- Big Bang Model
- A software development model without specific processes.
- Iterative Model
- An approach to software development that emphasizes the importance of incremental progress and continuous feedback in the software development lifecycle (SDLC).
- Prototype Model
- The Prototype model involves creating a simplified model of the product to test its concept and functionality.
- Rapid Application Development (RAD)
- Rapid Application Development (RAD) is a software development methodology that emphasizes quick prototyping and iterative development to meet the requirements of a project.
- Spiral Model
- Combines the Waterfall model with iterative development.
- V Model
- Focused on the validation and verification of the product.
- Waterfall Model
- Creates a minimum viable product through phases that are completed in a specific order.
Contribute to Docs
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.