Surge porque en los primeros desarrollos se podía esperar
largo tiempo hasta que el software estuviese listo. Permiten desarrollar versiones cada vez más
completas y complejas, hasta llegar al objetivo final deseado. Se asume que no
todos los requerimientos son conocidos desde el primer momento.
1) Iteración. Se desarrolla la primera versión, que recoge
los requisitos conocidos.
2) Iteración. Los usuarios utilizan el software
desarrollado, generándose una nueva lista de requerimientos, con la que se
desarrolla una nueva versión en la siguiente fase y así sucesivamente.
El usuario ve la materialización del proyecto más rápido que
si hubiera que hacer un estudio largo para concretar las especificaciones.
Además, puede modificar/añadir requerimientos sin afectar al proyecto y
conseguir algo que se ajuste mejor a sus necesidades.
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.
• Hay
que implicar a los usuarios.
Desventajas:
• Es
difícil predecir el coste y duración de un proyecto, por lo que es conveniente
limitar el número de fases, recursos y plazos si es un proyecto con principio y
fin.
• Puede
resultar costoso si hay que reiniciar el desarrollo.
• Hay
que mantener muy bien la documentación del proyecto para facilitar el control
de versiones y su mantenimiento
• Para
el rápido desarrollo se necesitan herramientas que pueden ser incompatibles con
otras o que poca gente sabe utilizar.
Diagrama:
No hay comentarios:
Publicar un comentario