05 Proceso Unificado Rational

69
El Proceso Unificado de Desarrollo Pablo Gervás F. Informática, UCM, noviembre 2007 Sobre trabajo de Jacobson et al, Krutchen, Eriksson & Penker

Transcript of 05 Proceso Unificado Rational

Page 1: 05 Proceso Unificado Rational

El Proceso Unificado de Desarrollo

Pablo Gervás

F. Informática, UCM, noviembre 2007

Sobre trabajo de Jacobson et al, Krutchen, Eriksson & Penker

Page 2: 05 Proceso Unificado Rational

Diagrama del PUR

Elaboration Construction TransitionInception

Phases

Requirements Capture

Analysis & Design

ImplementationTest

ManagementEnvironmentDeployment

Process Components

Supporting Components

Iterations

preliminaryiteration(s)

iter.#1

iter.#2

iter.#n

iter.#n+1

iter.#n+2

iter.#m

iter.#m+1

Organizationalong content

Organization along time

Page 3: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 4: 05 Proceso Unificado Rational

Un metodología de desarrollo

• El conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema software

• Está basado en componentes

• Utiliza el Lenguaje Unificado de Modelado (UML).

Page 5: 05 Proceso Unificado Rational

Tres frases clave

• dirigido por casos de uso• centrado en la arquitectura• iterativo e incremental

Page 6: 05 Proceso Unificado Rational

Casos de uso

• Un caso de uso es un fragmento de funcionalidad del sistema que proporciona al usuario un resultado importante. (requisitos funcionales)

• Todos los casos de uso constituyen el modelo de casos de uso.

Page 7: 05 Proceso Unificado Rational

Arquitectura • La arquitectura es una vista del

diseño completo con las características más importantes resaltadas, dejando los detalles de lado.

1. crear esquema de la arquitectura2. trabajar con un conjunto de casos de uso,

se reparte en subsistemas, clases, y componentes

3. al madurar los casos de uso se desarrolla más la arquitectura

4. esto lleva a madurar más casos de uso5. se continua hasta que la arquitectura es

estable

Page 8: 05 Proceso Unificado Rational

Iterativo e incremental

• Se divide todo el trabajo en mini-proyectos.

• Cada mini-proyecto es una iteración (flujo de trabajo) que resulta en un incremento (crece el producto).

• Cada iteración tiene una serie de flujos de trabajo: requisitos, análisis, diseño, implementación y prueba

Page 9: 05 Proceso Unificado Rational

Iteración

• Esfuerzo de trabajo en un proyecto que recorre varias etapas de desarrollo (no necesariamente todas), y al final del cual se ha incrementado el material disponible sobre el sistema

Page 10: 05 Proceso Unificado Rational

Incremento

• Un avance significativo en el grado de especificación, diseño, implementación, o prueba del sistema que tenga lugar durante una iteración

Page 11: 05 Proceso Unificado Rational

Vida de un sistema

• La vida de un sistema es una serie de ciclos: nacimiento + ciclos intermedios + muerte

• Cada ciclo tiene varias fases.• Fase: intervalo de tiempo entre dos hitos

importantes del proceso, cuando se cumplen un conjunto de objetivos bien definidos, se completan los artefactos y se toman las decisiones sobre si pasar a la siguiente fase

Page 12: 05 Proceso Unificado Rational

Desarrollo de un ciclo

Elaboration Construction TransitionInception

Phases

Requirements Capture

Analysis & Design

ImplementationTest

ManagementEnvironmentDeployment

Process Components

Supporting Components

Iterations

preliminaryiteration(s)

iter.#1

iter.#2

iter.#n

iter.#n+1

iter.#n+2

iter.#m

iter.#m+1

Organizationalong content

Organization along time

Page 13: 05 Proceso Unificado Rational

Planificación

• Fases de un ciclo– inicio – elaboración– construcción – transición

• Ejemplos de iteraciones

Page 14: 05 Proceso Unificado Rational

Fase de inicio

• se especifica la visión del proyecto• la idea inicial para el desarrollo se

lleva al punto de estar (al menos internamente) suficientemente bien fundamentada para garantizar la entrada en la fase de elaboración

Page 15: 05 Proceso Unificado Rational

Fase de elaboración

• se definen la visión del producto y su arquitectura

• se expresan con claridad los requisitos del sistema, se establecen las prioridades entre ellos, y son utilizados para crear una sólida base arquitectónica

• se planifican las actividades y los recursos necesarios

Page 16: 05 Proceso Unificado Rational

Fase de construcción

• se construye el producto mediante una serie de iteraciones incrementales

• se lleva el software desde una base arquitectónica ejecutable hasta su disponibilidad para la comunidad de usuarios

Page 17: 05 Proceso Unificado Rational

Fase de transición

• el software es puesto en manos de la comunidad de usuarios

• manufactura• entrega• formación...

Page 18: 05 Proceso Unificado Rational

Fases de un ciclo

Elaboration Construction TransitionInception

Phases

Requirements Capture

Analysis & Design

ImplementationTest

ManagementEnvironmentDeployment

Process Components

Supporting Components

Iterations

preliminaryiteration(s)

iter.#1

iter.#2

iter.#n

iter.#n+1

iter.#n+2

iter.#m

iter.#m+1

Organizationalong content

Organization along time

Page 19: 05 Proceso Unificado Rational

Ciclo de un sistema

• Cuando se han recorrido las cuatro fases, se dice que el sistema ha sufrido un ciclo.

• Cada ciclo produce una versión del sistema.

• Cada versión es un producto preparado para su entrega.

Page 20: 05 Proceso Unificado Rational

Contenido de una entrega– código fuente– manuales– otros productos asociados– requisitos– casos de uso– especificaciones no funcionales– casos de prueba– modelo de la arquitectura– modelo visual (UML)

Page 21: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 22: 05 Proceso Unificado Rational

Planificar un proyecto iterativo

• cuántas iteraciones

• cómo de largas

• cómo determinar los contenidos y los objetivos de una iteración

• cómo seguir el progreso de una iteración

Page 23: 05 Proceso Unificado Rational

Gestión de un proyecto

• asignar tareas y responsabilidades a un equipo de gente a lo largo del tiempo

• seguimiento del progreso relativo a la planificación y detección de problemas potenciales

Page 24: 05 Proceso Unificado Rational

Dos niveles de plan

• imposible hacer una planificación detallada (asignar a cada persona una tarea para cada día durante los próximos dos o tres años)

• Para procesos iterativos se recomienda basar el desarrollo en dos tipos de planes:– un plan a grandes rasgos (plan de fase)– varios planes detallados (plan de iteración)

Page 25: 05 Proceso Unificado Rational

Plan de faseSolo hay uno por cada proyecto:

• fechas de los hitos principales1. objetivo del ciclo (final de la fase de inicio, proyecto bien

delimitado y financiado)

2. arquitectura del ciclo (final de la fase de elaboración, arquitectura completa)

3. capacidad operativa inicial (final de la fase de construcción, primera versión beta)

4. entrega del producto (final de la fase de transición y del ciclo)

• perfil de personal (qué recursos harán falta a lo largo del tiempo)

• fechas de los hitos secundarios (final de cada iteración y su objetivo principal, si se conoce)

Page 26: 05 Proceso Unificado Rational

Características del plan de fase

• Este plan se genera al principio de la fase de inicio, y se actualiza tanto como sea necesario.

• Basta con dos o tres páginas.

• Se refiere a la documentación de proyecto para definir el alcance del proyecto y las premisas del proyecto.

Page 27: 05 Proceso Unificado Rational

Plan de una iteración

• Es un plan detallado.

• Hay uno sólo por cada iteración.

• Un proyecto suele tener dos planes de iteración activos en cada momento: – El plan de la iteración actual (se utiliza en el

seguimiento del trabajo de la iteración)– El plan de la iteración siguiente (se genera

hacia el final de la iteración actual y está disponible al terminarla)

Page 28: 05 Proceso Unificado Rational

Características del plan de iteración

• Se genera utilizando técnicas y herramientas tradicionales de planificación (definir tareas y asignar a equipos e individuos)

• Contiene fechas importantes (construcciones principales, llegada de componentes de otras organizaciones, y revisiones principales).

• Una ventana que se desplaza por el plan principal (de fase), amplificando la imagen del tramo que recorre.

Page 29: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 30: 05 Proceso Unificado Rational

Construir un plan de fase

• Dos cuestiones principales:– cúanto esfuerzo supone (cuánto voy a hacer)– cuándo tiene que estar (fecha final de entrega)

• De ahí se planifica hacia atrás.

Page 31: 05 Proceso Unificado Rational

Pesos relativos de las fases

Tiempo EsfuerzoInicio 10% 5%Elaboración 30% 20%Construcción 50% 65%Transición 10% 10%

Page 32: 05 Proceso Unificado Rational

alarga la fase de transición

si tienes despliegue complicado, como reemplazar el sistema antiguo sin interrumpir el servicio, o consegur una certificación (insturmentación médica, nuclear, aviación, telefonía pública)

acorta la fase de construcción y alarga la de transición

si tiene que llegar al mercado rápido (llegas tarde o estás creando mercado), y planeas terminar el producto poco a poco

acorta las fases de inicio y elaboración

si es la segunda generación de algo ya hecho y no vas a cambiar mucho la arquitectura

alarga la fase de elaboración

si no tienes arquitectura, o si utilizas tecnología nueva para tí, o si tienes muchas restricciones de rendimiento, muchos riesgos técnicos, y mucho personal nuevo

alarga la fase de iniciosi necesitas mucho tiempo (delimitar el proyecto, encontrar financiación, estudios de mercado, o para prototipo inicial

Page 33: 05 Proceso Unificado Rational

Iteración

• Duración ideal de una iteración: de dos a seis semanas.

•  La rapidez de iteración depende del tamaño de la organización.

Page 34: 05 Proceso Unificado Rational

Duración relativa de iteración• cinco personas pueden planear el lunes por la

mañana, comer todos los días juntos para hacer el seguimiento, reasignar tareas, empezar una construcción el jueves, y terminar la iteración el viernes

• veinte personas necesitan más tiempo para organizarse, una iteración serán entre tres y cuatro semanas

• cuarenta personas, hay niveles intermedios de jerarquía, hace falta más documentación formal y más protocolos, una iteración razonable serían tres meses

Page 35: 05 Proceso Unificado Rational

Relación entre variables

Lineas de código personas duración 5.000 4 2 semanas 20.000 10 1 mes 100.000 40 3 meses1.000.000 150 8 meses

Page 36: 05 Proceso Unificado Rational

Cuántas iteraciones: fase de inicio• no hay iteración real (no se produce software)• En algunos casos se puede tener una iteración

para:– construir un prototipo para convencer (a tí mismo o al

que pague) de que la idea es buena

– construir un prototipo para mitigar un riesgo importante (nueva tecnología o nuevo algoritmo)

– acostumbrar a la organización a usar las herramientas

0 a 1

Page 37: 05 Proceso Unificado Rational

Cuántas iteraciones: fase de elaboración

• por lo menos una.• Si no tienes arquitectura de entrada y tienes que

ajustar muchos factores nuevos - nueva tecnología, nueva plataforma, nueva gente, nuevo lenguaje de programación - por lo menos dos o tres iteraciones.(no se pueden tratar todos los riesgos a la vez, hace falta enseñar algo al cliente para saber qué quiere.... IKIWISI effect - I Know It When I See It -)

1 a 3

Page 38: 05 Proceso Unificado Rational

Cuántas iteraciones: fase de construcción

• por lo menos una• dos para que salga mejor, • tres o más si puedes con la sobrecarga

1 a 3

Page 39: 05 Proceso Unificado Rational

Cuántas iteraciones: fase de transición

• por lo menos una• los defectos encontrados suelen obligar a hacer

por lo menos otra

1 a 2

Page 40: 05 Proceso Unificado Rational

Tres niveles (ciclo completo)

(Iteraciones) Inicio Elaboración Construcción Transiciónbajo 3 0 1 1 1medio 6 1 2 2 1alto 9 1 3 3 2

Proyectos normales: 6 más menos 3

Page 41: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 42: 05 Proceso Unificado Rational

Ejemplo

 Un proyecto de dos años

• Fase inicio 2,5 meses

• Fase elaboración 7 meses

• Fase construcción 12 meses

• Fase transición 2,5 meses

Page 43: 05 Proceso Unificado Rational

Fase de inicio: artefactos

• Documento de visión del sistema: visión general de los requisitos principales, las características clave y las restricciones más importantes

• La investigación para el modelo de casos de uso (casos de uso y actores identificables a estas alturas)

• Glosario inicial del proyecto• Caso de negocio inicial (contexto de negocio, criterios

de éxito, predicción financiera)• Valoración inicial de riesgos• Un plan de proyecto (fases e iteraciones)

Page 44: 05 Proceso Unificado Rational

Fase de inicio: evaluación

• todos de acuerdo en alcance, coste, y planificación temporal

• con los casos de uso principales se entiende lo que va a hacer el sistema

• las estimaciones de coste, fechas, prioridades, riesgos y proceso de desarrollo

• profundidad y amplitud del prototipo de arquitectura

Page 45: 05 Proceso Unificado Rational

Fase de elaboración: objetivos

• definir, validar y generar linea base (una entrega validada del producto bajo control de configuración, que sirva como punto de partida y referencia) de la arquitectura tan rápido como sea posible

• lo mismo para la visión

• demostrar que lo uno va a poder soportar lo otro en coste y tiempo razonables

Page 46: 05 Proceso Unificado Rational

Fase de elaboración: artefactos• modelo de casos de uso (80%)

• requisitos adicionales

• descripción de la arquitectura

• prototipo arquitectónico ejecutable

• lista de riesgos revisada

• caso de negocio revisado

• plan de desarrollo para todo el proyecto (plan de proyecto que muestre iteraciones y criterios de evaluación para cada iteración)

• un caso de desarrollo que especifique el proceso que se va a utilizar

• un manual de usuario preliminar (optativo)

Page 47: 05 Proceso Unificado Rational

Fase de elaboración: evaluación• la visión es estable• la arquitectura es estable• la versión ejecutable demuestra que los riesgos

principales se han tratado y resuelto• el plan de la fase de construcción es

suficientemente detallado y preciso • se han basado las estimaciones en bases creibles• todos están de acuerdo en que la visión se puede

hacer con esa arquitectura de acuerdo con ese plan• el gasto hasta ahora es aceptable relativo al gasto

planeado

Page 48: 05 Proceso Unificado Rational

Fase de construcción: objetivos

• optimizar recursos

• conseguir calidad y rápidamente

• versiones útiles (alpha, beta...)

Page 49: 05 Proceso Unificado Rational

Fase de construcción: artefactos

• el producto integrado para las plataformas adecuadas

• manuales de usuario

• descripción de la presente versión

Page 50: 05 Proceso Unificado Rational

Fase de construcción: evaluación

• el producto está maduro y estable para que lo prueben los usuarios

• todos de acuerdo en pasarselo a los usuarios

• el gasto hasta ahora es aceptable relativo al gasto planeado

Page 51: 05 Proceso Unificado Rational

Fase de transición

• pruebas beta

• operación paralela con sistema anterior

• conversión de bases de datos

• formación de usuarios y administradores

• transferencia del producto a equipos de marketing, ventas...

Page 52: 05 Proceso Unificado Rational

Fase de transición: evaluación

• el usuario está satisfecho

• el gasto hasta ahora es aceptable relativo al gasto planeado

Page 53: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 54: 05 Proceso Unificado Rational

Construir un plan de iteración

• Partir de la longitud y los recursos asignados a la iteración. Evitar objetivos ambiciosos que luego no baste con una iteración.

• Se puede utilizar una herramienta de planificación como Microsoft Project (asignación de tareas y dependencias).

Page 55: 05 Proceso Unificado Rational

Pasos a seguir1. definir criterios objetivos para saber si ha tenido

éxito

2. identificar los artefactos concretos y medibles que habrá que desarrollar y las actividades necesarias para conseguirlos

3. partiendo de una división de trabajo de iteración típica, ajustarla a lo que hay que hacer

4. utilizar estimaciones para asignar duración y esfuerzo a cada actividad (ateniendose al presupuesto)

Page 56: 05 Proceso Unificado Rational

Qué asignar a una iteración (elaboración)

Tres motivaciones principales:

• tratar los riesgos importantes

• la arquitectura propuesta cubre todos los aspectos

• hay que cubrir las funcionalidades importantes - aunque no tengan riesgos

Page 57: 05 Proceso Unificado Rational

Ejemplos• Riesgos

– riesgo de integración (base de datos con sistema operativo): incluir escenario con interacción con la base de datos, aunque sea modesto

– riesgo de rendimiento (demasiado tiempo para calcular trayectoria): incluir escenario en que se calcule la trayectoria , por lo menos para el caso más frecuente

• Para la cobertura, hacia el final de la fase de elaboración, incluir escenarios que haga falta desarrollar aunque no sean críticos ni arriesgados

• Para la cuestión crítica, asegurate de incluir los servicios principales.

Page 58: 05 Proceso Unificado Rational

Detallar el trabajo de la iteración

• Establecido el objetivo, dar detalles de las tareas.

• Seleccionar casos de uso

• Qué clases hay que retocar

• Qué subsistemas afecta o genera

• Qué interfaces hay que modificar

• Qué documentos hay que actualizar

Page 59: 05 Proceso Unificado Rational

Ejemplos de objetivo (iteración de elaboración)

1. crear el registro de un usuario en la estación cliente. el registro se debe almacenar en la base de datos del servidor, incluyendo el diálogo con el usuario pero no todos los campos, supon que no hay errores (función crítica y riesgo de integración)

2. asegurarse de que se pueden crear al menos 20.000 usuarios y que acceder a un usuario no tarda más de 200 milisegundos (trata cuestiones de rendimiento)

3. deshacer un cambio de dirección del usuario (obliga a diseñar la función genérica 'deshacer', puede requerir negociar con el cliente el alcance a implementar)

4. completar todos los casos de uso relativos a la gestión de la cadena de proveedores (el objetivo es la captura de requisitos)

Page 60: 05 Proceso Unificado Rational

Qué asignar a una iteración (construcción)

• Completar las funcionalidades críticas pronto para que sean probadas en varias iteraciones.

• Hacia el final, asegurarse de que se han tratado todos los casos de uso.

Page 61: 05 Proceso Unificado Rational

Ejemplos de objetivo (iteración de construcción)

1. implementar todas las variantes de redirección de llamada, incluidas las erróneas (conjunto de operaciones relacionadas, una se habrá implementado durante la elaboración, y sirve de prototipo)

2. conseguir 5.000 transacciones a la hora sobre dos computadores (mejorar el rendimiento frente a la iteración anterior)

3. integrar nueva versión del sistema de información geográfica (pequeña modificación de la arquitectura, sugerida por un error descubierto)

4. reparar todos los defectos de nivel 1 y 2 (errores descubiertos en iteración anterior)

Page 62: 05 Proceso Unificado Rational

Qué asignar a una iteración (transición)

• Qué errores se han reparado

• Qué mejoras de rendimiento o usabilidad se han incluido.

• Funcionalidades que se hubieran postpuesto para poder entregar a tiempo se pueden terminar.

Page 63: 05 Proceso Unificado Rational

Ejemplos de objetivo (iteración de transición)

1. arreglar todos los problemas de gravedad 1 descubiertos en la beta del cliente

2. conseguir 2000 transacciones por minuto

3. reducir el número de ventanas distintas en un 30%

4. generar versiones en alemán y en japonés

Page 64: 05 Proceso Unificado Rational

Resumen

• Una metodología de desarrollo

• Planificación con el proceso unificado– Plan de fase– Ejemplo de plan de fase– Plan de iteración– Ejemplos de plan de iteración

Page 65: 05 Proceso Unificado Rational

Ejemplos de iteraciones típicas

• Fase de inicio:Definir la visión del producto y el caso de negocio

• Fase de elaboración (al principio): Construyendo un prototipo arquitectónico

• Fase de construcción (al final): Implementando el sistema

Page 66: 05 Proceso Unificado Rational

Fase de inicio

—visión del sistema y alcance del sistema (PM)— esbozar y clarificar la funcionalidad del sistema (R)—viabilidad del proyecto y plan de proyecto (G)— refinar el plan de proyecto (G)

Page 67: 05 Proceso Unificado Rational

Fase de elaboración— plan de la iteración, riesgos, y objetivos (PM)— casos de uso que conducen la arquitectura (R)— reconsiderar casos de uso y los riesgos (G)— prototipo de interfaz de usuario (R)— división inicial en subsistemas, casos de uso en detalle (AD)— decidir el diseño, definir interfaces formales (AD)— concurrencia y distribución de la arquitectura (AD)— se revisa la arquitectura (AD)— considerar el empaquetamiento físico de la arquitectura (I)— planificar integración (I)— planificar las pruebas de integración y sistema (P)— implementar las clases e integrar (I)— integrar las partes implementadas, probar cada construcción (I)— valorar la arquitectura ejecutable (P)— evaluar la iteración en sí (G)

Page 68: 05 Proceso Unificado Rational

Fase de construcción— retoca el plan de iteración (G)— planificar la implementación/integración de sistema (I)— plan de pruebas de sistema (P)— refinar diseño de los casos de uso (AD)— plan de pruebas de subsistema y sistema (P)— desarrollar código y probar unidades (I)— planificar e implementar pruebas de unidad (I)— probar unidad dentro de un subsistema (I)— integrar un subsistema (I)— probar un subsistema (I)— liberar el subsistema (I)— integrar el sistema (I)— probar la integración (P)— probar el sistema (P)— evaluar la iteración en sí (G)

Page 69: 05 Proceso Unificado Rational

Fuentes recomendadas

– Ivar Jacobson, Grady Booch, James Rumbaugh "El proceso unificado de desarrollo", Addison Wesley, 1999.

– Philippe Kruchten "The Rational Unified Process. An Introduction. Second edition", Addison Wesely, 2000

– Terry Quatrani "Visual Modelling with Rational Rose 2000 and UML", Addison Wesley, 2000.