Está en la página 1de 22

Modelos de Ciclos de Vida

Introduccin a los modelos en Cascada y Espiral

MadPitbull_99

Definicin de metodologa Metodologa de Desarrollo de Software: son los procesos que hay que seguir sistemticamente para idear, implementar y mantener un producto software desde que surge la necesidad del producto hasta que cumplimos el objetivo por el cul fue creado.
ISO 12207 La ISO (International Organization for Standardization), en su norma 12207 define el ciclo de vida de un software cmo una marco de referencia que contiene las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto software, abarcando desde la definicin hasta la finalizacin de su uso.

Etapas del ciclo de vida


Construye un modelo de los requisitos.
Anlisis

Se deducen la estructura de datos y del sistema y la interfaz de usuario.


Diseo

Codificaci n

Se construye el sistema. Genera un cdigo ejecutable.

Se comprueba que se cumplen los criterios de correccin y calidad.


Pruebas

Mantenimi ento

Se asegura que el sistema siga funcionando y se adapta a nuevos requisitos

Modelos de ciclos de vida

Tipos de ciclos de vida en cascada Existen diferentes tipos de ciclos de vida en cascada:

Cascada

Sashimi

Con subproyectos

Iterativo

Por prototipos

Evolutivo

Incremental

Con reduccin de riesgos

Ciclo de vida en cascada puro Propuesto por Winston Royce en el ao 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 ms extendidos (se estima que el 90% de los sistemas han sido desarrollados as). Despus de cada etapa se realizan una o varias revisiones para comprobar si se puede pasar a la siguiente.
Anlisis Diseo Implementacin Pruebas Mantenimiento

Ventajas, desventajas y casos de uso en cascada puro


VENTAJAS
Admite iteraciones ( Se permite volver a una etapa anterior del proyecto). Planificacin sencilla. Provee un producto con un elevado grado de calidad sin disponer de un personal altamente calificado. Adecuado si se disponen de todos los requerimientos desde el principio.

DESVENTAJAS
Es rgido, poco flexible y con muchas restricciones. La necesidad de conocer todos los requerimientos al comienzo del proyecto. Si se han cometido errores y no se detectan en la etapa inmediatamente siguiente, es costoso y difcil volver atrs para realizar la correccin. 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 (reingeniera). Producto no novedoso o con funcionalidades conocidas. Proyectos complejos fcilmente entendibles.

Ciclo de vida en V Propuesto por Alan Davis. Tiene las mismas fases que la anterior, pero se considera el nivel de abstraccin de cada una. Una fase adems de utilizarse cmo entrada para la siguiente, sirve para validar o verificar otras fases posteriores. Validacin
Anlisis Mantenimiento
Abstraccin

Diseo

Verificacin

Pruebas

Codificacin
Tiempo

Ciclo de vida tipo Sashimi


Se permite un solapamiento entre fases. Ejemplo: sin tener terminado el diseo se comienza a implementar. Ventajas: No necesita generar tanta documentacin cmo el ciclo de cascada pura debido a la continuidad del mismo personal entre fases. Desventajas: Difcil de controlar el progreso del proyecto, dado que los finales de fase ya no son un punto de referencia. Anlisis Si hay problemas de comunicacin pueden surgir inconsistencias. Diseo
Implementacin Pruebas Mantenimiento

Ciclo de vida tipo cascada con subproyectos Llegados a la fase de diseo arquitectnico, 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 dems. Cada uno tendr fechas de terminacin distintas. Una vez terminados todos los subsistemas, se integran y se prueba el sistema en su conjunto.
VENTAJAS
Se puede tener a ms gente trabajando en paralelo de forma eficiente.

DESVENTAJAS
Existe el riesgo de que existan interdependencias entre los objetos.

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 iteracin de varios ciclos en cascada. Al final de cada iteracin, se le entrega al cliente una versin mejorada o con mayores funcionalidades del producto. El cliente es quien, despus de cada iteracin, evala el producto y lo corrige o propone mejoras. Las iteraciones se repetirn hasta que el cliente quede satisfecho.
Anlisis Anlisis Anlisis Diseo Implementacin Pruebas Diseo Implementacin Pruebas Diseo Implementacin Pruebas

Versin 1
Iteracin 1

Versin 2
Iteracin 2

Versin 3
Iteracin 3

Casos de uso en iterativo

CASOS DE USO Se suele utilizar en proyectos en los que los requerimientos no estn claros de parte del usuario. Por lo que se hace necesaria la creacin 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.

Ciclo de vida tipo por prototipos


Usado cuando no se conoce exactamente cmo desarrollar un determinado producto o cules 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 cmo respondern las funcionalidades previstas para el producto final. Antes de adoptar este tipo de ciclo de vida, deberamos analizar si el esfuerzo por crear un prototipo, realmente vale la pena. Utilizado mayoritariamente en desarrollo de productos con innovaciones importantes, o en el uso de tecnologas nuevas o poco probadas. Es el nico apto para desarrollos en los que no se conoce a priori sus especificaciones. Cmo contrapartida, tiene la desventaja de

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 iteracin de ciclos de requerimientos desarrollo - evaluacin. Puede ser muy til cuando se desconocen la mayora de los requerimientos iniciales, o estos requerimientos no estn completos.

Ciclo de vida incremental


Se basa en la filosofa de construir incrementando las funcionalidades del programa. Se realiza construyendo por mdulos 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 mdulo particular (en caso de que sea realizado por un equipo de programadores). Similar al ciclo de vida en cascada con iteraciones, aplicndose un ciclo en cada nueva funcionalidad del programa. Al final de cada ciclo, se le entrega al cliente la versin que contiene la nueva funcionalidad. Nos permite hacer una entrega al cliente antes de acabar el proyecto.

Esquema y beneficios del ciclo incremental


Anlisis Diseo Implementacin Pruebas Anlisis Diseo Implementacin Pruebas

Anlisis Diseo Implementacin

Pruebas

1.0
Versin 1 Funcionalidad 1

1.2
Versin 2 + Funcionalidad 2

1.2.3
Versin 3 + Funcionalidad 3

Beneficios: Construir un sistema pequeo implica menos riesgos que construir uno grande. Si se detecta un error grave, slo desechamos la ltima iteracin. No se necesitan todos los requerimientos al principio del proyecto. Facilita la aplicacin de la filosofa divide & conqueror.

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.

Ciclo de vida en espiral


Diseado por Boehm en el ao 1988. Se puede considerar

cmo una variacin 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 ms 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 prototipos sucesivos que van ganando la satisfaccin del cliente. A menudo, la fuente de incertidumbres es el propio cliente, que en la mayora de los casos no sabe con

Ciclo de vida en espiral [II] Hay cuatro actividades que envuelven las etapas:
1. Planificacin: relevamiento de requerimientos iniciales o luego de una iteracin. 2. Anlisis de riesgos: de acuerdo con el relevamiento de requerimientos, decidimos si continuamos con el desarrollo. 3. Implementacin: desarrollamos un prototipo basado en los requerimientos. 4. Evaluacin: el cliente evala el prototipo, si da su conformidad, termina el proyecto. En caso contrario, incluimos los nuevos requerimientos solicitados por el cliente en la siguiente

Esquema del ciclo de vida en espiral

Ventajas y desventajas en el modelo espiral

VENTAJAS
Puede comenzarse un proyecto con un alto grado de incertidumbre. Bajo riesgo de retraso en caso de deteccin de errores, ya que se puede solucionar en la prxima rama de la espiral.

DESVENTAJAS
El coste temporal que suma cada vuelta de la espiral. La dificultad para evaluar los riesgos. Necesidad de la presencia o la comunicacin continua con el cliente o usuario.

Bibliografa Ciclo de Vida del software (UNED)


http://www.ia.uned.es/ia/asignaturas/adms/GuiaDidADMS/node10.html

Presentacin Ciclos de Vida (Diego Salamanca)


http://es.scribd.com/doc/11468082/CICLO-DE-VIDA-Y-MODELO-ENCASCADA

Ciclo de Vida del Software (UCLM)


http://alarcos.inf-cr.uclm.es/doc/ISOFTWAREI/Tema03.pdf

Revista USR.CODE

También podría gustarte