Académique Documents
Professionnel Documents
Culture Documents
de ingeniería informática
Departamento de
Lenguajes y Sistemas Informáticos
1
El Ciclo de Vida del Software
Pruebas
Pruebas
Mantenimiento
Mantenimiento
Sevilla, octubre de 2005
Grupo de Ingeniería del Software 2
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
Versiones
Sevilla, octubre de 2005
Grupo de Ingeniería del Software Evaluación 4
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
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
• 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.
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
5
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.