Ciclo de vida: Definición
•Conjunto de fases por las que pasa el sistema que se está
desarrollando desde que nace la idea inicial hasta que el
software es retirado o reemplazado (“muere”).
• Se denomina a veces “paradigma”.
• Dos puntos de vista • Transformación del producto.
• Proceso que transforma el producto.
2
Ciclo de vida: Definición
3
“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: Distribución del esfuerzo
Distribución del esfuerzo durante el ciclo de vida
16
8
16 12
36
12
40
35
30
25
20
15
10
5
0 Es
fue
rzo
Re
lati
vo
(%)
4
Ciclo de vida: Funciones (i)
• Un ciclo de vida debe:
1. Determinar el orden de las fases del proceso
software.
2. Establecer los criterios de transición para pasar de una fase a la siguiente.
3. Definir las entradas y salidas de cada fase.
5
Ciclo de vida: Funciones (ii)
1. Describir los estados por los que pasa el
producto.
2. Describir las actividades a realizar para
transformar el producto.
3. Definir un esquema que sirve como base para:
• Planificar. • Organizar. • Coordinar.
• Desarrollar.
6
Modelos de ciclos de Vida
8
SECUENCIAL
CASCADA
ESPIRAL
MODELOS CICLOS DESARROLLO
MODELOS CICLOS DE VIDA DE SISTEMAS
INCREMENTAL
EVOLUTIVO CASCADA
CONCURRENCIA
COMPONENTES COMERCIALES Y REUTILIZAZIÓN
PROTOTIPADO
MO
DIF
ICA
DO
RES
Modelo de desarrollo: LINEAL
9
Requisitos
Diseño
Codificación
Pruebas
Integración
Operación y mantenimiento
Modelo de desarrollo: LINEAL
10
• Este modelo refleja un desarrollo marcado por la sucesión escalonada de las
etapas que lo componen : requisitos, diseño, codificación, pruebas e integración.
• Es necesario terminar por completo cada etapa para pasar a la siguiente.
• Este modelo, identificado ya a principios de la década de los 50, resulta muy rígido
porque cada fase requiere como elemento de entrada el resultado completo de la
anterior.
Al aplicarlo en situaciones reales su rigidez genera problemas, porque muchas veces
resulta difícil poder disponer de requisitos completos o del diseño pormenorizado del
sistema en las fases iniciales, creando una barrera que impide avanzar.
Resulta apropiado para:
Desarrollar nuevas versiones de sistemas ya veteranos en los que el
desconocimiento de las necesidades de los usuarios, o del entorno de
operación no plantea riesgos.
Sistemas pequeños, sin previsión de evolución a corto plazo.
Modelo de ciclo de vida CASCADA (i)
Análisis
Diseño
Codificación
Pruebas
e integración
Operación y
Qué
Cóm
o
Mantenimiento 18
Modelo de ciclo de vida en cascada (ii) Características: • Es el más utilizado.
• Es una visión del proceso de desarrollo de software
como una sucesión de etapas que producen productos intermedios.
• Para que el proyecto tenga éxito deben desarrollarse todas las fases.
• Las fases continúan hasta que los objetivos se han
cumplido.
• Si se cambia el orden de las fases, el producto final
será de inferior calidad. 12
Modelo de ciclo de vida en cascada (iii)
Limitaciones:
• No se permiten las iteraciones. • Los requisitos se congelan al principio
del proyecto. • No existe un proyecto “enseñable” hasta
el final del proyecto.
13
Modelo de ciclo de vida en cascada: Variaciones
•Se añade realimentación
entre fases.
Análisis
Diseño
Pruebas
e integración
Codificación
Operación y 22 Mantenimiento
Modelo de mejora iteractiva
Análisis
Diseño
Codificación
Pruebas
e integración
Operación y
• Los productos de las
diferentes etapas van
refinando y mejorando.
23 Mantenimiento
Iterativo
• Rational Unified Process (www.rational.com ).
Diseño
[más iteraciones]
cliente
[más iteraciones]
Otras “metodologías ágiles”:
• Extreme Programming (Xp): 24 www.extremeprogramming.org
Iteracción de A&D
Análisis Planificación
Planificación Análisis Diseño
Incremento
Prototipo Pruebas Evalua Cliente
Modelo de ciclo de vida en espiral (i)
Determinación de
objetivos, riesgos,
alternativas, restricciones
A. de
riesgo
A. de
riesgo Prototipo 1
requisitos y del Concepto
de operación
Planificación de
ciclo de vida
Planificación Validación del diseño de requisitos
Validación y
verificación del diseño
Planificación de
la codificación
Simulaciones, modelos, programas de prueba
A. de
riesgo
Prueba Codificación de unidad Integración
y prueba
impl
anta
ción
Pru
eba
de
acep
taci
ón
Planificación de
las próximas fases
Evaluación de alternativas, identificación y resolución de riesgos
Desarrollo, verificación del producto del próximo
Costos acumulados Progreso a través
de pasos
25 nivel.
Modelo de ciclo de vida en espiral (ii)
19
•Se usa en proyectos en los que se prevén riesgos. •Representa un enfoque dirigido por el riesgo para el análisis y
estructuración del proceso software. • Ventajas:
• Utiliza las fases de modelos tradicionales.
• Se centra en la eliminación de errores y alternativas poco
atractivas.
• Su orientación a detectar y prevenir el riesgo evita muchas
dificultades. • Desventajas:
• Complicado: Consume muchos recursos.
• Las etapas y sus E/S no están claramente definidas
Modelo de PROTOTIPADO
21
1. No modifica el flujo del ciclo de vida
2. Reduce el riesgo de construir productos que no satisfagan las
necesidades de los usuarios
3. Reduce costos y aumenta la probabilidad de éxito
4. Exige disponer de las herramientas adecuadas
5. No presenta calidad ni robustez
6. Una vez identificados todos los requisitos mediante el prototipo, se construye el
producto de ingeniería
Modelo de PROTOTIPADO
22
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”
Modelo de PROTOTIPADO: PELIGROS
23
1. 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.
2. 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
Modelos de desarrollo de productos software (i)
•El cliente no suele tener una idea clara de lo que quiere, o no sabe
explicarlo bien.
•El responsable de desarrollo puede no estar seguro de la eficacia de
un algoritmo, del enfoque a tomar en la interacción hombre-
máquina, etc.
• Ayudan a comprender y validar los requisitos de usuario.
• Desarrollo de prototipos y maquetas.
24
Desarrollo de productos software
Revisión del Prototipo
Revisión del Prototipo
Divergencia de expectativas
25
tiempo
35
Modelo de procesos software IEEE (i)
Proceso de selección de un MCVS
Proceso de gestión del Proyecto
Proceso
de Iniciación
Proceso
de
Segui-
miento
y
control
Proceso de Gestión de
Calidad del SW.
Procesos Orientados al desarrollo de SW.
Procesos de Pre-Desarrollo
Proceso de exploración de Conceptos
Proceso de asignación del sistema
Procesos de Desarrollo
Proceso de Requisitos
Proceso de Diseño
Proceso de Implementación
Procesos de post-desarrollo
Proceso de Instalación
Proceso de
Operación y
Soporte
Proceso de
Mantenimiento
Proceso de
Retiro
Procesos Integrales
del Proyecto
Proceso
de Verificación
y
Validación
Proceso
de Gestión
de
Configura-
ción del SW
Proceso
de
Documen-
tación.
Proceso
de
Formación
63
Modelo de procesos software IEEE:
Modelo de ciclo de vida
Actividades Ciclo de vida + =
Ejemplos:
• Cascada • Incremental • Espiral • Evolutivo • ...
IEEE 1074-1995 • Gestión. Iniciación, Seguimiento y Control, Gestión
de calidad.
• Pre-desarrollo. Exploración de conceptos, Asignación del
sistema.
• Desarrollo. Requisitos, diseño, implementación.
• Post-desarrollo. Instalación, Operación, Soporte, Mantenimiento,
Retiro.
• Integrales. Verificación y Validación, Gestión de Config.,
Documentación,Formación.
Modelo de procesos software IEEE:
29
Ej.: Ciclo de Vida en Cascada
Actividades EV AR DI CO PR IN MA RE
Procesos de Gestión de Proyecto Procesos de Iniciación
• Asignar actividades al MCV X • Reservar recursos para el proyecto • Establecer entorno (estándares,...)
X X
X X
X X
X X X X X
• Plan de gestión proyecto X X
Procesos de Seguimiento y Control • Analizar riesgos. • Realizar planes de contingencia.
X X X X X X
• Gestionar el proyecto. X X X
X X
X X
X X
X X
X X
• Registrar información. X X X X X X X X •Implementar sistema de reporte de Problemas. X X X X X X X
… …
Creación de un Modelo de ciclo de vida
30
Al iniciar el proyecto, el responsable de la arquitectura de procesos debe realizar los
siguientes pasos:
Análisis de las circunstancias ambientales del proyecto.
Diseño del modelo específico de ciclo de vida para el proyecto (sobre las bases
de los diseños más apropiados, para el desarrollo y la evolución del sistema de
software.
Mapeo de las actividades sobre el modelo.
Desarrollo del plan para la gestión del ciclo de vida del proyecto.
Debe considerar aspectos como:
Posibilidad de descomposición del sistema en subsistemas de software, con
agendas y entregas diferenciadas.
Estabilidad esperada de los requisitos.
Novedad del proceso o procesos gestionados por el sistema en el entorno del
cliente.
Criticidad de las agendas y presupuestos.
Grado de complejidad del interfaz de operación, criticidad de la usuabilidad.
Grado de conocimiento y familiaridad con el entorno de desarrollo, componentes
externos empleados, etc.