tema 2 ciclo de vida del software · norma iso/iec 12207-2008 procesos de soporte procesos de...
TRANSCRIPT
Tema 2Ciclo de vida del softwareCiclo de vida del software
Ingeniería del Software I
Í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.