45
Tema 2 Ciclo de vida del software Ciclo de vida del software Ingeniería del Software I [email protected]

Tema 2 Ciclo de vida del software - Grupo de … · Ciclo de vida del software Ingeniería del Software I [email protected]. ... Representación abstracta de un proceso del software

Embed Size (px)

Citation preview

Tema 2Ciclo de vida del softwareCiclo de vida del software

Ingeniería del Software I

[email protected]

Índice

� ¿Qué es el ciclo de vida del Software?

� El Estándar 12207

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Modelos de proceso

¿Qué es el Ciclo de Vida del SW?Definición

� Es el proceso por el que pasa el software en su

desarrollo, desde que se concibe la idea hasta

que el software deja de utilizarse.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Un proceso está compuesto por un conjunto de

actividades y tareas que se deben realizar, y una

serie de documentos asociados a ellas.

� ¿Qué es un proceso?

Un proceso es un conjunto de actividades que se suceden

siguiendo una ordenación temporal determinada

� ¿Qué es una actividad?

¿Qué es el Ciclo de Vida del SW?Definición

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� ¿Qué es una actividad?

Una actividad es un conjunto de tareas

� ¿Qué es una tarea?

Una acción que transforma unas entradas en unas salidas

Índice

� ¿Qué es el ciclo de vida del Software?

� El Estándar 12207

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Modelos de proceso

¿Qué es el Ciclo de Vida del SW?Estándar 12207

� Según 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

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

“Es un marco de referencia que contiene los procesos, las

actividades y las tareas involucradas en el desarrollo,

explotación y mantenimiento de un producto software,

abarcando la vida del sistema desde la definición de

requisitos hasta que se deja de utilizar”

� http://www.iso.org/iso/home.htm

Los procesos del Ciclo de Vida del SWEstándar 12207

� Según 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

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

8 procesos de soporte

4 procesos de organización o generales

Procesos principalesProcesos principales Procesos de SoporteProcesos de Soporte

Adquisición

Suministro

Gestión de la Config.

Asegu. de la calidad

Verificación

Documentación

Los procesos del Ciclo de Vida del SWEstándar 12207

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Procesos generalesProcesos generales

Explotación

MantenimientoDesarrollo

Validación

Revisión conjunta

Auditoría

Resolución problemas

Gestión

Mejora

Infraestructura

Formación

Los procesos del Ciclo de Vida del SWEstándar 12207

Proceso de Desarrollo

Actividad Actividad Actividad Actividad Actividad Actividad

Proceso de Desarrollo

Actividad Actividad Actividad Actividad Actividad Actividad

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Actividadde

Análisis

Actividadde

Diseño

Actividadde

Codificación

Actividadde

Pruebas

Actividadde

Integración

Actividadde

Implantación

Actividadde

Análisis

Actividadde

Diseño

Actividadde

Codificación

Actividadde

Pruebas

Actividadde

Integración

Actividadde

Implantación

Cada una de estas actividades está compuesta por

diferentes tareas

Norma ISO/IEC 12207-2008Procesos Principales

� Adquisición: Actividades y tareas que el comprador, el cliente o el usuario realizan para adquirir un sistema, un servicio o un producto software:

Preparación y publicación de ofertas

Selección del suministrador de SW

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Suministro: Actividades y tareas del suministrador:

Preparar contratos como respuesta a una petición de un comprador de un producto SW

Identificar los recursos necesarios para llevar a cabo con éxito el desarrollo del producto SW

Norma ISO/IEC 12207-2008Procesos Principales

� Desarrollo: Actividades y tareas enfocadas a la obtención de un producto Software.

Análisis

Diseño

Codificación

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Pruebas

Integración

Implantación

� Explotación: Explotación del SW y soporte operativo a los usuarios.

Norma ISO/IEC 12207-2008Procesos Principales

� Mantenimiento: Actividades que incluyen

modificaciones del producto, tanto del código

como de la documentación, debido a errores o a

la necesidad de mejora o/y adaptación.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Migración hacia un nuevo entorno operativo

Retirada del producto

Norma ISO/IEC 12207-2008Procesos de Soporte

Procesos de soporte: dan soporte al resto de procesos y se

aplican durante cualquier momento del ciclo de vida del SW

� Documentación: Registrar la información producida por un proceso o actividad del ciclo de vida:

Diseñar, editar, distribuir y mantener los documentos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Diseñar, editar, distribuir y mantener los documentos producidos durante el desarrollo del SW

� Gestión de la Configuración: Actividades que controlan las modificaciones y versiones de los elementos.

Registrar las peticiones de cambios e informar de los estados de éstos.

Norma ISO/IEC 12207-2008Procesos de Soporte

� Aseguramiento de la calidad: Actividades para asegurar que los productos cumplen los requisitos especificados y se ajustan a los planes establecidos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Verificación: Actividades para determinar el buen funcionamiento de un producto software

� Validación: Actividades para determinar si el producto cumple los requisitos previstos

Norma ISO/IEC 12207-2008Procesos de Soporte

� Revisión 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 reunión conjunta con el cliente, el grupo de desarrollo y los clientes potenciales para revisar el trabajo hecho

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

clientes potenciales para revisar el trabajo hecho

� Auditorías: Actividades que permiten determinar en unos momentos determinados si se han conseguido los objetivos propuestos: requisitos, cumplimiento del contrato

Norma ISO/IEC 12207-2008Procesos de Soporte

� Resolución 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 explotación, el mantenimiento, o en

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

desarrollo, la explotación, el mantenimiento, o en

cualquier otro momento.

Disponer de un medio documental que permita

asegurar que todos los problemas se han tratado

Norma ISO/IEC 12207-2008Procesos generales

Procesos que dan soporte a la organización: gestión, formación del personal, mejora de los procesos.

� Gestión: Actividades de planificación, seguimiento, control, revisión y evaluación.

Infraestructura: Actividades para determinar la infraestructura

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

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

� Formación: Plan de formación para los empleados.

Índice

� ¿Qué es el ciclo de vida del Software?

� El Estándar 12207

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Modelos de proceso

18

18

Modelos de procesos

� ¿Qué es un modelo de proceso?

Representación abstracta de un proceso del software

Son estrategias de desarrollo que ayudan a organizar las

diferentes actividades del ciclo de vida del software

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

diferentes actividades del ciclo de vida del software

� Modelos de ciclo de vida del software

Estos modelos ayudan al control y a la coordinación del

proyecto

El modelo a utilizar depende del tipo de proyecto

Modelos de procesosVariantes

� Modelos de procesos generales

Modelo en cascada

Modelo evolutivo

Desarrollo formal de sistemas

� Modelos de procesos híbridos

Modelo en espiral

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Desarrollo formal de sistemas

Desarrollo basado en la reutilización

Modelo en espiral

Modelo incremental

Modelos de procesos generalesModelo en Cascada (Waterfall)

� También llamado ciclo de vida básico o modelo lineal-secuencial

� Divide el proceso de desarrollo en un conjunto de etapas secuenciales

� Una etapa no puede empezar hasta que no ha terminado la anterior

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

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.

Modelos de procesos generalesModelo en Cascada (Waterfall)

Análisis y Definición de Requisitos

Diseño de sistemas y software

Implementación y pruebas (unitarias)

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Es el modelo más antiguo y más utilizado

� Es la base de muchos otros modelos

Implementación y pruebas (sistema)

Operación y mantenimiento

Modelos de procesos generalesModelo en Cascada (Waterfall)

Análisis y Especificación de

Requisitos

Diseño

Visión profunda del problema desde el punto de

vista de los desarrolladores y usuarios. Especifica

la información sobre la cual el software se va a

desarrollar.

Permite describir cómo el software va a satisfacer

los requerimientos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Implementación

Validación y verificación

Mantenimiento

Aquí es donde el Software a ser desarrollado se

codifica

Etapa donde el software es probado para

verificar que es consistente con las definiciones

Modificaciones al software producto de errores,

adecuaciones, etc.

Modelos de procesos generalesModelo en Cascada (Waterfall)

� ¿Cuándo es conveniente? (Ventajas):

Cuando tenemos proyectos complejos y grandes pero que se entienden y quedan bien definidos desde un comienzo.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Cuando el equipo de desarrollo no está muy cualificado o es aún inexperto porque la estructura de trabajo que propone es muy ordenada y ayuda a minimizar esfuerzo.

Cuando realizamos una migración de software desde un entorno tecnológico obsoleto.

Modelos de procesos generalesModelo en Cascada (Waterfall)

� Desventajas:

Definir todos los requisitos al inicio del proceso no es práctico ya que el cliente añade y modifica según le van surgiendo necesidades durante el proceso de desarrollo.

¡El cliente nunca tiene claro lo que quiere!

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

¡El cliente nunca tiene claro lo que quiere!

El cliente no ve el producto en funcionamiento hasta el final del proceso.

La validación de los requisitos iniciales no se hace hasta el final.

Poca o nula flexibilidad a cambios.

Modelos de procesos generalesModelo Evolutivo

� Un prototipo es una versión limitada del producto que permite a las partes responsables de su creación probarlo en situaciones reales y explorar su uso

� Con este modelo hay un acercamiento al cliente. Gracias al prototipo, el cliente puede hacerse una

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Gracias al prototipo, el cliente puede hacerse una idea de cómo 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

Modelos de procesos generalesModelo Evolutivo

� La idea es desarrollar una implementación inicial

que se expone a los comentarios del

cliente/usuario. Esta implementación inicial

evoluciona con las diferentes versiones que se

crean hasta llegar a la solución final

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

crean hasta llegar a la solución final

Definición de requisitos

Especificación

Desarrollo

Validación

Actividades concurrentes

Versión final

Versión intermedia

Versión inicial

Modelos de procesos generalesModelo Evolutivo

� ¿Cuándo es conveniente? (Ventajas):Se recomienda para clientes que quieren ver resultados a corto plazo �Reduce costos y aumenta la probabilidad de éxito

Cuando el cliente no sabe lo que quiere y los requisitos no están bien definidos desde el principio � Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Cuando los requisitos evolucionan muy rápidamente.

Conveniente para proyectos pequeños o medianos

Para sistemas on-line donde es más importante la parte de la interfaz con el usuario que las funcionalidades del sistema.

Se recomienda utilizar este modelo sólo para la especificación de requisitos. Mejor continuar el desarrollo utilizando otro modelo

Modelos de procesos generalesModelo Evolutivo

Análisis y Especificación

Diseño y Construcción

Evaluación

Definición del problema, efectos

organizacionales. Estudio de

factibilidad. Recolección y

refinamiento de requisitos

Esp

ecifi

caci

ón d

e re

quis

itos

y P

roto

tipad

o

Investigación Preliminar

Diseño básico del Prototipo

Construcción prototipo

Verificación y requerimientos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Diseño Técnico

Programación y Prueba

Operación y Mantención

Evaluación

Modificación

Diseño detallado. Rediseño del Prototipo y

documentación para programación y mantenimiento

Las especificaciones del diseño técnico son

implementadas y probadas

Instalación del sistema y modificaciones posteriores

Esp

ecifi

caci

ón d

e re

quis

itos

y P

roto

tipad

o

Verificación y requerimientos

Modificación del Prototipo

PRODUCTO

DE

INGENIERÍA

Modelos de procesos generalesModelo Evolutivo

� Desventajas:

El diseño rápido del prototipo hace que los desarrolladores

utilicen herramientas que faciliten la rápida generación de

código, dejando a un lado aspectos de calidad (eficiencia,

fiabilidad, mantenibilidad del código, etc.).

Probablemente no se tendrá un código óptimo

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Probablemente no se tendrá un código óptimo

Exige disponer de las herramientas adecuadas

Descoordinación entre el desarrollo y la documentación. El

desarrollo es tan rápido que a veces no se tiene tiempo

suficiente para producirla

Podemos obtener una arquitectura débil y difícil de mantener.

Modelos de procesos generalesDesarrollo formal de sistemas

� Tiene puntos en común con le desarrollo en cascada pero éste se

basa en la transformación matemática formal de una

especificación del sistema a un programa ejecutable.

� La especificación de requisitos de software se desarrolla mediante

una notación matemática.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Las actividades de diseño, implementación y pruebas de unidades

se reemplazan por un proceso de transformación formal.

Definición de requisitos

Especificación formal

Transformaciónformal

Integración y pruebas del sistema

Modelos de procesos generalesDesarrollo formal de sistemas

� Desventajas:

Las pruebas suelen ser largas y poco prácticas.

Se utiliza principalmente en dominios muy

especializados.

Requiere la supervisión de un experto.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Requiere la supervisión de un experto.

No ofrece ventajas significativas si se compara con el

modelo en cascada y el evolutivo.

Modelos de procesos generalesDesarrollo basado en la reutilización

� Se trata de utilizar diseños o código (componentes

de software reutilizables) ya existentes que sean

similares al que se necesita para el nuevo proyecto.

� Estos componentes se buscan y se modifican acorde

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

a lo requerido y se incorporan en el sistema.

Especificaciónde requisitos

Análisis de componentes

Modificación componentes

Diseño del sistema con la reutilización

Validación del sistema

Desarrollo e integración

Modelos de procesos generalesDesarrollo basado en la reutilización

� ¿Cuándo es conveniente? (Ventajas):

Reduce la cantidad de software a desarrollar.

Reduce costes y riesgos.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Por lo general, conduce a una entrega más rápida del

software.

Modelos de procesos híbridosModelo en Espiral

� Es una combinación del modelo en cascada y evolutivo (Boehm’88)

� Es un modelo evolutivo del desarrollo, formado por un conjunto de vueltas de espiral

En las primeras vueltas el SW es un modelo en papel, la especificación de un producto. Aún no funciona.

En las sucesivas vueltas, se desarrolla un prototipo.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

En las sucesivas vueltas, se desarrolla un prototipo.

En la últimas iteraciones se obtienen versiones completas del producto.

� Cada ciclo del espiral representa una fase del proyecto software

� 4 sectores por ciclo:Definición de Objetivos

Evaluación y reducción de riesgos

Desarrollo y Validación

Planificación

Modelos de procesos híbridosModelo en Espiral

� Con este modelo obtenemos el producto final a partir de piezas más pequeñas.

� El número de actividades a realizar se incrementa notablemente a medida que nos alejamos del centro de la espiral. Las primeras son menos costosas

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

espiral. Las primeras son menos costosas

� La evaluación después de cada fase permite cambios.

� 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 cómo resolverlas

PLANIFICACIÓNDetermine objetivosComunicación con el

cliente/usuario

ANÁLISIS DE RIESGOSEvalúe alternativas,

identifique y resuelvariesgos

Análisis deRiesgos

Análisis deRiesgos

Análisis deRiesgos

Análisisde

PrototipoOperacionalPrototipo

3Prototipo2Proto

Modelos de procesos híbridosModelo en Espiral

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

deRiesgos

EVALUACIÓN DEL CLIENTEPlanea la

siguiente fase

INGENIERÍADesarrolla y verifica

el siguiente nivel del producto

32Proto

tipo 1

Plan de requerimientosPlan del ciclo de vida

REVISIÓN

Plan de Desarrollo

Plan de Integracióny Prueba

Concepto deOperación

Simulaciones y modelos

Requeri-mientos de

SWValidación deRequerimientos

DiseñoV &V

Servicio

Prueba deAceptación

Prueba deIntegración

Prueba deUnidades

Codificación

DiseñoDetallado

Diseñodel

Producto

Modelos de procesos híbridosModelo en Espiral - Fases

� PlanificaciónComunicación con el cliente

Determinar los objetivos

Determinar las alternativas de desarrollo

Analizar las restricciones de cada alternativa

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Análisis de riesgosVer todos los puntos que pueden fallar

Evaluar las diferentes alternativas

Determinar y resolver o minimizar los riesgos

Identificación de los riesgos para cada alternativa, así como la manera de resolverlos

Modelos de procesos híbridosModelo en Espiral - Fases

� Ingeniería

Desarrollo del producto

En cada iteración el proyecto se va completando

� Evaluación del cliente

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Evaluación del cliente

Revisión para ver si está de acuerdo, o no, con los resultados obtenidos. Si todo va bien, se pasa a la siguiente fase

En la revisión participan todas las personas y organizaciones que tienen relación con el producto

Se planifica la siguiente vuelta. Previsión de los recursos necesarios

Modelos de procesos híbridosModelo en Espiral

� Desventajas:Es difícil establecer los hitos para determinar si podemos pasar a la siguiente vuelta de espiral

La evaluación de riesgos es una tarea compleja � Se necesitan expertos en evaluación de riesgos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Es difícil 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.

Modelos de procesos híbridosModelo en Espiral

� ¿Cuándo es conveniente? (Ventajas):

Cuando tenemos proyectos complejos, donde el

problema no está muy bien definido y conlleva una

serie de riesgos

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

Proyectos dinámicos

Proyectos innovadores y ambiciosos

Modelos de procesos híbridosModelo Incremental

� Es un tipo de modelo evolutivo � es iterativo: permite a los ingenieros desarrollar versiones cada vez más completas

� Combina elementos del modelo en cascada (aplicados repetidamente) con la filosofía interactiva de la construcción de prototipos

� Cada secuencia lineal produce un incremento � las entregas de

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Cada secuencia lineal produce un incremento � las entregas de los incrementos se definen al principio del proceso software

� Cada entrega constituye un producto operacional.

� Es útil cuando el personal o los recursos no están disponibles hasta cierto tiempo dentro del proceso de desarrollo � Se adapta a entornos de alta incertidumbre

Modelos de procesos híbridosModelo Incremental

� El diseño e implementación del software se dividen en una serie de incrementos los cuales se desarrollan uno a uno y se van integrando hasta llegar al producto final.

� Cada incremento es un subconjunto de funcionalidades del sistema.

Las funcionalidades se agrupan por grado de importancia.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Las funcionalidades se agrupan por grado de importancia.

� Los servicios de prioridad más alta son los que se entregan antes al cliente.

� Una vez se han identificado los incrementos, se desarrollan con el modelo más adecuado. Dependiendo de cómo estén de bien definidos sus requisitos funcionales se va a utilizar un modelo en cascada o un modelo evolutivo.

Modelos de procesos híbridosModelo Incremental

� Ventajas:

El hecho de que el primer incremento recoja los

requisitos más importantes y críticos hace que el

cliente obtenga un producto más o menos útil en las

primeras iteraciones.

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

primeras iteraciones.

Existe bajo riesgo de fallar por la participación

continua del usuario.

� Desventajas:

Conviene que los incrementos no sean muy grandes.

Es difícil obtener incrementos equilibrados.

Modelos de procesosOtros

� DRA (Desarrollo Rápido de Aplicaciones)

� Proceso Unificado

� Espiral WINWIN

� Desarrollo concurrente

Técnicas de 4ª generación

www.kybele.etsii.urjc.es

/

Ingeniería del Software I – 2011/2012

� Técnicas de 4ª generación

� Modelos para Desarrollo OO:

Modelo de Agrupamiento

Modelo fuente

Modelo remolino

Modelo Pinball, etc.