1 UML Diagramas de Estados Diagrama de Actividades (UML Ilustrado) Universidad de los Andes Demián Gutierrez Mayo 2011.

1 1 UML Diagramas de Estados Diagrama de Actividades (UML...
Author: Juan Carlos Ortíz Valverde
0 downloads 0 Views

1 1 UML Diagramas de Estados Diagrama de Actividades (UML Ilustrado) Universidad de los Andes Demián Gutierrez Mayo 2011

2 2 Diagramas de Estados

3 3 Diagramas de Estados (¿Qué Muestran?) Los Diagramas de Estados muestran una Máquina de Estado Son útiles para modelar la vida de un objeto Un diagrama de estados muestra el flujo de control entre estados (en qué estados posibles puede estar “cierto algo” y como se producen los cambios entre dichos estados)

4 4 Diagramas de Estados (Máquina de Estados) Una máquina de estados es un comportamiento que especifica las secuencias de estados por las que pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a esos eventos (Booch, Rumbaugh, Jacobson) ¿En qué estado (de ánimo) se encuentra usted y como cambia su estado de ánimo?

5 5 Diagramas de Estados (Máquina de Estados) norm al (vivo) content o triste deprimido menos deprimi do... buena notici a mala notici a anti depresivos mucho menos deprimi do antidepresivos muerto (sobredo sis) tiempo buena notici a mala notici a noticia devastadora en tratamient o busca ayuda evaluación favorable evaluación desfavorable antidepresivos buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda, evaluación favorable, noticia devastadora, ad, ad, ad...

6 6 Diagramas de Estados (Conceptos) Un estado es una condición o situación en la vida de un objeto durante la cual satisface una condición, realiza alguna actividad o espera algún evento Un evento es la especificación de un acontecimiento significativo que ocupa un lugar en el tiempo y en el espacio. Es la aparición de un estímulo que puede (o no) activar una transición de estado Una transición es una relación entre dos estados que indica que un objeto que esté en el primer estado realizará ciertas acciones y entrará en el segundo estado cuando ocurra un evento especificado y se satisfagan unas condiciones especificadas

7 7 Diagramas de Estados (Máquina de Estados) norm al (vivo) conten to triste deprimid o menos deprim ido... buena noticia mala noticia anti depresivos mucho menos deprim ido antidepresivos muerto (sobred osis) tiempo buena noticia mala noticia noticia devastadora en tratamien to busca ayuda evaluación favorable evaluación desfavorable antidepresivos buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda, evaluación favorable, noticia devastadora, ad, ad, ad... estados transiciones eventos

8 8 Diagrama de Estado (Ejemplo) Estado Transición ¿Como implementaría la guarda? ¿En qué estado se encuentra la puerta inicialmente?

9 9 Diagrama de Estado (Ejemplo) Estado Inicial Estado Final

10 10 Diagrama de Estado (Ejemplo) Do / seleccionar producto es una actividad ¿Cómo implementaría esto? Acción (Se ejecuta cuando se dispara la transición) ¿Cómo implementaría esto?

11 11 Diagrama de Estado (Ejemplo)

12 12 Diagrama de Estado (Ejemplo) Estado Compuesto ¿Cómo implementaría esto?

13 13 Diagrama de Estado (Ejemplo) Mostrar Ejemplo de Implementación Mostrar HTML de los USB

14 14 Diagramas de Actividades

15 15 Diagramas de Actividades (¿Qué Muestran?) Un Diagrama de Actividades no es más que un caso especial de un diagrama de estados, en el que todos los estados (o la gran mayoría) son actividades ¿Qué es una actividad y cual es la diferencia con un estado?

16 16 Diagramas de Actividades (¿Qué Muestran?) ¿Si estoy contento, eso es un estado o una actividad? ¿Cuál es la diferencia entre estar contento o preparar una torta? ¿Cómo paso de contento a triste? ¿Qué sucede después de que termino de preparar la torta?

17 17 Diagramas de Actividades (¿Qué Muestran?) ¿Qué es una actividad y cual es la diferencia con un estado? Suena el Timbre Buscand o niños al colegio Prepara ndo Torta Haciend o Cena Atendien do Visitas :- / Se van las visitas content o triste mala notici a Las actividades no son atómicas y generalmente se pasa a la siguiente actividad cuando la actividad actual termina Los estados generalmente son atómicos y se pasa al siguiente estado por medio de un evento

18 18 Diagramas de Actividades (¿Qué Muestran?) Se pueden usar para modelar la dinámica de una sociedad de objetos o el flujo de control de una operación (¿Diagramas de flujo?) El flujo de un objeto a lo largo de una serie de estados o actividades Tomado de Booch, Rumbaugh, Jacobson, el lenguaje unificado de modelado

19 19 Diagramas de Actividades (¿Qué Muestran?) Los Diagramas de Actividades son usados (entre otras cosas) para elaborar modelos de flujos de trabajo* (workflow) de un sistema. En general, un Diagrama de Actividades muestra una serie de acciones o tareas que se ejecutan en cierto orden (y otros elementos adicionales) Un Diagrama de Actividades muestra el flujo de control entre una serie de tareas o actividades *Un flujo de trabajo se puede ver como una serie de tareas (acciones) que son ejecutadas o realizadas por ciertos actores en cierto orden preestablecido

20 20 Diagramas de Actividades (¿Qué Muestran?) Conjunto de actividades¿Qué hacen las actividades? ¿En que orden se ejecutan? ¿Dónde ocurren?¿Quién las ejecuta? ¿Qué insumos requieren?¿Qué productos generan? ¿Cuándo ocurren? Los Diagramas de Actividades expresan:

21 21 Diagramas de Actividades (¿Conceptos Básicos?) Actividad: Es la especificación de un comportamiento que puede ser parametrizado y que define la secuenciación coordinada de unidades subordinadas denominadas acciones Acción: Una acción es la unidad fundamental de especificación de comportamiento. Una acción es generalmente atómica, es decir, indivisible Transiciones: Representan el paso de una acción a otra

22 22 Diagramas de Actividades (Ejemplo) Inicio Fin Acción Eje de Actividad o Transición Separación (Fork / Split) Unión (Join) Decisión (Choose / Branch) Mezcla (Merge) Nodo Objeto o Parámetro de Entrada Nodo Objeto o Parámetro de Salida Recordar Etiquetas TODO: Aquí se puede aprovechar la eliminación del merge de la derecha para demostrar que el join de la derecha estaría mal hecho....

23 23 Diagramas de Actividades (Ejemplo) Acción Evento de Tiempo ¿Por qué no hay nodo de inicio?

24 24 Diagramas de Actividades (Ejemplo) Final de Flujo Swimlanes (Carrileras / Calles)

25 25 Diagramas de Actividades (Ejemplo) El mismo diagrama anterior pero sin carrileras / calles

26 26 Diagramas de Actividades (Ejemplo) Acción Recurrente (Iterativa) Envío de Señal (Evento)Recepción de Señal (Evento) Aclarar envío y recepción de señales

27 27 Diagramas de Actividades (Ejemplo) Carrilera (Calle) Doble Nota

28 28 Diagramas de Actividades (Ejemplo) Noten el equilibrio entre las separaciones y uniones

29 29 Ejemplo de Workflow (1) (Ejemplo tomado de CLEDA) Recibir Oferta (Cliente) Análisis Legal (Analista) * Recepción de Documentos (Secretaria) * Notificar Aprobación (Secretaria) Notificar Rechazo (Secretaria) Preparar Contrato (Dpto. Legal) Análisis por Junta (Junta) Notificar Aprobación (Secretaria) Firma de Contrato (Cliente) [aprobar] [else] [ aprobar ] [else] Proceso de Negocio: Proceso de Contratación Modelado con un Diagrama de Actividades MDocOferta id nombre apellido cedula... workflow_id MRecaudo id nombre tipo... 1 0..n BD

30 30 Ejemplo de Workflow (2) (Ejemplo tomado de CLEDA) Recibir Solicitud de Inscripción (Cliente) Aceptar (Analista) Rechazar (Analista) Guardar Temporalment e (Analista) Notificar Rechazo (Secretaria) Recibir Recaudo (Secretaria) Recaudos Faltantes (Sistema) Recaudos Completos (Sistema) Rechazar (Junta) Aceptar (Junta) Notificar Aprobación (Secretaria) (Auto) Notificar Aprobación (Secretaria) Firmar Contrato (Cliente) Preparar Contrato (Dpto. Legal) Proceso de Negocio: Proceso de Contratación Modelado con Redes de Petri MDocOferta id nombre apellido cedula... workflow_id MRecaudo id nombre tipo... 1 0..n BD

31 31 XML (Versión 1.5) (2) (Ejemplo tomado de CLEDA)

32 32 XML (Versión 1.5) (3) (Ejemplo tomado de CLEDA)......

33 33 XML (Versión 1.5) (4) (Ejemplo tomado de CLEDA)...........................

34 34 XML (Versión 1.5) (5) (Ejemplo tomado de CLEDA).....................

35 35 Arquitectura (General) (Ejemplo tomado de CLEDA) BD Motor de Workflow (CledaFlow, CledaScheduler y CledaBase) HibernateJDBC Documentos MVC CledaMVC (Struts1) o Echo2 Modelo de Dominio Servlet s Navegador WEB CledaTags CledaCore Aplicació n Arquitectura a 3 capas bien definida. Validada con la experiencia de los proyectos desarrollados. En constante evolución y refinación.

36 36 Discusión DISCUSIÓN ¿Por qué los diagramas de estados / actividades son importantes?

37 37 Gracias ¡Gracias!

38 38 TODO: Investigar si existen buenas prácticas en cuanto a los nombres de los eventos, acciones, transiciones, etc TODO: Este ejemplo (11) es bueno, pero puede ser un poco confuso, sobre todo porque aquí hay un poco de mezcla entre diagrama de estados (Esperando/Enviando) y diagrama de actividades TODO: (11) No sigue la convención de [guarda] evento / acción de las láminas anteriores La información en: http://en.wikipedia.org/wiki/UML_state_machine estáhttp://en.wikipedia.org/wiki/UML_state_machine bastante interesante... TODO: Quizás faltan algunas cosas, como acciones de entrada, de salida, la evaluación de expresiones, maquinas de estado concurrentes y anidadas, etcétera... (18)TODO: Hay que revisar y consolidar, me parece que se habla mucho aquí repitiendo conceptos. Esto debería ser algo mucho más concreto y que confunda menos a los estudiantes (24) TODO: Revisar en el estándar el final de flujo y ver si está bien utilizado (21)TODO: Ojo con estos conceptos que entran en contradicción con los conceptos presentados en los diagramas de estado (Y no debería ser)