ED 1.3.3 - Modelo Incremental



Desarrollo iterativo o incremental es un proceso de desarrollo de software creado en respuesta a las debilidades del modelo tradicional de cascada.

Básicamente este modelo de desarrollo, que no es más que un conjunto de tareas agrupadas en pequeñas etapas repetitivas (iteraciones),​ es uno de los más utilizados en los últimos tiempos ya que, como se relaciona con novedosas estrategias de desarrollo de software y una programación extrema, es empleado en metodologías diversas.

El modelo consta de diversas etapas de desarrollo en cada incremento, las cuales inician con el análisis y finalizan con la instauración y aprobación del sistema.

En este modelo se desarrolla el sistema para satisfacer un subconjunto de requisitos especificados y en posteriores versiones se incrementa el sistema con nuevas funcionalidades que satisfagan mas requisitos.


CARACTERÍSTICAS
• Combina elementos del modelo de cascada con la filosofía interactiva de construcción de prototipos
• Cada secuencia lineal produce un producto operacional con cada incremento de la misma forma que progresa el tiempo en el calendario
• El primer incremento es a menudo el núcleo
• Como un resultado de evaluación y/o utilización se desarrolla un plan para el incremento siguiente, este proceso se repite hasta llegar al producto completo
• Este modelo es particularmente útil cuando la dotación de personal no es suficiente para una implementación completa
• Los primeros incrementos se pueden implementar con menos recursos
• Si es muy riesgoso desarrollar el sistema completo de una sola vez, entonces debería considerar este modelo
 
VENTAJAS
• Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
• Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
• Si un error importante es realizado, sólo la última iteración necesita ser descartada y utilizar el incremento previo.
 
DESVENTAJAS
• Se presupone que todos los requisitos se han definido al inicio.
• Se requiere de una experiencia importante para definir los incrementos de forma de distribuir en ellos las tareas en forma proporcional
• Si el sistema a desarrollar es de gran magnitud y se cuenta con un único grupo para construirlo se corre el riesgo que el desarrollo se prolongue demasiado en tiempo