Вы находитесь на странице: 1из 46

Ingeniera del Software Ingeniera del Software de Gestin

Tema 2 Ciclo de Vida del Software

Flix scar Garca Rubio Crescencio Bravo Santos

ndice
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 reutilizacin en el Ciclo de Vida 8. Sntesis automtica de software 9. Comparacin de Ciclos de Vida 10. Modelos para desarrollo de sistemas Orientados a Objetos

Concepto de Ciclo de Vida


Una aproximacin lgica a la adquisicin, el suministro, el desarrollo, la explotacin 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 explotacin y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso [ISO 12207-1].

Procesos del Ciclo de Vida


PROCESOS PRINCIPALES
ADQUISICIN SUMINISTRO DOCUMENTACIN GESTIN DE CONFIGURACIN ASEGURAMIENTO DE CALIDAD VERIFICACIN VALIDACIN REVISIN CONJUNTA AUDITORA RESOLUCIN DE PROBLEMAS

PROCESOS DE SOPORTE

EXPLOTACIN DESARROLLO MANTENIMIENTO

PROCESOS DE LA ORGANIZACIN
GESTIN MEJORA INFRAESTRUCTURA FORMACIN

Procesos Principales
Proceso de Adquisicin: Actividades y tareas que el comprador, cliente o usuario realiza para adquirir un sistema o producto software. Proceso de Suministro: Actividades y tareas que efecta el suministrador.

Procesos Principales
Proceso de Desarrollo:
Anlisis de Requisitos del Sistema Diseo de la Arquitectura del Sistema Anlisis de los Requisitos del Software Diseo de la Arquitectura del Software Diseo Detallado del Software Codificacin y Prueba del Software Integracin del Software Prueba del Software Integracin del Sistema Prueba del Sistema Instalacin del Software Soporte del proceso de Aceptacin del Software

Procesos Principales
Proceso de Explotacin: Incluye la explotacin del software y el soporte operativo a los usuarios. Proceso de Mantenimiento:
Aparece cuando el software necesita modificaciones. El objetivo es modificar el software existente manteniendo su consistencia.

Procesos de Soporte
Proceso de Documentacin: Registra la informacin producida por un proceso o actividad del ciclo de vida. Proceso de Gestin de la Configuracin: Aplica ciertos procedimientos administrativos y tcnicos durante todo el ciclo de vida relacionados con la configuracin del software y con las modificaciones y versiones de los documentos. Proceso de Aseguramiento de la Calidad: Aporta confianza en que los procesos y los productos software del ciclo de vida cumplen con los requisitos especificados y se ajustan a los planes establecidos.

Procesos de Soporte
Proceso de Verificacin: Determina si los requisitos de un sistema o del software estn completos y son correctos, y si los productos software de cada fase del ciclo de vida cumplen los requisitos y condiciones impuestos en fases previas. Proceso de Validacin: Sirve para determinar si el sistema o software final cumplen con los requisitos previstos para su uso. Proceso de Revisin Conjunta: Sirve para evaluar el estado del software y sus productos en una actividad del ciclo de vida o una fase de un proyecto.

Procesos de Soporte
Proceso de Auditora: Permite determinar, en los hitos predeterminados, si se han cumplido los requisitos, los planes y el contrato. Proceso de Resolucin de Problemas: Permite analizar y eliminar los problemas descubiertos durante el desarrollo, la explotacin, el mantenimiento u otro proceso.

10

Procesos Generales
Proceso de Gestin: Actividades y tareas genricas para gestionar los procesos. Proceso de Infraestructura: Infraestructura necesaria para cualquier otro proceso. Proceso de Mejora: Para controlar y mejorar los procesos. Proceso de Formacin: Para proporcionar formacin y mantener al profesor formado.

11

Proceso de Adaptacin
emplea
Proceso de Adquisicin

contrato

VISION DEL CONTRATO


Proceso de Suministro

Comprador Proveedor

emplea
Proceso de Gestin

VISION DE LA DIRECCION

emplea emplea emplea emplea VISION OPERATIVA

Direccin

Proceso de Explotacin

emplea emplea emplea


Proceso de Mantenimiento

Operador o Usuario
VISION DE INGENIERIA
Desarrollador Personal de mantenimiento

emplea

Proceso de Desarrollo

Procesos de Soporte
. Documentacin . Gestin configuracin . Aseguramiento de la Calidad . Verificacin . Validacin . Revisin conjunta . Auditora . Res. problemas

SOPORTE

Persona que emplea los procesos de apoyo

Procesos Generales
. Infraestructura . Mejora . Formacin

12

Modelo en Cascada
Caractersticas:
Cada fase empieza cuando se ha terminado la fase anterior Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados Al final de cada fase el personal tcnico y los usuarios tienen la oportunidad de revisar el progreso del proyecto

13

Modelo en Cascada

14

Modelo en Cascada
Crticas:
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 comunicacin con el usuario final Se convierten las especificaciones en implementaciones de manera informal El mantenimiento se realiza en el cdigo fuente Las revisiones de proyectos de gran complejidad son muy difciles Impone una estructura de gestin de proyectos

15

Modelo Incremental

...

16

Modelo Incremental
Caractersticas:
Corrige la necesidad de una secuencia no lineal de pasos de desarrollo El sistema se crea aadiendo componentes funcionales al sistema incrementos El sistema no se ve como una entidad monoltica con una fecha fija de entrega, sino que es una integracin de resultados sucesivos obtenidos despus de cada iteracin Se ajusta a entornos de alta incertidumbre

17

Modelo Incremental
Ventajas y desventajas:
Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia El usuario se involucra ms Mayor retorno de la inversin Difcil de evaluar el coste total Difcil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo Requiere gestores experimentados El resultado puede ser muy positivo Los errores en los requisitos se detectan tarde y su correccin resulta costosa

18

Modelo en Espiral
Modelo de proceso de software evolutivo que combina la naturaleza iterativa de construccin de prototipos con los aspectos controlados y sistemticos del modelo lineal secuencial. Caractersticas:
Permite acomodar otros modelos Incorpora objetivos de calidad y gestin de riesgos Elimina errores y alternativas no atractivas al comienzo Permite iteraciones, vuelta atrs y finalizaciones rpidas Es difcil de adaptar a los contratos Depende de las personas Difcil de asegurar que las personas involucradas operan en un contexto consistente

19

Modelo en Espiral
Determinar objetivos, alternativas, restricciones
Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos
Prototipo 3 Prototipo Operativo

Evaluar alternativas, identificar y resolver los riesgos

Anlisis de Riesgos

Prototipo 2

Prototipo 1

Plan de Requisitos Plan del Ciclo de Vida Concepto de Operacin

Simulaciones, modelos, benchmarks Requisitos Sw

Plan de Desarrollo

Validacin de Requisitos

Diseo Producto Sw

Diseo detallado

Cdigo Plan de Integracin y Pruebas V & V del diseo Integracin y prueba Pruebas unitarias

Planificar las fases siguientes

Implementacin

Prueba de aceptacin

Desarrolar, Verificar el producto del siguiente nivel

20

Modelo en Espiral
Cada ciclo empieza identificando:
Los objetivos de la porcin correspondiente Las alternativas Restricciones

Se evalan las alternativas respecto a los objetivos y las restricciones Se formula una estrategia efectiva para resolver las fuentes de riesgos (simulacin, prototipado, etc.) Se plantea el prximo prototipo Una vez resueltos los riesgos se sigue el ciclo en cascada Cada ciclo se completa con una revisin que incluye todo el ciclo anterior y el plan para el siguiente

21

Modelo en Espiral
Diferencias con los mtodos tradicionales:
Existe un reconocimiento explcito de las diferentes alternativas para alcanzar los objetivos de un proyecto La identificacin de riesgos asociados con cada una de las alternativas La divisin de los proyectos en ciclos El modelo se adapta a cualquier tipo de actividad

22

El Prototipado
Paradigma de construccin de prototipos:
Escuchar al cliente Construir/revisar maqueta Probar maqueta

Los prototipos tienen una doble funcin:


El cliente ve el producto y refina sus requisitos El desarrollador comprende mejor lo que necesita hacer

La construccin de prototipos tambin puede ser problemtica

23

El Prototipado Rpido

24

El Prototipado Rpido
Caractersticas:
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 Suele utilizarse principalmente en dos reas:
Prototipado de la interfaz de usuario Prototipado del rendimiento

25

El Prototipado Rpido
Para que sea efectivo:
Debe ser un sistema con el que se pueda experimentar Debe ser comparativamente barato (< 10%) Debe desarrollarse rpidamente nfasis en la interfaz de usuario Equipo de desarrollo reducido Herramientas y lenguajes adecuados

El prototipado es un medio excelente para recoger el feedback (realimentacin) del usuario final

26

El Prototipado Evolutivo
Caractersticas:
Construccin de una implementacin 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 documentacin Problemas de gestin de configuracin Construir software para que pueda ser modificado fcilmente es un arte desconocido

27

El Prototipado Operacional
Es una mezcla entre el prototipado rpido y el evolutivo. En algunos sistemas ni el prototipado rpido ni el evolutivo por si solos son aceptables. Hay sistemas en que la mayora de los requisitos son:
Crticos al diseo y bien entendidos No crticos al diseo y pobremente entendidos Desconocidos

El prototipado rpido por si solo es poco efectivo porque los requisitos pobremente entendidos no son crticos. El prototipado evolutivo por si solo es poco efectivo porque no ayuda a clarificar los requerimientos que no se entienden.

28

El Prototipado Operacional

29

Reutilizacin en el Ciclo de Vida


Principios de la reutilizacin:
Existen similitudes entre distintos sistemas de un mismo dominio de aplicacin El software puede representarse como una combinacin de mdulos Disear aplicaciones = especificar mdulos + interrelaciones Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos

30

La Reutilizacin en el Ciclo de Vida


BIBLIOTECA

31

La Reutilizacin en el Ciclo de Vida


Ventajas y desventajas:
Reduce tiempos y costes de desarrollo Aumenta la fiabilidad Dificultad para reconocer los componentes potencialmente reutilizables Dificultad de catalogacin y recuperacin Problemas de motivacin Problemas de gestin de configuracin

32

Sintesis Automtica del Software


Proceso:
La ERS se refina en una especificacin formal detallada expresada en notacin matemtica. Los procesos (diseo, implementacin y pruebas) se reemplazan por un proceso basado en transformaciones donde la especificacin formal se refina.

Otras tcnicas avanzadas:


Mtodos formales Tcnicas de 4 generacin Herramientas CASE

33

Sintesis Automtica del Software

34

Sintesis Automtica del Software


Resumen:
Se define el sistema utilizando un lenguaje formal La implementacin es automtica, asistida por el ordenador La documentacin se genera de forma automtica El mantenimiento se realiza por sustitucin, no mediante parches Hay dificultad en la participacin del usuario Los diseos estn poco optimizados

35

Comparacin de Ciclos de Vida

36

Comparacin de Ciclos de Vida


Cascada

Prototipado Rpido

37

Comparacin de Ciclos de Vida


Incremental

Evolutivo

38

Comparacin de Ciclos de Vida


Reutilizacin

Sntesis Automtica

39

Modelos para Desarrollo O.O.


El modelo en cascada no permite aprovechar las ventajas de la tecnologa OO T. OO:
Pretende acelerar el desarrollo de sistemas de una manera iterativa e incremental Generalizar los componentes para que sean reutilizables

Modelos:
Agrupamiento Fuente Remolino Pinball

40

Modelo de Agrupamiento
Modelos usuales de ciclo de vida Proyecto Desarrollo orientado al objeto Producto Modelo de agrupamiento: Conjunto de clases relacionadas con un objetivo comn. Caractersticas:
Subciclos de vida Cada uno incluye:
Especificacin Diseo Realizacin Validacin Generalizacin

41

Modelo de Agrupamiento

Agrupamiento n

TIEMPO

ESPEC

DISREA

VALGEN

ESPEC

DISREA

VALGEN

Agrupamiento 2

ESPEC

DISREA

VALGEN

Agrupamiento 1

TIEMPO

42

Modelo Fuente
Mantenimiento Utilizacin Evolucin

Pruebas sistemas Pruebas unitarias Codificacin Componentes Diseo Conceptual

Anlisis Estudio de viabilidad y requisitos Piscina SW

43

Modelo Remolino
Las metodologas de desarrollo no ofrecen una visin real:
El desarrollo es desordenado e implica mltiples iteraciones relacionadas.

El modelo en cascada asume una dimensin de iteracin: la fase del proyecto. Otras dimensiones:
Amplitud Profundidad Madurez Alternativas Alcance

44

Modelo 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 mtodos e interrelaciones y definir colaboraciones, herencia, agregacin y subsistemas. Por ltimo se pasa a la programacin, prueba e implementacin. Hay dos estilos a la hora de jugar:
Seguro Tecnologas y mtodos probados Al lmite Mayor riesgo, ms ventajas

45

Consideraciones Generales
Todos estos modelos caracterizan el desarrollo OO por:
Eliminacin de fronteras entre fases, ya que debido a la naturaleza iterativa del desarrollo OO, estas fronteras se difuminan cada vez ms Una nueva forma de concebir los lenguajes de programacin y su uso, ya que se incorporan bibliotecas de clases y otros componentes reutilizables Un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy dinmica

Desarrollo iterativo e incremental.

46

Вам также может понравиться