Está en la página 1de 6

Tiempo: 45m

El Ciclo de Vida
del Software

Departamento de
Lenguajes y Sistemas Inform
Informticos

Versin original: Amador Durn Toro (septiembre 2004)


ltima revisin: Amador Durn Toro (febrero 2006); correcciones no significativas.

escuela tcnica superior


de ingeniera informtica

Grupo de Ingenier
Ingeniera del Software
Febrero 2006

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Ciclo de vida del software


Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

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 software, abarcando la vida del sistema
desde la definicin hasta la finalizacin de su uso
(ISO 12207).
El ciclo de vida de un proyecto especifica el enfoque
general del desarrollo, indicando los procesos,
actividades y tareas que se van a realizar y en qu
orden, y los productos que se van a generar, los
que se van a entregar al cliente y en qu orden se
van a entregar.

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Ciclo de vida cl
clsico (en cascada)
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida

Cada proceso comienza cuando termina el anterior.


Los desarrollos reales presentan iteraciones.
Es difcil obtener todos los requisitos al comienzo.

2. Ciclo de vida cl
clsico

Se tarda mucho en disponer del software.

3. Ciclos de vida
evolutivos

Es mejor que no seguir ningn ciclo de vida.

3.1 CV incremental
3.2 CV iterativo

Es el ms fcil de planificar, es el ciclo ideal.

3.3 Prototipos
4. Componentes
software
5. Ciclo de vida del
Proceso Unificado

De

Anlisis
Anlisis

6. Ciclo de vida en
Mtrica 3

sa
rr

ol
lo

Diseo
Diseo

7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Codificacin
Codificacin
Pruebas
Pruebas
Mantenimiento
Mantenimiento

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

El Ciclo de Vida del Software

Ciclo de vida cl
clsico (en cascada)
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
3.1 CV incremental
3.2 CV iterativo

En el caso del desarrollo de sistemas, el ciclo de vida tiene


dos niveles: sistema y hardware/software.
El diseo se suele dividir en diseo de la arquitectura y en
diseo detallado
Anlisis
Anlisis
del
delsistema
sistema

3.3 Prototipos
4. Componentes
software
5. Ciclo de vida del
Proceso Unificado
6. Ciclo de vida en
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Diseo
Diseo
del
delsistema
sistema

Anlisis
Anlisis
del
delsoftware
software
Anlisis
Anlisis
del software
del software
Diseo
Diseo
del
delsoftware
software
Diseo
Diseo
del
delsoftware
software
Codificacin
Codificacin
Codificacin
Codificacin
Pruebas
Pruebas
del
delsoftware
software
Pruebas
Pruebas
Subsistema
Software
11
del
software
Subsistema
Software
del
software

Integracin
Integracin
de
desubsistemas
subsistemas

Subsistema
SubsistemaSoftware
Software22
Subsistema
SubsistemaHardware
Hardware11

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

Pruebas
Pruebas
del
delsistema
sistema
3

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Ciclos de vida evolutivos


Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Cuanto mayor es un proyecto, menor es su probabilidad de


xito (Informes CHAOS).
Conseguir obtener todos los requisitos al comienzo del
proyecto es prcticamente imposible.
Las necesidades de clientes y usuarios evolucionan durante
el desarrollo y surgen nuevos requisitos.
Los ciclos de vida evolutivos afrontan estos problemas
mediante ciclos requisitos-desarrollo-evaluacin.
El resultado de la
evaluacin permite
evolucionar hacia la
siguiente versin.

Requisitos

Desarrollo

Versiones

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

Evaluacin

El Ciclo de Vida del Software

Ciclo de vida incremental


Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Es una repeticin de varios ciclos de vida en cascada.


Al final de cada ciclo se entrega una versin parcial del
software incrementada con cierta funcionalidad nueva
respecto a las entregas anteriores.
Los ciclos se repiten hasta obtener un producto completo.
Los usuarios disponen antes del software, aunque no sea
completo, por lo que pueden sugerir mejoras.
Se suele aplicar a desarrollos de gran tamao.
Anlisis
Anlisis

Anlisis
Anlisis

Anlisis
Anlisis

Versin 1
Funcionalidad 1

Pruebas
Pruebas

Pruebas
Pruebas

Pruebas
Pruebas

1
1

Codificacin
Codificacin

Codificacin
Codificacin

Codificacin
Codificacin

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

Diseo
Diseo

Diseo
Diseo

Diseo
Diseo

1
1

2
2

Versin 2
+ Funcionalidad 2

1
1

2
2

3
3

Versin 3
+ Funcionalidad 3
5

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Ciclo de vida iterativo


Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Es tambin una repeticin de varios ciclos de vida en


cascada.
Al final de cada ciclo se entrega una versin completa del
software mejorada respecto a la anterior.
Los ciclos se repiten hasta obtener un producto satisfactorio.
Los usuarios deben evaluar el producto en cada iteracin y
proponer mejoras.
Se suele aplicar en desarrollos en los que los requisitos no
estn claros, las primeras versiones pueden ser prototipos
que se desechan posteriormente.

Codificacin
Codificacin

Pruebas
Pruebas

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

Diseo
Diseo

Diseo
Diseo

Diseo
Diseo
Codificacin
Codificacin

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

Anlisis
Anlisis

Anlisis
Anlisis

Anlisis
Anlisis

Codificacin
Codificacin

Pruebas
Pruebas

Pruebas
Pruebas

Versin
Versin 1
1

Versin
Versin 2
2

Versin
Versin 3
3

Iteracin 1

Iteracin 2

Iteracin 3

El Ciclo de Vida del Software

Prototipos
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
3.1 CV incremental
3.2 CV iterativo

El uso de prototipos no es exclusivo del ciclo de vida


iterativo.
Los prototipos se pueden usar como una herramienta para
obtener y validar los requisitos de clientes y usuarios en
cualquier ciclo de vida.
Lo habitual es usar prototipos de interfaz de usuario, que
pueden reutilizarse (ejecutables) o desecharse (papel).

4. Componentes
software

Siempre se debe evaluar si el esfuerzo de desarrollo del


prototipo merece la pena (coste de errores).

5. Ciclo de vida del


Proceso Unificado

Es fundamental la implicacin de los usuarios.

6. Ciclo de vida en
Mtrica 3

Otro tipo de prototipos pueden utilizarse para evaluar


diferentes algoritmos antes de tomar decisiones de diseo.

3.3 Prototipos

7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Siempre se debe tener en cuenta que el prototipo no es el


producto final, ya que su calidad no suele ser la necesaria.

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Componentes software
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos

Cada vez es ms frecuente el ensamblaje de componentes


software desarrollados por terceros en la construccin de
nuevos sistemas software.
El uso de componentes tiene implicaciones en todas las
actividades del desarrollo desde los requisitos hasta el
mantenimiento.

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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Identificar
Identificarcomponente
componentenecesario
necesario

Seleccionar proveedor componente


Seleccionar proveedor componente
existe
Comprar
Comprarcomponente
componente

no existe
Desarrollar
Desarrollarcomponente
componente
Catalogar
Catalogarcomponente
componente

Integrar
Integrarcomponente
componente

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

El Ciclo de Vida del Software

Ciclo de vida del Proceso Unificado


Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos

Es un ciclo de vida incremental e iterativo propuesto por


los creadores de UML (Unified Modeling Language).
Distingue 6 fases: inicio, elaboracin, construccin,
transicin, produccin y retirada.
En cada fase (hasta la de transicin) se producen una o
ms iteraciones y se obtiene una versin 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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

El Ciclo de Vida del Software

Ciclo de vida en M
Mtrica 3
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
3.1 CV incremental
3.2 CV iterativo
3.3 Prototipos

Mtrica 3 permite aplicar diferentes ciclos de vida


Sus procesos bsicos son:
Plan de Sistemas de Informacin (PSI)
Desarrollo de Sistemas de Informacin
Estudio de Viabilidad del Sistema (EVS)
Anlisis del Sistema de Informacin (ASI)

4. Componentes
software

Diseo del Sistema de Informacin (DSI)

5. Ciclo de vida del


Proceso Unificado

Construccin del Sistema de Informacin (CSI)

6. Ciclo de vida en
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

Implantacin y Aceptacin del Sistema (IAS)

Mantenimiento de Sistemas de Informacin (MSI)


Tambin incluye interfaces con procesos de apoyo
Gestin de proyectos
Seguridad
Gestin de la Configuracin
Aseguramiento de la Calidad

[ngel US V7] Diseo: Amador Durn Toro (2003-2006)

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

10

El Ciclo de Vida del Software

Ingenier
Ingeniera inversa
Escuela Tcnica Superior
de Ingeniera Informtica
Departamento de Lenguajes
y Sistemas Informticos

1. Concepto de ciclo
de vida
2. Ciclo de vida cl
clsico
3. Ciclos de vida
evolutivos
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
Mtrica 3
7. Ingenier
Ingeniera inversa y
reingenier
reingeniera

A veces es necesario mantener sistemas heredados


(legacy systems) que fueron desarrollados sin
documentacin.
La ingeniera inversa consiste en analizar el resultado de
una etapa de software para obtener el resultado de la
anterior; normalmente analizar el cdigo para obtener el
diseo.

Reingenier
Reingeniera
La reingeniera utiliza la informacin obtenida por la
ingeniera inversa para aplicar cualquier tipo de
mantenimiento (perfectivo, adaptativo, correctivo o
preventivo).
El mantenimiento preventivo del efecto 2000 ha sido el
mayor esfuerzo de ingeniera inversa, reingeniera y
mantenimiento en la historia de la Ingeniera del Software.

Sevilla, febrero de 2006


Grupo de Ingeniera del Software

11

También podría gustarte