Software Development Life Cycle

development_life_cycle
https://airbrake.io/blog/insight/what-is-the-software-development-life-cycle

SDLC describes phases that provide a model of software cycles and management. Each phase produces what’s needed for the next phase.

The phases of SDLC are:

  1. Requirement gathering and analysis: This phase is about focusing on stake  holders and business. You must ask: who is going to use the program? how are they gonna use it? what data should be in the system?
  2. Desing: Based on the requirements from the previous phase, this one consists in defining the software architecture, such as the software and hardware requirements.
  3. Implementation/Coding: This is the most important phase and the longest one.
  4. Testing: In this phase you check if the product was made according to the requirements.
  5. Deployment: The project is delivered to the user. This is a beta testing, the user will evaluate the system and find any errors or bugs. Then the developers will debug the program and finally have the official product.
  6. Maintenance: Taking care of the software.

The models of SDLC are:

  1. Waterfall: This is the traditional model, it consists in finishing one phase to being with the next one..
  2. V-Shaped: Is similar to the waterfull, but focuses more in the testing phase.
  3. Incremental: The cycle is divided in iterations. The software development begins in the first iterarions.
  4. Prototyping: Consists in creating several prototypes of an application.
  5. Spiral: It combines the waterfall and prototyping models.
  6. Extreme programming (Agile): It uses the incremental model, also it is based on the collaboration of cross-functional teams.

I think developing software based on these phases is very important to create good quality projects.

Source: