Está en la página 1de 46

CICLO DE VIDA DEL

SOFTWARE
1. Concepto de Ciclo de Vida
2. Procesos del Ciclo de Vida del Software
3. Modelo en cascada
4. Modelo incremental
5. Modelo en espiral
6. Prototipado
7. La reutilizacin en el Ciclo de Vida
8. Sntesis automtica de Software
9. Comparacin de Ciclos de Vida
10. Modelos para desarrollo de sistemas Orientados a
Objetos.
CICLO DE VIDA DEL SOFTWARE
3.010
CONCEPTO DE CICLO DE VIDA
CONCEPTO DE CICLO DE VIDA
Una aproximacin lgica a la adquisicin, el suministro,
el desarrollo, la explotacin y el mantenimiento del software
IEEE 1074
Un marco de referencia que contiene los procesos, las actividades
y las tareas involucradas en el desarrollo, la explotacin y el
mantenimiento de un producto de software, abarcando la vida del
sistema desde la definicin de los requisitos hasta la finalizacin de
su uso
ISO 12207-1
CICLO DE VIDA DEL SOFTWARE
3.020
PROCESOS DEL CICLO DE VIDA SOFTWARE
PROCESOS DEL CICLO DE VIDA SOFTWARE
PROCESOS DE SOPORTE PROCESOS PRINCIPALES
ADQUISICIN
SUMINISTRO
DESARROLLO
EXPLOTACIN
MANTENIMIENTO
DOCUMENTACIN
GESTIN DE CONFIGURACIN
RESOLUCIN DE PROBLEMAS
PROCESOS DE LA ORGANIZACIN
GESTIN INFRAESTRUCTURA
MEJORA
FORMACIN
ASEGURAMIENTO DE CALIDAD
VERIFICACIN
VALIDACIN
AUDITORA
REVISIN CONJUNTA
CICLO DE VIDA DEL SOFTWARE
3.030
PROCESOS PRINCIPALES I
PROCESOS PRINCIPALES I
Proceso de Adquisicin
Proceso de Suministro
CICLO DE VIDA DEL SOFTWARE
3.040
PROCESOS PRINCIPALES II
PROCESOS PRINCIPALES II
Proceso de Desarrollo I
_Anlisis de Requisitos del Sistema
_Diseo de la Arquitectura del Sistema
_Anlisis de los Requisitos del Software
_Diseo de la Arquitectura del Software
_Diseo Detallado del Software
_Codificacin y Prueba del Software
CICLO DE VIDA DEL SOFTWARE
3.050
PROCESOS PRINCIPALES III
PROCESOS PRINCIPALES III
Proceso de Desarrollo II
_Integracin del Software
_Prueba del Software
_Integracin del Sistema
_Prueba del Sistema
_Instalacin del Software
_Soporte del proceso de Aceptacin del Software
CICLO DE VIDA DEL SOFTWARE
3.060
PROCESOS PRINCIPALES IV
PROCESOS PRINCIPALES IV
Proceso de Explotacin
Proceso de Mantenimiento
CICLO DE VIDA DEL SOFTWARE
3.070
PROCESOS DE SOPORTE I
PROCESOS DE SOPORTE I
Proceso de Documentacin
Proceso de Gestin de la Configuracin
CICLO DE VIDA DEL SOFTWARE
3.080
PROCESOS DE SOPORTE II
PROCESOS DE SOPORTE II
Proceso de Aseguramiento de la Calidad
Proceso de Verificacin
Proceso de Validacin
CICLO DE VIDA DEL SOFTWARE
3.090
PROCESOS DE SOPORTE III
PROCESOS DE SOPORTE III
Proceso de Revisin Conjunta
Proceso de Auditora
Proceso de Resolucin de Problemas
CICLO DE VIDA DEL SOFTWARE
3.100
PROCESOS GENERALES
PROCESOS GENERALES
Proceso de Gestin
Proceso de Infraestructura
Proceso de Mejora
Proceso de Formacin
CICLO DE VIDA DEL SOFTWARE
3.110
Proceso de Adquisicin
Proceso de Desarroll o Proceso de Manteni miento
Proceso de Explotaci n
Proceso de Gesti n
Proceso de Sumi ni stro
Contrato
empl ea
empl ea emplea
empl ea
emplea
Comprador, Proveedor
Comprador, Proveedor
Desarrol lador
Personal mantenimi ento
Operador, Usuari o
Direccin
Visin de la di reccin
Vi sin
operativa
Visi n de
ingeni era
Procesos de Apoyo
-Documentaci n
-Gestin de Configuraci n
-Aseguramiento de l a Cal idad
-Verificacin
-Val idacin
-Revi sin conj unta
-Audi tora
-Resol ver Probl emas
Soporte
Procesos de la Organizacin
- Infraestructura
- Mej ora
-Formacin
Emplea
Empl ea
Empl ea
Emplea
Visi n del Contrato
CICLO DE VIDA DEL SOFTWARE
3.120
MODELO EN CASCADA
MODELO EN CASCADA
CICLO DE VIDA DEL SOFTWARE
3.130
MODELO EN CASCADA
MODELO EN CASCADA
CRITICAS:
No refleja realmente el proceso de desarrollo del software
Se tarda mucho tiempo en pasar por todo el ciclo
Perpetua el fracaso de la industria del software en su
comunicacin con el usuario final
El mantenimiento se realiza en el cdigo fuente
Las revisiones de proyectos de gran complejidad son muy
difciles
Impone una estructura de gestin de proyectos
CICLO DE VIDA DEL SOFTWARE
3.140
MODELO INCREMENTAL
MODELO INCREMENTAL
...
CICLO DE VIDA DEL SOFTWARE
3.150
MODELO INCREMENTAL
MODELO INCREMENTAL
Se evitan proyectos largos y se entrega Algo de valor a los
usuarios con cierta frecuencia
El usuario se involucra ms
Difcil de evaluar el coste total
Difcil de aplicar a sistemas transaccionales que tienden a ser
integrados y a operar como un todo
Requiere gestores experimentados
Los errores en los requisitos se detectan tarde.
El resultado puede ser muy positivo
CICLO DE VIDA DEL SOFTWARE
3.160
MODELO DE PROTOTIPO
MODELO DE PROTOTIPO
CICLO DE VIDA DEL SOFTWARE
3.170
EL PROTOTIPADO RAPIDO
EL PROTOTIPADO RAPIDO
CICLO DE VIDA DEL SOFTWARE
3.180
MODELO DE PROTOTIPO
MODELO DE PROTOTIPO
No modifica el flujo del ciclo de vida
Reduce el riesgo de construir productos que no
satisfagan las necesidades de los usuarios
Reduce costos y aumenta la probabilidad de xito
Exige disponer de las herramientas adecuadas
No presenta calidad ni robustez
Una vez identificados todos los requisitos mediante el
prototipo, se construye el producto de ingeniera.
CICLO DE VIDA DEL SOFTWARE
3.190
EL PROTOTIPADO
EL PROTOTIPADO
PARA QUE SEA EFECTIVO:
-Debe ser un sistema con el que se pueda experimentar
-Debe ser comparativamente barato (< 10%)
-Debe desarrollarse rpidamente
-Enfasis en la interfaz de usuario
-Equipo de desarrollo reducido
-Herramientas y lenguajes adecuados
El prototipado es un medio excelente para recoger
el feedback (realimentacin) del usuario final
CICLO DE VIDA DEL SOFTWARE
3.200
PELIGROS DEL PROTOTIPO
PELIGROS DEL PROTOTIPO
= El cliente ve funcionando lo que para el es la
primera versin del prototipo que ha sido construido
con plastilina y alambres, y puede desilusionarse
al decirle que el sistema aun no ha sido construido.
= El desarrollador puede caer en la tentacin de
ampliar el prototipo para construir el sistema final
sin tener en cuenta los compromisos de calidad y de
mantenimiento que tiene con el cliente.
CICLO DE VIDA DEL SOFTWARE
3.210
EL PROTOTIPADO EVOLUTIVO
EL PROTOTIPADO EVOLUTIVO
OConstruccin de una implementacin parcial que cubre los
requisitos conocidos, para ir aprendiendo el resto y,
paulatinamente, incorporarlos al sistema
OReduce el riesgo y aumenta la probabilidad de xito
ONo se conocen niveles apropiados de calidad y
documentacin
OProblemas de gestin de configuracin
Construir software para que pueda ser modificado fcilmente
es un arte desconocido
CICLO DE VIDA DEL SOFTWARE
3.220
EL PROTOTIPADO OPERACIONAL
EL PROTOTIPADO OPERACIONAL
CICLO DE VIDA DEL SOFTWARE
3.230
MODELO EN ESPIRAL
MODELO EN ESPIRAL
Plan de Requisitos
Plan del Ciclo de Vida
Plan de
Desarrollo
Plan de
Integracin
y Pruebas
Planificar las
fases siguientes
Determinar
objetivos,
alternativas,
restricciones
Evaluar alternativas,
identificar y resolver
los riesgos Anlisis
de Riesgos
Anlisis
Anlisis
Anlisis de
de Riesgos
de Riesgos
Riesgos
Prototipo 1
Prototipo 2
Prototipo 3
Prototipo
Operativo
Concepto de
Operacin Requisitos
Sw
Validacin de
Requisitos
Diseo
Producto
Sw
V & V del
diseo
Simulaciones, modelos, benchmarks
Diseo
detallado
Cdigo
Pruebas
unitarias
Integracin
y prueba
Prueba de
aceptacin
Imple-
menta-
cin
Desarrolar, Verificar el
producto del siguiente nivel
CICLO DE VIDA DEL SOFTWARE
3.240
MODELO EN ESPIRAL
MODELO EN ESPIRAL
CICLO DE VIDA DEL SOFTWARE
3.250
MODELO EN ESPIRAL
MODELO EN ESPIRAL
Trata de mejorar los ciclos de vida clsicos y prototipos.
Permite acomodar otros modelos
Incorpora objetivos de calidad y gestin de riesgos
Elimina errores y alternativas no atractivas al comienzo
Permite iteraciones, vuelta atrs y finalizaciones rpidas
Cada ciclo empieza identificando:
-Los objetivos de la porcin correspondiente
-Las alternativas
-Restricciones
Cada ciclo se completa con una revisin que incluye todo el
ciclo anterior y el plan para el siguiente
CICLO DE VIDA DEL SOFTWARE
3.260
MODELO EN ESPIRAL
MODELO EN ESPIRAL
Diferencias entre modelo en espiral y modelos tradicionales
= Reconocimiento explcito de las diferentes
alternativas.
= Identificacin de riesgos para cada alternativa
desde el comienzo.
= Al dividir el proyecto en ciclos, al final de cada
uno existe un acuerdo para los cambios que hay
que realizar en el sistema.
= El modelo se adapta a cualquier tipo de
actividad adicional
CICLO DE VIDA DEL SOFTWARE
3.270
LA REUTILIZACION EN EL CICLO DE VIDA
LA REUTILIZACION EN EL CICLO DE VIDA
BIBLIOTECA
CICLO DE VIDA DEL SOFTWARE
3.280
LA REUTILIZACION EN EL CICLO DE VIDA
LA REUTILIZACION EN EL CICLO DE VIDA
Principios de la reutilizacin:
Existen similitudes entre distintos sistemas de un mismo dominio de aplicacin
El software puede representarse como una combinacin de mdulos
Disear aplicaciones = especificar mdulos + interrelaciones
Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos
Reduce tiempos y costes de desarrollo
Aumenta la fiabilidad
Dificultad para reconocer los componentes potencialmente
reutilizables
Dificultad de catalogacin y recuperacin
Problemas de motivacin
Problemas de gestin de configuracin
CICLO DE VIDA DEL SOFTWARE
3.290
SNTESIS AUTOMTICA DE SOFTWARE
SNTESIS AUTOMTICA DE SOFTWARE
CICLO DE VIDA DEL SOFTWARE
3.300
SINTESIS AUTOMATICA DEL SOFTWARE
SINTESIS AUTOMATICA DEL SOFTWARE
OSe define el sistema utilizando un lenguaje formal
OLa implementacin es automtica, asistida por el
ordenador
OLa documentacin se genera de forma automtica
OEl mantenimiento se realiza por sustitucin no mediante
parches
ODificultad en la participacin del usuario
ODiseos poco optimizados
CICLO DE VIDA DEL SOFTWARE
3.310
COMPARACION DE CICLOS DE VIDA (Clsico)
COMPARACION DE CICLOS DE VIDA (Clsico)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.320
COMPARACION DE CICLOS DE VIDA (Clsico)
COMPARACION DE CICLOS DE VIDA (Clsico)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.330
COMPARACION DE CICLOS DE VIDA (Prototipo rpido)
COMPARACION DE CICLOS DE VIDA (Prototipo rpido)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.340
COMPARACION DE CICLOS DE VIDA (
COMPARACION DE CICLOS DE VIDA (
Incremental
Incremental
)
)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.350
COMPARACION DE CICLOS DE VIDA
COMPARACION DE CICLOS DE VIDA
(
(
Prototipado
Prototipado
evolutivo)
evolutivo)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.360
COMPARACION DE CICLOS DE VIDA
COMPARACION DE CICLOS DE VIDA
(Reutilizacin)
(Reutilizacin)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.370
COMPARACION DE CICLOS DE VIDA (Sntesis automtica)
COMPARACION DE CICLOS DE VIDA (Sntesis automtica)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.380
MODELO DE AGRUPAMIENTO
MODELO DE AGRUPAMIENTO
Agrupamiento n
ESPEC DISREA VALGEN
ESPEC DISREA VALGEN Agrupamiento 2
Agrupamiento 1 VALGEN
DISREA ESPEC
TIEMPO
TIEMPO
MODELOS PARA DESARROLLO DE SISTEMAS
MODELOS PARA DESARROLLO DE SISTEMAS
ORIENTADOS A OBJETOS
ORIENTADOS A OBJETOS
Especificacin Diseo-Realizacin Validacin-Generalizacin
CICLO DE VIDA DEL SOFTWARE
3.390
MODELO REMOLINO
MODELO REMOLINO
Amplitud
Profundidad
Madurez
Alternativas
Alcance
CICLO DE VIDA DEL SOFTWARE
3.400
MODELO PINBALL
MODELO PINBALL
OLa pelota representa un proyecto completo o un subproyecto.
OEl jugador es el equipo de desarrollo.
OSe procede de forma iterativa a encontrar clases, atributos
mtodos e interrelaciones y definir colaboraciones, herencia,
agregacin y subsistemas.
OPor ltimo se pasa a la programacin, prueba e
implementacin.
OHay dos estilos a la hora de jugar:
OSeguro tecnologas y mtodos probados.
OAl lmite Mayor riesgo, ms ventajas.
CICLO DE VIDA DEL SOFTWARE
3.410
MODELOS OO: FUENTE
MODELOS OO: FUENTE
CICLO DE VIDA DEL SOFTWARE
3.420
CONSIDERACIONES SOBRE MODELOS OO
CONSIDERACIONES SOBRE MODELOS OO
+Se eliminan fronteras entre fases debido a la
naturaleza iterativa del desarrollo orientado al
objeto.
+Aparece una nueva forma de concebir los
lenguajes de programacin y su uso al
incorporarse bibliotecas de clases y otros
componentes reutilizables.
+Hay un alto grado de iteracin y solapamiento, lo
que lleva a una forma de trabajo muy dinmica.
CICLO DE VIDA DEL SOFTWARE
3.430
EJERCICIOS
EJERCICIOS
Ejercicio 1
Qu factores influyen a la hora de elegir un ciclo de vida para
resolver un problema dado?
Qu ciclo de vida elegira para resolver un problema que se
comprende bien desde el principio y est muy
estructurado? Una vez elegido el ciclo de vida, qu
procesos escogera para dicho ciclo de vida, teniendo en
cuenta que el desarrollo informtico para resolver el
problema anterior lo realiza una nica persona?
CICLO DE VIDA DEL SOFTWARE
3.440
EJERCICIOS
EJERCICIOS
Ejercicio 2
Se supone que se va desarrollar una aplicacin relativa a la
gestin de pedidos de una empresa. En este caso el cliente
no tiene todava muy claro qu es lo que quiere. Adems,
el personal informtico va a utilizar un tecnologa que le
resulta completamente nueva. Disctase qu tipo de ciclo
de vida es ms apropiado y qu procesos se deberan
utilizar para desarrollar esta aplicacin.
CICLO DE VIDA DEL SOFTWARE
3.450
EJERCICIOS
EJERCICIOS
Ejercicio 3
Indicar la(s) respuesta(s) correcta(s) y razonar la respuesta:
El ciclo de vida:
a)Comienza con una idea o necesidad que satisfacer y acaba con las
pruebas satisfactorias del producto.
b)No existe ningn estndar que describa sus procesos y actividades.
c)No se trata slo de realizar el anlisis, diseo, codificacin y pruebas;
tambin incluye, entre otros, procesos de soporte.
d)El mantenimiento lo constituyen las actividades para mantener sin
cambios el sistema.
e)En la actividad de anlisis de los requisitos software los desarrolladores
obtienen de los futuros usuarios los requisitos que piden al sistema.