1. Modelos de Ciclos de Vida
ntroducción a los modelos en Cascada y Espiral
MadPitbull_99
2. Definición de metodología
Metodología de Desarrollo de Software:
son los procesos que hay que seguir
sistemáticamente para idear,
implementar y mantener un producto
software desde que surge la necesidad
del producto hasta que cumplimos el
objetivo por el cuál fue creado.
ISO 12207
La ISO (International Organization for Standardization), en su norma 12207 define
el ciclo de vida de un software cómo una marco de referencia que contiene las
actividades y las tareas involucradas en el desarrollo, la explotación y el
mantenimiento de un producto software, abarcando desde la definición hasta la
finalización de su uso.
3. Etapas del ciclo de vida
• Construye un modelo de los requisitos.
Análisis
• Se deducen la estructura de datos y del sistema y la interfaz de usuario.
Diseño
• Se construye el sistema.
Codificació • Genera un código ejecutable.
n
• Se comprueba que se cumplen los criterios de corrección y calidad.
Pruebas
Mantenimi
• Se asegura que el sistema siga funcionando y se adapta a nuevos requisitos
ento
5. Tipos de ciclos de vida en cascada
Existen diferentes tipos de ciclos de vida en
cascada:
Cascada
Con Con reducción
Sashimi Iterativo Por prototipos Evolutivo Incremental
subproyectos de riesgos
6. Ciclo de vida en cascada puro
Propuesto por Winston Royce en el año
1970.
Fue uno de los primeros y sirvió de base
para el resto de los modelos de ciclos de
vida.
Tal vez uno de los más extendidos (se
estima que el 90% de los sistemas han sido
desarrollados así).
Análisis
Después de cada etapa se realizan una o
Diseño
varias revisiones para comprobar si
Implementación
se
puede pasar a la siguiente.
Pruebas
Mantenimiento
7. Ventajas, desventajas y casos de uso en cascada puro
VENTAJAS DESVENTAJAS
Admite iteraciones ( Se permite volver a una Es rígido, poco flexible y con muchas
etapa anterior del proyecto). restricciones.
Planificación sencilla. La necesidad de conocer todos los
Provee un producto con un elevado grado de requerimientos al comienzo del proyecto.
calidad sin disponer de un personal altamente Si se han cometido errores y no se detectan en la
calificado. etapa inmediatamente siguiente, es costoso y
Adecuado si se disponen de todos los difícil volver atrás para realizar la corrección.
requerimientos desde el principio. Los resultados no se ven hasta en las etapas
finales del ciclo.
Cualquier error detectado nos trae un retraso y
aumenta el coste del desarrollo.
Retardo en entregar partes del producto.
CASOS DE USO
Cuando se disponen de todos los requerimientos
desde el principio (reingeniería).
Producto no novedoso o con funcionalidades
conocidas.
Proyectos complejos fácilmente entendibles.
8. Ciclo de vida en V
Propuesto por Alan Davis.
Tiene las mismas fases que la anterior,
pero se considera el nivel de abstracción de
cada una.
Una fase además de utilizarse cómo
entrada para la siguiente, sirve para validar
Validación
o verificar otras fases posteriores.
Análisis Mantenimiento
Abstracción
Verificación
Diseño Pruebas
Codificación
Tiempo
9. Ciclo de vida tipo Sashimi
Se permite un solapamiento entre fases.
Ejemplo: sin tener terminado el
diseño se comienza a implementar.
Ventajas:
• No necesita generar tanta documentación cómo
el ciclo de cascada pura debido a la continuidad
del mismo personal entre fases.
Desventajas:
• Difícil de controlar el progreso del proyecto,
dado que los finales de fase ya no son un punto
Análisis
de referencia. Diseño
• Si hay problemas de comunicación pueden surgir
Implementación
inconsistencias. Pruebas
Mantenimiento
10. Ciclo de vida tipo cascada con subproyectos
Llegados a la fase de diseño
arquitectónico, el sistema se divida en
varios subsistemas independientes entre
sí.
A partir de ese punto, cada uno se puede
desarrollar por separado y en
consecuencia en paralelo con los
demás. VENTAJAS DESVENTAJAS
Cadapuede tener tendrá fechas de el riesgo de que
Se
uno a más gente Existe
terminación
distintas.en paralelo de
trabajando
forma eficiente.
existan interdependencias
entre los objetos.
Una vez terminados todos los subsistemas,
se integran y se prueba el sistema en su
conjunto.
11. Ciclo de vida iterativo
Busca reducir el riesgo que surge entre las
necesidades del usuario y el producto final por
malos entendidos durante la etapa de
solicitud de requerimientos.
Es la iteración de varios ciclos en cascada.
Al final de cada iteración, se le entrega al cliente
una versión mejorada o con mayores
funcionalidades del producto.
El cliente es quien, después de cada iteración,
Análisis Análisis
evalúa el producto y lo corrige o propone
Diseño Diseño
Análisis
mejoras.
Diseño
Implementación Implementación
Las iteraciones se repetirán hasta que el cliente
Implementación
Pruebas Pruebas
Pruebas
quede satisfecho.
Versión 1 Versión 2 Versión 3
Iteración 1 Iteración 2 Iteración 3
12. Casos de uso en iterativo
CASOS DE USO
Se suele utilizar en proyectos en los que los
requerimientos no están claros de parte
del usuario. Por lo que se hace necesaria
la creación de distintos prototipos para
presentarlos.
En aplicaciones medianas a grandes, en las que el
cliente no necesita todas las
funcionalidades desde el principio del
proyecto.
Por ejemplo, una empresa que quiera migrar sus
aplicaciones a otra arquitectura, y desea
hacerlo paulatinamente.
13. Ciclo de vida tipo por prototipos
Usado cuando no se conoce exactamente cómo
desarrollar un determinado producto o cuáles
son las especificaciones de forma precisa.
En estos casos suele recurrirse a definir
especificaciones iniciales para hacer un prototipo, o
sea, un producto parcial y provisional.
El objetivo es lograr crear un producto
intermedio, antes de realizar el producto final,
para conocer mediante el prototipo cómo
responderán las funcionalidades previstas para
el producto final.
Antes de adoptar este tipo de ciclo de vida,
deberíamos analizar si el esfuerzo por crear un
prototipo, realmente vale la pena.
Utilizado mayoritariamente en desarrollo de
14. Ciclo de vida evolutivo
Este modelo acepta que los
requerimientos del usuario puedan cambiar
en cualquier momento.
El problemas de los nuevos
requerimientos se afronta mediante una
iteración de ciclos de requerimientos -
desarrollo - evaluación.
Puede ser muy útil cuando se desconocen
la mayoría de los requerimientos
iniciales, o estos requerimientos no
están completos.
15. Ciclo de vida incremental
Se basa en la filosofía de construir
incrementando las funcionalidades del programa.
Se realiza construyendo por módulos que
cumplen las diferentes funciones del sistema.
Esto permite aumentar gradualmente las
capacidades del software.
Facilita el desarrollo, permitiendo a cada
miembro del equipo desarrollar un módulo
particular (en caso de que sea realizado por
un equipo de programadores).
Similar al ciclo de vida en cascada con
iteraciones, aplicándose un ciclo en cada nueva
funcionalidad del programa.
Al final de cada ciclo, se le entrega al cliente la
versión que contiene la nueva funcionalidad.
16. Esquema y beneficios del ciclo incremental
Análisis Análisis
Análisis
Diseño Diseño
Diseño
Implementación Implementación
Implementación
Pruebas Pruebas
Pruebas
1.0 1.2 1.2.3
Versión 1 Versión 2 Versión 3
Funcionalidad 1 + +
Funcionalidad 2 Funcionalidad 3
Beneficios:
Construir un sistema pequeño implica menos
riesgos que construir uno grande.
Si se detecta un error grave, sólo desechamos la
última iteración.
No se necesitan todos los requerimientos al
17. Diferencias entre incremental y evolutivo
El modelo de ciclo incremental no es
parecido al modelo de ciclo de vida
evolutivo.
En el incremental partimos de que no hay
incertidumbre en los requerimientos
iniciales, en el evolutivo somos conscientes
de que comenzamos con un alto grado de
incertidumbre.
En el incremental suponemos que
conocemos el problema, y lo dividimos.
Mientras que el evolutivo gestiona la
incertidumbre.
18. Ciclo de vida en espiral
Diseñado por Boehm en el año 1988. Se
puede considerar cómo una variación del
modelo con prototipado.
Se basa en una serie de ciclos repetitivos
para ir ganando madurez en el producto
final.
Toma los beneficios de los ciclos de vida
incremental y por prototipos, pero se
tiene más en cuenta el concepto de riesgo
que aparece debido a las incertidumbres
e ignorancias.
A medida que el ciclo se cumple (el avance
de la espiral), se van obteniendo
19. Ciclo de vida en espiral [II]
Hay cuatro actividades que envuelven las
etapas:
1. Planificación: relevamiento de
requerimientos iniciales o luego de una
iteración.
2. Análisis de riesgos: de acuerdo con el
relevamiento de requerimientos,
decidimos si continuamos con el
desarrollo.
3. Implementación: desarrollamos un
prototipo basado en los
requerimientos.
21. Ventajas y desventajas en el modelo espiral
VENTAJAS DESVENTAJAS
Puede comenzarse un proyecto con un alto grado El coste temporal que suma cada vuelta de la
de incertidumbre. espiral.
Bajo riesgo de retraso en caso de detección de La dificultad para evaluar los riesgos.
errores, ya que se puede solucionar Necesidad de la presencia o la comunicación
en la próxima rama de la espiral. continua con el cliente o usuario.
22. Bibliografía
• Ciclo de Vida del software (UNED)
http://www.ia.uned.es/ia/asignaturas/adms/GuiaDidADM
S/node10.html
• Presentación Ciclos de Vida (Diego
Salamanca)
http://es.scribd.com/doc/11468082/CICLO-DE-VIDA-Y-
MODELO-EN-CASCADA
• Ciclo de Vida del Software (UCLM)
http://alarcos.inf-
cr.uclm.es/doc/ISOFTWAREI/Tema03.pdf
• Revista USR.CODE