El software evoluciona con el tiempo. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el software. Las fechas de mercado y la competencia, hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo, por lo que se debe introducir una versión funcional, para aliviar las presiones competitivas.
En esas u otras situaciones, los desarrolladores necesitan modelos de progreso que estén diseñados para acomodarse a una evolución temporal o progresiva, donde los requisitos son conocidos de antemano, aunque no estén bien definidos.
En el modelo Cascada y Cascada Realimentado no se tiene en cuenta la naturaleza del software, se plantea con requisitos bien conocidos y definidos desde el inicio.
Uno de los problemas del ciclo de vida en cascada es que si se entienden mal los requisitos, estos sólo se descubrirán cuando se entregue el producto. En sistemas pequeños la vuelta atrás no supone grandes esfuerzos, pero en los grandes sistemas esto puede suponer el fracaso de un proyecto software.
Para evitar este problema se pueden utilizar modelos de desarrollo evolutivos, que se basan en ir aproximándose a la consecución del producto software deseado a tandas, desde soluciones más simples, e ir iterando fase a fase hasta llegar a la solución final satisfactoria para el cliente.
Los evolutivos son modelos iterativos. Permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado. Incluso pueden evolucionar más allá durante la fase de operación. Resulta ser un modelo muy útil cuando desconocemos la mayoría de los requerimientos iniciales, o estos requerimientos no están completos.
En esas u otras situaciones, los desarrolladores necesitan modelos de progreso que estén diseñados para acomodarse a una evolución temporal o progresiva, donde los requisitos son conocidos de antemano, aunque no estén bien definidos.
En el modelo Cascada y Cascada Realimentado no se tiene en cuenta la naturaleza del software, se plantea con requisitos bien conocidos y definidos desde el inicio.
Uno de los problemas del ciclo de vida en cascada es que si se entienden mal los requisitos, estos sólo se descubrirán cuando se entregue el producto. En sistemas pequeños la vuelta atrás no supone grandes esfuerzos, pero en los grandes sistemas esto puede suponer el fracaso de un proyecto software.
Para evitar este problema se pueden utilizar modelos de desarrollo evolutivos, que se basan en ir aproximándose a la consecución del producto software deseado a tandas, desde soluciones más simples, e ir iterando fase a fase hasta llegar a la solución final satisfactoria para el cliente.
Los evolutivos son modelos iterativos. Permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado. Incluso pueden evolucionar más allá durante la fase de operación. Resulta ser un modelo muy útil cuando desconocemos la mayoría de los requerimientos iniciales, o estos requerimientos no están completos.
Ventajas del modelo cascada:
- Es el más fácil de entender.
- La planificación es sencilla.
- La calidad del producto resultante es alta
Desventajas del modelo cascada:
- Lo normal es que el cliente no tenga definidas las especificaciones del sistema, o puede ser que surjan necesidades imprevistas.
- El cliente debe tener paciencia, ya que el software no estará disponible hasta muy avanzado el proyecto.
- Si se han cometido errores en una fase, es difícil volver atrás.
- Es más lento que los demás y el coste es mayor también.
- El sistema no se pone en funcionamiento hasta la fase final del proyecto, por lo cual el cliente no verá los resultados hasta el final, con lo que puede impacientarse.
Ventajas del modelo evolutivo:
- Gestionan bien la naturaleza evolutiva del software.
- La inversión en los proyectos se puede ir haciendo gradualmente.
- Aptos para sistemas software grandes o medios.
- Se adaptan bien a los cambios:
- Los cambios de requisitos del producto se pueden introducir en las versiones posteriores.
- Las fechas de entrega son más realistas.
Desventajas del modelo evolutivo:
- Difícil de evaluar el coste total.
- Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo.
- Requiere gestores experimentados.
- Los errores en los requisitos se detectan tarde.
Fuentes:
- Apuntes del profesor.
- http://es.wikipedia.org/wiki/Software#Modelo_cascada
- http://es.wikipedia.org/wiki/Software#Modelos_evolutivos
- http://alarcos.inf-cr.uclm.es/doc/ISOFTWAREI/Tema03.pdf
No hay comentarios:
Publicar un comentario