SDLC - Modelo iterativo
En el modelo iterativo, el proceso iterativo comienza con una implementación simple de un pequeño conjunto de requisitos de software y mejora de manera iterativa las versiones en evolución hasta que el sistema completo está implementado y listo para ser implementado.
Un modelo de ciclo de vida iterativo no intenta comenzar con una especificación completa de requisitos. En cambio, el desarrollo comienza especificando e implementando solo una parte del software, que luego se revisa para identificar más requisitos. Luego, este proceso se repite, produciendo una nueva versión del software al final de cada iteración del modelo.
Modelo iterativo - Diseño
El proceso iterativo comienza con una implementación simple de un subconjunto de los requisitos de software y mejora iterativamente las versiones en evolución hasta que se implementa el sistema completo. En cada iteración, se realizan modificaciones de diseño y se agregan nuevas capacidades funcionales. La idea básica detrás de este método es desarrollar un sistema a través de ciclos repetidos (iterativos) y en porciones más pequeñas a la vez (incrementales).
La siguiente ilustración es una representación del modelo iterativo e incremental:
El desarrollo iterativo e incremental es una combinación de diseño iterativo o método iterativo y modelo de construcción incremental para el desarrollo. "Durante el desarrollo de software, más de una iteración del ciclo de desarrollo de software puede estar en progreso al mismo tiempo". Este proceso puede describirse como un enfoque de "adquisición evolutiva" o "construcción incremental" ".
En este modelo incremental, todo el requisito se divide en varias versiones. Durante cada iteración, el módulo de desarrollo pasa por las fases de requisitos, diseño, implementación y prueba. Cada versión posterior del módulo agrega función a la versión anterior. El proceso continúa hasta que el sistema completo está listo según el requisito.
La clave para un uso exitoso de un ciclo de vida de desarrollo de software iterativo es la validación rigurosa de los requisitos y la verificación y prueba de cada versión del software frente a esos requisitos dentro de cada ciclo del modelo. A medida que el software evoluciona a través de ciclos sucesivos, las pruebas deben repetirse y ampliarse para verificar cada versión del software.
Modelo iterativo: aplicación
Como otros modelos SDLC, el desarrollo iterativo e incremental tiene algunas aplicaciones específicas en la industria del software. Este modelo se utiliza con mayor frecuencia en los siguientes escenarios:
Los requisitos del sistema completo están claramente definidos y comprendidos.
Deben definirse los requisitos principales; sin embargo, algunas funcionalidades o mejoras solicitadas pueden evolucionar con el tiempo.
Hay un momento para la restricción del mercado.
Se está utilizando una nueva tecnología y el equipo de desarrollo la está aprendiendo mientras trabaja en el proyecto.
Los recursos con los conjuntos de habilidades necesarios no están disponibles y se planea usarlos por contrato para iteraciones específicas.
Hay algunas características y objetivos de alto riesgo que pueden cambiar en el futuro.
Modelo iterativo: pros y contras
La ventaja de este modelo es que existe un modelo funcional del sistema en una etapa muy temprana de desarrollo, lo que facilita la búsqueda de fallas funcionales o de diseño. Encontrar problemas en una etapa temprana de desarrollo permite tomar medidas correctivas con un presupuesto limitado.
La desventaja de este modelo SDLC es que es aplicable solo a proyectos de desarrollo de software grandes y voluminosos. Esto se debe a que es difícil dividir un pequeño sistema de software en más pequeños incrementos / módulos útiles.
Las ventajas del modelo SDLC iterativo e incremental son las siguientes:
Algunas funciones de trabajo se pueden desarrollar de forma rápida y temprana en el ciclo de vida.
Los resultados se obtienen de forma temprana y periódica.
Se puede planificar un desarrollo paralelo.
El progreso se puede medir.
Menos costoso cambiar el alcance / los requisitos.
Probar y depurar durante iteraciones más pequeñas es fácil.
Los riesgos se identifican y resuelven durante la iteración; y cada iteración es un hito fácilmente gestionado.
Más fácil de administrar el riesgo: la parte de alto riesgo se realiza primero.
Con cada incremento, se entrega un producto operativo.
Los problemas, desafíos y riesgos identificados en cada incremento se pueden utilizar / aplicar al siguiente incremento.
El análisis de riesgos es mejor.
Admite requisitos cambiantes.
El tiempo de funcionamiento inicial es menor.
Más adecuado para proyectos grandes y de misión crítica.
Durante el ciclo de vida, el software se produce temprano, lo que facilita la evaluación y los comentarios del cliente.
Las desventajas del modelo SDLC iterativo e incremental son las siguientes:
Es posible que se requieran más recursos.
Aunque el costo del cambio es menor, no es muy adecuado para los requisitos cambiantes.
Se requiere más atención administrativa.
Pueden surgir problemas de diseño o arquitectura del sistema porque no todos los requisitos se recopilan al comienzo de todo el ciclo de vida.
La definición de incrementos puede requerir la definición del sistema completo.
No apto para proyectos más pequeños.
La complejidad de la gestión es mayor.
Es posible que no se sepa el final del proyecto, lo que constituye un riesgo.
Se requieren recursos altamente calificados para el análisis de riesgos.
El progreso de los proyectos depende en gran medida de la fase de análisis de riesgos.