Está en la página 1de 6

escuela técnica superior

de ingeniería informática

Última revisión: Amador Durán Toro (octubre 2005); correcciones no significativas.


El Ciclo de Vida

Versión original: Amador Durán Toro (septiembre 2004)


del Software

Departamento de
Lenguajes y Sistemas Informáticos

Grupo de Ingeniería del Software


Octubre 2005

El Ciclo de Vida del Software

• Ciclo de vida del software


Escuela Técnica Superior
de Ingeniería Informática
– Un marco de referencia que contiene los procesos,
Departamento de Lenguajes
y Sistemas Informáticos
las actividades y las tareas involucradas en el
1. Concepto de ciclo desarrollo, la explotación y el mantenimiento de un
de vida
2. Ciclo de vida clásico
producto software, abarcando la vida del sistema
3. Ciclos de vida desde la definición hasta la finalización de su uso
evolutivos
3.1 CV incremental (ISO 12207).
3.2 CV iterativo
3.3 Prototipos – El ciclo de vida de un proyecto especifica el enfoque
4. Componentes general del desarrollo, indicando los procesos,
software
5. Ciclo de vida del actividades y tareas que se van a realizar y en qué
Proceso Unificado
6. Ciclo de vida en
orden, y los productos que se van a generar, los
Métrica 3 que se van a entregar al cliente y en qué orden se
7. Ingeniería inversa y
reingeniería del van a entregar.
software

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 1

1
El Ciclo de Vida del Software

• Ciclo de vida clásico (en cascada)


Escuela Técnica Superior
– Cada proceso comienza cuando termina el anterior.
de Ingeniería Informática
Departamento de Lenguajes – Los desarrollos reales presentan iteraciones.
y Sistemas Informáticos

1. Concepto de ciclo – Es difícil obtener todos los requisitos al comienzo.


de vida
2. Ciclo de vida clásico
– Se tarda mucho en disponer del software.
3. Ciclos de vida – Es mejor que no seguir ningún ciclo de vida.
evolutivos
3.1 CV incremental – Es el más fácil de planificar, es el ciclo ideal.
3.2 CV iterativo
3.3 Prototipos De
4. Componentes Análisis sa
software Análisis rr
ol
5. Ciclo de vida del lo
Proceso Unificado
6. Ciclo de vida en Diseño
Métrica 3 Diseño
7. Ingeniería inversa y
reingeniería del
software
Codificación
Codificación

Pruebas
Pruebas

Mantenimiento
Mantenimiento
Sevilla, octubre de 2005
Grupo de Ingeniería del Software 2

El Ciclo de Vida del Software

• Ciclo de vida clásico (en cascada)


Escuela Técnica Superior – En el caso del desarrollo de sistemas, el ciclo de vida tiene
de Ingeniería Informática
Departamento de Lenguajes dos niveles: sistema y hardware/software.
y Sistemas Informáticos

1. Concepto de ciclo
– El diseño se suele dividir en diseño de la arquitectura y en
de vida diseño detallado.
2. Ciclo de vida clásico
3. Ciclos de vida Análisis
evolutivos Análisis
del
delsistema
sistema
Análisis
Análisis
3.1 CV incremental
del
3.2 CV iterativo
delsoftware
software
Análisis
Análisis
3.3 Prototipos del software
Diseño del software
4. Componentes Diseño Diseño
Diseño
software del
delsistema del
sistema delsoftware
software
5. Ciclo de vida del Diseño
Diseño
Proceso Unificado del
delsoftware
software
6. Ciclo de vida en Codificación
Métrica 3 Codificación
7. Ingeniería inversa y Codificación
reingeniería del
Codificación
software Pruebas
Pruebas
del
delsoftware
software
Pruebas
Pruebas Integración
Integración
Subsistema Software
del 11
software
Subsistema Software
del software de
desubsistemas
subsistemas
Subsistema
SubsistemaSoftware
Software22
Subsistema
SubsistemaHardware
Hardware11 Pruebas
Pruebas
del
delsistema
sistema
Sevilla, octubre de 2005
Grupo de Ingeniería del Software 3

2
El Ciclo de Vida del Software

• Ciclos de vida evolutivos


Escuela Técnica Superior – Cuanto mayor es un proyecto, menor es su probabilidad de
de Ingeniería Informática
Departamento de Lenguajes éxito (Informes CHAOS).
y Sistemas Informáticos
– Conseguir obtener todos los requisitos al comienzo del
1. Concepto de ciclo
de vida proyecto es prácticamente imposible.
2. Ciclo de vida clásico – Las necesidades de clientes y usuarios evolucionan durante
3. Ciclos de vida
evolutivos
el desarrollo y surgen nuevos requisitos.
3.1 CV incremental – Los ciclos de vida evolutivos afrontan estos problemas
3.2 CV iterativo mediante ciclos requisitos-desarrollo-evaluación.
3.3 Prototipos
4. Componentes – El resultado de la
software evaluación permite
5. Ciclo de vida del
Proceso Unificado
evolucionar hacia la
6. Ciclo de vida en siguiente versión. Requisitos Desarrollo
Métrica 3
7. Ingeniería inversa y
reingeniería del
software

Versiones
Sevilla, octubre de 2005
Grupo de Ingeniería del Software Evaluación 4

El Ciclo de Vida del Software

• Ciclo de vida incremental


Escuela Técnica Superior – Es una repetición de varios ciclos de vida en cascada.
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
– Al final de cada ciclo se entrega una versión parcial del
1. Concepto de ciclo
software incrementada con cierta funcionalidad nueva
de vida respecto a las entregas anteriores.
2. Ciclo de vida clásico
– Los ciclos se repiten hasta obtener un producto completo.
3. Ciclos de vida
evolutivos – Los usuarios disponen antes del software, aunque no sea
3.1 CV incremental
completo, por lo que pueden sugerir mejoras.
3.2 CV iterativo
3.3 Prototipos – Se suele aplicar a desarrollos de gran tamaño.
4. Componentes
software
Análisis Análisis Análisis
5. Ciclo de vida del Análisis Análisis Análisis
Proceso Unificado
Diseño Diseño Diseño
6. Ciclo de vida en Diseño Diseño Diseño
Métrica 3
7. Ingeniería inversa y Codificación
Codificación
Codificación
Codificación
Codificación
Codificación
reingeniería del
software Pruebas Pruebas
Pruebas Pruebas
Pruebas Pruebas

1
1 1
1 2
2 1
1 2
2 3
3
Versión 1 Versión 2 Versión 3
Funcionalidad 1 + Funcionalidad 2 + Funcionalidad 3
Sevilla, octubre de 2005
Grupo de Ingeniería del Software 5

3
El Ciclo de Vida del Software

• Ciclo de vida iterativo


Escuela Técnica Superior – Es también una repetición de varios ciclos de vida en
de Ingeniería Informática
Departamento de Lenguajes cascada.
y Sistemas Informáticos
– Al final de cada ciclo se entrega una versión completa del
1. Concepto de ciclo
de vida software mejorada respecto a la anterior.
2. Ciclo de vida clásico – Los ciclos se repiten hasta obtener un producto satisfactorio.
3. Ciclos de vida
evolutivos – Los usuarios deben evaluar el producto en cada iteración y
3.1 CV incremental proponer mejoras.
3.2 CV iterativo
– Se suele aplicar en desarrollos en los que los requisitos no
3.3 Prototipos
4. Componentes
están claros, las primeras versiones pueden ser prototipos
software que se desechan posteriormente.
5. Ciclo de vida del
Proceso Unificado
Análisis Análisis Análisis
6. Ciclo de vida en Análisis Análisis Análisis
Métrica 3
Diseño Diseño Diseño
7. Ingeniería inversa y Diseño Diseño Diseño
reingeniería del
software Codificación Codificación Codificación
Codificación Codificación Codificación

Pruebas Pruebas Pruebas


Pruebas Pruebas Pruebas

Versión
Versión 1
1 Versión
Versión 2
2 Versión
Versión 3
3
Sevilla, octubre de 2005
Grupo de Ingeniería del Software
Iteración 1 Iteración 2 Iteración 3
6

El Ciclo de Vida del Software

• Prototipos
Escuela Técnica Superior
– El uso de prototipos no es exclusivo del ciclo de vida
de Ingeniería Informática
Departamento de Lenguajes
iterativo.
y Sistemas Informáticos

1. Concepto de ciclo
– Los prototipos se pueden usar como una herramienta para
de vida obtener y validar los requisitos de clientes y usuarios en
2. Ciclo de vida clásico cualquier ciclo de vida.
3. Ciclos de vida
evolutivos – Lo habitual es usar prototipos de interfaz de usuario, que
3.1 CV incremental
pueden reutilizarse (ejecutables) o desecharse (papel).
3.2 CV iterativo
3.3 Prototipos – Siempre se debe evaluar si el esfuerzo de desarrollo del
4. Componentes prototipo merece la pena (coste de errores).
software
5. Ciclo de vida del – Es fundamental la implicación de los usuarios.
Proceso Unificado
6. Ciclo de vida en – Otro tipo de prototipos pueden utilizarse para evaluar
Métrica 3
diferentes algoritmos antes de tomar decisiones de diseño.
7. Ingeniería inversa y
reingeniería del
software – Siempre se debe tener en cuenta que el prototipo no es el
producto final, ya que su calidad no suele ser la necesaria.

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 7

4
El Ciclo de Vida del Software

• Componentes software
Escuela Técnica Superior – Cada vez es más frecuente el ensamblaje de componentes
de Ingeniería Informática
Departamento de Lenguajes software desarrollados por terceros en la construcción de
y Sistemas Informáticos
nuevos sistemas software.
1. Concepto de ciclo
de vida – El uso de componentes tiene implicaciones en todas las
2. Ciclo de vida clásico
actividades del desarrollo desde los requisitos hasta el
3. Ciclos de vida
evolutivos mantenimiento.
3.1 CV incremental
3.2 CV iterativo
Identificar
3.3 Prototipos Identificarcomponente
componentenecesario
necesario
4. Componentes
software
5. Ciclo de vida del Seleccionar proveedor componente
Proceso Unificado Seleccionar proveedor componente
6. Ciclo de vida en existe no existe
Métrica 3
7. Ingeniería inversa y
Comprar
Comprarcomponente Desarrollar
reingeniería del componente Desarrollarcomponente
componente
software

Catalogar
Catalogarcomponente
componente

Integrar
Integrarcomponente
componente

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 8

El Ciclo de Vida del Software

• Ciclo de vida del Proceso Unificado


Escuela Técnica Superior – Es un ciclo de vida incremental e iterativo propuesto por
de Ingeniería Informática
Departamento de Lenguajes los creadores de UML (Unified Modeling Language).
y Sistemas Informáticos
– Distingue 6 fases: inicio, elaboración, construcción,
1. Concepto de ciclo
de vida transición, producción y retirada.
2. Ciclo de vida clásico – En cada fase (hasta la de transición) se producen una o
3. Ciclos de vida
evolutivos
más iteraciones y se obtiene una versión del software.
3.1 CV incremental
3.2 CV iterativo
3.3 Prototipos
4. Componentes
software
5. Ciclo de vida del
Proceso Unificado
6. Ciclo de vida en
Métrica 3
7. Ingeniería inversa y
reingeniería del
software

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 9

5
El Ciclo de Vida del Software

• Ciclo de vida en Métrica 3


Escuela Técnica Superior – Métrica 3 permite aplicar diferentes ciclos de vida
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos – Sus procesos básicos son:
1. Concepto de ciclo • Plan de Sistemas de Información (PSI)
de vida
2. Ciclo de vida clásico • Desarrollo de Sistemas de Información
3. Ciclos de vida
evolutivos
– Estudio de Viabilidad del Sistema (EVS)
3.1 CV incremental – Análisis del Sistema de Información (ASI)
3.2 CV iterativo
– Diseño del Sistema de Información (DSI)
3.3 Prototipos
4. Componentes – Construcción del Sistema de Información (CSI)
software
– Implantación y Aceptación del Sistema (IAS)
5. Ciclo de vida del
Proceso Unificado • Mantenimiento de Sistemas de Información
6. Ciclo de vida en
Métrica 3 (MSI)
7. Ingeniería inversa y
reingeniería del – También incluye interfaces con procesos de apoyo
software
• Gestión de proyectos
• Seguridad
• Gestión de la Configuración
• Aseguramiento de la Calidad

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 10

El Ciclo de Vida del Software

• Ingeniería inversa
Escuela Técnica Superior – A veces es necesario mantener sistemas heredados
de Ingeniería Informática
Departamento de Lenguajes (legacy systems) que fueron desarrollados sin
y Sistemas Informáticos
documentación.
1. Concepto de ciclo
de vida – La ingeniería inversa consiste en analizar el resultado de
2. Ciclo de vida clásico
una etapa de software para obtener el resultado de la
3. Ciclos de vida
evolutivos anterior, normalmente analizar el código para obtener el
3.1 CV incremental diseño.
3.2 CV iterativo
3.3 Prototipos • Reingeniería
4. Componentes
software – La reingeniería utiliza la información obtenida por la
5. Ciclo de vida del
Proceso Unificado
ingeniería inversa para aplicar cualquier tipo de
6. Ciclo de vida en mantenimiento (perfectivo, adaptativo, correctivo o
Métrica 3 preventivo).
7. Ingeniería inversa y
reingeniería del
software
– El mantenimiento preventivo del efecto 2000 ha sido el
mayor esfuerzo de ingeniería inversa, reingeniería y
mantenimiento en la historia de la Ingeniería del Software.

Sevilla, octubre de 2005


Grupo de Ingeniería del Software 11