INTRODUCCION
Es el Modelo cuyas etapas consisten en expandir incrementos de un producto
de software operacional donde la dirección de la evolución la dicta la
experiencia con el sistema.
El cliente recibe pequeños incrementos del sistema a medida que van siendo
desarrollados distribución incremental.
CONCLUSIONES
Que el prototipo que se construya sirva como un mecanismo para
la definición de requisitos.
No existirá solo un prototipo, será necesario crear muchos.
Después se desarrolla el software real con un enfoque hacia la
calidad.
MODELO DE PROCESO EVOLUTIVO
El desarrollo evolutivo consta del desarrollo de una versión inicial que luego
de exponerse se va refinando de acuerdo de los comentarios o nuevos
requerimientos por parte del cliente o del usuario final. Las fases de
especificación, desarrollo y validación se entrelazan en vez de separarse.
Existen dos tipos de desarrollo evolutivo:
1. Desarrollo exploratorio: donde el objetivo del proceso es trabajar con el
cliente para explorar sus requerimientos y entregar un sistema final. El
desarrollo empieza con las partes del sistema que se comprenden mejor. El
sistema evoluciona agregando nuevos atributos propuestos por el cliente.
2. Prototipos desechables: donde el objetivo del proceso de desarrollo
evolutivo es comprender los requerimientos del cliente y entonces desarrollar
una definición mejorada de los requerimientos para el sistema. El prototipo se
centra en experimentar con los requerimientos del cliente que no se
comprenden del todo.
Desde el punto de vista de desarrollo de sistema el enfoque evolutivo suele
traer más ventajas en comparación con un enfoque en cascada ya que el
sistema se va ajustando a las necesidades del cliente, a la vez que él mismo
entiende mejor sus propios requerimientos.
VENTAJAS:
La especificación puede desarrollarse de forma creciente.
Los usuarios y desarrolladores logran un mejor entendimiento del
sistema. Esto se refleja en una mejora de la calidad del software.
Es más efectivo que el modelo de cascada, ya que cumple con las
necesidades inmediatas del cliente.
Desventajas:
El proceso no es visible. Los administradores tienen que hacer entregas
regulares para medir el progreso. Si los sistemas se desarrollan
rápidamente, no es rentable producir documentos que reflejen cada versión
del sistema.
A menudo los sistemas tienen una estructura deficiente. Los cambios
continuos tienden a corromper la estructura del software. Incorporar
cambios en él se convierte cada vez más en una tarea difícil y costosa.
Aunque supone grandes ventajas el desarrollo evolutivo solo es recomendado
para sistemas pequeños y medianos. En los sistemas grandes, los constantes
cambios en el desarrollo solo dificultan la estabilidad y la integración de los
avances de los distintos grupos de trabajo que puedan existir. La mayoría de
las empresas que desarrollan grandes sistemas usan un modelo mixto que usa
las mayores fortalezas de los enfoques evolutivos y de cascada.
Fases Del Modelo Evolutivo
Las etapas de los modelos evolutivos son:
Formulación de un esquema de los requisitos del sistema como guía para
los programadores (aunque no necesariamente incompleta ni consistente).
Desarrollo de un sistema, tan rápido como sea posible, basado en las
especificaciones anteriores.
Modelo Espiral
Es un modelo de desarrollo evolutivo propuesto por Barry Boehm, que utiliza
prototipos como apoyo. La forma de espiral representa una interacción
(repetición) de procesos que, a medida que se van entregando prototipos y
éstos son revisados por los clientes o usuarios finales, el tiempo empleado
para desarrollar la próxima versión es cada vez mayor. Cada división recibe el
nombre de región de tareas.
Aunque el modelo espiral representa ventajas por sobre el desarrollo lineal, el
cálculo de los riesgos puede ser muy complicado y no es tan usado en la
realidad.
Modelo Espiral WINWIN
Una variante interesante del Modelo Espiral es el Modelo espiral Win-Win. El
Modelo Espiral previo (clásico) sugiere la comunicación con el cliente para
fijar los requisitos, en que simplemente se pregunta al cliente qué necesita y él
proporciona la información para continuar, sin embargo, esta es una situación
que rara vez ocurre. Normalmente el cliente y desarrollador entran en una
negociación, se negocia coste frente a funcionalidad, rendimiento, calidad, etc.
Las mejores negociaciones se fuerzan en obtener «Victoria & Victoria» (Win
& Win), es decir que el cliente gane obteniendo el producto que lo satisfaga, y
el desarrollador también gane consiguiendo presupuesto y fecha de entrega
realista. Evidentemente, este modelo requiere fuertes habilidades de
negociación.
Modelo de desarrollo concurrente
Es un modelo de tipo de red donde todas las personas actúan simultáneamente
o al mismo tiempo.
Davis Sitaram ha descrito el modelo de desarrollo concurrente, llamado
algunas veces ingeniería concurrente, de la siguiente forma:
Los gestores de proyectos que siguen los pasos del estado del proyecto en lo
que se refiere a las fases importantes [del ciclo de vida clásico] no tiene ideal
del estado de sus proyectos. Estos son ejemplos de un intento por seguir los
pasos extremadamente simples. Tenga en cuenta que aunque un proyecto
[grande] este en la fase de codificación, hay personal de ese proyecto
implicado en actividades asociadas generalmente a muchas fases de desarrollo
simultáneamente. Por ejemplo,el personal está escribiendo requisitos
diseñando, codificando, haciendo pruebas y probando la integración (todo al
mismo tiempo). Los modelos de proceso de ingeniería del software de
Humphrey y Kellner han mostrado la concurrencia que existe para actividades
que ocurren para cualquier fase. El trabajo más reciente de Kellner utiliza
diagramas de estado para representar la relación concurrente que existe entre
actividades asociadas a un acontecimiento especifico, pero falla en capturar la
riqueza de la concurrencia que existe en todas las actividades del desarrollo y
de gestión del software en mi proyecto...La mayoría de los modelos de
procesos de desarrollo del software son dirigido por el tiempo; cuanto más
tarde sea, más atrás se encontrara en el proceso de desarrollo. (Un modelo de
proceso concurrente) está dirigido por las necesidades del usuario, las
decisiones de la gestión y los resultados de las revisiones.
Modelo Incremental
El modelo incremental es una unión de las mejores funcionalidades del
modelo de cascada y del modelo de prototipos. A medida que se presenta un
prototipo se produce un “incremento”, que es una interacción del proceso
anterior pero aplicando las experiencias aprendidas del proceso anterior. A
diferencia del modelo de prototipos, los prototipos de este modelo están
orientados a ser operacionales en cada incremento y no ser solo una “previa”
de cómo sería el sistema en su versión final.