jueves, 25 de septiembre de 2008

Ciclos de Vida - Conclusiones


Luego de ver algunos de los modelos de ciclo de vida más utilizados surge la pregunta con la respuesta más codiciada: ¿qué modelo de ciclo de vida elegir? Sabemos que ninguno predomina sobre los otros. Por ello, debemos elegir el modelo que mejor se adapte al proyecto que desarrollaremos. Podemos analizar, para guiarnos en nuestra elección, la complejidad del problema, el tiempo que disponemos para hacer la entrega final, o si el usuario o cliente desea entregas parciales, la comunicación que existe entre el equipo de desarrollo y el usuario y, por último, qué certeza (o incertidumbre) tenemos de que los requerimientos dados por el usuario son correctos y completos

Tal y como se ha visto en el apartado anterior cualquier modelo tiene ventajas e inconvenientes, con lo que, al comenzar un proyecto, habrá que examinar la situación actual para comprobar cuál es el modelo más adecuado al caso.

Una primera pauta para elegir el modelo de ciclo de vida es que, cuanto más lineal sea el modelo, más rápido será su desarrollo. Sin embargo, y en contrapartida, cuanto más lineal sea el modelo más completos deberán ser los requisitos antes del comienzo del proyecto.
Algunas cuestiones que pueden plantearse para elegir entre los distintos modelos de ciclo de vida son las siguientes:

• ¿Existe la posibilidad de que el entendimiento entre las partes cambie significativamente a medida que avance el proyecto? Si puede cambiar ese entendimiento, es decir, si los requisitos pueden cambiar, es recomendable optar por modelos que incluyan la realización de prototipos o el desarrollo evolutivo, de forma que se puedan acometer de forma cómoda los cambios del programa debidos a nuevos requisitos.

• ¿Se comprende bien toda la arquitectura del sistema al comenzar el proyecto? Si la arquitectura es estable desde el principio, puede optarse por modelos de ciclo de vida lineales en las fases de diseño y codificación. En caso contrario deberá optarse por modelos que realicen varias iteraciones en esas fases.

• ¿Cuánta fiabilidad se necesita? Si se necesita un alto grado de fiabilidad entonces será necesario acudir a modelos de ciclo de vida basados en la especificación formal de requisitos. En estos modelos se dedica una gran cantidad de tiempo a especificar de forma correcta el programa, que luego se construye derivando una implementación a partir de esa especificación mediante métodos que garantizan la corrección de lo que se produce.

• ¿Cuánto tiempo extra se necesita para planificar y diseñar durante el proyecto para posibles versiones futuras? Cuando se desea crear componentes reutilizables para futuras versiones del mismo programa, o bien para futuros programas que funcionen en el mismo entorno, es conveniente elegir modelos de ciclo de vida que pongan énfasis en la reutilización, como el modelo RAD.

• ¿Se está sometido a una planificación predefinida? En estos casos deberá elegirse el modelo que más se ajuste a esa planificación y que permita un desarrollo más controlado en riesgos, como el modelo en espiral.

• ¿Puede ser necesario realizar modificaciones a medio camino? Si es así deberá optarse por modelos de ciclo de vida basados en prototipos evolutivos o incrementales.

• ¿Debe proporcionarse a los clientes signos visibles de progreso durante el proyecto? En estos casos también se debe optar por modelos que permitan la construcción de prototipos incrementales.

• ¿Cuánta preparación y formación son necesarias para utilizar el modelo de ciclo de vida con éxito? En muchas ocasiones la selección del ciclo de vida viene impuesta por los conocimientos del personal del equipo de desarrollo. Si el elegir un modelo exige un largo periodo de entrenamiento, puede ser recomendable elegir otro modelo de ciclo de vida menos eficiente pero que ya conozcan los desarrolladores.

No hay comentarios: