Agenda• Introducción.• El Proceso Unificado de desarrollo
de Proyectos de Software (RUP).• El Proceso Unificado Empresarial
(EUP)
¿Qué es un proceso de desarrollo de software?
• Es un marco de trabajo que permite la programación de las tareas necesarias para construir un software de alta calidad.
Proceso de ingeniería de
softwareRequerimientos Software
¿Cómo debe administrarse un proyecto de Ing. Software?• A menudo la
administración de proyectos se concentra en el cumplimiento de un cronograma de actividades….
Start1/97
CCV3/97
Build
#1
Build
#2
5/97
AB5/97
COI12/97
2/984/97
¿Qué características debe tener el proceso?Marco común de trabajo del proceso
Actividades de protección y administración
Actividades del marco del trabajoConjunto de tareas
Tareas
Hitos, Entregas
Puntos SQA
Estrategias• Para resolver los problemas reales de las
organizaciones, los responsables de los sistemas, deben incorporar una estrategia de desarrollo que integre las estrategias de la organización, los procesos, los métodos y las herramientas necesarias para la construcción del software.
• Importante … El plan estratégico de sistemas no puede estar desalineado del plan estratégico de la organización.
¿Que es el RUP?
• Es un proceso de ingeniería de software.• Se describe entre otras cosas como:
– Centrado en una arquitectura.– Guiado por casos de uso (requerimientos).– Iterativo e incremental.– Enfrenta riesgos.– Controla cambios.– Soportado por varias herramientas.
….¿Que es el RUP?• Fue concebido por los tres “amigos”:
Booch, Rumbaugh y Jacobson.• Provee a través de un entorno WEB:
Lineamientos, plantillas, workflows y herramientas, que guían una implementación efectiva de lasMejores Prácticas de la industria del software.
• Se define como una “Base de Conocimiento”
Estructura del Proceso Unificado
Adm. del proyectoMedio ambiente
Modelo del negocio
ImplementaciónPrueba
Análisis y diseño
Iter.#1
FasesDisciplinas del Proceso
Iteraciones
Disciplinas de Soporte
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Despliegue
Adm. configuración y cambios
Requerimientos
Elaboración TransiciónConcepción Construcción
Iteracion(es)Preliminar(es)
Estructura del proceso unificado• Dimensiones
– El eje horizontal representa el tiempo y muestra el ciclo de vida del proceso tal y como se desenvuelve.
• Muestra el aspecto dinámico (iteraciones).– El eje vertical representa los flujos de trabajo
(workflows) nucleares, que agrupan actividades por su naturaleza o disciplina.
• Representa el aspecto estático
Estructura Estática
¿Cómo ocurre el proceso y sus detalles?
¿Qué se produce u obtiene?
¿Quién lo hace o se responsabiliza?
¿Cuándo ocurre el proceso?Fases e iteraciones
Flujos del ProcesoActividades, pasos
ArtefactosModelos, reportes y/o
documentos
Trabajadores
Estructura Estática
Artefacto
Es una pieza de información producida, modificada o usada por un proceso
Trabajador
Es un rol asumido por un empleado Es una unidad
de trabajoActividad
Descripción de un caso de Uso
Analista
Paquete de Caso de Uso
Caso de Uso
Es responsable por
Workflow• Es una secuencia de actividades que
produce un resultado de valor observable. – RUP usa un diagrama de actividades para
representar el workflow.• El RUP organiza el conjunto de
actividades usando:– Workflows del proceso– Workflows de iteración
Workflows del proceso• Los workflows del proceso agrupan las
actividades propias de las disciplinas de ingeniería de software.
• Hay seis workflows para las disciplinas del proceso:– Modelo del negocio– Requerimientos – Análisis y Diseño – Implementación – Prueba– Distribución
• Y tres para soporte– Configuración y administración de Cambios – Administración del proyecto – Definición del ambiente
Modelos y WorkflowsCada workflow describe cómo crear y mantener un “modelo” en particular
DesignModel
ImplementationModel
TestModel
realized by
implemented by
RequirementsWorkflow
Analysis /DesignWorkflow
ImplementationWorkflow
Test Workflow
Use-CaseModel
BusinessModeling
Business Model
verified by
Estructura dinámica
Tiempo
Concepción Elaboración Construcción Transición
Construye el producto, desarrollando a detalle el diseño y produciendo el código
Construcción
Planifica el proyecto, especifica las características, focaliza los detalles del análisis del dominio del problema y define los cimientos de la arquitectura
Elaboración
Define el alcance del proyecto y el desarrollo de los casos del negocio
Concepción
Implementa el producto a su comunidad de usuarios
Transición
Principales hitos de control
Tiempo
Visión Soportebase de la
Arquitectura
CapacidadInicial
Versióndel
Producto
Concepción Elaboración Construcción Transición
Fase de Concepción• Criterios de evaluación:
– Que los “Accionistas” aprueben la definición del proyecto y estimación de costos y plazos
– Que exista entendimiento de los requerimientos para los principales casos de uso
– Que el proyecto tenga credibilidad en las estimaciones, prioridades, riesgos, procesos de desarrollo, etc.
– La aprobación del prototipo de la arquitectura (opcional)
– Que sea viable; a través de un estudio de los costos reales vs. costos presupuestados de proyectos anteriores o similares.
Fase de Elaboración• Criterios de evaluación:
– La visión del producto es estable.– El entendimiento de los requerimientos (modelo
casos de uso completo >= 80% y especificaciones complementarias completas)
– La arquitectura básica es estable.– Los principales riesgos técnicos están controlados.– Existe un plan de desarrollo iterativo para la fase
de construcción.– Existe un acuerdo con los “accionistas” sobre que
plan y que arquitectura permitirá cumplir con la visión del proyecto.
– Se están cumpliendo los costos reales versus los planificados.
Fase de Construcción • Criterios de evaluación
– Disponibilidad del producto completo a un nivel de calidad adecuado.
– Plan de liberación completo:• Empaquetamiento• Precio• Instalación y Distribución• Soporte• Capacitación• Producción• Estrategia de Transición
– Documentación y manuales disponibles y al alcance de los usuarios.
Fase de Transición
• Criterios de evaluación:– Todos los productos y artefactos deben estar
adecuadamente actualizados.– Logro de la aceptación de clientes/usuarios
del producto liberado.– Análisis post-mortem del rendimiento de la
organización; beneficios adicionales, evolución potencial.
time
Ciclos de desarrollo• Un ciclo de desarrollo incluye una
ejecución completa de las cuatro fases y produce una generación de software
Inception Elaboration Construction Transition
Inception Elaboration Construction Transition
Inception Elab. . .
Ciclos de desarrollo• La mayoría de los sistemas requiere
múltiples ciclos.• Un ciclo de desarrollo inicial genera la
liberación inicial.• Ciclos posteriores sirven para mantener o
mejorar el sistema.• Los ciclos pueden ser secuenciales o
traslaparse.
Ciclo de Vida - Iteración
Una iteración es una secuencia de actividades con un plan establecido y criterios de evaluación, cuyo resultado es una versión o release.
Iteración ... Iteración Iteración ... Iteración ...
Release Release Release Release Release Release Release Release
Iteración ...
Concepción Elaboración Construcción Transición
Estrategias para el desarrollo iterativo¿Qué es un release?• Un release o versión del producto puede ser
interno o externo. Un release interno es usado únicamente por la organización o el equipo de desarrollo o a manera de demostración para los usuarios o consumidores.
• Un release externo (o entregable) es entregado a los usuarios finales.
• Un release no es necesariamente un producto terminado.
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida “Incremental”• La estrategia incremental determina
las necesidades de los usuarios, define los requerimientos del sistema y como consecuencia realiza el resto del desarrollo en una secuencia de construcciones.
Estrategias para el desarrollo iterativo
Conceptual prototype
Architectural baseline
ReleaseDelivery
#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter. No.
Prel.Iteration
Elabo-ration Construction TransitionInception
Incremental (1)
Estrategias para el desarrollo iterativo - Patrones
Ciclo de vida Incremental: Características• En la concepción la iteración es corta y
establece el alcance, la visión y los casos de uso del negocio.
• En la elaboración normalmente existe una única iteración donde se definen los requerimientos y se establece la arquitectura.
• En la construcción hay varias iteraciones donde se realizan los casos de uso y la arquitectura se completa.
• En la transición existen varias iteraciones para migrar el producto a la comunidad de usuarios.
Estrategias para el desarrollo iterativo - Patrones
Ciclo de Vida Incremental:• Apropiado para cuando....
– El dominio del problema es familiar. – Los Riesgos se conocen bien. – El equipo de proyecto tiene
experiencia.
Estrategias para el desarrollo iterativo - Patrones
Ciclo de Vida “Evolutivo”• Esta estrategia difiere de la
incremental en que no se tiene el total conocimiento de lo que el usuario necesita y en que no todos los requerimientos se conocen desde el inicio sino mas bien, se refinan en sucesivas iteraciones.
Estrategias para el desarrollo iterativo
Conceptual prototype
Architectural baseline
ReleaseDelivery
#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter.No.
Prel.Iteration
Elaboration
Cons-truc-tion TransitionInception
Evolutionary (2)
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida Evolutivo – Características• La concepción tiene una iteración corta y en ella
se establecen: el alcance, la visión y los procesos de negocio.
• La elaboración tiene varias iteraciones, durante las cuales los requerimientos son refinados.
• La construcción tiene una única iteración en donde los casos de uso se realizan y la arquitectura se va cimentando poco a poco.
• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.
Estrategias para el desarrollo iterativo - Patrones
Ciclo de Vida Evolutivo• Es apropiado para cuando:
– El dominio del problema es nuevo o poco familiar.
– El equipo es inexperto.
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida de “Entregas Incrementales”• Esta estrategia es requerida cuando existen
presiones de entrega-a-tiempo, donde la entrega rápida de ciertas características clave puede reportar beneficios significativos al negocio. En términos de las fases; la transición tiene el mayor número de iteraciones y debe comenzar mas temprano.
• Esta estrategia requiere una arquitectura estable que puede ser difícil de alcanzar en un ciclo de desarrollo inicial de un sistema “sin precedentes”.
Estrategias para el desarrollo iterativo
Conceptual prototype
Architectural baseline
ReleaseDelivery
#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter.No.
Prel.Iteration
Elabo-ration
Cons-truc-tion TransitionInception
Incremental delivery (3)
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida Entregas Incrementales -
Características• La concepción tiene una iteración corta y en ella
se establecen: el alcance, la visión y los procesos de negocio.
• La elaboración tiene una única iteración, donde se establece la línea base de una arquitectura estable.
• La construcción también tiene una iteración, durante la cual los casos de uso son realizados y la arquitectura se va edificando.
• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.
Estrategias para el desarrollo iterativo - Patrones
Ciclo de Vida Entregas Incrementales• Es apropiado cuando:
– El dominio del problema es familiar• La arquitectura y los requerimientos se pueden estabilizar
tempranamente en el ciclo de desarrollo.• Existe un bajo grado de novedad en el problema.
– El equipo es experimentado.– Las versiones de la funcionalidad del producto
tienen un alto valor para el cliente.
Estrategias para el desarrollo iterativo - Patrones
Ciclo de Vida del “Gran Diseño”– “La tradicional cascada se puede ver en
un caso especial en donde solo se requiere de una gran iteración en la fase de construcción”.
– En la práctica es muy difícil suprimir iteraciones en la fase de transición.
Estrategias para el desarrollo iterativo
Conceptual prototype
Architectural baseline
ReleaseDelivery
#1 #2 #3 . . Iter.No.
Elabo-ration Construction TransitionInception
“Grand design” (4)
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida del “Gran Diseño” -
Características: • La concepción puede tener una iteración
corta y en ella se establecen: el alcance, la visión y los procesos de negocio.
• La Construcción tiene una larga y única iteración, durante la cual los casos de uso son realizados y la arquitectura se va edificando
• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.
Estrategias para el desarrollo iterativo - PatronesCiclo de Vida del “Gran Diseño”• Es apropiada cuando
– Solamente se está efectuando un pequeño incremento en un producto que ya es estable y tiene una funcionalidad bien definida.
– La nueva funcionalidad a ser adicionada se definido y comprendido bien.
– El equipo tiene experiencia tanto en el dominio del problema como en el producto existente.
Estrategias para el desarrollo iterativo - PatronesEstrategias Híbridas:• En la práctica muy pocos productos siguen una
única estrategia. Con frecuencia se adopta una estrategia híbrida.
• Se recomienda:– Para dominios de problema complejos y desconocidos,
donde se necesita un alto grado de exploración: incrementar el número de iteraciones en la elaboración y su amplitud.
– Para problemas de desarrollo complejos, donde es difícil trasladar el diseño a código: incrementar el número de iteraciones en la construcción y su duración.
– Para entregar software en una serie de versionesincrementales: aumentar el número de iteraciones en la transición y el tiempo de la misma.
Evaluación de Cali-dad de la Iteración N
• Compare costos y plazos reales con los del plan de iteración
• Determine si hay trabajo a rehacer
- Asignelo a futura(s) iteración(es)
• Determine que riesgos han sido reducidos, eliminados o cuales identificados
• Actualice el plan del proyecto
• Prepare el plan próxima iteración
- Use lista de riesgos revisada y seleccione Casos de Uso
Evaluación de Iteración N
Costos y PlazosReales Iteración N
Ciclo de Retroalimentación
• Resultado de Tests
• Densidad de Defectos
• Estabilidad Arquitectura
• Otras métricas
Lista de riesgos revisada
Plan Proy. revisado
• Costo Total• Programac. Gral.• Ámbito
Plan Iteración N+1• Costo• Programación• Contenido
Controlando el ciclo de vida iterativo• La evaluación de la iteración provee el
feedback necesario para controlar el proceso
DesarrolleBusiness
Case
Lider deProyecto
DesarrollePlan
Proy.
Analice lista de Riesgos
AsignePersonal
EvalueIteración
EjecutePlan de
Iteración
DesarrollePlan de
Iteración
IdentiqueRiesgos
La Planificación es incremental
Actual
Plan de Iteración
Fases e hitos principales• Qué y Cuándo
Plan de Proyecto
Iteraciones para cada fase• Número de iteraciones• Objetivos• Duración•Asignación Personal
Planes DetalladosPlan Macro
Próxima
•Tareas•Asignación a personas/equipos•Principales resultados
Workflows de iteración
• Es otra forma de mostrar el proceso, describiéndolo desde la perspectiva de “lo que sucede en una iteración típica”.
• Estas actividades se establecen en un cronograma.
Disciplinas del Proceso
Disciplinas de Soporte
ManagementEnvironment
Business Modeling
ImplementationTest
Analysis & Design
PreliminaryIteration(s)
Iter.#1
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
Workflow de Iteración
Fases
Plan de Proyecto y Plan de Iteración
ct al cture
ct
Plan de Proyecto
Plan de Iteración
P roje
Appr
ov
Arch
iteRe
view
ß1 ß2 P rod
uRele
ase
it.1 it.2 it.3
Design
Revie
w
Build
#1
Build
#2
it.4 it.54/97
Start1/97
LCO3/97
5/97
LCA7/97
IOC12/97
2/984/97
Iteración 3 Iteración 4 Iteración 5
Chequeo depreparación parala iteración
Evaluación dela Iteración
Plan de Iteración
Requerimientos
Análisis & Diseño
Implementación
Test
Prepara Versión
Cada Iteración consiste en una “Mini Cascada”
Plan de Iteración• Definir criterios de evaluación objetivo. • Identificar que artefactos concretos y medibles
serán desarrollados o actualizados y las actividades necesarias para lograrlo.
• Descomponer actividades hasta llegar a sub-actividades con una asignación y responsabilidad clara y una duración controlable.
• Usar estimaciones para asignar duración y esfuerzo de cada actividad.
• Hacer los ajustes necesarios de acuerdo a las restricciones de recursos.
¿Cuántas y de qué largo?• ¿Cuántas iteraciones deben hacerse
en cada proyecto?
Bajo 3 0 1 1 1
Típico 6 1 2 2 1
Alto 9 1 3 3 2
Total I E C T
¿Cuántas y de qué largo?• ¿Cuánto debe durar cada iteración?
– Depende de un número de consideraciones:
• Tamaño del sistema: Mientras mayor el sistema, más larga la duración
• Número de personas: Mientras más gente, más larga la duración
RUP es la armazón de un proceso
No existe un proceso universal • RUP está diseñado para la flexibilidad y la extensión.
» Permite una variedad de estrategias de ciclos de vida.» Selecciona que artefactos producir y cuando. » Define actividades y roles.» Aplica los conceptos de modelamiento (UML)
Debilidades del RUP
• Es tan solo un proceso para el desarrollo. El modelo actual del RUP no incluye el proceso total del software.
• Tampoco tiene un soporte explícito a una infraestructura multi-sistemas. No cubre los aspectos de arquitectura empresarial, perdiendo así la posibilidad del reuso a gran escala dentro de una organización.
¿Qué es el Proceso Unificado Empresarial (EUP)?• Es un proceso que expande el alcance del
RUP para:– Alcanzar las necesidades del mundo real de
organizaciones típicas. – Permitir la gestión de varios proyectos de
software.– Permitir la gestión de los sistemas en producción
que se encuentran en operación y bajo soporte.• Fue propuesto por Scott W. Ambler y otros
colaboradores.– La última versión se publicó en el 2004.
Nuevas fases en el ciclo de vida del EUP• La extensión del RUP propuesta por el
EUP supone tres nuevas fases en el ciclo de vida:– Pre-Concepción– Producción– Retiro
Pre-Concepción• Es una etapa donde se conciben las
actividades empresariales previas al proyecto.
• Incluye las siguientes disciplinas:– Comenzar el modelo de negocios empresarial. – Planificar el portafolio de los proyectos de TIC. – Modelar la arquitectura empresarial.– Identificar los activos reusables.– Asignar el staff del equipo del proyecto.– Definir el proceso de desarrollo de software.
Nuevas fases en el ciclo de vida del EUP
Hito de control: Objetivos para el retiro del producto.
El objetivo de esta etapa es mantener el sistema en ejecución y ayudar a los usuarios a operarlo. Esta fase termina cuando se ha previsto un cambio en la versión del software.
Producción
Su objetivo es remover satisfactoriamente un sistema en producción.
RetiroHito de control: El retiro satisfactorio del producto.
Las mejores prácticas del EUP• Desarrollo iterativo.• Administración de los requerimientos.• Arquitectura probada y adecuada.• Modelamiento.• Verificación continua de la calidad.• Administración del cambio.• Desarrollo cooperativo.• Seguimiento después del desarrollo.• Entrega regular de productos de software.• Administración del riesgo.
Conclusiones• Es necesario un proceso de ingeniería de software
que proporcione el marco adecuado para la creación de modelos que permitan el desarrollo de software de alta calidad.
• El proceso de desarrollo de software debe integrar a los conceptos tradicionales de producción y retiro para completar el ciclo real de vida de un producto.
• El RUP debe acoplarse a las estrategias de la organización referidas a la mejora de procesos de la empresa y al reuso de los recursos existentes.