Cargando ...

Es un ejemplo de un proceso dirigido por un plan; en principio, se debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.. Modelo en cascada Waterfall ¿Qué es? Es un ejemplo de un proceso dirigido por un plan; en principio, se debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.. Modelo en cascada Waterfall ¿Qué es?

Por Mauricio Costanzo 3 minutos de lectura

Modelo en cascada


Hay veces en las que los requerimientos para cierto problema se comprenden bien. Esta situación se encuentra en ocasiones cuando deben hacerse adaptaciones o mejoras bien definidas a un sistema ya existente (por ejemplo, una adaptación para software de facturación que es obligatorio hacer debido a cambios en las regulaciones gubernamentales). También ocurre en algunos nuevos esfuerzos de desarrollo, pero sólo cuando los requerimientos están bien definidos y tienen poca probabilidad de que cambien. Es aquí donde aplicar un modelo de proceso secuencial guiado por un plan sea la mejor opción para llevar a cabo la gestión de un proyecto de software.

El modelo en cascada, a veces llamado ciclo de vida clásico, sugiere un enfoque sistemático y secuencial para el desarrollo del software, que comienza con la especificación de los requerimientos por parte del cliente y avanza a través de planeación, modelado, construcción y despliegue, para concluir con el apoyo del software terminado. Debido al paso de una fase en cascada a otra, este modelo se conoce como “modelo en cascada”.

Es un ejemplo de un proceso dirigido por un plan; en principio, se debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.

Actividades del modelo

Las principales etapas del modelo en cascada reflejan directamente las actividades fundamentales del desarrollo:

Actividades del modelo en cascada

1- Análisis y definición de requerimientos

Los servicios, las restricciones y las metas del sistema se establecen mediante consulta a los usuarios del sistema. Luego, se definen con detalle y sirven como una especificación del sistema.

2- Diseño del sistema y del software

El proceso de diseño de sistemas asigna los requerimientos, para sistemas de hardware o de software, al establecer una arquitectura de sistema global. El diseño del software implica identificar y describir las abstracciones fundamentales del sistema de software y sus relaciones.

3- Implementación y prueba de unidad

Durante esta etapa, el diseño de software se rea liza como un conjunto de programas o unidades del programa. La prueba de unidad consiste en verificar que cada unidad cumpla con su especificación.

4- Integración y prueba de sistema

Las unidades del programa o los programas individuales se integran y prueban como un sistema completo para asegurarse de que se cumplan los requerimientos de software. Después de probarlo, se libera el sistema de software al cliente.

5- Operación y mantenimiento

Por lo general (aunque no necesariamente), ésta es la fase más larga del ciclo de vida, donde el sistema se instala y se pone en práctica. El mantenimiento incluye corregir los errores que no se detectaron en etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema e incrementar los servicios del sistema conforme se descubren nuevos requerimientos.

Un poco de la turbulenta historía del modelo en cascada

El pobre Winston Royce pagó todos los platos rotos ....

Winston W. Royce (1929 – 7 de junio de 1995) fue un computólogo Americano, director en el Centro de Tecnología de Software Lockheed en Austin, Texas. Fue un pionero en el campo de ingeniería de software,1​ conocido por su papel en 1970 el cual el modelo en cascada de ingeniería de software se extrajo por error.

La creación del modelo en cascada (waterfall) es adoptado e institucionalizado por el Departamento de Defensa de los Estados Unidos como consecuencia de una mala interpretación del trabajo de Winston Royce, “Managing the Development of Large Software Systems”, donde el autor sugiere que este tipo de enfoque para el desarrollo de software es arriesgado y que invita al fracaso. Royce comentaba que los cambios de diseño son propensos a ser tan disruptivos que los requisitos software sobre los que el diseño se basa y que son la justificación de todo serán violados. O bien los requisitos deben ser modificados, o se requiere un cambio sustancial en el diseño. En efecto, el proceso de desarrollo ha vuelto al origen y se puede esperar hasta sobrecostes del 100% en el horario y/o costos. El hijo de Royce escribió que su padre sentía mucho que todo el mundo pensase que promovió él el uso del ciclo de vida en cascada. Y decía que su padre siempre había sido un defensor del desarrollo iterativo e incremental. El nombre de “cascada” se lo pusieron en el 76, Thomas y Thayer, en el artículo “Software Requirements: Are They Really A Problem?”.

Críticas al modelo

ingeniería de software

El modelo de la cascada es el paradigma más antiguo de la ingeniería de software . Sin embargo, en las últimas tres décadas, las críticas hechas al modelo han ocasionado que incluso sus defensores más obstinados cuestionen su eficacia.

Entre los problemas que en ocasiones surgen al aplicar el modelo de la cascada se encuentran los siguientes:

  • Es raro que los proyectos reales sigan el flujo secuencial propuesto por el modelo. Aunque el modelo lineal acepta repeticiones, lo hace en forma indirecta. Como resultado, los cambios generan confusión conforme el equipo del proyecto avanza.
  • A menudo, es difícil para el cliente enunciar en forma explícita todos los requerimientos. El modelo de la cascada necesita que se haga y tiene dificultades para aceptar la incertidumbre natural que existe al principio de muchos proyectos.
  • El cliente debe tener paciencia. No se dispondrá de una versión funcional del(de los) programa(s) hasta que el proyecto esté muy avanzado. Un error grande sería desastroso si se detectara hasta revisar el programa en funcionamiento.
  • En un análisis interesante de proyectos reales, se encontró que la naturaleza lineal del ciclo de vida clásico llega a “estados de bloqueo” en los que ciertos miembros del equipo de proyecto deben esperar a otros a fin de terminar tareas interdependientes. En realidad, ¡el tiempo de espera llega a superar al dedicado al trabajo productivo! .

    Hoy en día, el trabajo de software es acelerado y está sujeto a una corriente sin fin de cambios (en las características, funciones y contenido de información). El modelo en cascada suele ser inapropiado para ese tipo de labor. No obstante, sirve como un modelo de proceso útil en situaciones en las que los requerimientos son fijos y el trabajo avanza en forma lineal hacia el final .

Sobre el autor
Mauricio Costanzo es programador e impulsor de proyectos online. Inició su carrera como programador en el año 2014 y al día de hoy se dedica a desarrollar las ideas que empresas e instituciones desean convertir en realidad. También es fundador de Worldmaster (ecommerce de tecnología) y de EasySocio (Web/App para administrar gimnasios).
Artículos relacionados
Proceso de descubrir, analizar, documentar y verificar los servicios que debe brindar un
sistema y sus restricciones.

Especificación del software

Proceso de descubrir, analizar, documentar y verificar los servicios que debe brindar un sistema y sus restricciones.

Leer más

Existen cuatro grupos de actividades fundamentales que están presentes en todos los procesos de software (se trate de un simple programa o de un gran sistemas).

Actividades de la ingeniería de software

Existen cuatro grupos de actividades fundamentales que están presentes en todos los procesos de software (se trate de un simple programa o de un gran sistemas).

Leer más

Modelo de Desarrollo Incremental. Harlan Mills en el año 1980. Se basa en el
desarrollo a partir del incremento de la funcionalidades del programa, se puede considerar un precursor de las modernas metodologías iterativas.

Qué es el desarrollo incremental

Modelo de Desarrollo Incremental. Harlan Mills en el año 1980. Se basa en el desarrollo a partir del incremento de la funcionalidades del programa, se puede considerar un precursor de las modernas metodologías iterativas.

Leer más

Un proceso de software es una serie de actividades relacionadas que conducen a la elaboración de un producto de software.

Qué es un proceso de software

Un proceso de software es una serie de actividades relacionadas que conducen a la elaboración de un producto de software.

Leer más

Definición y explicación del proceso de construcción de un sistema aplicando la Ingeniería de Software

Qué es la ingeniería de Software

Definición y explicación del proceso de construcción de un sistema aplicando la Ingeniería de Software

Leer más

¿Realmente sabes lo qué es el Software?

Qué es el software

¿Realmente sabes lo qué es el Software?

Leer más

Todos los derechos reservados {{empresa.name}} © 2020 |
Desarrollado por Mauricio Costanzo