Módulo IX
MODELOS EVOLUTIVOS DEL PROCESO DEL SOFTWARE
Son modelos flexibles que permiten la modificación del s istema istema durante su proceso de desarrollo. Los procesos iterativos permiten a los desarrolladores construir versiones del software cada vez más completas
Ejemplos:
Modelo Incremental.
Modelo Espiral.
Modelo Espiral WINWIN.
Modelo de Desarrollo Concurrente.
MODELO INCREMENTAL
Bajo este modelo se entrega software “por partes funcionales más pequeñas” , pero
reutilizables, llamadas incrementos. En general cada incremento se construye sobre aquel que ya fue entregado.
Historia
Propuesto por Mills en 1980. Sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema . Surge porque en los primeros desarrollos se podía esperar largo tiempo hasta que el software estuviese listo. Las reglas del negocio de hoy no lo permiten.
Características
Aplica el enfoque lineal secuencial escalonadamente
Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema
Cada etapa debe cumplir con los requisitos de las desarrolladas
La propuesta del modelo es diseñar sistemas que puedan entregarse por piezas.
A partir de la evaluación se planea el siguiente incremento y así sucesivamente
Es interactivo por naturaleza
Es útil cuando el personal no es suficiente para la implementación completa
En lugar de entrega del sistema en una sola entrega, el desarrollo y la entrega están fracturados bajo incrementos, con cada incremento que entrega parte de la funcionalidad requerida. requerida.
Los requerimientos del usuario se priorizan y los requerimientos de prioridad más altos son incluidos en los increme i ncrementos ntos tempranos.
Hechos de incrementos tempranos como un prototipo, ayudan a obtener requisitos para los incrementos más tardíos.
Los usuarios no tiene que esperar.
El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema.
El modelo incremental presupone que el conjunto completo de requerimientos es conocido al comenzar
Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta
frecuencia
El usuario se involucra involucra más
Requiere gestores experimentados
Desventajas
Difícil de aplicar a sistemas transaccionales que tienden a serintegrados y a operar como un todo
Riesgos largos y complejos.
Pueden aumentar aumentar el coste debido a las pruebas.
Los errores en los requisitos se detectan tarde.
Ventajas:
Los clientes no tienen que esperar hasta que el sistema se entregue completamente para comenzar a hacer uso de él.
Los clientes pueden usar los incrementos iniciales como prototipo para precisar los requerimientos posteriores del sistema.
Minimización del riesgo de falla en el proyecto porque los errores se van corrigiendo progresivamente.
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.
Reduciendo Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
Si un error importante es realizado, el incremento previo puede ser usado. Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento
El resultado puede ser muy positivo
Ejemplo:
Un procesador de texto que sea desarrollado bajo el paradigma Incremental podría aportar, en principio, funciones básicas de edición de archivos y producción de documentos (algo como un editor simple).
En un segundo incremento se le podría agregar edición más sofisticada, y de generación y mezcla de documentos. En un tercer incremento podría considerarse el agregado de funciones de corrección ortográfica, esquemas de paginado y plantillas; en un cuarto capacidades de dibujo propias y ecuaciones matemáticas. Así sucesivamente hasta llegar al procesador final requerido. Así, el producto va creciendo, acercándose a su meta final, pero desde la entrega del primer incremento ya es útil y funcional para el cliente, el cual observa una respuesta rápida en cuanto a entrega temprana; sin notar que la fecha límite del proyecto puede no estar acotada ni tan definida, lo que da margen de operación y alivia presiones al equipo de desarrollo. Como se dijo, el Iterativo Incremental es un modelo del tipo evolutivo, es decir donde se permiten y esperan probables cambios en los requisitos en tiempo de desarrollo; se admite cierto margen para que el software pueda evolucionar. Aplicable cuando los requisitos son medianamente bien conocidos pero no son completamente estáticos y definidos. Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versión previamente implementada del producto software. Este modelo brinda cierta flexibilidad para que durante el desarrollo se incluyan cambios en los requisitos por parte del usuario, un cambio de requisitos propuesto y aprobado puede analizarse e implementarse como un nuevo incremento o, eventualmente, podrá constituir una mejora/adecuación de uno ya planeado.
Nota: Una evolución de este enfoque se conoce como Programación Extrema (XP-
Extreme Programming).
BIBLIOGRAFIA
GIRALDO Gloria, Ingeniería de SoftwareClase 3: El proceso del software, [en linea]
vease
en:
http://pisis.unalmed.edu.co/cursos/material/
3004582/1/clase3_IS_0702-v1.ppt [Fecha de Consulta: 22 nov 2010]
PHPNOCHE, Modelo incremental-evolutivo, [en linea] vease en: http://modelosphpnoche.blogspot.com/ [Fecha de Consulta: 22 nov 2010]