El software
evoluciona con el tiempo, los requisitos del usuario y del producto suelen
cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia
hacen que no sea posible esperar a poner en el mercado un producto
absolutamente completo, por lo que se aconsejable introducir una versión
funcional limitada de alguna forma para aliviar las presiones competitivas.
En esas u
otras situaciones similares los desarrolladores necesitan modelos de progreso
que estén diseñados para acomodarse a una evolución temporal o progresiva,
donde los requisitos centrales son conocidos de antemano, aunque no estén bien
definidos a nivel detalle.
En el modelo
cascada y cascada realimentado no se tiene demasiado en cuenta la naturaleza
evolutiva del software, se plantea como estático, con requisitos bien conocidos
y definidos desde el inicio.
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.
Existen dos
tipos de desarrollo evolutivo:
· Desarrollo Exploratorio: El objetivo de
este enfoque es explorar con el usuario los requisitos hasta llegar a un
sistema final. El desarrollo comienza con las partes que se tiene más claras.
El sistema evoluciona conforme se añaden nuevas características propuestas por
el usuario.
· Enfoque utilizando prototipos: El
objetivo es entender los requisitos del usuario y trabajar para mejorar la
calidad de los requisitos. A diferencia del desarrollo exploratorio, se
comienza por definir los requisitos que no están claros para el usuario y se
utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar
de definir estos requisitos.
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
· 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.
No hay comentarios.:
Publicar un comentario