Software Development Life Cycle
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.
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.
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.