Está en la página 1de 7

MODELO ITERATIVO Y INCREMENTAL

MODELO ITERACTIVO
Es un modelo derivado del ciclo de vida en cascada. Este modelo busca reducir el riesgo
que surge entre las necesidades del usuario y el producto final por malos entendidos
durante la etapa de recogida de requisitos.

Consiste en la iteración de varios ciclos de vida en cascada. Al final de cada iteración


se le entrega al cliente una versión mejorada o con mayores funcionalidades del
producto. El cliente es quien después de cada iteración evalúa el producto y lo corrige
o propone mejoras.
Los objetivos de la iteración se establecen en función a la evaluación de las iteraciones
precedentes. Las iteraciones irán refinando el sistema y se repetirán hasta obtener un
producto que satisfaga al cliente. La Especificación de requisitos se realiza en forma
creciente: a medida que los Usuarios logran un mejor entendimiento del problema, éste
es reflejado en el sistema software. Es decir, el Producto de cada etapa
de Especificación de requisitos es un agregado o mejora al Producto de la etapa de
especificación anterior. Estas iteraciones se repetirán hasta obtener un producto que
satisfaga las necesidades del cliente.

Este modelo se suele utilizar en proyectos en los que los requisitos no están claros por
parte del usuario, por lo que se hace necesaria la creación de distintos prototipos para
presentarlos y conseguir la conformidad del cliente.
Ventajas
- Disminuye riesgos.
- Fácilmente cambian los requerimientos.
- Reduce costos.
- Usuario se le entrega una parte del producto es decir una parte con la cual el
puede trabajar.

Una de las principales ventajas que ofrece este modelo es que no hace falta que
los requisitos estén totalmente definidos al inicio del desarrollo, sino que se
pueden ir refinando en cada una de las iteraciones.

Igual que otros modelos similares tiene las ventajas propias de realizar el
desarrollo en pequeños ciclos, lo que permite gestionar mejor los riesgos,
gestionar mejor las entregas…

Desventajas

La primera de las desventajas que ofrece este modelo, el no ser necesario tener los
requisitos definidos desde el principio, puede verse también como un inconveniente ya
que pueden surgir problemas relacionados con la arquitectura.
MODELO INCREMENTAL
Propuesto por MILLES en 1980
Surge con la finalidad de reducir la repetición de trabajo en el proceso de desarrollo y
dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir la
experiencia del sistema.
El modelo incremental combina elementos del modelo en cascada con la filosofía
interactiva de construcción de prototipos. Se basa en la filosofía de construir
incrementando las funcionalidades del programa. Este modelo aplica secuencias
lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada
secuencia lineal produce un incremento del software.

Cuando se utiliza un modelo incremental, el primer incremento es a menudo un producto


esencial, sólo con los requisitos básicos. Este modelo se centra en la entrega de un
producto operativo con cada incremento. Los primeros incrementos son versiones
incompletas del producto final, pero proporcionan al usuario la funcionalidad que precisa
y también una plataforma para la evaluación.
En una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código y
Prueba. Sin embargo, para la producción del Software, se usa el principio de trabajo en
cadena o “Pipeline”, utilizado en muchas otras formas de programación. Con esto se
mantiene al cliente en constante contacto con los resultados obtenidos en cada
incremento.

Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a


fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite
hasta que se elabore el producto completo.
De esta forma el tiempo de entrega se reduce considerablemente.
Al igual que los otros métodos de modelado, el Modelo Incremental es de naturaleza
interactiva pero se diferencia de aquellos en que al final de cada incremento se entrega
un producto completamente operacional.
El Modelo Incremental es particularmente útil cuando no se cuenta con una dotación de
personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de
personas y en cada incremento se añadir• personal, de ser necesario. Por otro lado los
incrementos se pueden planear para gestionar riesgos técnicos.

El modelo de proceso incremental, como la construcción de prototipos y otros enfoques


evolutivos, es interactivo por naturaleza. Pero a diferencia de la construcción de
prototipos, el modelo incremental se centra en la entrega de un producto operacional
con cada increment0. Los primeros incrementos son versiones incompletas del producto
final, pero proporcional al usuario la funcionalidad que precisa y también una plataforma
para la evaluación.
El desarrollo incremental es particularmente útil cuando la dotación del personal no esta
disponible para una implementación completa en la fecha limite que se haya establecido
para el proyecto. Los primeros incrementos se pueden implementar con menos
personas.

Ventajas
Entre las ventajas que puede proporcionar un modelo de este tipo encontramos las
siguientes:

 Mediante este modelo se genera software operativo de forma rápida y en


etapas tempranas del ciclo de vida del software.
 Es un modelo más flexible, por lo que se reduce el coste en el cambio de
alcance y requisitos.
 Es más fácil probar y depurar en una iteración más pequeña.
 Es más fácil gestionar riesgos.
 Cada iteración es un hito gestionado fácilmente

Desventaja

Para el uso de este modelo se requiere una experiencia importante para definir los
incrementos y distribuir en ellos las tareas de forma proporcionada. Entre los
inconvenientes que aparecen en el uso de este modelo podemos destacar los
siguientes:

 Cada fase de una iteración es rígida y no se superponen con otras.


 Pueden surgir problemas referidos a la arquitectura del sistema porque no
todos los requisitos se han reunido, ya que se supone que todos ellos se han
definido al inicio. Ya que se debe de tener metas claras para conocer el estado
del proyecto.
 Requiere de mucha planeación, tanto administrativa como técnica
Desarrollo iterativo y creciente (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),1 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.
La principal característica de estos modelos es que permite crear cada vez versiones más
completas de software, para esto construimos versiones sucesivas de un producto. Se crea una
primera versión que es utilizada por el usuario donde se provee retroalimentación al
desarrollador, y según los requerimientos especificados de éste usuario se crea una segunda
versión.

Modelo Incremental

Como vimos este era un modelo tipo cascada el cual origina una primera versión con su
respectiva funcionalidad, aplicamos de nuevo cascada sobre aquella versión 1 y obtenemos
como resultado una versión 2 más una funcionalidad 2. Este proceso aplicamos cada vez que
deseamos crear una versión más completa según los requerimientos de nuestro cliente.

El modelo incremental se aplica cuando en un proyecto tenemos un tiempo límite y no


disponemos del personal suficiente para que nuestro propósito sea implementado
completamente.

Además existen altos riesgos en este modelo pero se los puede reducir si tan solo construimos
una parte del sistema y dejamos lo demás para complementarlo en versiones posteriores.

Modelo Iterativo

A diferencia del modelo incremental, al modelo iterativo no se le agrega funcionalidad si no


que en cada iteración se mejora su funcionalidad.

Ventajas
Las ventajas que ofrece un desarrollo iterativo e incremental son varias y variadas, pero debe
quedar claro que es muy difícil obtener todas juntas ya que depende del contexto en el que se
implemente el proceso. En general las ventajas son:

Resolución de problemas de alto riesgo en tiempos tempranos del proyecto.

Visión de avance en el desarrollo desde las etapas iniciales del desarrollo.

Obtención del feedback del usuario lo antes posible, para orientar el desarrollo al
cumplimiento de sus necesidades y realizar todas las adaptaciones identificadas para cumplir
con los objetivos planteados.

Menor tasa de fallo del proyecto, mejor productividad del equipo, y menor cantidad de
defectos, según demuestran estudios realizados sobre proyectos que han aplicado esta
técnica.

Permite manejar la complejidad del proyecto, apuntando a la resolución de los problemas por
partes, y no caer en la inanición del “súper análisis” del producto.

El aprendizaje y experiencia del equipo iteración tras iteración, mejora exponencialmente el


trabajo, aumenta la productividad y permite optimizar el proceso en el corto plazo.

El trabajo iterativo deja una experiencia en el equipo que permite ir ajustando y mejorando las
planificaciones, logrando menores desvíos en la duración total del proyecto.

Su adopción, con ciertos recaudos, no presenta grandes inversiones.

DESVENTAJAS

Hasta el momento se podría decir que no existen grandes desventajas, pero sí hay puntos a
manejar con sumo cuidado:

El uso de un desarrollo iterativo e incremental no garantiza por sí solo el éxito de su uso.

Hay costos ocultos en su implementación, ya que se incorporan varias actividades a realizar


por el equipo, y hay que saber medir ese impacto para no fracasar en el intento.

También podría gustarte