El modelo evolutivo es una combinación de modelo iterativo e incrementaldel ciclo de vida del desarrollo de software. Entregar su sistema en un lanzamiento big bang, entregarlo en un proceso incremental a lo largo del tiempo es la acción realizada en este modelo. Es necesario realizar algunos requisitos iniciales y una concepción de la arquitectura. Es mejor para los productos de software cuyos conjuntos de características se redefinen durante el desarrollo debido a los comentarios de los usuarios y otros factores. El modelo de desarrollo evolutivo divide el ciclo de desarrollo en modelos de cascada incrementales más pequeños en los que los usuarios pueden obtener acceso al producto al final de cada ciclo. Los usuarios proporcionan retroalimentación sobre el producto para la etapa de planificación del próximo ciclo y el equipo de desarrollo responde, a menudo cambiando el producto, el plan o el proceso. Por lo tanto, el producto de software evoluciona con el tiempo. Todos los modelos tienen la desventaja de que la duración del tiempo desde el inicio del proyecto hasta el tiempo de entrega de una solución es muy alta. El modelo evolutivo resuelve este problema con un enfoque diferente.
El modelo evolutivo sugiere dividir el trabajo en partes más pequeñas, priorizarlas y luego entregar esas partes al cliente una por una. La cantidad de trozos es enorme y es la cantidad de entregas que se realizan al cliente. La principal ventaja es que aumenta la confianza del cliente ya que constantemente obtiene bienes o servicios cuantificables desde el inicio del proyecto para verificar y validar sus requerimientos. El modelo permite cambiar los requisitos, así como dividir todo el trabajo en partes de trabajo mantenibles. Aplicación del Modelo Evolutivo:
- Se usa en proyectos grandes donde puede encontrar fácilmente módulos para implementación incremental. El modelo evolutivo se usa comúnmente cuando el cliente desea comenzar a usar las funciones principales en lugar de esperar el software completo.
- El modelo evolutivo también se usa en el desarrollo de software orientado a objetos porque el sistema se puede dividir fácilmente en unidades en términos de objetos.
Condiciones necesarias para implementar este modelo: –
- Las necesidades del cliente son claras y se han explicado en profundidad al equipo de desarrolladores.
- Es posible que se requieran pequeños cambios en partes separadas, pero no un cambio importante.
- Como requiere tiempo, debe quedar algo de tiempo para las limitaciones del mercado.
- El riesgo es alto y objetivos continuos para lograr e informar al cliente repetidamente.
- Se utiliza cuando trabajar en una tecnología es nueva y requiere tiempo para aprender.
ventajas:
- En el modelo evolutivo, un usuario tiene la oportunidad de experimentar un sistema parcialmente desarrollado.
- Reduce el error porque los módulos centrales se prueban a fondo.
Desventajas:
- A veces es difícil dividir el problema en varias versiones que serían aceptables para el cliente y que pueden implementarse y entregarse de manera incremental.