Você está na página 1de 45

Tema 2

Ciclo de vida del software Ciclo de vida del software


Ingeniera del Software I
feliu.trias@urjc.es
ndice
Qu es el ciclo de vida del Software?
El Estndar 12207
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Modelos de proceso
Qu es el Ciclo de Vida del SW?
Definicin
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
/
Ingeniera 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 ordenacin temporal determinada
Qu es una actividad?
Qu es el Ciclo de Vida del SW?
Definicin
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Qu es una actividad?
Una actividad es un conjunto de tareas
Qu es una tarea?
Una accin que transforma unas entradas en unas salidas
ndice
Qu es el ciclo de vida del Software?
El Estndar 12207
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Modelos de proceso
Qu es el Ciclo de Vida del SW?
Estndar 12207
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Los procesos del Ciclo de Vida del SW
Estndar 12207
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
8 procesos de soporte
4 procesos de organizacin o generales
Procesos principales Procesos principales Procesos de Soporte Procesos de Soporte
Adquisicin
Suministro
Gestin de la Config.
Asegu. de la calidad
Verificacin
Documentacin
Los procesos del Ciclo de Vida del SW
Estndar 12207
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Procesos generales Procesos generales
Explotacin
Mantenimiento
Desarrollo
Validacin
Revisin conjunta
Auditora
Resolucin problemas
Gestin
Mejora
Infraestructura
Formacin
Los procesos del Ciclo de Vida del SW
Estndar 12207
Proceso de Desarrollo
Actividad
Actividad Actividad Actividad
Actividad Actividad
Proceso de Desarrollo
Actividad
Actividad Actividad Actividad
Actividad Actividad
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Actividad
de
Anlisis
Actividad
de
Diseo
Actividad
de
Codificacin
Actividad
de
Pruebas
Actividad
de
Integracin
Actividad
de
Implantacin
Actividad
de
Anlisis
Actividad
de
Diseo
Actividad
de
Codificacin
Actividad
de
Pruebas
Actividad
de
Integracin
Actividad
de
Implantacin
Cada una de estas actividades est compuesta por
diferentes tareas
Norma ISO/IEC 12207-2008
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Norma ISO/IEC 12207-2008
Procesos Principales
Desarrollo: Actividades y tareas enfocadas a la
obtencin de un producto Software.
Anlisis
Diseo
Codificacin
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Pruebas
Integracin
Implantacin
Explotacin: Explotacin del SW y soporte operativo
a los usuarios.
Norma ISO/IEC 12207-2008
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.
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Migracin hacia un nuevo entorno operativo
Retirada del producto
Norma ISO/IEC 12207-2008
Procesos de Soporte
Procesos de soporte: dan soporte al resto de procesos y se
aplican durante cualquier momento del ciclo de vida del SW
Documentacin: Registrar la informacin producida por un
proceso o actividad del ciclo de vida:
Disear, editar, distribuir y mantener los documentos
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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.
Norma ISO/IEC 12207-2008
Procesos 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
/
Ingeniera del Software I 2011/2012
Verificacin: Actividades para determinar el buen
funcionamiento de un producto software
Validacin: Actividades para determinar si el
producto cumple los requisitos previstos
Norma ISO/IEC 12207-2008
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Norma ISO/IEC 12207-2008
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Norma ISO/IEC 12207-2008
Procesos generales
Procesos que dan 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
www.kybele.etsii.urjc.es
/
Ingeniera 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.
Formacin: Plan de formacin para los empleados.
ndice
Qu es el ciclo de vida del Software?
El Estndar 12207
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Modelos de proceso
18
18
Modelos de procesos
Qu es un modelo de proceso?
Representacin 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
/
Ingeniera 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 coordinacin del
proyecto
El modelo a utilizar depende del tipo de proyecto
Modelos de procesos
Variantes
Modelos de procesos generales
Modelo en cascada
Modelo evolutivo
Desarrollo formal de
sistemas
Modelos de procesos hbridos
Modelo en espiral
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Desarrollo formal de
sistemas
Desarrollo basado en la
reutilizacin
Modelo en espiral
Modelo incremental
Modelos de procesos generales
Modelo en Cascada (Waterfall)
Tambin llamado ciclo de vida bsico 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
/
Ingeniera 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 generales
Modelo en Cascada (Waterfall)
Anlisis y Definicin
de Requisitos
Diseo de sistemas
y software
Implementacin y
pruebas (unitarias)
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Es el modelo ms antiguo y ms utilizado
Es la base de muchos otros modelos
Implementacin y
pruebas (sistema)
Operacin y
mantenimiento
Modelos de procesos generales
Modelo en Cascada (Waterfall)
Anlisis y Especificacin de
Requisitos
Diseo
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Implementacin
Validacin y verificacin
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 generales
Modelo en Cascada (Waterfall)
Cundo 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
/
Ingeniera del Software I 2011/2012
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.
Cuando realizamos una migracin de software desde
un entorno tecnolgico obsoleto.
Modelos de procesos generales
Modelo en Cascada (Waterfall)
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!
www.kybele.etsii.urjc.es
/
Ingeniera 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 validacin de los requisitos iniciales no se hace hasta el final.
Poca o nula flexibilidad a cambios.
Modelos de procesos generales
Modelo Evolutivo
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
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Modelos de procesos generales
Modelo Evolutivo
La idea es desarrollar una implementacin inicial
que se expone a los comentarios del
cliente/usuario. Esta implementacin inicial
evoluciona con las diferentes versiones que se
crean hasta llegar a la solucin final
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
crean hasta llegar a la solucin final
Definicin de
requisitos
Especificacin
Desarrollo
Validacin
Actividades concurrentes
Versin final
Versin intermedia
Versin inicial
Modelos de procesos generales
Modelo Evolutivo
Cundo 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 estn bien
definidos desde el principio Reduce el riesgo de construir productos que
no satisfagan las necesidades de los usuarios
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Cuando los requisitos evolucionan muy rpidamente.
Conveniente para proyectos pequeos o medianos
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
Modelos de procesos generales
Modelo Evolutivo
Anlisis y
Especificacin
Diseo y
Construccin
Evaluacin
Definicin del problema, efectos
organizacionales. Estudio de
factibilidad. Recoleccin y
refinamiento de requisitos
E
s
p
e
c
i
f
i
c
a
c
i

n

d
e

r
e
q
u
i
s
i
t
o
s

y

P
r
o
t
o
t
i
p
a
d
o
Investigacin
Preliminar
Diseo bsico del Prototipo
Construccin prototipo
Verificacin y requerimientos
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Diseo
Tcnico
Programacin
y Prueba
Operacin y
Mantencin
Evaluacin
Modificacin
Diseo detallado. Rediseo del Prototipo y
documentacin para programacin y mantenimiento
Las especificaciones del diseo tcnico son
implementadas y probadas
Instalacin del sistema y modificaciones posteriores
E
s
p
e
c
i
f
i
c
a
c
i

n

d
e

r
e
q
u
i
s
i
t
o
s

y

P
r
o
t
o
t
i
p
a
d
o
Verificacin y requerimientos
Modificacin del Prototipo
PRODUCTO
DE
INGENIERA
Modelos de procesos generales
Modelo Evolutivo
Desventajas:
El diseo rpido del prototipo hace que los desarrolladores
utilicen herramientas que faciliten la rpida generacin de
cdigo, dejando a un lado aspectos de calidad (eficiencia,
fiabilidad, mantenibilidad del cdigo, etc.).
Probablemente no se tendr un cdigo ptimo
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Probablemente no se tendr un cdigo ptimo
Exige disponer de las herramientas adecuadas
Descoordinacin entre el desarrollo y la documentacin. El
desarrollo es tan rpido que a veces no se tiene tiempo
suficiente para producirla
Podemos obtener una arquitectura dbil y difcil de mantener.
Modelos de procesos generales
Desarrollo formal de sistemas
Tiene puntos en comn con le desarrollo en cascada pero ste se
basa en la transformacin matemtica formal de una
especificacin del sistema a un programa ejecutable.
La especificacin de requisitos de software se desarrolla mediante
una notacin matemtica.
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Las actividades de diseo, implementacin y pruebas de unidades
se reemplazan por un proceso de transformacin formal.
Definicin de
requisitos
Especificacin
formal
Transformacin
formal
Integracin y pruebas
del sistema
Modelos de procesos generales
Desarrollo formal de sistemas
Desventajas:
Las pruebas suelen ser largas y poco prcticas.
Se utiliza principalmente en dominios muy
especializados.
Requiere la supervisin de un experto.
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Requiere la supervisin de un experto.
No ofrece ventajas significativas si se compara con el
modelo en cascada y el evolutivo.
Modelos de procesos generales
Desarrollo basado en la reutilizacin
Se trata de utilizar diseos o cdigo (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
/
Ingeniera del Software I 2011/2012
a lo requerido y se incorporan en el sistema.
Especificacin
de requisitos
Anlisis de
componentes
Modificacin
componentes
Diseo del sistema
con la reutilizacin
Validacin del
sistema
Desarrollo e
integracin
Modelos de procesos generales
Desarrollo basado en la reutilizacin
Cundo es conveniente? (Ventajas):
Reduce la cantidad de software a desarrollar.
Reduce costes y riesgos.
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Por lo general, conduce a una entrega ms rpida del
software.
Modelos de procesos hbridos
Modelo en Espiral
Es una combinacin del modelo en cascada y evolutivo
(Boehm88)
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
especificacin de un producto. An no funciona.
En las sucesivas vueltas, se desarrolla un prototipo.
www.kybele.etsii.urjc.es
/
Ingeniera 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:
Definicin de Objetivos
Evaluacin y reduccin de riesgos
Desarrollo y Validacin
Planificacin
Modelos de procesos hbridos
Modelo en Espiral
Con este modelo obtenemos el producto final a partir de
piezas ms pequeas.
El nmero 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
/
Ingeniera del Software I 2011/2012
espiral. Las primeras son menos costosas
La evaluacin despus 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 cmo resolverlas
PLANIFICACIN
Determine objetivos
Comunicacin con el
cliente/usuario
ANLISIS DE RIESGOS
Evale alternativas,
identifique y resuelva
riesgos
Anlisis de
Riesgos
Anlisis de
Riesgos
Anlisis de
Riesgos
Anlisis
de
Prototipo
Operacional
Prototipo
3
Prototipo
2
Proto
Modelos de procesos hbridos
Modelo en Espiral
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
de
Riesgos
EVALUACIN DEL CLIENTE
Planea la
siguiente fase
INGENIERA
Desarrolla y verifica
el siguiente nivel
del producto
3
2
Proto
tipo 1
Plan de requerimientos
Plan del ciclo de vida
REVISIN
Plan de
Desarrollo
Plan de Integracin
y Prueba
Concepto de
Operacin
Simulaciones y modelos
Requeri-
mientos de
SW
Validacin de
Requerimientos
Diseo
V &V
Servicio
Prueba de
Aceptacin
Prueba de
Integracin
Prueba de
Unidades
Codificacin
Diseo
Detallado
Diseo
del
Producto
Modelos de procesos hbridos
Modelo en Espiral - Fases
Planificacin
Comunicacin con el cliente
Determinar los objetivos
Determinar las alternativas de desarrollo
Analizar las restricciones de cada alternativa
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Modelos de procesos hbridos
Modelo en Espiral - Fases
Ingeniera
Desarrollo del producto
En cada iteracin el proyecto se va completando
Evaluacin del cliente
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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
Modelos de procesos hbridos
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 en evaluacin de riesgos
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
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.
Modelos de procesos hbridos
Modelo en Espiral
Cundo 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
/
Ingeniera del Software I 2011/2012
Proyectos dinmicos
Proyectos innovadores y ambiciosos
Modelos de procesos hbridos
Modelo Incremental
Es un tipo de modelo evolutivo es iterativo: permite a los
ingenieros desarrollar versiones cada vez ms completas
Combina elementos del modelo en cascada (aplicados
repetidamente) con la filosofa interactiva de la construccin de
prototipos
Cada secuencia lineal produce un incremento las entregas de
www.kybele.etsii.urjc.es
/
Ingeniera 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 estn disponibles
hasta cierto tiempo dentro del proceso de desarrollo Se adapta
a entornos de alta incertidumbre
Modelos de procesos hbridos
Modelo Incremental
El diseo e implementacin 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
/
Ingeniera del Software I 2011/2012
Las funcionalidades se agrupan por grado de importancia.
Los servicios de prioridad ms alta son los que se entregan antes al
cliente.
Una vez se han identificado los incrementos, se desarrollan con el
modelo ms adecuado. Dependiendo de cmo estn de bien
definidos sus requisitos funcionales se va a utilizar un modelo en
cascada o un modelo evolutivo.
Modelos de procesos hbridos
Modelo Incremental
Ventajas:
El hecho de que el primer incremento recoja los
requisitos ms importantes y crticos hace que el
cliente obtenga un producto ms o menos til en las
primeras iteraciones.
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
primeras iteraciones.
Existe bajo riesgo de fallar por la participacin
continua del usuario.
Desventajas:
Conviene que los incrementos no sean muy grandes.
Es difcil obtener incrementos equilibrados.
Modelos de procesos
Otros
DRA (Desarrollo Rpido de Aplicaciones)
Proceso Unificado
Espiral WINWIN
Desarrollo concurrente
Tcnicas de 4 generacin
www.kybele.etsii.urjc.es
/
Ingeniera del Software I 2011/2012
Tcnicas de 4 generacin
Modelos para Desarrollo OO:
Modelo de Agrupamiento
Modelo fuente
Modelo remolino
Modelo Pinball, etc.

Você também pode gostar