Desarrollo Iterativo y Creciente

MODELO ITERATIVO Y INCREMENTAL MODELO ITERACTIVO Es un modelo derivado del ciclo de vida en cascada. Este modelo busca r

Views 134 Downloads 115 File size 506KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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.