Ciclos de vida_de_sistemas[1]

34
AIEP AIEP - CHILE w w w . i n a c a p . c l w w w . i n a c a p . c l Ciclos de Vida de un Sistema

Transcript of Ciclos de vida_de_sistemas[1]

Page 1: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Ciclos de Vida de un Sistema

Page 2: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

El Ciclo de Vida

Todo proyecto de ingeniería tiene unos fines ligados a la obtención de un producto, proceso o servicio que es necesario generar a través de diversas actividades.Algunas de estas actividades pueden agruparse en fases porque globalmente contribuyen a obtener un producto intermedio, necesario para continuar hacia el producto final y facilitar la gestión del proyecto. Al conjunto de las fases empleadas se le denomina “ciclo de vida”.

Page 3: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

El Ciclo de Vida

Sin embargo, la forma de agrupar las actividades, los objetivos de cada fase, los tipos de productos intermedios que se generan, etc. pueden ser muy diferentes dependiendo del tipo de producto o proceso a generar y de las tecnologías empleadas.La complejidad de las relaciones entre las distintas actividades crece exponencialmente con el tamaño, con lo que rápidamente se haría inabordable si no fuera por la vieja táctica de “divide y vencerás”. De esta forma la división de los proyectos en fases sucesivas es un primer paso para la reducción de su complejidad, tratándose de escoger las partes de manera que sus relaciones entre sí sean lo más simples posibles.

Page 4: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

El Ciclo de Vida

La definición de un ciclo de vida facilita el control sobre los tiempos en que es necesario aplicar recursos de todo tipo (personal, equipos, suministros, etc.) al proyecto. Si el proyecto incluye subcontratación de partes a otras organizaciones, el control del trabajo subcontratado se facilita en la medida en que esas partes encajen bien en la estructura de las fases. El control de calidad también se ve facilitado si la separación entre fases se hace corresponder con puntos en los que ésta deba verificarse (mediante comprobaciones sobre los productos parciales obtenidos).

Page 5: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas planificables. Según el modelo de ciclo de vida, la sucesión de fases puede ampliarse con ciclos de realimentación, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar más de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecución aportaciones de los resultados intermedios que se van produciendo(realimentación).

Page 6: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

Para un adecuado control de la progresión de las fases de un proyecto se hace necesario especificar con suficiente precisión los resultados evaluables, o sea, productos intermedios que deben resultar de las tareas incluidas en cada fase. Normalmente estos productos marcan los hitos entre fases.

Page 7: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

A continuación presentamos los distintos elementos que integran un ciclo de vida:

Fases: Una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto.

Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. La agrupación temporal de tareas impone requisitos temporales correspondientes a la asignación de recursos (humanos, financieros o materiales). Cuanto más grande y complejo sea un proyecto, mayor detalle se necesitará en la definición de las fases para que el contenido de cada una siga siendo manejable.

De esta forma, cada fase de un proyecto puede considerarse un “micro-proyecto” en sí mismo, compuesto por un conjunto de micro-fases.

Page 8: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

Otro motivo para descomponer una fase en subfases menores puede ser el interés de separar partes temporales del proyecto que se subcontraten a otras organizaciones, requiriendo distintos procesos de gestión.

Cada fase viene definida por un conjunto de elementos observables externamente, como son las actividades con las que se relaciona, los datos de entrada (resultados de la fase anterior, documentos o productos requeridos para la fase, experiencias de proyectos anteriores), los datos de salida (resultados a utilizar por la fase posterior, experiencia acumulada, pruebas o resultados efectuados) y la estructura interna de la fase.

Page 9: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

Esquema general de operación de una fase

Page 10: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Elementos del Ciclo de Vida

Entregables ("deliverables"). Son los productos intermedios que generan las fases. Pueden ser materiales (componentes, equipos) o inmateriales (documentos, software). Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuación o no a los requisitos funcionales y de condiciones de realización previamente establecidos. Cada una de estas evaluaciones puede servir, además, para la toma de decisiones a lo largo del desarrollo del proyecto

Page 11: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Tipos de Modelo de Ciclo de Vida

Las principales diferencias entre distintos modelos de ciclo de vida están en:El alcance del ciclo dependiendo de hasta dónde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricación, y modificaciones posteriores hasta su retirada del mercado.

Page 12: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Tipos de Modelo de Ciclo de Vida

Las características (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto (no son lo mismo las tareas que deben realizarse para proyectar un avión que un puente), o de la organización (interés de reflejar en la división en fases aspectos de la división interna o externa del trabajo). La estructura de la sucesión de las fases que puede ser lineal, con prototipado, o en espiral.

Page 13: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Ciclo de Vida Moderno

• Métodos, herramientas y procedimientos que, aplicados correctamente, conducen a la construcción de un producto de SW con una perspectiva de ingeniería.

PLANIFICACIÓN

ANÁLISISSOPORTE

IMPLANTACIÓN DISEÑO

Page 14: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Planificación de Sistemas

• Estudiar el objetivo de la empresa• Definir una arquitectura de información (TI)• Análisis de áreas de empresa

Page 15: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Análisis de Sistemas

• Estudiar la viabilidad del proyecto• Estudiar y analizar el sistema actual• Definir las necesidades de los usuarios y establecer prioridades

Page 16: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Diseño de Sistemas

• Elegir un objetivo de diseño.• Adquirir HW y SW necesarios.• Diseñar e integrar el nuevo sistema.

Page 17: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Implantación de Sistemas

• Hacer probar las redes y BD• Hacer y probar los programas• Instalar y probar el sistema• Entregar el sistema para su puesta en marcha

Page 18: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

Soporte de Sistemas

• Corrección de errores.• Recuperar el sistema.• Asistir a los usuarios del sistema.

Page 19: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

El Ciclo de Vida de Sistemas

Metodologías de Desarrollo

Page 20: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

1. Concepto del Ciclo de Vida de Sistemas

– 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 software, abarcando la vida del sistema desde la definición hasta la finalización de su uso (ISO 12207)

Page 21: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

1. Concepto del Ciclo de Vida de Sistemas

– 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

Page 22: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

– Cada proceso comienza cuando termina el anterior– Los desarrollos reales presentan iteraciones– Es difícil obtener todos los requisitos al comienzo– Se tarda mucho en disponer del software– Es mejor que no seguir ningún ciclo de vida– Es el más fácil de planificar, es el ciclo ideal

2. Ciclo de Vida Clásico (en cascada)

Page 23: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

2. Ciclo de Vida Clásico (en cascada)

Page 24: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

2. Ciclo de Vida Clásico (en cascada)

– En el caso del desarrollo de sistemas, el ciclo de vida tiene dos niveles: sistema y hardware/software

– El diseño se suele dividir en diseño de la arquitectura y en diseño detallado

Page 25: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclos de vida evolutivos

– Cuanto mayor es un proyecto, menor es su probabilidad de éxito (Informes CHAOS).

– Conseguir obtener todos los requisitos al comienzo del proyecto es prácticamente 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-evaluación.

– El resultado de la evaluación permite evolucionar hacia la siguiente versión.

Page 26: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclos de vida evolutivos

Page 27: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

– Es una repetición de varios ciclos de vida en cascada.– Al final de cada ciclo se entrega una versión 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 tamaño.

3. Ciclo de Vida Evolutivo:a. Ciclo de vida incremental

Page 28: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclo de Vida Evolutivo:a. Ciclo de vida incremental

Page 29: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclo de Vida Evolutivo:b. Ciclo de vida iterativo

– Es también una repetición de varios ciclos de vida en cascada.– Al final de cada ciclo se entrega una versión 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 iteración y proponer

mejoras.– Se suele aplicar en desarrollos en los que los requisitos no están claros,

las primeras versiones pueden ser prototipos que se desechan posteriormente.

Page 30: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclo de Vida Evolutivo:b. Ciclo de vida iterativo

Page 31: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

3. Ciclo de Vida Evolutivo:c. Prototipos

– 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).– Siempre se debe evaluar si el esfuerzo de desarrollo del prototipo merece la

pena (coste de errores).– Es fundamental la implicación de los usuarios.– Otro tipo de prototipos pueden utilizarse para evaluar diferentes algoritmos

antes de tomar decisiones de diseño.– Siempre se debe tener en cuenta que el prototipo no es el producto final, ya

que su calidad no suele ser la necesaria.

Page 32: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

4. Componentes software

– Cada vez es más frecuente el ensamblaje de componentes software desarrollados por terceros en la construcción de nuevos sistemas software.

– El uso de componentes tiene implicaciones en todas las actividades del desarrollo desde los requisitos hasta el mantenimiento.

Page 33: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

4. Componentes software

Page 34: Ciclos de vida_de_sistemas[1]

AIEP

AIEP-

CHILE

w w w . i n a c a p . c lw w w . i n a c a p . c l

6. Ingeniería inversa y Reingeniería

Ingeniería inversa– A veces es necesario mantener sistemas heredados (legacy

systems) que fueron desarrollados sin documentación.– La ingeniería inversa consiste en analizar el resultado de

una etapa de software para obtener el resultado de la anterior, normalmente analizar el código para obtener el diseño.

Reingeniería– La reingeniería utiliza la información obtenida por la

ingeniería inversa para aplicar cualquier tipo de mantenimiento (perfectivo, adaptativo, correctivo o preventivo).

– 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.