Diagramas estado y actividad

2,249 views

Published on

Diagramas estado y actividad

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,249
On SlideShare
0
From Embeds
0
Number of Embeds
567
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Diagramas estado y actividad

  1. 1. Diagramas de Estados y Actividad Javier Garzás Noviembre 2003 www.javiergarzas.com
  2. 2. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 1. Diagramas de Estados: Definición  Autómatas de estados finitos, desde el punto de vista de los estados y las transiciones  Utiles y aplicables sólo para los objetos con un comportamiento significativo  El resto de objetos se puede considerar que tienen un único estado  El formalismo es el de los Statecharts de Harel.
  3. 3. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Los Statecharts son autómatas jerárquicos que permiten expresar concurrencia y sincronización.  Son grafos cíclicos dirigidos  Cada objeto sigue el comportamiento descrito en el Statechart asociado a su clase  Los Statecharts de UML son deterministas 1. Diagramas de Estados: Definición
  4. 4. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Diagrama de Estados para la clase persona: Ejemplo Jubilado jubilaciónperderEmpleo Paro jubilación Activo contratado
  5. 5. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Cada objeto está en un estado en un cierto instante  El estado está caracterizado parcialmente por los valores de los atributos del objeto  El estado en el que se encuentra un objeto caracteriza sus condiciones dinámicas. 2. Descripción básica de los Estados
  6. 6. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Notación básica de un estado:  Los estados inicial y final están diferenciados del resto y se notan de manera distinta: Nombre Estado Estado Inicial Estado Final 2. Descripción básica de los Estados
  7. 7. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 3. La Transición y sus elementos Evento [Guarda] /Acción  Son reglas ECA (usadas, p.e, en BBDD activas)  Una transición puede contener, opcionalmente, los siguientes elementos:  Evento  Guarda  Acción  Notación:
  8. 8. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 3.1 Evento  Si una transición viene etiquetada sin evento entonces significa que la transición ocurre tan pronto como la actividad asociada al estado concluye.  Los eventos pueden tener argumentos.  La transición entre estados es instantánea y se debe a la ocurrencia de eventos
  9. 9. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Permiten condicionar la transición  Son condiciones lógicas que retornan true o false  Sólo una transición puede tomarse a la salida de un estado, por tanto, las guardas deben ser mutuamente excluyentes  La transición ocurre sólo si la guarda se resuelve como true 3.2 Guardas
  10. 10. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 3.3 Acciones  Podemos especificar la ejecución de una acción como consecuencia de la transición
  11. 11. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Podemos especificar el envío de un evento a otro objeto en la acción y como consecuencia de la transición: a b Evento( arg1, arg2 )[ condición ] / ^otro_objeto.evento(arg2) 3.3 Acciones
  12. 12. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4. Aspectos avanzados de los Estados  Un estado, además del nombre que lo caracteriza, puede desarrollar actividades  Por otro lado, puede modelarse:  La generalización de estados  La agregación de estados, concurrencia de estados
  13. 13. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Se puede especificar el hacer una actividad como consecuencia de entrar, salir o estar en un estado: estado A entry: acción por entrar exit: acción por salir do: acción mientras en estado 4.1 Actividades en los estados
  14. 14. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.1 Actividades en los Estados E1 E2 do/ a3 exit/ a4 entry/ a2 E3 e1 / a1 e2 / a5 El orden de ejecución: a1, a2, a3, a4, a5
  15. 15. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.1 Actividades en los Estados Para e2: al salir a4, después a6, al entrar a2 y al final a3 E2 entry/ a2 do/ a3 exit/ a4 e2 / a6
  16. 16. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.1 Actividades vs Acciones Acción Actividad En transiciones En Estados Rápidas Pueden ser Lentas No interrumpible Interrumpible
  17. 17. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.1 Actividades vs Acciones  ¿Cómo saber si algo es acción o actividad?  Depende de la rapidez y esto depende del dominio del problema
  18. 18. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.2 Generalización de Estados  Podemos reducir la complejidad de estos diagramas usando la generalización de estados  Distinguimos así entre superestado y subestados  Un estado puede contener varios subestados disjuntos  Los subestados heredan las variables de estado y las transiciones externas
  19. 19. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.2 Generalización de Estados  Ejemplo: a b c e1 e2 e2
  20. 20. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Quedaría como: 4.2 Generalización de Estados c a ba b e1 e2
  21. 21. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Las transiciones de entrada deben ir hacia subestados específicos: 4.2 Generalización de Estados c a ba b e1 e2 e0
  22. 22. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Es preferible tener estados iniciales de entrada a un nivel de manera que desde los niveles superiores no se sepa a qué subestado se entra: 4.2 Generalización de Estados c a ba b e1 e2 e1 e0
  23. 23. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  La agregación de estados es la composición de un superestado a partir de varios subestados independientes  La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes 4.2 Generalización de Estados
  24. 24. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Ejemplo: e1 e1 4.2 Generalización de Estados
  25. 25. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.3 Historial  Por defecto, los autómatas no tienen memoria  Es posible memorizar el último subestado visitado para recuperarlo en una transición entrante en el superestado que lo engloba
  26. 26. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Ejemplo: 4.3 Historial a d2 d1 H d2 d1 x y h out in H
  27. 27. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  También es posible la memorización para cualquiera de los subestados anidados (aparece un * junto a la H) 4.3 Historial a d2 d1 H* d2 d1 x y h out in H*
  28. 28. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Ejemplo: 4.3 Historial Enjuague Lavado Secado H Enjuague Lavado Secado H Espera Cerrar PuertaAbrir Puerta AbrirCerrar
  29. 29. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.4 Destrucción del Objeto  La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado  La llegada a un estado final anidado implica la “subida” al superestado asociado, no el fin del objeto
  30. 30. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.4 Destrucción de Objeto  Ejemplo: Volando EnTierra Aterrizar DespegarFallo Motor
  31. 31. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad 4.5 Transiciones temporizadas  Las esperas son actividades que tienen asociada cierta duración  La actividad de espera se interrumpe cuando el evento esperado tiene lugar  Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado
  32. 32. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Ejemplo: Si en 30 segundos no se introduce el dinero se termina la actividad pasando a anular la transacción. En cualquier caso se cierra la ranura. 4.5 Transiciones temporizadas a esperar dinero entry: Mostrar mensaje do: Esperar 30 segundos exit: cerrar ranura b anular transacción / Abrir ranura Depósito efectuado
  33. 33. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Ejemplo v.2: 4.5 Transiciones temporizadas a esperar dinero entry: Mostrar mensaje exit: cerrar ranura b anular transacción / Abrir ranura Depósito efectuado Temporizador (30 segundos)
  34. 34. Diagramas de Actividad
  35. 35. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Origen  No tienen un claro origen.  Combinan ideas de los diagramas de eventos (J. Odell), SDL, workflow y Redes de Petri.
  36. 36. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad El Diagrama de Actividad  Describe una secuencia de actividades  Describen comportamiento condicional y paralelo  Son una variante de los diagramas de estados donde los estados son actividades  Destinados a representar el comportamiento de un método o de un Caso de Uso
  37. 37. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Estado de Actividad  El símbolo principal es el “Estado de Actividad” o comúnmente “Actividad”  Es un estado que hace algo  Símbolo: Invocar Orden
  38. 38. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad  Las actividades se enlazan por transiciones automáticas  Cuando una actividad termina se desencadena el paso a la siguiente actividad  Las actividades no poseen transiciones internas ni transiciones desencadenadas por eventos  Símbolo: Transiciones
  39. 39. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo Buscar Bebida Poner café en filtro Añadir agua al depósito Coger taza Poner filtro en máquina Encender máquina Café en preparación Servir café Coger zumo Beber [no hay café] [hay café [no zumo] [hay zumo] ^cafetera.On indicador de fin
  40. 40. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo RecibirOrden RellenarOrden EnviarFactura EntregNoctur EntregRegular RecibirPago CerrarOrden [ Urgente ] [ Else ]
  41. 41. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Comportamiento Condicional  Se modela mediante  Mediante Guardas  Branch y Merges  Los branch y merges se utilizan para enfatizar el comportamiento condicional, pero siempre pueden sustituirse por guardas  En UML 1.3 los Branch y Merges sustituyen al “rombo” como componente para modelar decisiones
  42. 42. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Branch  Modelan Comportamiento Condicional  Tienen una sola entrada y varias salidas etiquetadas por guardas mutuamente excluyentes.  Puede usarse [else] como guarda  Símbolo:
  43. 43. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo EntregNoctur [ Urgente ] [ Else ] EntregRegular RellenarOrden Branch
  44. 44. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Merge  Modelan Comportamiento Condicional  Tienen múltiples entradas y una salida.  Marcan el final del comportamiento condicional que comenzó con un branch  Símbolo:
  45. 45. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo EntregNoctur EntregRegular Merge
  46. 46. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Sincronización  Se modela mediante  Fork  Join  Los anteriores, por lo general, estarán equilibrados  En UML 1.3 sustituyen a la única barra de sincronización
  47. 47. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Fork  Modelan el comportamiento paralelo  Tienen una entrada y varias salidas  Cuando la transición entrante se dispara todas las transiciones de salida ocurren en paralelo  Símbolo:
  48. 48. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo RellenarOrden EnviarFactura EntregNoctur EntregRegular RecibirPago [ Urgente ] [ Else ] Fork
  49. 49. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Join  Sincronizan el comportamiento paralelo  Tienen una entrada y varias salidas  Cuando la transición entrante se dispara todas las transiciones de salida ocurren en paralelo  Símbolo:
  50. 50. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo EntregNoctur EntregRegular RecibirPago Join
  51. 51. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad SwimLanes  Los D. Actividad cuentan que ocurre pero no donde.  Una solución es etiquetar cada actividad con el lugar donde ocurre y la forma de hacerlo es con las swimlanes  Las swimlanes dividen el diagrama en zonas verticales las cuales representan donde se lleva a cabo la actividad
  52. 52. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejemplo Emitir billete Pasajero Vendedor Airline Solicitar pago Reservar plazas Confirmar plaza reservadaPagar pasaje Informar alternativas y precios Verificar existencia vuelo Dar detalles vuelo Solicitar pasaje Seleccionar vuelo
  53. 53. EJERCICIOS
  54. 54. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejercicio 1  Realizar un Diagrama de Estados que modele el estado civil de una persona (soltero, casado, etc.)
  55. 55. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Solución propuesta Soltero Casado Divorciado Viudo Matrimonio( fecha )[ Edad>16 ]Matrimonio Anulación Muerte Esposo(a) Divorcio Matrimonio
  56. 56. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Ejercicio 2  Modelar los estados del juego del ajedrez
  57. 57. Javier Garzás, Proceso de desarrollo OO con UML – Diagramas de Estado y Actividad Solución propuesta TurnoBlancas TurnoNegras GananBlancas GananNegras Tablas MoverBlancas jaquemate MoverNegras jaquemate acorarTablas acordarTablas

×