procesos para la ingenierÍa de software€¦ · modelos de procesos de desarrollo de software...
TRANSCRIPT
Facultad de Estadística e Informática
PROCESOS PARA LA INGENIERÍA DE SOFTWARE
Facultad de Estadística e Informática
Bibliografía Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002, España. Parte 2
Facultad de Estadística e Informática
Clase 7. Agenda
Unidad III.Modelos de procesos de desarrollo de software◦Cascada
◦ Incremental
◦Evolutivo
◦Espiral
◦Prototipos
◦PUDS (Proceso Unificado de Desarrollo de Software)
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Proceso de software
Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software¿Por qué es importante?
Porque da estabilidad, control y organización a una actividad que puede volverse caótica si se descontrola.
Sin embargo, un enfoque moderno de ingeniería de software debe ser “ágil”.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software¿Por qué es importante?
Debe incluir sólo aquellas actividades, controles y productos del trabajo que sean apropiados para el equipo del proyecto y para el producto que se busca obtener.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Proceso de software
Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Cada una de las actividades, acciones y tareas se
encuentra dentro de una estructura o modelo que
define su relación tanto con el proceso como entre sí.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo general de
proceso
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
La estructura general para la ingeniería de software
define cinco actividades estructurales:
comunicación, planeación, modelado,
construcción y despliegue.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Actividades EstructuralesC
OM
UN
ICA
CIÓ
NP
LAN
EAC
IÓN
MO
DEL
AD
O
CO
NST
RU
CC
IÓN
DES
PLI
EGU
E
Actividades Sombrilla
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Los Modelos de proceso describen:
Actividades estructurales.
Acciones de ingeniería de software.
Tareas.
Productos del trabajo.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Los Modelos de proceso
describen:
Aseguramiento de la calidad y
Mecanismos de control del cambio
para cada proyecto.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Cada modelo del proceso también
prescribe un flujo del proceso
(también llamado flujo de trabajo)
(la manera en la que los elementos
del proceso se relacionan entre sí)
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Flujo del proceso de las actividades estructurales
Un flujo del proceso describe la manera en que están organizadas las actividades estructurales y las acciones y tareas que ocurren dentro de cada una con respecto de la secuencia y el tiempo.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Flujo del proceso lineal
Ejecuta cada una de las cinco actividades estructurales en secuencia, comenzando por la comunicación y terminando con el despliegue.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Flujo del proceso iterativo
Repite una o más de las actividades antes de pasar a la siguiente.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Realiza las actividades en forma “circular”. A través de las cinco actividades, cada circuito lleva a una versión más completa del software
Flujo de proceso evolutivo
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Ejecuta una o más actividades en paralelo con otras (por ejemplo, el modelado de un aspecto del software tal vez se ejecute en paralelo con la construcción de otro aspecto del software).
Flujo de proceso paralelo
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
¿Por qué se crearon los Modelos de
Proceso?
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Los modelos de proceso fueron propuestos
originalmente para poner orden en el caos del
desarrollo de software.
Otorgan cierta estructura útil al trabajo de
ingeniería de software y constituyen un mapa
razonablemente eficaz para los equipos de software.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Todos los modelos del proceso del software pueden
incluir las actividades estructurales generales
descritas anteriormente, pero cada una pone distinto
énfasis en ellas y define en forma diferente el flujo de
proceso que invoca cada actividad estructural (así
como acciones y tareas de ingeniería de software).
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de procesos de desarrollo de
software existentes
Facultad de Estadística e Informática
Modelo en cascada
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de softwareModelo en cascada o ciclo de vida clásico
Enfoque sistemático y secuencial.
Comienza con la especificación de los requerimientos por parte del cliente y avanza a través de planeación, modelado, construcción y despliegue, para concluir con el apoyo del software terminado
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
¿Cuándo se usa?
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Los requerimientos para cierto problema se comprenden
bien.
El trabajo desde la comunicación hasta el despliegue fluye
en forma razonablemente lineal.
Adaptaciones o mejoras bien definidas a un sistema ya
existente
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Problemas:
1. Es raro que los proyectos reales sigan el flujo secuencial
propuesto por el modelo. Aunque el modelo lineal acepta
repeticiones, lo hace en forma indirecta. Como resultado,
los cambios generan confusión conforme el equipo del
proyecto avanza.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de softwareModelo en cascada o ciclo de vida clásico
Problemas:
2. Es difícil para el cliente enunciar en forma explícita todos los requerimientos.
El modelo en cascada necesita que se haga y tiene dificultades para aceptar la incertidumbre natural que existe al principio de muchos proyectos.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Problemas:
3. El cliente debe tener paciencia. No se dispondrá de una
versión funcional del(de los) programa(s) hasta que el
proyecto esté muy avanzado. Un error grande sería
desastroso si se detectara hasta revisar el programa en
funcionamiento.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
El trabajo de software es acelerado y está sujeto a una
corriente sin fin de cambios (en las características,
funciones y contenido de información).
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Variante del modelo en cascada “Modelo en V”
Acciones de aseguramiento de la calidad
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelo en cascada o ciclo de vida clásico
Modelo en V
Facultad de Estadística e Informática
Modelo incremental
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
Modelo de proceso diseñado para producir el
software en incrementos.
Requerimientos iniciales del software
razonablemente bien definidos.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
Necesidad imperiosa de dar rápidamente cierta
funcionalidad limitada de software a los usuarios y
aumentarla en las entregas posteriores de software.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
El primer incremento es el producto fundamental.
Se abordan los requerimientos básicos, pero no se
proporcionan muchas características suplementarias
(algunas conocidas y otras no).
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
El cliente usa el producto fundamental (o lo somete
a una evaluación detallada).
Como resultado del uso y/o evaluación se desarrolla
un plan para el incremento que sigue.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
El plan incluye la modificación del producto fundamental
para cumplir mejor las necesidades del cliente, así como la
entrega de características adicionales y más funcionalidad.
Este proceso se repite después de entregar cada
incremento, hasta terminar el producto final.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
En cada incremento se entrega un producto que ya
opera.
Útil en particular cuando no se dispone de personal
para la implementación completa del proyecto en el
plazo establecido por el negocio.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
¿Cuándo se usa?
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso incremental
Necesidad imperiosa de dar rápidamente cierta
funcionalidad limitada de software a los usuarios y
aumentarla en las entregas posteriores de software.
Útil en particular cuando no se dispone de personal para
la implementación completa del proyecto en el plazo
establecido por el negocio.
Facultad de Estadística e Informática
Modelo evolutivo
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Modelo de proceso diseñado explícitamente
para adaptarse a un producto que evoluciona
con el tiempo.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Los sistemas complejos evolucionan
Es frecuente que los requerimientos del negocio y del
producto cambien conforme avanza el desarrollo.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Plazos apretados
Se comprende bien el conjunto de requerimientos o
el producto básico
Los detalles del producto o extensiones del sistema
aún están por definirse.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
oLos modelos evolutivos son iterativos.
Prototipo
Espiral
Facultad de Estadística e Informática
Modelo evolutivo. Prototipo
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
El cliente define un conjunto de objetivos generales.
No identifica los requerimientos detallados para las
funciones y características.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
El desarrollador no está seguro de la eficiencia de
un algoritmo, la adaptabilidad de un sistema
operativo o de la interacción humano-computadora.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
En la construcción, pueden utilizarse fragmentos de programas existentes o aplicar herramientas que permitan generar rápidamente programas que funcionen.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
El modelado se centra en la
representación de aquellos aspectos
del software que serán visibles para los usuarios finales
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
1. Comienza con la comunicación.
Reunión con participantes para definir objetivos, requerimientos, áreas por definir mejor.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
2. Plan rápido, modelado y diseño rápido.Se planea rápidamente una iteración para hacer el prototipo, y se lleva a cabo el modelado (en forma de un “diseño rápido”).
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
3. Construcción y DespliegueEl diseño rápido lleva a la construcción de un prototipo. Éste se entrega y es evaluado por los participantes, que dan retroalimentación para mejorar los requerimientos.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
El ideal es que el prototipo sirva como mecanismo
para identificar los requerimientos del software.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
¿Qué hacer con el prototipo cuando ya sirvió para el
propósito descrito?
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo
Brooks: En la mayoría de proyectos es raro que el primer sistema elaborado sea utilizable.
Muy lento, muy grande, difícil de usar o todo a la vez.
No hay más alternativa que comenzar de nuevo.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo. Problemas
Los participantes ven lo que parece ser una versión
funcional del software, pero no se consideró la calidad, la
facilidad de mantenimiento, por la prisa. Los usuarios
exigen el prototipo como producto funcional.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo. Problemas
Se toman decisiones que inicialmente son las adecuadas
(con el fin de lograr el prototipo rápidamente): Lenguaje
de programación conocido, algoritmo ineficiente. Esta
elección formará parte del sistema final.
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Modelos de proceso evolutivos
Prototipo. Paradigma exitoso si…
Se definen desde el principio las reglas del juego.
El prototipo sirve como el mecanismo para definir los
requerimientos. Después se descartará (al menos en
parte) y se hará la ingeniería del software real con la mirada puesta en la calidad.
Facultad de Estadística e Informática
Ejemplo
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Videojuego
Facultad de Estadística e Informática
Modelos de procesos de desarrollo de software
Videojuego Pac-Man
Desarrollo Modelo en Cascada
Desarrollo Modelo Incremental
(Tiempo de desarrollo, definición de requerimientos, cantidad de personal, producto final)
Facultad de Estadística e Informática
GRACIAS POR SU ATENCIÓN