SDLC - Modelo de cascada
El modelo de cascada fue el primer modelo de proceso que se introdujo. También se conoce comolinear-sequential life cycle model. Es muy sencillo de entender y utilizar. En un modelo de cascada, cada fase debe completarse antes de que pueda comenzar la siguiente y no hay superposición en las fases.
El modelo Waterfall es el primer enfoque SDLC que se utilizó para el desarrollo de software.
El modelo en cascada ilustra el proceso de desarrollo de software en un flujo secuencial lineal. Esto significa que cualquier fase del proceso de desarrollo comienza solo si la fase anterior está completa. En este modelo de cascada, las fases no se superponen.
Modelo de cascada - Diseño
El enfoque en cascada fue el primer modelo SDLC que se utilizó ampliamente en ingeniería de software para garantizar el éxito del proyecto. En el enfoque "The Waterfall", todo el proceso de desarrollo de software se divide en fases separadas. En este modelo de cascada, típicamente, el resultado de una fase actúa como entrada para la siguiente fase de forma secuencial.
La siguiente ilustración es una representación de las diferentes fases del modelo de cascada.
Las fases secuenciales en el modelo Waterfall son:
Requirement Gathering and analysis - Todos los posibles requisitos del sistema a desarrollar se capturan en esta fase y se documentan en un documento de especificación de requisitos.
System Design- En esta fase se estudian las especificaciones de requisitos de la primera fase y se prepara el diseño del sistema. Este diseño de sistema ayuda a especificar los requisitos del sistema y del hardware y ayuda a definir la arquitectura general del sistema.
Implementation- Con los insumos del diseño del sistema, el sistema se desarrolla primero en pequeños programas llamados unidades, que se integran en la siguiente fase. Cada unidad se desarrolla y prueba para determinar su funcionalidad, lo que se conoce como prueba unitaria.
Integration and Testing- Todas las unidades desarrolladas en la fase de implementación se integran en un sistema después de probar cada unidad. Después de la integración, todo el sistema se prueba para detectar fallas y fallas.
Deployment of system- Una vez realizada la prueba funcional y no funcional; el producto se implementa en el entorno del cliente o se lanza al mercado.
Maintenance- Hay algunos problemas que surgen en el entorno del cliente. Para solucionar esos problemas, se lanzan parches. También para mejorar el producto se lanzan algunas versiones mejores. El mantenimiento se realiza para ofrecer estos cambios en el entorno del cliente.
Todas estas fases están en cascada entre sí en las que se ve el progreso como fluyendo constantemente hacia abajo (como una cascada) a través de las fases. La siguiente fase se inicia solo después de que se logra el conjunto de objetivos definido para la fase anterior y se firma, por lo que el nombre "Modelo de cascada". En este modelo, las fases no se superponen.
Modelo de cascada - Aplicación
Cada software desarrollado es diferente y requiere que se siga un enfoque SDLC adecuado en función de los factores internos y externos. Algunas situaciones en las que el uso del modelo Waterfall es más apropiado son:
Los requisitos están muy bien documentados, son claros y fijos.
La definición del producto es estable.
La tecnología se entiende y no es dinámica.
No hay requisitos ambiguos.
Hay disponibles amplios recursos con la experiencia necesaria para respaldar el producto.
El proyecto es corto.
Modelo de cascada - Ventajas
Las ventajas del desarrollo en cascada son que permite la departamentalización y el control. Se puede establecer un cronograma con fechas límite para cada etapa de desarrollo y un producto puede avanzar a través de las fases del modelo del proceso de desarrollo una por una.
El desarrollo pasa del concepto a través del diseño, la implementación, las pruebas, la instalación, la resolución de problemas y termina en la operación y el mantenimiento. Cada fase del desarrollo procede en estricto orden.
Algunas de las principales ventajas del modelo Waterfall son las siguientes:
Simple y fácil de entender y usar
Fácil de manejar debido a la rigidez del modelo. Cada fase tiene entregables específicos y un proceso de revisión.
Las fases se procesan y completan una a la vez.
Funciona bien para proyectos más pequeños donde los requisitos se entienden muy bien.
Etapas claramente definidas.
Hitos bien entendidos.
Fácil de organizar las tareas.
El proceso y los resultados están bien documentados.
Modelo de cascada - Desventajas
La desventaja del desarrollo en cascada es que no permite mucha reflexión o revisión. Una vez que una aplicación está en la etapa de prueba, es muy difícil volver atrás y cambiar algo que no estaba bien documentado o pensado en la etapa de concepto.
Las principales desventajas del modelo de cascada son las siguientes:
No se produce ningún software que funcione hasta tarde durante el ciclo de vida.
Grandes cantidades de riesgo e incertidumbre.
No es un buen modelo para proyectos complejos y orientados a objetos.
Modelo deficiente para proyectos largos y en curso.
No es adecuado para los proyectos donde los requisitos tienen un riesgo de cambio de moderado a alto. Entonces, el riesgo y la incertidumbre son altos con este modelo de proceso.
Es difícil medir el progreso dentro de las etapas.
No puede adaptarse a los requisitos cambiantes.
Ajustar el alcance durante el ciclo de vida puede poner fin a un proyecto.
La integración se realiza como un "big-bang" al final, lo que no permite identificar temprano ningún cuello de botella o desafío tecnológico o empresarial.