Está en la página 1de 69

El Proceso Unificado de Desarrollo

Pablo Gervs F. Informtica, UCM, noviembre 2007


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

Diagrama del PUR


Organization along time

Phases Process Components


Requirements Capture Analysis & Design Implementation Test
Inception Elaboration Construction Transition

Organization along content

Supporting Components
Management Environment Deployment
preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. iter. #n+1 #n+2 iter. #m iter. #m+1

Iterations

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Un metodologa 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).

Tres frases clave


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

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.

Arquitectura
La arquitectura es una vista del diseo completo con las caractersticas ms importantes resaltadas, dejando los detalles de lado.
1. crear esquema de la arquitectura 2. trabajar con un conjunto de casos de uso, se reparte en subsistemas, clases, y componentes 3. al madurar los casos de uso se desarrolla ms la arquitectura 4. esto lleva a madurar ms casos de uso 5. se continua hasta que la arquitectura es estable

Iterativo e incremental
Se divide todo el trabajo en mini-proyectos. Cada mini-proyecto es una iteracin (flujo de trabajo) que resulta en un incremento (crece el producto). Cada iteracin tiene una serie de flujos de trabajo: requisitos, anlisis, diseo, implementacin y prueba

Iteracin
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

Incremento
Un avance significativo en el grado de especificacin, diseo, implementacin, o prueba del sistema que tenga lugar durante una iteracin

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

Desarrollo de un ciclo
Organization along time

Phases Process Components


Requirements Capture Analysis & Design Implementation Test
Inception Elaboration Construction Transition

Organization along content

Supporting Components
Management Environment Deployment
preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. iter. #n+1 #n+2 iter. #m iter. #m+1

Iterations

Planificacin
Fases de un ciclo
inicio elaboracin construccin transicin

Ejemplos de iteraciones

Fase de inicio
se especifica la visin 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 elaboracin

Fase de elaboracin
se definen la visin 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 slida base arquitectnica se planifican las actividades y los recursos necesarios

Fase de construccin
se construye el producto mediante una serie de iteraciones incrementales se lleva el software desde una base arquitectnica ejecutable hasta su disponibilidad para la comunidad de usuarios

Fase de transicin
el software es puesto en manos de la comunidad de usuarios manufactura entrega formacin...

Fases de un ciclo
Organization along time

Phases Process Components


Requirements Capture Analysis & Design Implementation Test
Inception Elaboration Construction Transition

Organization along content

Supporting Components
Management Environment Deployment
preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. iter. #n+1 #n+2 iter. #m iter. #m+1

Iterations

Ciclo de un sistema
Cuando se han recorrido las cuatro fases, se dice que el sistema ha sufrido un ciclo. Cada ciclo produce una versin del sistema. Cada versin es un producto preparado para su entrega.

Contenido de una entrega


cdigo fuente manuales otros productos asociados requisitos casos de uso especificaciones no funcionales casos de prueba modelo de la arquitectura modelo visual (UML)

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Planificar un proyecto iterativo


cuntas iteraciones cmo de largas cmo determinar los contenidos y los objetivos de una iteracin cmo seguir el progreso de una iteracin

Gestin de un proyecto
asignar tareas y responsabilidades a un equipo de gente a lo largo del tiempo seguimiento del progreso relativo a la planificacin y deteccin de problemas potenciales

Dos niveles de plan


imposible hacer una planificacin detallada (asignar a cada persona una tarea para cada da durante los prximos dos o tres aos) 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 iteracin)

Plan de fase
Solo hay uno por cada proyecto: fechas de los hitos principales
1. objetivo del ciclo (final de la fase de inicio, proyecto bien delimitado y financiado)

2.
3.

arquitectura del ciclo (final de la fase de elaboracin, arquitectura completa)


capacidad operativa inicial (final de la fase de construccin, primera versin beta) entrega del producto (final de la fase de transicin y del ciclo)

4.

perfil de personal (qu recursos harn falta a lo largo del tiempo) fechas de los hitos secundarios (final de cada iteracin y su objetivo principal, si se conoce)

Caractersticas 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 pginas. Se refiere a la documentacin de proyecto para definir el alcance del proyecto y las premisas del proyecto.

Plan de una iteracin


Es un plan detallado. Hay uno slo por cada iteracin. Un proyecto suele tener dos planes de iteracin activos en cada momento:
El plan de la iteracin actual (se utiliza en el seguimiento del trabajo de la iteracin) El plan de la iteracin siguiente (se genera hacia el final de la iteracin actual y est disponible al terminarla)

Caractersticas del plan de iteracin


Se genera utilizando tcnicas y herramientas tradicionales de planificacin (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.

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Construir un plan de fase


Dos cuestiones principales:
canto esfuerzo supone (cunto voy a hacer) cundo tiene que estar (fecha final de entrega)

De ah se planifica hacia atrs.

Pesos relativos de las fases


Inicio Elaboracin Construccin Transicin
Tiempo 10% 30% 50% 10% Esfuerzo 5% 20% 65% 10%

si necesitas mucho tiempo (delimitar el proyecto, encontrar financiacin, estudios de mercado, o para prototipo inicial si no tienes arquitectura, o si utilizas tecnologa nueva para t, o si tienes muchas restricciones de rendimiento, muchos riesgos tcnicos, y mucho personal nuevo si es la segunda generacin de algo ya hecho y no vas a cambiar mucho la arquitectura si tiene que llegar al mercado rpido (llegas tarde o ests creando mercado), y planeas terminar el producto poco a poco si tienes despliegue complicado, como reemplazar el sistema antiguo sin interrumpir el servicio, o consegur una certificacin (insturmentacin mdica, nuclear, aviacin, telefona pblica)

alarga la fase de inicio

alarga la fase de elaboracin

acorta las fases de inicio y elaboracin

acorta la fase de construccin y alarga la de transicin

alarga la fase de transicin

Iteracin
Duracin ideal de una iteracin: de dos a seis semanas. La rapidez de iteracin depende del tamao de la organizacin.

Duracin relativa de iteracin


cinco personas pueden planear el lunes por la maana, comer todos los das juntos para hacer el seguimiento, reasignar tareas, empezar una construccin el jueves, y terminar la iteracin el viernes veinte personas necesitan ms tiempo para organizarse, una iteracin sern entre tres y cuatro semanas cuarenta personas, hay niveles intermedios de jerarqua, hace falta ms documentacin formal y ms protocolos, una iteracin razonable seran tres meses

Relacin entre variables


Lineas de cdigo personas 5.000 4 20.000 10 100.000 40 1.000.000 150 duracin 2 semanas 1 mes 3 meses 8 meses

Cuntas iteraciones: fase de inicio


no hay iteracin real (no se produce software) En algunos casos se puede tener una iteracin 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 tecnologa o nuevo algoritmo) acostumbrar a la organizacin a usar las herramientas

0a1

Cuntas iteraciones: fase de elaboracin


por lo menos una. Si no tienes arquitectura de entrada y tienes que ajustar muchos factores nuevos - nueva tecnologa, nueva plataforma, nueva gente, nuevo lenguaje de programacin - por lo menos dos o tres iteraciones.(no se pueden tratar todos los riesgos a la vez, hace falta ensear algo al cliente para saber qu quiere.... IKIWISI effect - I Know It When I See It -)

1a3

Cuntas iteraciones: fase de construccin


por lo menos una dos para que salga mejor, tres o ms si puedes con la sobrecarga

1a3

Cuntas iteraciones: fase de transicin


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

1a2

Tres niveles (ciclo completo)


(Iteraciones) Inicio bajo 3 0 medio 6 1 alto 9 1

Elaboracin 1 2 3

Construccin 1 2 3

Transicin 1 1 2

Proyectos normales: 6 ms menos 3

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Ejemplo
Un proyecto de dos aos Fase inicio 2,5 meses Fase elaboracin 7 meses Fase construccin 12 meses Fase transicin 2,5 meses

Fase de inicio: artefactos


Documento de visin del sistema: visin general de los requisitos principales, las caractersticas clave y las restricciones ms importantes La investigacin 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, prediccin financiera) Valoracin inicial de riesgos Un plan de proyecto (fases e iteraciones)

Fase de inicio: evaluacin


todos de acuerdo en alcance, coste, y planificacin 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

Fase de elaboracin: objetivos


definir, validar y generar linea base (una entrega validada del producto bajo control de configuracin, que sirva como punto de partida y referencia) de la arquitectura tan rpido como sea posible lo mismo para la visin demostrar que lo uno va a poder soportar lo otro en coste y tiempo razonables

Fase de elaboracin: artefactos


modelo de casos de uso (80%) requisitos adicionales descripcin de la arquitectura prototipo arquitectnico 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 evaluacin para cada iteracin) un caso de desarrollo que especifique el proceso que se va a utilizar un manual de usuario preliminar (optativo)

Fase de elaboracin: evaluacin


la visin es estable la arquitectura es estable la versin ejecutable demuestra que los riesgos principales se han tratado y resuelto el plan de la fase de construccin es suficientemente detallado y preciso se han basado las estimaciones en bases creibles todos estn de acuerdo en que la visin se puede hacer con esa arquitectura de acuerdo con ese plan el gasto hasta ahora es aceptable relativo al gasto planeado

Fase de construccin: objetivos


optimizar recursos conseguir calidad y rpidamente versiones tiles (alpha, beta...)

Fase de construccin: artefactos


el producto integrado para las plataformas adecuadas manuales de usuario descripcin de la presente versin

Fase de construccin: evaluacin


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

Fase de transicin
pruebas beta operacin paralela con sistema anterior conversin de bases de datos formacin de usuarios y administradores transferencia del producto a equipos de marketing, ventas...

Fase de transicin: evaluacin


el usuario est satisfecho el gasto hasta ahora es aceptable relativo al gasto planeado

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Construir un plan de iteracin


Partir de la longitud y los recursos asignados a la iteracin. Evitar objetivos ambiciosos que luego no baste con una iteracin. Se puede utilizar una herramienta de planificacin como Microsoft Project (asignacin de tareas y dependencias).

Pasos a seguir
1. 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 divisin de trabajo de iteracin tpica, ajustarla a lo que hay que hacer 4. utilizar estimaciones para asignar duracin y esfuerzo a cada actividad (ateniendose al presupuesto)

Qu asignar a una iteracin (elaboracin)


Tres motivaciones principales: tratar los riesgos importantes la arquitectura propuesta cubre todos los aspectos hay que cubrir las funcionalidades importantes - aunque no tengan riesgos

Ejemplos
Riesgos
riesgo de integracin (base de datos con sistema operativo): incluir escenario con interaccin 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 ms frecuente

Para la cobertura, hacia el final de la fase de elaboracin, incluir escenarios que haga falta desarrollar aunque no sean crticos ni arriesgados Para la cuestin crtica, asegurate de incluir los servicios principales.

Detallar el trabajo de la iteracin


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

Ejemplos de objetivo (iteracin de elaboracin)


1. crear el registro de un usuario en la estacin cliente. el registro se debe almacenar en la base de datos del servidor, incluyendo el dilogo con el usuario pero no todos los campos, supon que no hay errores (funcin crtica y riesgo de integracin) asegurarse de que se pueden crear al menos 20.000 usuarios y que acceder a un usuario no tarda ms de 200 milisegundos (trata cuestiones de rendimiento) deshacer un cambio de direccin del usuario (obliga a disear la funcin genrica 'deshacer', puede requerir negociar con el cliente el alcance a implementar)

2.

3.

4.

completar todos los casos de uso relativos a la gestin de la cadena de proveedores (el objetivo es la captura de requisitos)

Qu asignar a una iteracin (construccin)


Completar las funcionalidades crticas pronto para que sean probadas en varias iteraciones. Hacia el final, asegurarse de que se han tratado todos los casos de uso.

Ejemplos de objetivo (iteracin de construccin)


1. implementar todas las variantes de redireccin de llamada, incluidas las errneas (conjunto de operaciones relacionadas, una se habr implementado durante la elaboracin, y sirve de prototipo) conseguir 5.000 transacciones a la hora sobre dos computadores (mejorar el rendimiento frente a la iteracin anterior) integrar nueva versin del sistema de informacin geogrfica (pequea modificacin de la arquitectura, sugerida por un error descubierto)

2.

3.

4.

reparar todos los defectos de nivel 1 y 2 (errores descubiertos en iteracin anterior)

Qu asignar a una iteracin (transicin)


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.

Ejemplos de objetivo (iteracin de transicin)


1. 2. 3. 4. arreglar todos los problemas de gravedad 1 descubiertos en la beta del cliente conseguir 2000 transacciones por minuto reducir el nmero de ventanas distintas en un 30% generar versiones en alemn y en japons

Resumen
Una metodologa de desarrollo Planificacin con el proceso unificado
Plan de fase Ejemplo de plan de fase Plan de iteracin Ejemplos de plan de iteracin

Ejemplos de iteraciones tpicas


Fase de inicio:Definir la visin del producto y el caso de negocio Fase de elaboracin (al principio): Construyendo un prototipo arquitectnico Fase de construccin (al final): Implementando el sistema

Fase de inicio
visin 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)

Fase de elaboracin
plan de la iteracin, 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) divisin inicial en subsistemas, casos de uso en detalle (AD) decidir el diseo, definir interfaces formales (AD) concurrencia y distribucin de la arquitectura (AD) se revisa la arquitectura (AD) considerar el empaquetamiento fsico de la arquitectura (I) planificar integracin (I) planificar las pruebas de integracin y sistema (P) implementar las clases e integrar (I) integrar las partes implementadas, probar cada construccin (I) valorar la arquitectura ejecutable (P) evaluar la iteracin en s (G)

Fase de construccin
retoca el plan de iteracin (G) planificar la implementacin/integracin de sistema (I) plan de pruebas de sistema (P) refinar diseo de los casos de uso (AD) plan de pruebas de subsistema y sistema (P) desarrollar cdigo 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 integracin (P) probar el sistema (P) evaluar la iteracin en s (G)

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.

También podría gustarte