44
1 EL CICLO DE VIDA DEL SOFTWARE Lic. Espinoza Robles Armando David

3 Clase Ciclo De Vida Del Software -

Embed Size (px)

DESCRIPTION

http://blog.juliopari.com/

Citation preview

Page 1: 3 Clase Ciclo De Vida Del Software -

1

EL CICLO DE VIDA DEL SOFTWARE

Lic. Espinoza Robles Armando David

Page 2: 3 Clase Ciclo De Vida Del Software -

2

Concepto de Ciclo de Vida• En los Dpto. de Sistemas se debe definir un marco de

referencia común que:– Pueda ser empleado por todos los que participan en un

desarrollo informático, que defina los procesos las actividades tareas a desarrollar

• Se han propuestos diferentes paradigmas o ciclos de vida para el Software, desde:– Ciclo en Cascada– Modelo en Espiral de Boehm– Ciclo de vida OO.

• Las Organizaciones (IEEE, ISO ) han publicado sendos informes titulados– estándar IEEE para el desarrollo del Ciclo de vida del Sftw.– ISO :Proceso del ciclo de vida del Sftw.

Page 3: 3 Clase Ciclo De Vida Del Software -

3

• La norma IEEE 1040: Entiende por ciclo de vida del Softw: “Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y mantenimiento del Softw.”

• La Norma ISO 12207-1: Entiende por ciclo de vida: “ 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 Softw., abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso.”

Page 4: 3 Clase Ciclo De Vida Del Software -

4

• Ambas consideran:– una actividad como un conjunto de tareas– una tarea como una acción que transforma

entrada en salida.

• El ciclo de vida abarca:– toda la vida del sistema : desde su concepción

hasta su fin.– El ciclo de desarrollo : es un sub conjunto del

ciclo de vida • empieza en el análisis

• finaliza en la entrega del sistema al usuario.

Page 5: 3 Clase Ciclo De Vida Del Software -

5

PROCESO DE CICLO DE VIDA SOFTWARE

• Para ISO 12207-1

• Procesos Principales Procesos de Soporte– Adquisición Documentación

– Suministro Gestión de Configur.– Desarrollo Asegura.Calidad

– Explotación Verificación

– mantenimiento Validación

– Revisión Conjunta

– Auditoria

– Resoluc. Problemas

– PROCESOS DELA ORGANIZACIÓN• Gestión Infraestructura

• Mejora Formación

Page 6: 3 Clase Ciclo De Vida Del Software -

6

Procesos Principales• Son los que resultan útiles a personas que

realizan el desarrollo explotación y mantenimiento del Sftw. (compradores, suministradores, el personal de desarrollo, operadores, personal de mantenimiento)– Proceso de Adquisición: actividades y tareas que el

comprador el cliente o usuario realiza para adquirir un sistema.

– Proceso de Suministro: actividades y tareas que el suministrador realiza. Inicia con decisión de preparar una respuesta a una petición de un comprador.

Page 7: 3 Clase Ciclo De Vida Del Software -

7

– Proceso de Desarrollo: actividades de análisis de requisitos, diseño, codificación, pruebas e instalación y aceptación.

• Análisis de Requisitos: • Diseño de Arquitectura del Sistema• Análisis de Requisitos del Softw.

– Especificaciones funcionales y de capacidad– Interfaces externas, requisitos de aceptación, seguridad, – Especificaciones de interacción hombre maquina– Requisitos de base de datos.– Requisitos de instalación y aceptación del softw.

• Diseño de la Arquitectura Softw.• Diseño detallado del Softw.• Codificación y prueba del Softw.

Page 8: 3 Clase Ciclo De Vida Del Software -

8

• Integración del Softw.

• Prueba del software

• Integración del Sistema

• Prueba del Sistema

• Instalación del Softw.

• Soporte de Proceso de aceptación del Softw.

Page 9: 3 Clase Ciclo De Vida Del Software -

9

– Proceso de Explotación.: incluye la explotación del Softw., y el soporte a los usuarios.

– Proceso de Mantenimiento: aparece cuando el Softw., necesita de modificaciones en el código o documentación. Incluye actividades de migración a un nuevo entorno.

Page 10: 3 Clase Ciclo De Vida Del Software -

10

Proceso de Soporte• Sirve de apoyo al resto, y se aplica en

cualquier punto del ciclo de vida del Softw. Y son:– Proceso de Documentación: se registra la

información producida por un proceso o actividad del ciclo de vida.

– Proceso de Gestión de la Configuración: aplica procedimientos adminis. Y técnicos durante el ciclo de vida del sist.:

– Identificar definir establecer la línea de los elementos de configuración.

– Controlar modificaciones y versiones.

Page 11: 3 Clase Ciclo De Vida Del Software -

11

– Registrar información sobre peticiones de modificación.

– Asegurar la complecion, la consistencia y comunicación de los elementos.

– Controlar el almacenamiento, la manipulación y entrega de elementos.

– Proceso de Aseguramiento de la Calidad: aporta la seguridad que los procesos y producto, cumplen con los requisitos especificados.

– Proceso de Verificación: determina si los requisitos de un sistema están completos y son correctos

– Proceso de Validación: sirve para determinar si el sistema final cumple con los requisitos previstos.

Page 12: 3 Clase Ciclo De Vida Del Software -

12

– Proceso de Revisión Conjunta: sirve para evaluar el estado del Softw., y sus productos en una actividad del ciclo de vida

– Proceso de Auditoria.: determina los hitos predeterminados, han cumplido los requisitos, planes y contrato.

– Proceso de Resolución de Problemas.: analiza y elimina los problemas descubiertos durante el desarrollo , explotación, mantenimiento u otro proceso.

Page 13: 3 Clase Ciclo De Vida Del Software -

13

Procesos Generales o de Organización• Ayuda a establecer implementar y mejorar la

organización, haciendola mas eficaz– Proceso de Gestión: contiene tareas genéricas

para gestionar procesos.– Procesos de Infraestructura: establece la

infraestructura necesaria para cualquier proceso (softw y hardw.)

– Proceso de Mejora: valorar, medir controlar y mejorar los procesos del ciclo de vida Softw.

– Proceso de Formación: sirve para mantener al personal formado. Material y plan de formación.

Page 14: 3 Clase Ciclo De Vida Del Software -

14

Proceso de Adaptación• Sirve para la adaptación a la norma ISO

12207-1 con respecto a los proyectos de softw.

• Dado que los procesos se aplican durante el ciclo de vida del sftw., de diferentes formas es necesario comprender los procesos, las organizaciones y sus relaciones tal como se ve en la sig. Figura.

Page 15: 3 Clase Ciclo De Vida Del Software -

15

P.Adquisición P.Suministro

P.Gestión

P. Explotación

P.Mantenimiento P.Desarrollo

Compra.prove

direccion

Operad.Usua

Desarrolla. Mant.

Per.usa proc.apoyo

PROCESO DE APOYO

Documentación validación

Gestión Configuración Revisión Conjunta Aseg.de calidad Auditoria

Verificación Resu.Problemas

PROCESO DE LA ORGANIZACIÓN

Infraestructura Formación

Mejora

soporte

V.contrato

V.dirección

V.operativo

V.Ingeni.

Page 16: 3 Clase Ciclo De Vida Del Software -

16

• Visión de Contrato: el comprador y proveedor negocian y firman, empleando los procesos de adquisición y suministro.

• Visión de Dirección: el comprador, proveedor, desarrollador gestionan sus procesos, para proyecto de softw.

• Visión de Explotación: el operador explota el sftw.,

• Visión de Ingeniería: el desarrollador o personal de mant., lleva ha cabo sus tareas

• Visión de Soporte: unen grupos, proporciona servicios de apoyo a otros grupos

Page 17: 3 Clase Ciclo De Vida Del Software -

17

MODELO EN CASCADA• La versión original del modelo Cascada fue

propuesto por Royce: 1970. • El numero de faces varian. En general son:

– Análisis de requisitos de sistema– Análisis de requisitos del softw.– Diseño preliminar– Diseño detallado– Codificación– Pruebas– Explotación– Mantenimiento

Page 18: 3 Clase Ciclo De Vida Del Software -

18

Análisis de requisitos Sistema

Análisis Requisitos Software

Diseño Preliminar

Diseño Detallado

Codificaciónpruebas

Explotaciónmantenimiento

Page 19: 3 Clase Ciclo De Vida Del Software -

19

Modelo en Cascada• Algunas características:

– cada fase empieza cuando ha terminado la anterior

– para pasar de una fase a otra es necesario conseguir todos los objetivos de la fase anterior

– ayuda a prevenir que se sobrepasen la fecha de entrega y los costos esperados

– al final de cada fase técnicos y usuarios tienen la oportunidad de revisar el proceso del proyecto.

Page 20: 3 Clase Ciclo De Vida Del Software -

20

Modelo en cascada

• Es el mod. De ciclo de vida mas antiguo y mas ampliamente usado.

• Las criticas son:– no refleja el proceso real de desarrollo de

softw., estos raramente siguen procesos lineales– se tarda mucho tiempo en pasar por todo el

ciclo.– Acentúa el fracaso de la industria del softw.,

con el usuario final.

Page 21: 3 Clase Ciclo De Vida Del Software -

21

Modelo Incremental

• Corrige la necesidad de una secuencia no lineal de pasos de desarrollo. En este mod., se va creando el sistema añadiendo componentes funcionales al sistema.

• En cada paso se actualiza el sistema con nuevas funcionalidades o requisitos.

• El sistema no se ve como una única unidad monolítica con fecha fija.

Page 22: 3 Clase Ciclo De Vida Del Software -

22

Modelo Incremental

• Se ajusta a entornos de alta incertidumbre, ya que en cada refinamiento amplia los requisitos y especificaciones de fases anteriores.

• Es un avance respecto al modelo en Cascada.

• Presenta el problema de saber si los requisitos propuestos son validos

• los errores en requisitos se detectan tarde y corrección es costosa.

Page 23: 3 Clase Ciclo De Vida Del Software -

23

AnálisisRequisitoSistemas

AnálisisRequisito

Softw.

DiseñoPreliminar

DiseñoDetallado

CodificaciónPrueba

ExplotaciónMantenimiento

DiseñoDetallado

CodificaciónPrueba

ExplotaciónMantenimiento

Incremento 1

Incre. 2

Page 24: 3 Clase Ciclo De Vida Del Software -

24

MODELO ESPIRAL• Boehn 1988 propuso el modelo espiral que

consta de una serie de ciclos. Cada uno empieza identificando sus objetivos, alternativas y restricciones.

• Se evalúa las alternativa respecto a los objetivos tomando en cuenta las restricciones, se lleva a cabo el ciclo

• una vez finalizado se plantea el próximo ciclo

Page 25: 3 Clase Ciclo De Vida Del Software -

25

• Cada ciclo dela espiral comienza con la identificación de:– Los objetivos: de la parte del producto que esta

siendo elaborada. Ej. Se desea aumentar la productividad del softw.

– Las Alternativas, principales de la implantación de esta porción del producto. Existen diferentes alternativas

– las restricciones impuestas para cada alternativa.

Page 26: 3 Clase Ciclo De Vida Del Software -

26

Evalúa alternativas

identificar y resolver

los riesgos

Determina objetivos

alternativas restricciones

Planificación de fase

siguiente

Desarrollar verificar el

producto del siguiente nivel.

P.3

Anal .riesgo

Ver.requisito

Plan desarrollo

P.2

Plan requisito

Page 27: 3 Clase Ciclo De Vida Del Software -

27

Modelo espiral

• El siguiente paso es evaluar las diferentes alternativas, teniendo en cuenta los objetivos y restricciones. Se identifica las áreas de incertidumbre del producto.

• El siguiente paso en formular una estrategia efectiva para resolver los riesgos.

• El siguiente paso revisar los resultados del análisis de riesgo

• siguiente paso planificar la fase posterior

Page 28: 3 Clase Ciclo De Vida Del Software -

28

Modelo Espiral• Una vez realizado el primer ciclo se vuelve ha

empezar. Cada ciclo se completa con una revisión.

• Las características del método Espiral es:– Existe conocimiento explícito de las diferentes

alternativas a alcanzar

– la identificación de riesgos asociado a cada alternativa y como resolverlos.

– División de proyecto en ciclos, y cada uno con un acuerdo final de ciclo

– el modelo se adapta a cualquier tipo de actividad

Page 29: 3 Clase Ciclo De Vida Del Software -

29

Modelo Espiral• Dificultades:

– trabajo con softw., contratado. Trabaja bien en los desarrollos internos, pero necesita ajustes para sub contrata de software.

– Necesidad de expertos en evaluación de riesgos.

Page 30: 3 Clase Ciclo De Vida Del Software -

30

MODELO DE DESARROLLO DE SISTEMAS O.O

• EL MODELO Cascada no permite aprovechar la tecnología de objetos, que pretende acelerar el desarrollo de Softw., iterativo e incremental.

• La tecnología OO generaliza los componentes para reutilizar, esto aumenta los costos de desarrollo en un 10 a 50%.

• Se han propuesto modelos para abordar esta problemática

Page 31: 3 Clase Ciclo De Vida Del Software -

31

Modelo de Agrupamiento (Cluster)• Los modelos usuales de ciclo de vida esta

basado en proyectos; mientras en el desarrollo OO esta basado en en el producto.

• Para la cultura del proyecto se propone el modelo de agrupamiento. En la que la fase de generalización aparece combinada con la fase de validación.

• El concepto clave es el Agrupamiento: que es un conjunto de clases

relacionadas con un objetivo común.

Page 32: 3 Clase Ciclo De Vida Del Software -

32

ESPEC DISREA VALGEN

ESPEC DISREA VALGEN

ESPEC DISREA VALGEN

TIEMPO

TIEMPO

Agrupamiento 1

Agrupamiento 2

Agrupamiento n

MODELO DE AGRUPAMIENTO (CLUSTER)

Page 33: 3 Clase Ciclo De Vida Del Software -

33

Modelo Fuente

• Definido por Henderson Sellers y Edwards 1990: es el mas conocido en el desarrollo OO.

• Presenta alto grado de iteración y solapamiento que hace la tecnología de Objetos.

• En la base esta el análisis de Requisitos, a partir del cual va creciendo el ciclo de vida, cayendo solo para el mantenimiento.

• La piscina seria el repositorio de clase.

Page 34: 3 Clase Ciclo De Vida Del Software -

34

Modelo fuente

• Se propone además, un modelo de ciclo de vida para cada clase o modulo, ya que cada una puede estar en una fase diferente del ciclo de vida durante el desarrollo de un sistema.

• Este ciclo d vida se puede aplicar también a los agrupamientos de clase. ( reutilizacion parcial o una total al desarrollo una clase)

Page 35: 3 Clase Ciclo De Vida Del Software -

35

Análisis

Diseño conceptual

componentes

codificación

Pruebassistemas

evoluciónmantenimiento

Piscina Sw

Estudio de

viabilidad y requisitos

Pruebasunitarias

utilización

Modelo ciclo de vida fuente

Page 36: 3 Clase Ciclo De Vida Del Software -

36

MODELO REMOLINO

• Rumbaugh: 1992: señala que las metodológias de desarrollo, no ofrecen una visión real del mismo, que es mucho mas desordenada e implica múltiples iteraciones.

• El modelo en cascada asume solo una dimensión de iteración consistente en la fase de proceso, pero pueden identificarse otras dimensiones, como las:

Page 37: 3 Clase Ciclo De Vida Del Software -

37

MODELO REMOLINO– Amplitud: o tamaño del desarrollo– profundidad: nivel de abstracción o detalle– madurez : grado de compleción, corrección y

elegancia– alternativas: diferentes soluciones a un

problema– alcance: en cuanto a adjetivos del sistema, ya

que los requisitos cambian a lo largo del tiempo

Page 38: 3 Clase Ciclo De Vida Del Software -

38

MODELO REMOLINO

• Las diferentes dimensiones se pueden anidar de muchas maneras: ej. Fase - madures - amplitud.

• Este proceso fractal (mas que lineal), consiste en un desarrollo multiciclico, tiene la forma de un remolino en lugar de una cascada.

Page 39: 3 Clase Ciclo De Vida Del Software -

39

Modelo Pinball

• Propuesto por Ampler: 1994. Señala que el pinball refleja realmente la forma en la que se desarrolla softw.

• En este modelo la pelota representa un proyecto completo sub proyecto, y el jugador es el equipo de desarrollo.

Page 40: 3 Clase Ciclo De Vida Del Software -

40

Modelo Pinball

• Se procede de forma iterativa a encontrar clases, atributos, métodos e interrelaciones y definir colaboraciones, herencias, agregación y subsistemas.

• Por ultimo se pasa a la programación prueba e implementacion

• como en el pinball los pasos se pueden tomar en cualquier orden y de forma simultanea.

Page 41: 3 Clase Ciclo De Vida Del Software -

41

Modelo Pinball• Se destaca dos estilos a la hora de jugar:

– a lo seguro: con tecnologías y métodos probados.

– Al limite: con mayor riesgo, pero con mas ventajas.

• El autor destaca que al igual que en el juego del pinball, la habilidad es el factor mas importante.

Page 42: 3 Clase Ciclo De Vida Del Software -

42

Consideraciones generales• Todos los modelos de desarrollo OO se

caracterizan por:– eliminación de fronteras entre fases– una nueva forma de concebir los lenguajes de

programación y su uso– un alto grado de iteración y solapamiento

• los expertos en tecnologías de objetos proponen seguir un desarrollo Iterativo e incremental.

Page 43: 3 Clase Ciclo De Vida Del Software -

43

Consideraciones generales• Las tareas de cada fase se llevan a cabo de

forma iterativa, a la vez existe un ciclo de desarrollo análisis - instrumentación - análisis que permite hacer evolucionar al sistema.

• Lo incremental se refiere al hecho que el sistema se divide en un conjunto de particiones, las cuales se desarrollan de manera completa

Page 44: 3 Clase Ciclo De Vida Del Software -

44

Consideraciones generales• Las actividades de validación, verificación y

seguimiento de la calidad se realizan para cada iteración de cada fase

• la ventaja principal de estos modelos es que permite fijar hitos mas frecuentes, realizando entregas de sistemas operativos cada dos o tres meses, para recibir retroalimentacion del cliente.

• El inconveniente es la dificultad de gestionar de manera formal los proyectos.