martes, 14 de febrero de 2012


CICLO DE VIDA DEL SOFTWARE


Modelo de Ciclo de vida en cascada

Este modelo admite la posibilidad de hacer iteraciones, es decir, durante las modificaciones que se hacen en el mantenimiento se puede ver por ejemplo la necesidad de cambiar algo en el diseño, lo cual significa que se harán los cambios necesarios en la codificación y se tendrán que realizar de nuevo las pruebas, es decir, si se tiene que volver a una de las etapas anteriores al mantenimiento hay que recorrer de nuevo el resto de las etapas.

Ventajas:
  • La planificación es sencilla.
  • La calidad del producto resultante es alta.
  • Permite trabajar con personal poco cualificado.
Desventajas:

·         la necesidad de tener todos los requisitos al principio.
·         Si se han cometido errores en una fase es difícil volver atrás.
·         No se tiene el producto hasta el final, esto quiere decir que:
1. Si se comete un error en la fase de análisis no lo descubrimos hasta la entrega, con el consiguiente gasto inútil de recursos.
2. El cliente no verá resultados hasta el final, con lo que puede impacientarse.
·       Es comparativamente más lento que los demás y el coste es mayor también.

Tipos de proyectos para los que son adecuados:
  • Aquellos para los que se dispone de todas las especificaciones desde el principio, por ejemplo, los de reingeniería.
  • Se está desarrollando un tipo de producto que no es novedoso.
  • Proyectos complejos que se entienden bien desde el principio.



Modelo de ciclo de vida en espiral

Consiste en una serie de ciclos que se repiten. Cada uno tiene las mismas fases y cuando termina da un producto ampliado con respecto al ciclo anterior. En este sentido es parecido al modelo incremental, la diferencia importante es que tiene en cuenta el concepto de riesgo. Un riesgo puede ser muchas cosas: requisitos no comprendidos, mal diseño, errores en la implementación, etc.

Ventajas:
  • No necesita una definición completa de los requisitos para empezar a funcionar.
  • Al entregar productos desde el final de la primera iteración es más fácil validar los requisitos.
  • El riesgo en general es menor, porque si todo se hace mal, solo se ha perdido el tiempo y recursos invertidos en una iteración (las anteriores iteraciones están bien).
  • El riesgo de sufrir retrasos es menor, ya que al identificar los problemas en etapas tempranas hay tiempo de subsanarlos.
Desventajas:
  • Es difícil evaluar los riesgos.
  • Necesita de la participación continua por parte del cliente.
  • Cuando se subcontrata hay que producir previamente una especificación completa de lo que se necesita, y esto lleva tiempo.
Tipos de proyectos para los que son adecuados:
  • Sistemas de gran tamaño.
  • Proyectos donde sea importante el factor riesgo.
  • Cuando no sea posible definir al principio todos los requisitos.



Modelo de ciclo de vida Incremental

Es una aproximación muy parecida a la evolutiva. En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan más requisitos.
En el caso del modelo evolutivo se desarrollaría una nueva versión de todo el sistema, en el incremental se parte de la versión anterior sin cambios y le añadimos las nuevas funciones.

Ventajas:

·         El usuario se involucra más
·         El resultado puede ser muy positivo
·         Se evitan proyectos largos y entrega algo de valor a los usuarios con cierta frecuencia

Desventajas:

·         Difícil de evaluar el coste total
·         Requiere gestores experimentados
·         Los errores en los requisitos se detectan tarde

Tipos de proyectos para los que son adecuados:

Este modelo de ciclo de vida no está pensado para cierto tipo de aplicaciones, sino que está orientado a cierto tipo de usuarios o clientes. Podemos utilizar este modelo para casi cualquier proyecto, pero será verdaderamente útil cuando el usuario necesite entregas rápidas, aunque no sean parciales.





Modelo de ciclo de vida evolutivo

En el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis. Se diferencia del modelo por prototipos en que en prototipos se da por hecho que aunque se necesiten varias iteraciones para lograrlo al final se llegará a tener una serie de requisitos completos y sin errores, que no vayan a cambiar más.

Ventajas:

·         Reduce el riesgo y aumenta la probabilidad de éxito
·         Construcción de una implementación parcial que cubre los requisitos conocidos, para ir aprendiendo el
resto y, paulatinamente, incorporarlos al sistema.

Desventajas:

·         No se conocen los niveles apropiados de calidad y documentación
·         Problemas de gestión de configuración
*    Los sistemas tienen una estructura deficiente, tendiendo a dañar la estructura del software
*    El proceso no es visible. Se tienen que hacer entregas regulares para medir el progreso

  
Tipos de proyectos para los que son adecuados:

Se utiliza especialmente cuando los requerimientos cambian con rapidez, cuando el usuario es reacio a especificar el conjunto de los requerimientos, o cuando ni usted ni el usuario identifican de forma apropiada el área de aplicación.  También es útil cuando los desarrolladores no están seguros de la arquitectura o los algoritmos adecuados a utilizar.



Modelo de ciclo de vida concurrente

Como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.

Ventajas:

·         Excelente para proyectos en los que se conforman grupos de trabajo independientes.
·         Proporciona una imagen exacta del estado actual de un proyecto.

Desventajas:

·         Si no se dan las condiciones señaladas no es aplicable
·         Si no existen grupos de trabajo no se puede trabajar en este método.

Tipos de proyectos para los que son adecuados:
Es aplicable a todo tipo de proyectos


No hay comentarios:

Publicar un comentario