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