Está en la página 1de 53

TEMA 1 (B):

CICLO DE VIDA DEL SOFTWARE

ndice
2.1. Qu es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo.

Ingeniera del Software - CPISI - UJCM

ndice
2.1. Qu es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo.

Ingeniera del Software - CPISI - UJCM

Qu es el Ciclo de Vida del Sw?


Es una sucesin de etapas (procesos) por las que pasa el software en su desarrollo, desde que se concibe la idea hasta que el software deja de utilizarse. Cada etapa lleva asociada una serie de actividades y tareas que se deben realizar, y una serie de documentos que sern la salida de cada una de estas fases y que servirn de entrada a la fase siguiente.
Ingeniera del Software - CPISI - UJCM

ndice
2.1. Qu es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo.

Ingeniera del Software - CPISI - UJCM

Qu es el Ciclo de Vida del Sw?


Segn la norma ISO/IEC Standard 12207:2008: Software life-Cycle processes propuesta por la ISO (International Organization for
Standardization): Es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, explotacin y mantenimiento de un producto software, abarcando la vida del sistema desde la definicin de requisitos hasta que se deja de utilizar http://www.iso.org/iso/home.htm
Ingeniera del Software - CPISI - UJCM

Ciclo de Vida del Sw - Conceptos bsicos


Qu es un proceso?
Un proceso es un conjunto de actividades.

Qu es una actividad?
Una actividad es un conjunto de tareas.

Qu es una tarea?
Una accin que transforma unas entradas en unas salidas.
Ingeniera del Software - CPISI - UJCM

Los procesos del Ciclo de vida del Sw Norma ISO/IEC 12207-2008

Segn esta norma las actividades que se pueden llevar a cabo durante el ciclo de vida del Sw se pueden agrupar en:
5 procesos principales. 8 procesos de soporte. 4 procesos de organizacin o generales.

Ingeniera del Software - CPISI - UJCM

Los procesos del Ciclo de vida del Sw Norma ISO/IEC 12207-2008


Procesos Procesos de de Soporte Soporte
Documentacin Adquisicin Suministro
Gestin de la Config. Aseg. de la calidad

Verificacin Validacin

Explotacin Desarrollo
Mantenimiento

Revisin conjunta Auditora


Resolucin problemas

Procesos Procesos generales generales


Gestin Mejora Infraestructura Formacin
Ingeniera del Software - CPISI - UJCM

Los procesos del Ciclo de vida del Sw Norma ISO/IEC 12207-2008

Cada una de estas actividades est compuesta por diferentes tareas.


Ingeniera del Software - CPISI - UJCM

10

Los procesos del Ciclo de vida del Sw Procesos principales


Adquisicin: Actividades y tareas que el comprador,
el cliente o el usuario realizan para adquirir un sistema, un servicio o un producto software:
Preparacin y publicacin de ofertas. Seleccin del suministrador de Sw.

Suministro: Actividades y tareas del suministrador:


Preparar contratos como respuesta a una peticin de un comprador de un producto Sw. Identificar los recursos necesarios para llevar a cabo con xito el desarrollo del producto Sw.
Ingeniera del Software - CPISI - UJCM

11

Los procesos del Ciclo de vida del Sw Procesos principales


Desarrollo: Actividades y tareas enfocadas a la obtencin de un producto Software.
Anlisis. Diseo. Codificacin. Pruebas. Integracin. Implantacin.

Explotacin: Explotacin del Sw y soporte operativo a


los usuarios.
Ingeniera del Software - CPISI - UJCM

12

Los procesos del Ciclo de vida del Sw Procesos principales


Mantenimiento: Actividades que incluyen

modificaciones del producto, tanto del cdigo como de la documentacin, debido a errores o a la necesidad de mejora o/y adaptacin.
Migracin hacia un nuevo entorno operativo. Retirada del producto.

Ingeniera del Software - CPISI - UJCM

13

Los procesos del Ciclo de vida del Sw Procesos de soporte


Procesos de soporte al resto de procesos. Se aplican en cualquier momento del ciclo del vida del Sw.

Documentacin: Registrar la informacin producida


por un proceso o actividad del ciclo de vida:
Disear, editar, distribuir y mantener los documentos producidos durante el desarrollo del Sw.

Gestin de la Configuracin: Actividades que


controlan las modificaciones y versiones de los elementos.
Registrar las peticiones de cambios e informar de los estados de stos.
Ingeniera del Software - CPISI - UJCM

14

Los procesos del Ciclo de vida del Sw Procesos de soporte


Aseguramiento de la calidad: Actividades para asegurar que los productos cumplen los requisitos especificados y se ajustan a los planes establecidos. Verificacin: Actividades para determinar el buen funcionamiento de un producto software. Validacin: Actividades para determinar si e producto cumple los requisitos previstos.

Ingeniera del Software - CPISI - UJCM

15

Los procesos del Ciclo de vida del Sw Procesos de soporte


Revisin conjunta: Actividades que permiten determinar el estado de los productos en una determinada actividad del ciclo de vida o en una cierta fase del proyecto. Puede ser una reunin conjunta con el cliente, el grupo de desarrollo y los clientes potenciales para revisar el trabajo hecho. Auditoras: Actividades que permiten determinar en unos momentos determinados si se han conseguido los objetivos propuestos: requisitos, cumplimiento del contrato.
Ingeniera del Software - CPISI - UJCM

16

Los procesos del Ciclo de vida del Sw Procesos de soporte


Resolucin de problemas: Actividades que permiten analizar y resolver los problemas o disconformidades con los requisitos o con el contrato, que hayan surgido durante el desarrollo, la explotacin, el mantenimiento, o en cualquier otro momento.
Disponer de un medio documental que permita asegurar que todos los problemas se han tratado.

Ingeniera del Software - CPISI - UJCM

17

Los procesos del Ciclo de vida del Sw Procesos generales


Procesos de soporte a la organizacin: gestin, formacin del personal, mejora de los procesos.

Gestin: Actividades de planificacin, seguimiento,


control, revisin y evaluacin.

Infraestructura: Actividades para determinar la


infraestructura necesaria para un proceso. Incluye Hw, Sw, instalaciones

Mejora: Valorar, medir, controlar, evaluar y mejorar


todos los procesos del ciclo de vida.

Formacin: Plan de formacin para los empleados.


Ingeniera del Software - CPISI - UJCM

18

ndice
2.1. Qu es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo.

Ingeniera del Software - CPISI - UJCM

19

Modelos de desarrollo
Qu es un modelo de desarrollo?
Son estrategias de desarrollo que ayudan a organizar los diferentes procesos y actividades del ciclo de vida del software. Estos modelos ayudan al control y a la coordinacin del proyecto. El modelo a utilizar depende del tipo de proyecto.
Ingeniera del Software - CPISI - UJCM

20

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

21

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

22

Modelo en Cascada (Waterfall)


Divide el proceso de desarrollo en un conjunto de etapas secuenciales. Una etapa no puede empezar hasta que no ha terminado la anterior. Al final de cada fase, el personal de desarrollo y los usuarios revisan el progreso del proyecto. En cada fase se genera todo un conjunto de documentos. Es un modelo dirigido por documentos -> Son los productos principales en cada etapa.
Ingeniera del Software - CPISI - UJCM

23

Modelo en Cascada (Waterfall)


Anlisis Requerimientos

Diseo

Implementacin

Pruebas Mantenimiento

Es el modelo ms antiguo y ms utilizado. Ha sido la base de muchos otros modelos.


Ingeniera del Software - CPISI - UJCM

24

Modelo en Cascada (Waterfall)


Especificacin de Requerimientos

Visin profunda del problema desde el punto de vista de los desarrolladores y usuarios. Especifica la informacin sobre la cual el software se va a desarrollar. Permite describir cmo el software va a satisfacer los requerimientos Aqu es donde el Software a ser desarrollado se codifica Etapa donde el software es probado para verificar que es consistente con las definiciones

Diseo

Implementacin

Validacin y Verificacin

Mantencin

Modificaciones al software producto de errores, adecuaciones, etc.


25

Ingeniera del Software - CPISI - UJCM

Modelo en Cascada - Desventajas


Definir todos los requisitos al inicio del proceso no es prctico ya que el cliente aade y modifica segn le van surgiendo necesidades durante el proceso de desarrollo. El cliente nunca tiene claro lo que quiere! El cliente no ve el producto en funcionamiento hasta el final del proceso. La validacin de los requisitos iniciales no se hace hasta el final. Poca o nula flexibilidad a cambios.
Ingeniera del Software - CPISI - UJCM

26

Modelo en Cascada -

Cundo es conveniente?

Cuando tenemos proyectos complejos pero que se entienden y quedan bien definidos desde un comienzo. Vlido para sistemas con requisitos muy estables Cuando el equipo de desarrollo no est muy cualificado o es an inexperto porque la estructura de trabajo que propone es muy ordenada y ayuda a minimizar esfuerzo. Previene sobrepasar costos y tiempos.
Ingeniera del Software - CPISI - UJCM

27

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

28

Modelo Incremental
El sistema se crea mediante incrementos funcionales. Apropiado para proyectos grandes y de larga duracin. Se divide en miniproyectos. Al final de cada incremento se entrega al cliente un producto completamente operacional. Entregas sucesivas a los usuarios.
Ingeniera del Software - CPISI - UJCM

29

Modelo Incremental

Ingeniera del Software - CPISI - UJCM

30

Modelo Incremental- Desventajas


Aumenta el coste por la fase de pruebas. Requiere de mucha planeacin, tanto administrativa como tcnica. Requiere de metas claras para conocer el estado del proyecto.

Ingeniera del Software - CPISI - UJCM

31

Modelo Incremental-

Cundo es conveniente?

Modelo til para proyectos inmersos en entornos de alta incertidumbre.


Ventajas: La solucin se va mejorando de forma progresiva a travs de las mltiples iteraciones. El resultado puede ser muy positivo. El producto final se adapta muy bien a las necesidades del cliente.

Cuando el cliente quiere entregas constantes.

Ingeniera del Software - CPISI - UJCM

32

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

33

Modelo de Prototipos
Un prototipo es una versin limitada del producto que permite a las partes responsables de su creacin probarlo en situaciones reales y explorar su uso. Con este modelo hay un acercamiento al cliente. Gracias al prototipo el cliente puede hacerse una idea de cmo est evolucionando el producto y esto ayuda a refinar los requisitos del sistema. Con los prototipos definimos de forma clara y concreta qu quiere el cliente ->Los requisitos del sistema.
Ingeniera del Software - CPISI - UJCM

34

Modelo de Prototipos
Investigacin Investigacin Preliminar Preliminar

Especificacin de Requerimientos y Prototipado

Anlisis y Especificacin

Diseo bsico del Prototipo Construccin prototipo

Definicin del problema, sus efectos organizacionales. Estudio de factibilidad

Diseo y Construccin

Evaluacin

Verificacin y requerimientos

Modificacin

Modificacin del Prototipo

Diseo Tcnico

Diseo detallado. Rediseo del Prototipo y documentacin para programacin y mantencin Las especificaciones del diseo tcnico son implementadas y probadas Instalacin del sistema y modificaciones posteriores
Ingeniera del Software - CPISI - UJCM

Programacin y Prueba

Operacin y Mantencin

35

Modelo de Prototipos

Ingeniera del Software - CPISI - UJCM

36

Modelo de Prototipos - Desventajas


El diseo rpido del prototipo hace que los desarrolladores utilicen herramientas especficas que faciliten la rpida generacin de cdigo, dejando a un lado aspectos de calidad y robustez ( eficiencia, fiabilidad, mantenibilidad del cdigo, etc.). Probablemente no se tendr un cdigo ptimo.

Ingeniera del Software - CPISI - UJCM

37

Modelo de Prototipos -

Cundo es conveniente?

Se recomienda para clientes que quieren ver resultados a corto plazo. Cuando el cliente no sabe lo que quiere y los requisitos no estn bien definidos desde el principio. Cuando los requisitos evolucionan muy rpidamente. Para sistemas on-line donde es ms importante la parte de la interfaz con el usuario que las funcionalidades del sistema.
Se recomienda utilizar este modelo slo para la especificacin de requisitos. Mejor continuar el desarrollo utilizando otro modelo.
Ingeniera del Software - CPISI - UJCM

38

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

39

Modelo en Espiral
Es una combinacin de los dos anteriores. Es un modelo evolutivo del desarrollo, formado por un conjunto de vueltas de espiral.
En las sucesivas vueltas, se desarrolla un prototipo. En la ltimas iteraciones se obtienen versiones completas del producto.

La complejidad de las actividades se incrementa notablemente a medida que nos alejamos del centro de la espiral. Las primera son menos costosas. La evaluacin despus de cada fase permite cambios.

Ingeniera del Software - CPISI - UJCM

40

Modelo en Espiral
Incorpora el factor Riesgo -> es un modelo orientado a riesgos
Tiene como objetivo vital pensar en las cosas que pueden ir mal en el desarrollo del software y saber cmo resolverlas.

Ingeniera del Software - CPISI - UJCM

41

Modelo en Espiral
PLANIFICACIN Determine objetivos alternativas y restricciones Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Anlisis de Proto Riesgos tipo 1 Prototipo Prototipo 3 2 ANLISIS DE RIESGOS Evale alternativas, identifique y resuelva riesgos

Prototipo Operacional

REVISIN

Simulaciones y modelos Plan de requerimientos Concepto de Plan del ciclo de vida Operacin RequeriDiseo Diseo mientos de SW del Detallado Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin INGENIERA EVALUACIN DEL CLIENTE Aceptacin Desarrolla y verifica Planea la Servicio el siguiente nivel siguiente fase del producto
Ingeniera del Software - CPISI - UJCM

42

Modelo en Espiral Fases por ciclo


Planificacin:
Determinar los objetivos. Determinar las alternativas de desarrollo. Analizar las restricciones de cada alternativa.

Anlisis de riesgos:
Ver todos los puntos que pueden fallar. Evaluar las diferentes alternativas. Determinar y resolver o minimizar los riesgos. Identificacin de los riesgos para cada alternativa, as como la manera de resolverlos.
Ingeniera del Software - CPISI - UJCM

43

Modelo en Espiral Fases por ciclo


Ingeniera:
Desarrollo del producto. En cada iteracin el proyecto se va completando.

Evaluacin del cliente:


Revisin para ver si est de acuerdo, o no, con los resultados obtenidos. Si todo va bien, se pasa a la siguiente fase. En la revisin participan todas las personas y organizaciones que tienen relacin con el producto. Se planifica la siguiente vuelta. Previsin de los recursos necesarios.
Ingeniera del Software - CPISI - UJCM

44

Modelo en Espiral - Desventajas


Es difcil establecer los hitos para determinar si podemos pasar a la siguiente vuelta de espiral. La evaluacin de riesgos es una tarea compleja. Se necesitan expertos. Es difcil convencer a los clientes que un modelo evolutivo es controlable. No se aconseja para proyectos que tienen pocos riesgos. Demasiado coste. En definitiva, no es un modelo muy real ni claro.
Ingeniera del Software - CPISI - UJCM

45

Modelo en Espiral -

Cundo es conveniente?

Cuando tenemos proyectos complejos, donde el problema no est muy bien definido y conlleva una serie de riesgos. Proyectos dinmicos Proyectos innovadores y ambiciosos.

Ingeniera del Software - CPISI - UJCM

46

Modelos de desarrollo - Tipos


Modelo en Cascada. Modelo incremental. Modelo de Prototipos. Modelo en Espiral. Modelo para desarrollos OO
Ingeniera del Software - CPISI - UJCM

47

Modelo para desarrollos O O


El modelo en cascada no permite aprovechar las ventajas de la tecnologa OO. Pretende acelerar el desarrollo de sistemas de una manera iterativa e incremental. Se eliminan fronteras entre fases debido a la naturaleza iterativa del desarrollo orientado al objeto. Aparece una nueva forma de concebir los lenguajes de programacin y su uso al incorporarse bibliotecas de clases y otros componentes reutilizables.
Ingeniera del Software - CPISI - UJCM

48

Modelo para desarrollos O O


Modelos para Desarrollos OO. Hay un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy dinmica. Modelos:
o o o o

Agrupamiento Fuente Remolino Pinball


49

Ingeniera del Software - CPISI - UJCM

Modelo para desarrollos O O


Modelos para Desarrollos OO. Hay un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy dinmica. Modelos:
o o o o

Agrupamiento Fuente Remolino Pinball


50

Ingeniera del Software - CPISI - UJCM

Modelo para desarrollos O O

Ingeniera del Software - CPISI - UJCM

51

Modelo para desarrollos O O

Ingeniera del Software - CPISI - UJCM

52

TEMA 1 (B):
CICLO DE VIDA DEL SOFTWARE