CICLO DE VIDA EN CASCADA:
Modelo cascada: Este modelo es muy útil pues ayuda a los desarrolladores a comprender qué es lo que tienen que hacer en cada momento. Su simplicidad hace que resulte sencillo explicárselo a los clientes que no están familiarizados el proceso software. Además, se muestran de forma explícita qué productos intermedios se tienen que obtener antes de abordar las siguientes tareas.
Una modificación sobre este modelo consiste en la introducción de una revisión y vuelta atrás, con el fin de corregir las deficiencias detectadas durante las distintas etapas, o para completar o aumentar las funcionalidades del sistema en desarrollo, resultando un diagrama de fases y etapas tal como el que se muestra en la Figura 2. De esta manera, durante cualquiera de las fases se puede retroceder momentáneamente a una fase previa para solucionar los problemas que se pudieran haber encontrado.
Ventajas:
- Es un modelo sencillo y disciplinado
- Es fácil aprender a utilizarlo y comprender su funcionamiento
- Está dirigido por los tipos de documentos y resultados que deben obtenerse al final de cada etapa
- Ha sido muy usado y, por tanto, está ampliamente contrastado
- Ayuda a detectar errores en las primeras etapas a bajo costo
- Ayuda a minimizar los gastos de planificación, pues se realiza sin problemas
Desventajas:
- Los proyectos raramente siguen el proceso lineal tal como se definía originalmente el ciclo de vida
- Es difícil que el cliente exponga explícitamente todos los requisitos al principio
- El cliente debe tener paciencia pues obtendrá el producto al final del ciclo de vida
- No refleja exactamente cómo se programa realmente el sistema, en el que suele haber un gran componente iterativo
- Puede resultar complicado regresar a etapas anteriores (ya acabadas) para realizar correcciones
- El producto final obtenido puede que no refleje todos los requisitos del usuario
MODELO LINEAL SECUENCIAL:
Ciclo de vida básico del software”, sugiere un enfoque sistemático, secuencial para el desarrollo de software. Inicia en un nivel de sistemas y progresa con el análisis, diseño, implementación, pruebas y mantenimiento.
Ventajas
- Se debe tener en cuenta que como es el primer modelo empleado, es mejor que ninguno.
- Facilita la gestión de desarrollo.
Desventajas:
- Los proyectos reales raras veces siguen el modelo secuencial que propone el modelo.
- A menudo es difícil que el cliente exponga explícitamente todos los requerimientos.
- El cliente debe tener paciencia. Un grave error puede ser desastroso
- Cada uno de estos errores es real. Sin embargo el paradigma del ciclo de vida clásico tiene lugar definido e importante trabajo de la ingeniería del software.
CICLO DE VIDA ESPIRAL: El modelo incorpora un nuevo elemento en el desarrollo de software como es el “análisis de riesgos” y define cuatro actividades principales
- Planificación -> Determina objetivos, alternativas y restricciones.
- Análisis de riesgo–
> Evalúa alternativas, identifica y resuelve riesgos. - Ingeniería -> Desarrollo y verificación del producto del siguiente nivel.
- Evaluación del cliente -> Valoración de los resultados y planificación de la siguiente fase.
Con cada iteración alrededor de la espiral (comenzando en el centro y siguiendo hacia el exterior), se van construyendo sucesivas versiones del software, cada vez más completas. Durante la primera vuelta de la espiral, en el primer cuadrante (superior izquierdo) se determinan objetivos, alternativas y restricciones; y en el segundo cuadrante (superior derecho) se analizan e identifican los riesgos (¿se dispone de personal?, ¿está preparado?, ¿existe mercado para el producto?, etc.). Si el análisis de los riesgos indica que existe incertidumbre en los requisitos se puede desarrollar un prototipo para su valoración, y también se pueden usar simulaciones y otros modelos para definir más el problema y refinar los requisitos. En el cuadrante tercero (inferior derecho) se incorporan incrementalmente las etapas del ciclo de vida tradicional en cada ciclo de la espiral.
En el cuarto cuadrante (inferior izquierdo) el cliente evalúa el trabajo de ingeniería de esa espiral y sugiere modificaciones. Basándose en los comentarios del cliente, se produce la siguiente fase de planificación y de análisis de riesgos. En cada bucle alrededor de la espiral, al finalizar el análisis de riesgo, se debe tomar la decisión de seguir adelante o no con el proyecto. Si se sigue avanzando, cada vuelta alrededor de la espiral conduce más hacia fuera, hacia un modelo más completo del sistema, y al final al propio sistema operacional. Cada vuelta requiere más desarrollo de ingeniería de software, y el número de actividades del tercer cuadrante aumenta al alejarse del centro de la espiral.
El paradigma del modelo en espiral es actualmente el enfoque más realista en la ingeniería del software tradicional para sistemas grandes, ya que utiliza un enfoque evolutivo que permite al ingeniero y al cliente entender y reaccionar a los riesgos que se detectan en cada espiral. Utiliza la creación de prototipos como un mecanismo de reducción del riesgo y mantiene el enfoque del ciclo de vida clásico, pero incorporándolo dentro de un proceso iterativo que refleja de forma más realista el mundo real. No se disponen de cifras comparativas de su bondad con respecto a otros ciclos de vida, pero indudablemente sus resultados parecen superiores ya que engloba a los ciclos clásicos y de prototipos.
Ventajas:
- Utiliza un sistema de control de Riesgos para el desarrollo del software.
- Puede interrumpirse si los riesgos son altos.
- Modelo muy utilizado para el desarrollo de grandes proyectos, como desarrollo de Sistemas Operativos
Desventajas:
- Modelo que no garantiza que se conseguirá un producto final.
- El desarrollo del sistema lleva bastante tiempo y recursos, por lo que no es recomendable para emprendimientos a pequeña escala.