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 reutilización en el Ciclo de Vida
8. Síntesis automática de Software
9. Comparación de Ciclos de Vida
10. Modelos para desarrollo de sistemas Orientados a
Objetos.
CICLO DE VIDA DEL SOFTWARE
3.010
CONCEPTO DE CICLO DE VIDACONCEPTO DE CICLO DE VIDA
“Una aproximación lógica a la adquisición, el suministro,
el desarrollo, la explotación 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 explotación y el
mantenimiento de un producto de software, abarcando la vida del
sistema desde la definición de los requisitos hasta la finalización de
su uso”
ISO 12207-1
CICLO DE VIDA DEL SOFTWARE
3.020
PROCESOS DEL CICLO DE VIDA SOFTWAREPROCESOS DEL CICLO DE VIDA SOFTWARE
PROCESOS DE SOPORTEPROCESOS PRINCIPALES
ADQUISICIÓN
SUMINISTRO
DESARROLLO
EXPLOTACIÓN
MANTENIMIENTO
DOCUMENTACIÓN
GESTIÓN DE CONFIGURACIÓN
RESOLUCIÓN DE PROBLEMAS
PROCESOS DE LA ORGANIZACIÓN
GESTIÓN INFRAESTRUCTURA
MEJORA FORMACIÓN
ASEGURAMIENTO DE CALIDAD
VERIFICACIÓN
VALIDACIÓN
AUDITORÍA
REVISIÓN CONJUNTA
CICLO DE VIDA DEL SOFTWARE
3.030
PROCESOS PRINCIPALES IPROCESOS PRINCIPALES I
Proceso de Adquisición
Proceso de Suministro
CICLO DE VIDA DEL SOFTWARE
3.040
PROCESOS PRINCIPALES IIPROCESOS PRINCIPALES II
Proceso de Desarrollo I
Análisis de Requisitos del Sistema
Diseño de la Arquitectura del Sistema
Análisis de los Requisitos del Software
Diseño de la Arquitectura del Software
Diseño Detallado del Software
Codificación y Prueba del Software
CICLO DE VIDA DEL SOFTWARE
3.050
PROCESOS PRINCIPALES IIIPROCESOS PRINCIPALES III
Proceso de Desarrollo II
Integración del Software
Prueba del Software
Integración del Sistema
Prueba del Sistema
Instalación del Software
Soporte del proceso de Aceptación del Software
CICLO DE VIDA DEL SOFTWARE
3.060
PROCESOS PRINCIPALES IVPROCESOS PRINCIPALES IV
Proceso de Explotación
Proceso de Mantenimiento
CICLO DE VIDA DEL SOFTWARE
3.070
PROCESOS DE SOPORTE IPROCESOS DE SOPORTE I
Proceso de Documentación
Proceso de Gestión de la Configuración
CICLO DE VIDA DEL SOFTWARE
3.080
PROCESOS DE SOPORTE IIPROCESOS DE SOPORTE II
Proceso de Aseguramiento de la Calidad
Proceso de Verificación
Proceso de Validación
CICLO DE VIDA DEL SOFTWARE
3.090
PROCESOS DE SOPORTE IIIPROCESOS DE SOPORTE III
Proceso de Revisión Conjunta
Proceso de Auditoría
Proceso de Resolución de Problemas
CICLO DE VIDA DEL SOFTWARE
3.100
PROCESOS GENERALESPROCESOS GENERALES
Proceso de Gestión
Proceso de Infraestructura
Proceso de Mejora
Proceso de Formación
CICLO DE VIDA DEL SOFTWARE
3.110
Proceso de Adquisición
Proceso de DesarrolloProceso de Mantenimiento
Proceso de Explotación
Proceso de Gestión
Proceso de Suministro
Contrato
emplea
emplea emplea
emplea
emplea
Comprador, Proveedor
Comprador, Proveedor
Desarrollador
Personal mantenimiento
Operador, Usuario
Dirección
Visión de la dirección
Visión
operativa
Visión de
ingeniería
Procesos de Apoyo
-Documentación
-Gestión de Configuración
-Aseguramiento de la Calidad
-Verificación
-Validación
-Revisión conjunta
-Auditoría
-Resolver Problemas
Soporte
Procesos de la Organización
- Infraestructura
- Mejora
-Formación
Emplea
Emplea
Emplea
Emplea
Visión del Contrato
CICLO DE VIDA DEL SOFTWARE
3.120
MODELO EN CASCADAMODELO EN CASCADA
CICLO DE VIDA DEL SOFTWARE
3.130
MODELO EN CASCADAMODELO 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
comunicación con el usuario final
El mantenimiento se realiza en el código fuente
Las revisiones de proyectos de gran complejidad son muy
difíciles
Impone una estructura de gestión de proyectos
CICLO DE VIDA DEL SOFTWARE
3.140
MODELO INCREMENTALMODELO INCREMENTAL
...
CICLO DE VIDA DEL SOFTWARE
3.150
MODELO INCREMENTALMODELO INCREMENTAL
Se evitan proyectos largos y se entrega “Algo de valor” a los
usuarios con cierta frecuencia
El usuario se involucra más
Difícil de evaluar el coste total
Difícil 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 PROTOTIPOMODELO DE PROTOTIPO
CICLO DE VIDA DEL SOFTWARE
3.170
EL PROTOTIPADO “RAPIDO”EL PROTOTIPADO “RAPIDO”
CICLO DE VIDA DEL SOFTWARE
3.180
MODELO DE PROTOTIPOMODELO 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 ingeniería.
CICLO DE VIDA DEL SOFTWARE
3.190
EL PROTOTIPADOEL PROTOTIPADO
PARA QUE SEA EFECTIVO:
Debe ser un sistema con el que se pueda experimentar
Debe ser comparativamente barato (< 10%)
Debe desarrollarse rápidamente
Enfasis en la interfaz de usuario
Equipo de desarrollo reducido
Herramientas y lenguajes adecuados
“El prototipado es un medio excelente para recoger
el ‘feedback’ (realimentación) del usuario final”
CICLO DE VIDA DEL SOFTWARE
3.200
PELIGROS DEL PROTOTIPOPELIGROS DEL PROTOTIPO
El cliente ve funcionando lo que para el es la
primera versión 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 tentación 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 EVOLUTIVOEL PROTOTIPADO EVOLUTIVO
Construcción de una implementación parcial que cubre los
requisitos conocidos, para ir aprendiendo el resto y,
paulatinamente, incorporarlos al sistema
Reduce el riesgo y aumenta la probabilidad de éxito
No se conocen niveles apropiados de calidad y
documentación
Problemas de gestión de configuración
Construir software para que pueda ser modificado fácilmente
es un “arte desconocido”
CICLO DE VIDA DEL SOFTWARE
3.220
EL PROTOTIPADO OPERACIONALEL PROTOTIPADO OPERACIONAL
CICLO DE VIDA DEL SOFTWARE
3.230
MODELO EN ESPIRALMODELO EN ESPIRAL
Plan de Requisitos
Plan del Ciclo de Vida
Plan de
Desarrollo
Plan de
Integración
y Pruebas
Planificar las
fases siguientes
Determinar
objetivos,
alternativas,
restricciones
Evaluar alternativas,
identificar y resolver
los riesgosAnálisis
de Riesgos
Análisis
Análisis
Análisis de
de Riesgos
de Riesgos
Riesgos
Prototipo 1
Prototipo 2
Prototipo 3
Prototipo
Operativo
Concepto de
Operación Requisitos
Sw
Validación de
Requisitos
Diseño
Producto
Sw
V & V del
diseño
Simulaciones, modelos, benchmarks
Diseño
detallado
Código
Pruebas
unitarias
Integración
y prueba
Prueba de
aceptación
Imple-
menta-
ción
Desarrolar, Verificar el
producto del siguiente nivel
CICLO DE VIDA DEL SOFTWARE
3.240
MODELO EN ESPIRALMODELO EN ESPIRAL
CICLO DE VIDA DEL SOFTWARE
3.250
MODELO EN ESPIRALMODELO EN ESPIRAL
Trata de mejorar los ciclos de vida clásicos y prototipos.
Permite acomodar otros modelos
Incorpora objetivos de calidad y gestión de riesgos
Elimina errores y alternativas no atractivas al comienzo
Permite iteraciones, vuelta atrás y finalizaciones rápidas
Cada ciclo empieza identificando:
Los objetivos de la porción correspondiente
Las alternativas
Restricciones
Cada ciclo se completa con una revisión que incluye todo el
ciclo anterior y el plan para el siguiente
CICLO DE VIDA DEL SOFTWARE
3.260
MODELO EN ESPIRALMODELO EN ESPIRAL
Diferencias entre modelo en espiral y modelos tradicionales
Reconocimiento explícito de las diferentes
alternativas.
Identificación 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 VIDALA REUTILIZACION EN EL CICLO DE VIDA
BIBLIOTECA
CICLO DE VIDA DEL SOFTWARE
3.280
LA REUTILIZACION EN EL CICLO DE VIDALA REUTILIZACION EN EL CICLO DE VIDA
Principios de la reutilización:
Existen similitudes entre distintos sistemas de un mismo dominio de aplicación
El software puede representarse como una combinación de módulos
Diseñar aplicaciones = especificar módulos + 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 catalogación y recuperación
Problemas de motivación
Problemas de gestión de configuración
CICLO DE VIDA DEL SOFTWARE
3.290
SÍNTESIS AUTOMÁTICA DE SOFTWARESÍNTESIS AUTOMÁTICA DE SOFTWARE
CICLO DE VIDA DEL SOFTWARE
3.300
SINTESIS AUTOMATICA DEL SOFTWARESINTESIS AUTOMATICA DEL SOFTWARE
Se define el sistema utilizando un lenguaje formal
La implementación es automática, asistida por el
ordenador
La documentación se genera de forma automática
El mantenimiento se realiza “por sustitución” no mediante
“parches”
Dificultad en la participación del usuario
Diseños poco optimizados
CICLO DE VIDA DEL SOFTWARE
3.310
COMPARACION DE CICLOS DE VIDA (Clásico)COMPARACION DE CICLOS DE VIDA (Clásico)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.320
COMPARACION DE CICLOS DE VIDA (Clásico)COMPARACION DE CICLOS DE VIDA (Clásico)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.330
COMPARACION DE CICLOS DE VIDA (Prototipo rápido)COMPARACION DE CICLOS DE VIDA (Prototipo rápido)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.340
COMPARACION DE CICLOS DE VIDA (COMPARACION DE CICLOS DE VIDA (IncrementalIncremental))
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.350
COMPARACION DE CICLOS DE VIDACOMPARACION DE CICLOS DE VIDA
((PrototipadoPrototipado evolutivo)evolutivo)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.360
COMPARACION DE CICLOS DE VIDACOMPARACION DE CICLOS DE VIDA
(Reutilización)(Reutilización)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.370
COMPARACION DE CICLOS DE VIDA (Síntesis automática)COMPARACION DE CICLOS DE VIDA (Síntesis automática)
Tiempo
CICLO DE VIDA DEL SOFTWARE
3.380
MODELO DE AGRUPAMIENTOMODELO DE AGRUPAMIENTO
Agrupamiento n ESPEC DISREA VALGEN
ESPEC DISREA VALGEN Agrupamiento 2
Agrupamiento 1VALGENDISREAESPEC
TIEMPO
TIEMPO
MODELOS PARA DESARROLLO DE SISTEMASMODELOS PARA DESARROLLO DE SISTEMAS
ORIENTADOS A OBJETOSORIENTADOS A OBJETOS
Especificación Diseño-Realización Validación-Generalización
CICLO DE VIDA DEL SOFTWARE
3.390
MODELO REMOLINOMODELO REMOLINO
Amplitud
Profundidad
Madurez
Alternativas
Alcance
CICLO DE VIDA DEL SOFTWARE
3.400
MODELO PINBALLMODELO PINBALL
La pelota representa un proyecto completo o un subproyecto.
El jugador es el equipo de desarrollo.
Se procede de forma iterativa a encontrar clases, atributos
métodos e interrelaciones y definir colaboraciones, herencia,
agregación y subsistemas.
Por último se pasa a la programación, prueba e
implementación.
Hay dos estilos a la hora de “jugar”:
Seguro tecnologías y métodos probados.
Al límite Mayor riesgo, más ventajas.
CICLO DE VIDA DEL SOFTWARE
3.410
MODELOS OO: FUENTEMODELOS OO: FUENTE
CICLO DE VIDA DEL SOFTWARE
3.420
CONSIDERACIONES SOBRE MODELOS OOCONSIDERACIONES 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 programación y su uso al
incorporarse bibliotecas de clases y otros
componentes reutilizables.
Hay un alto grado de iteración y solapamiento, lo
que lleva a una forma de trabajo muy dinámica.
CICLO DE VIDA DEL SOFTWARE
3.430
EJERCICIOSEJERCICIOS
Ejercicio 1
¿Qué factores influyen a la hora de elegir un ciclo de vida para
resolver un problema dado?
¿Qué ciclo de vida elegiría para resolver un problema que se
comprende bien desde el principio y está muy
estructurado? Una vez elegido el ciclo de vida, ¿qué
procesos escogería para dicho ciclo de vida, teniendo en
cuenta que el desarrollo informático para resolver el
problema anterior lo realiza una única persona?
CICLO DE VIDA DEL SOFTWARE
3.440
EJERCICIOSEJERCICIOS
Ejercicio 2
Se supone que se va desarrollar una aplicación relativa a la
gestión de pedidos de una empresa. En este caso el cliente
no tiene todavía muy claro qué es lo que quiere. Además,
el personal informático va a utilizar un tecnología que le
resulta completamente nueva. Discútase qué tipo de ciclo
de vida es más apropiado y qué procesos se deberían
utilizar para desarrollar esta aplicación.
CICLO DE VIDA DEL SOFTWARE
3.450
EJERCICIOSEJERCICIOS
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 ningún estándar que describa sus procesos y actividades.
c)No se trata sólo de realizar el análisis, diseño, codificación y pruebas;
también incluye, entre otros, procesos de soporte.
d)El mantenimiento lo constituyen las actividades para mantener sin
cambios el sistema.
e)En la actividad de análisis de los requisitos software los desarrolladores
obtienen de los futuros usuarios los requisitos que piden al sistema.

ciclo de vida del sofware

  • 1.
    CICLO DE VIDADEL 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 reutilización en el Ciclo de Vida 8. Síntesis automática de Software 9. Comparación de Ciclos de Vida 10. Modelos para desarrollo de sistemas Orientados a Objetos.
  • 2.
    CICLO DE VIDADEL SOFTWARE 3.010 CONCEPTO DE CICLO DE VIDACONCEPTO DE CICLO DE VIDA “Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación 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 explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso” ISO 12207-1
  • 3.
    CICLO DE VIDADEL SOFTWARE 3.020 PROCESOS DEL CICLO DE VIDA SOFTWAREPROCESOS DEL CICLO DE VIDA SOFTWARE PROCESOS DE SOPORTEPROCESOS PRINCIPALES ADQUISICIÓN SUMINISTRO DESARROLLO EXPLOTACIÓN MANTENIMIENTO DOCUMENTACIÓN GESTIÓN DE CONFIGURACIÓN RESOLUCIÓN DE PROBLEMAS PROCESOS DE LA ORGANIZACIÓN GESTIÓN INFRAESTRUCTURA MEJORA FORMACIÓN ASEGURAMIENTO DE CALIDAD VERIFICACIÓN VALIDACIÓN AUDITORÍA REVISIÓN CONJUNTA
  • 4.
    CICLO DE VIDADEL SOFTWARE 3.030 PROCESOS PRINCIPALES IPROCESOS PRINCIPALES I Proceso de Adquisición Proceso de Suministro
  • 5.
    CICLO DE VIDADEL SOFTWARE 3.040 PROCESOS PRINCIPALES IIPROCESOS PRINCIPALES II Proceso de Desarrollo I Análisis de Requisitos del Sistema Diseño de la Arquitectura del Sistema Análisis de los Requisitos del Software Diseño de la Arquitectura del Software Diseño Detallado del Software Codificación y Prueba del Software
  • 6.
    CICLO DE VIDADEL SOFTWARE 3.050 PROCESOS PRINCIPALES IIIPROCESOS PRINCIPALES III Proceso de Desarrollo II Integración del Software Prueba del Software Integración del Sistema Prueba del Sistema Instalación del Software Soporte del proceso de Aceptación del Software
  • 7.
    CICLO DE VIDADEL SOFTWARE 3.060 PROCESOS PRINCIPALES IVPROCESOS PRINCIPALES IV Proceso de Explotación Proceso de Mantenimiento
  • 8.
    CICLO DE VIDADEL SOFTWARE 3.070 PROCESOS DE SOPORTE IPROCESOS DE SOPORTE I Proceso de Documentación Proceso de Gestión de la Configuración
  • 9.
    CICLO DE VIDADEL SOFTWARE 3.080 PROCESOS DE SOPORTE IIPROCESOS DE SOPORTE II Proceso de Aseguramiento de la Calidad Proceso de Verificación Proceso de Validación
  • 10.
    CICLO DE VIDADEL SOFTWARE 3.090 PROCESOS DE SOPORTE IIIPROCESOS DE SOPORTE III Proceso de Revisión Conjunta Proceso de Auditoría Proceso de Resolución de Problemas
  • 11.
    CICLO DE VIDADEL SOFTWARE 3.100 PROCESOS GENERALESPROCESOS GENERALES Proceso de Gestión Proceso de Infraestructura Proceso de Mejora Proceso de Formación
  • 12.
    CICLO DE VIDADEL SOFTWARE 3.110 Proceso de Adquisición Proceso de DesarrolloProceso de Mantenimiento Proceso de Explotación Proceso de Gestión Proceso de Suministro Contrato emplea emplea emplea emplea emplea Comprador, Proveedor Comprador, Proveedor Desarrollador Personal mantenimiento Operador, Usuario Dirección Visión de la dirección Visión operativa Visión de ingeniería Procesos de Apoyo -Documentación -Gestión de Configuración -Aseguramiento de la Calidad -Verificación -Validación -Revisión conjunta -Auditoría -Resolver Problemas Soporte Procesos de la Organización - Infraestructura - Mejora -Formación Emplea Emplea Emplea Emplea Visión del Contrato
  • 13.
    CICLO DE VIDADEL SOFTWARE 3.120 MODELO EN CASCADAMODELO EN CASCADA
  • 14.
    CICLO DE VIDADEL SOFTWARE 3.130 MODELO EN CASCADAMODELO 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 comunicación con el usuario final El mantenimiento se realiza en el código fuente Las revisiones de proyectos de gran complejidad son muy difíciles Impone una estructura de gestión de proyectos
  • 15.
    CICLO DE VIDADEL SOFTWARE 3.140 MODELO INCREMENTALMODELO INCREMENTAL ...
  • 16.
    CICLO DE VIDADEL SOFTWARE 3.150 MODELO INCREMENTALMODELO INCREMENTAL Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta frecuencia El usuario se involucra más Difícil de evaluar el coste total Difícil 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
  • 17.
    CICLO DE VIDADEL SOFTWARE 3.160 MODELO DE PROTOTIPOMODELO DE PROTOTIPO
  • 18.
    CICLO DE VIDADEL SOFTWARE 3.170 EL PROTOTIPADO “RAPIDO”EL PROTOTIPADO “RAPIDO”
  • 19.
    CICLO DE VIDADEL SOFTWARE 3.180 MODELO DE PROTOTIPOMODELO 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 ingeniería.
  • 20.
    CICLO DE VIDADEL SOFTWARE 3.190 EL PROTOTIPADOEL PROTOTIPADO PARA QUE SEA EFECTIVO: Debe ser un sistema con el que se pueda experimentar Debe ser comparativamente barato (< 10%) Debe desarrollarse rápidamente Enfasis en la interfaz de usuario Equipo de desarrollo reducido Herramientas y lenguajes adecuados “El prototipado es un medio excelente para recoger el ‘feedback’ (realimentación) del usuario final”
  • 21.
    CICLO DE VIDADEL SOFTWARE 3.200 PELIGROS DEL PROTOTIPOPELIGROS DEL PROTOTIPO El cliente ve funcionando lo que para el es la primera versión 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 tentación 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.
  • 22.
    CICLO DE VIDADEL SOFTWARE 3.210 EL PROTOTIPADO EVOLUTIVOEL PROTOTIPADO EVOLUTIVO Construcción de una implementación parcial que cubre los requisitos conocidos, para ir aprendiendo el resto y, paulatinamente, incorporarlos al sistema Reduce el riesgo y aumenta la probabilidad de éxito No se conocen niveles apropiados de calidad y documentación Problemas de gestión de configuración Construir software para que pueda ser modificado fácilmente es un “arte desconocido”
  • 23.
    CICLO DE VIDADEL SOFTWARE 3.220 EL PROTOTIPADO OPERACIONALEL PROTOTIPADO OPERACIONAL
  • 24.
    CICLO DE VIDADEL SOFTWARE 3.230 MODELO EN ESPIRALMODELO EN ESPIRAL Plan de Requisitos Plan del Ciclo de Vida Plan de Desarrollo Plan de Integración y Pruebas Planificar las fases siguientes Determinar objetivos, alternativas, restricciones Evaluar alternativas, identificar y resolver los riesgosAnálisis de Riesgos Análisis Análisis Análisis de de Riesgos de Riesgos Riesgos Prototipo 1 Prototipo 2 Prototipo 3 Prototipo Operativo Concepto de Operación Requisitos Sw Validación de Requisitos Diseño Producto Sw V & V del diseño Simulaciones, modelos, benchmarks Diseño detallado Código Pruebas unitarias Integración y prueba Prueba de aceptación Imple- menta- ción Desarrolar, Verificar el producto del siguiente nivel
  • 25.
    CICLO DE VIDADEL SOFTWARE 3.240 MODELO EN ESPIRALMODELO EN ESPIRAL
  • 26.
    CICLO DE VIDADEL SOFTWARE 3.250 MODELO EN ESPIRALMODELO EN ESPIRAL Trata de mejorar los ciclos de vida clásicos y prototipos. Permite acomodar otros modelos Incorpora objetivos de calidad y gestión de riesgos Elimina errores y alternativas no atractivas al comienzo Permite iteraciones, vuelta atrás y finalizaciones rápidas Cada ciclo empieza identificando: Los objetivos de la porción correspondiente Las alternativas Restricciones Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente
  • 27.
    CICLO DE VIDADEL SOFTWARE 3.260 MODELO EN ESPIRALMODELO EN ESPIRAL Diferencias entre modelo en espiral y modelos tradicionales Reconocimiento explícito de las diferentes alternativas. Identificación 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
  • 28.
    CICLO DE VIDADEL SOFTWARE 3.270 LA REUTILIZACION EN EL CICLO DE VIDALA REUTILIZACION EN EL CICLO DE VIDA BIBLIOTECA
  • 29.
    CICLO DE VIDADEL SOFTWARE 3.280 LA REUTILIZACION EN EL CICLO DE VIDALA REUTILIZACION EN EL CICLO DE VIDA Principios de la reutilización: Existen similitudes entre distintos sistemas de un mismo dominio de aplicación El software puede representarse como una combinación de módulos Diseñar aplicaciones = especificar módulos + 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 catalogación y recuperación Problemas de motivación Problemas de gestión de configuración
  • 30.
    CICLO DE VIDADEL SOFTWARE 3.290 SÍNTESIS AUTOMÁTICA DE SOFTWARESÍNTESIS AUTOMÁTICA DE SOFTWARE
  • 31.
    CICLO DE VIDADEL SOFTWARE 3.300 SINTESIS AUTOMATICA DEL SOFTWARESINTESIS AUTOMATICA DEL SOFTWARE Se define el sistema utilizando un lenguaje formal La implementación es automática, asistida por el ordenador La documentación se genera de forma automática El mantenimiento se realiza “por sustitución” no mediante “parches” Dificultad en la participación del usuario Diseños poco optimizados
  • 32.
    CICLO DE VIDADEL SOFTWARE 3.310 COMPARACION DE CICLOS DE VIDA (Clásico)COMPARACION DE CICLOS DE VIDA (Clásico) Tiempo
  • 33.
    CICLO DE VIDADEL SOFTWARE 3.320 COMPARACION DE CICLOS DE VIDA (Clásico)COMPARACION DE CICLOS DE VIDA (Clásico) Tiempo
  • 34.
    CICLO DE VIDADEL SOFTWARE 3.330 COMPARACION DE CICLOS DE VIDA (Prototipo rápido)COMPARACION DE CICLOS DE VIDA (Prototipo rápido) Tiempo
  • 35.
    CICLO DE VIDADEL SOFTWARE 3.340 COMPARACION DE CICLOS DE VIDA (COMPARACION DE CICLOS DE VIDA (IncrementalIncremental)) Tiempo
  • 36.
    CICLO DE VIDADEL SOFTWARE 3.350 COMPARACION DE CICLOS DE VIDACOMPARACION DE CICLOS DE VIDA ((PrototipadoPrototipado evolutivo)evolutivo) Tiempo
  • 37.
    CICLO DE VIDADEL SOFTWARE 3.360 COMPARACION DE CICLOS DE VIDACOMPARACION DE CICLOS DE VIDA (Reutilización)(Reutilización) Tiempo
  • 38.
    CICLO DE VIDADEL SOFTWARE 3.370 COMPARACION DE CICLOS DE VIDA (Síntesis automática)COMPARACION DE CICLOS DE VIDA (Síntesis automática) Tiempo
  • 39.
    CICLO DE VIDADEL SOFTWARE 3.380 MODELO DE AGRUPAMIENTOMODELO DE AGRUPAMIENTO Agrupamiento n ESPEC DISREA VALGEN ESPEC DISREA VALGEN Agrupamiento 2 Agrupamiento 1VALGENDISREAESPEC TIEMPO TIEMPO MODELOS PARA DESARROLLO DE SISTEMASMODELOS PARA DESARROLLO DE SISTEMAS ORIENTADOS A OBJETOSORIENTADOS A OBJETOS Especificación Diseño-Realización Validación-Generalización
  • 40.
    CICLO DE VIDADEL SOFTWARE 3.390 MODELO REMOLINOMODELO REMOLINO Amplitud Profundidad Madurez Alternativas Alcance
  • 41.
    CICLO DE VIDADEL SOFTWARE 3.400 MODELO PINBALLMODELO PINBALL La pelota representa un proyecto completo o un subproyecto. El jugador es el equipo de desarrollo. Se procede de forma iterativa a encontrar clases, atributos métodos e interrelaciones y definir colaboraciones, herencia, agregación y subsistemas. Por último se pasa a la programación, prueba e implementación. Hay dos estilos a la hora de “jugar”: Seguro tecnologías y métodos probados. Al límite Mayor riesgo, más ventajas.
  • 42.
    CICLO DE VIDADEL SOFTWARE 3.410 MODELOS OO: FUENTEMODELOS OO: FUENTE
  • 43.
    CICLO DE VIDADEL SOFTWARE 3.420 CONSIDERACIONES SOBRE MODELOS OOCONSIDERACIONES 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 programación y su uso al incorporarse bibliotecas de clases y otros componentes reutilizables. Hay un alto grado de iteración y solapamiento, lo que lleva a una forma de trabajo muy dinámica.
  • 44.
    CICLO DE VIDADEL SOFTWARE 3.430 EJERCICIOSEJERCICIOS Ejercicio 1 ¿Qué factores influyen a la hora de elegir un ciclo de vida para resolver un problema dado? ¿Qué ciclo de vida elegiría para resolver un problema que se comprende bien desde el principio y está muy estructurado? Una vez elegido el ciclo de vida, ¿qué procesos escogería para dicho ciclo de vida, teniendo en cuenta que el desarrollo informático para resolver el problema anterior lo realiza una única persona?
  • 45.
    CICLO DE VIDADEL SOFTWARE 3.440 EJERCICIOSEJERCICIOS Ejercicio 2 Se supone que se va desarrollar una aplicación relativa a la gestión de pedidos de una empresa. En este caso el cliente no tiene todavía muy claro qué es lo que quiere. Además, el personal informático va a utilizar un tecnología que le resulta completamente nueva. Discútase qué tipo de ciclo de vida es más apropiado y qué procesos se deberían utilizar para desarrollar esta aplicación.
  • 46.
    CICLO DE VIDADEL SOFTWARE 3.450 EJERCICIOSEJERCICIOS 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 ningún estándar que describa sus procesos y actividades. c)No se trata sólo de realizar el análisis, diseño, codificación y pruebas; también incluye, entre otros, procesos de soporte. d)El mantenimiento lo constituyen las actividades para mantener sin cambios el sistema. e)En la actividad de análisis de los requisitos software los desarrolladores obtienen de los futuros usuarios los requisitos que piden al sistema.