Modelo de Cascada
¿Qué es?
También llamado secuencial o ciclo de vida de un programa, es un procedimiento lineal que se caracteriza por dividir los procesos de desarrollo en sucesivas fases de proyecto. Al contrario que en los modelos iterativos, cada una de estas fases se ejecuta tan solo una vez. Los resultados de cada una de las fases sirven como hipótesis de partida para la siguiente. El waterfall model se utiliza, especialmente, en el desarrollo de software.
Características
• Es el más utilizado.
• Es una visión del proceso de desarrollo de software como una sucesión de etapas que produce productos intermedios.
• Si se cambia el orden de las fases, el producto final será de inferior calidad.
Ventajas
1. Una estructura sencilla gracias a unas fases de proyecto claramente diferenciadas.
2. La cantidad de recursos necesarios para implementar este modelo es mínima.
3. Buena documentación del proceso de desarrollo a través de unos hitos bien definidos.
4. Los costes y la carga de trabajo se pueden estimar al comenzar el proyecto.
Desventajas
1. El usuario final no se integra en el proceso de producción hasta que no termina la programación.
2. En ocasiones, los fallos solo se detectan una vez finalizado el proceso de desarrollo.
3. Se tarda mucho tiempo en para por todo el ciclo.
4. Es difícil incorporar nuevas cosas si se quiere actualizar.
¿Quién lo creo?
El modelo en cascada para la ingeniería de software se atribuyó erróneamente a Royce. Barry Boehm escribió en 1987: El papel de Royce de 1970 es generalmente considerado como el papel en el cual se definen las etapas del modelo “cascada” del proceso de software.
¿Cómo funciona?
Requisitos del sistema
La primera fase se ocupa de los requisitos que no están relacionados con el producto digital en sí, sino más bien con aspectos relevantes para la empresa como el precio y la disponibilidad. Aquí también se especifican los aspectos de documentación y seguridad. En general, aquí se mencionan los requisitos no funcionales.
Requisitos del software
Los requisitos funcionales del software se definen en la segunda fase. La pregunta sobre lo que el software debe ser capaz de hacer se responde aquí y se aclara en "especificaciones", que también incluye los resultados de la primera fase.
Análisis de requerimientos
En la fase de análisis de requisitos, las funciones del software se diseccionan y estructuran de modo que los elementos funcionales individuales y las unidades funcionales puedan separarse entre sí. El análisis de necesidades tiene por objeto examinar la viabilidad e importancia de las funciones. Los resultados de esta fase son las especificaciones que contienen los requisitos que hay que desarrollar.
Diseño de programas
El diseño técnico se implementa ahora con la ayuda de estas especificaciones de requisitos. Los componentes de esta fase también incluyen decisiones sobre la arquitectura de la información y las tecnologías aplicadas, tales como lenguajes de programación, bibliotecas de clases y secuencias de programas. El resultado del diseño del programa se registra generalmente en diagramas que describen el comportamiento teórico del software.
Implementación
Durante la implementación, las estructuras y los flujos de trabajo se implementan teniendo en cuenta las condiciones marco y los objetivos sistémicos. El diseño de software se convierte en un programa directamente relacionado con un sistema operativo, uno o más lenguajes de programación y la infraestructura. El resultado suele ser un software operativo, a menudo en versión beta.
Probando
La fase de implementación es seguida por la prueba de todos los componentes de software, módulos y todo el sistema. También se comprueba la integración en sistemas operativos específicos. Si se producen errores y conflictos, deben repararse inmediatamente. Esto podría dar lugar a un aumento de los costes globales, ya que los posibles errores pueden atribuirse a diferentes fases y no siempre se producen en la fase anterior.
Lanzamiento
El software se implementa después de la aceptación por parte del cliente. Las actualizaciones y el mantenimiento pueden ser necesarios antes de que el producto entre en una tienda o se entregue al cliente.