Desarrollo en cascada

En Ingeniería de software el desarrollo en cascada, también llamado secuencial o ciclo de vida de un programa (denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las siguientes fases), es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.[1]​ Al final de cada etapa, el modelo está diseñado para llevar a cabo una revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.

La versión original fue propuesta por Winston W. Royce en 1970 y posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985.[2]

Un ejemplo de una metodología de desarrollo en cascada es:

  1. Análisis de requisitos.
  2. Diseño del sistema.
  3. Diseño del programa.
  4. Codificación.
  5. Pruebas.
  6. Despliegue del programa.
  7. Mantenimiento.

De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto.

Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy.[3]

  1. S. Pressman, Roger. Ingeniería del software: Un enfoque práctico, 3.ª Edición, Pag. 26-30.
  2. Cataldi, Z., Lage, F., Pessacq, R. y García Martínez, R. Ingeniería de software educativo. Archivado el 29 de diciembre de 2013 en Wayback Machine.
  3. «Fundamentos de Ingeniería de Software».