El modelo incremental fue propuesto por Harlan
Mills en el año 1980. Surgió 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.
Este modelo se conoce también bajo las siguientes
denominaciones:
- Método de las comparaciones limitadas sucesivas.
- Ciencia de salir del paso.
- Método de atacar el problema por ramas.
El
Modelo Incremental combina elementos del Modelo Lineal Secuencial con la
filosofía interactiva de Construcción de Prototipos. El modelo incremental
aplica secuencias lineales de forma escalonada mientras progresa el tiempo en
el calendario. Cada secuencia lineal produce un incremento del software. El
primer incremento generalmente es un producto esencial denominado núcleo.
En una visión genérica, el proceso se divide en 4 partes:
- Análisis
- Diseño
- Código
- Prueba
El Modelo
Incremental es de naturaleza interactiva brindando al final de cada incremento
la entrega de un producto completamente operacional.
Este modelo 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.
Durante el proceso se trata de llevar a cabo al proyecto en diferentes partes
que al final terminará siendo la solución completa requerida por el cliente,
pero éstas partes no se pueden realizar en cualquier orden, sino que dependen
de lo que el cliente este necesitando con más urgencia, de los puntos más
importantes del proyecto, los requerimientos más básicos, difíciles y con mayor
grado de riesgo, ya que estos se deben hacer al comienzo, de manera que se
disminuya la dificultad y el riesgo en cada versión.
De este modo podemos terminar una aplicación ejecutable
(primera versión) que podrá ser entregada al cliente para que éste pueda
trabajar en ella y el programador pueda considerar las recomendaciones que el
cliente efectúe para hacer mejoras en el producto. Estas nuevas mejoras deberán
esperar a ser integradas en la siguiente versión junto con los demás
requerimientos que no fueron tomados en cuenta en la versión anterior.
El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del sistema, seguido de sucesivos incrementos funcionales. Cada incremento tiene su propio ciclo de vida y se basa en el anterior, sin cambiar su funcionalidad ni sus interfaces. Una vez entregado un incremento, no se realizan cambios sobre el mismo, sino únicamente corrección de errores. Dado que la arquitectura completa se desarrolla en la etapa inicial, es necesario conocer los requerimientos completos al comienzo del desarrollo.
Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos, las funcionalidades que proporcionará el sistema. Se confecciona un bosquejo de requisitos funcionales y será el cliente quien se encarga de priorizar que funcionalidades son más importantes. Con las funcionalidades priorizadas, se puede confeccionar un plan de incrementos, donde en cada incremento se indica un subconjunto de funcionalidades que el sistema entregará. La asignación de funcionalidades a los incrementos depende de la prioridad dada a los requisitos. Finalizado el plan de incrementos, se puede comenzar con el primer incremento.
El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del sistema, seguido de sucesivos incrementos funcionales. Cada incremento tiene su propio ciclo de vida y se basa en el anterior, sin cambiar su funcionalidad ni sus interfaces. Una vez entregado un incremento, no se realizan cambios sobre el mismo, sino únicamente corrección de errores. Dado que la arquitectura completa se desarrolla en la etapa inicial, es necesario conocer los requerimientos completos al comienzo del desarrollo.
Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos, las funcionalidades que proporcionará el sistema. Se confecciona un bosquejo de requisitos funcionales y será el cliente quien se encarga de priorizar que funcionalidades son más importantes. Con las funcionalidades priorizadas, se puede confeccionar un plan de incrementos, donde en cada incremento se indica un subconjunto de funcionalidades que el sistema entregará. La asignación de funcionalidades a los incrementos depende de la prioridad dada a los requisitos. Finalizado el plan de incrementos, se puede comenzar con el primer incremento.
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 precisarlos requerimientos posteriores del sistema.
- Minimización del riesgo de falla en el proyecto porque los errores se van corrigiendo progresivamente.
- El resultado puede ser muy positivo.
Desventajas
- Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo.
- Riesgos largos y complejos.
- Pueden aumentar el coste debido a las pruebas.
- Los errores en los requisitos se detectan tarde.
Características
- 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 dela funcionalidad requerida.
- Los requerimientos del usuario se priorizan y los requerimientos de prioridad más altos son incluidos en los incrementos 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.
- Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta frecuencia.
- El usuario se involucra más.
- Requiere gestores experimentados.
No hay comentarios:
Publicar un comentario