Desarrollo evolutivo reemplaza sistemas con requisitos cambiantes
1.
2. DESARROLLO EVOLUTIVO
El desarrollo evolutivo busca reemplazar el viejo sistema con uno nuevo
que tendría la propiedad de satisfacer los nuevos requerimientos lo más
rápido posible.
El desarrollo evolutivo asume que los requerimientos están sujetos a
cambios continuos y que la estrategia para enfrentar aquello pasa por un
reflejo, también continuo de aquellos cambios.
1INGENIERÍA DE SOFTWARE
3. MODELO EVOLUTIVO
Los evolutivos son modelos iterativos, permiten desarrollar versiones
cada vez más completas y complejas, hasta llegar al objetivo final
deseado; incluso evolucionar más allá, durante la fase de operación.
Los modelos “Iterativo Incremental” y “Espiral” (entre otros) son dos de
los más conocidos y utilizados del tipo evolutivo.
INGENIERÍA DE SOFTWARE 2
5. 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.
INGENIERÍA DE SOFTWARE 4
6. 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.
Sin embargo el enfoque evolutivo desde una perspectiva de ingeniería y
gestión suele tener dos grandes problemas.
1) 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.
INGENIERÍA DE SOFTWARE 5
7. 2) 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.
INGENIERÍA DE SOFTWARE 6
8. 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.
INGENIERÍA DE SOFTWARE 7
9. DESVENTAJAS
Proceso no Visible: Los administradores necesitan entregas para medir el
progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir
documentos que reflejen cada versión del sistema.
Sistemas pobremente estructurados: Los cambios continuos pueden ser
perjudiciales para la estructura del software haciendo costoso el
mantenimiento.
Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan
herramientas que pueden ser incompatibles con otras o que poca gente sabe
utilizar.
INGENIERÍA DE SOFTWARE 8