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

Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

  • Upload
    vutu

  • View
    262

  • Download
    11

Embed Size (px)

Citation preview

Page 1: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

1

UMLDiagramas de Estados

Diagrama de Actividades(UML Ilustrado)

Universidad de los AndesDemián Gutierrez

Mayo 2011

Page 2: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

2

Diagramas de Estados

Diagramas de Estados

Page 3: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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)

Page 4: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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?

Page 5: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

5

Diagramas de Estados(Máquina de Estados)

normal(vivo)

contento

triste

deprimido

menosdeprimido

...

buena noticia

mala noticia

anti depresivos

muchomenos

deprimido antidepresivos

muerto(sobredosis)

tiempo

tiempo

buena noticia

mala noticia

noticiadevastadora

entratamiento

busca ayuda

evaluaciónfavorable

evaluacióndesfavorable

antidepresivos

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,evaluación favorable, noticia devastadora, ad, ad, ad ...

Page 6: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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

Page 7: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

7

Diagramas de Estados(Máquina de Estados)

normal(vivo)

contento

triste

deprimido

menosdeprimido

...

buena noticia

mala noticia

anti depresivos

muchomenos

deprimido antidepresivos

muerto(sobredosis)

tiempo

tiempo

buena noticia

mala noticia

noticiadevastadora

entratamiento

busca ayuda

evaluaciónfavorable

evaluacióndesfavorable

antidepresivos

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,evaluación favorable, noticia devastadora, ad, ad, ad ...

estados

transiciones

eventos

Page 8: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

8

Diagrama de Estado(Ejemplo)

Estado

Transición

¿Como implementaría la guarda?

¿En qué estadose encuentra

la puertainicialmente?

Page 9: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

9

Diagrama de Estado(Ejemplo)

Estado Inicial

Estado Final

Page 10: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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?

Page 11: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

11

Diagrama de Estado(Ejemplo)

Page 12: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

12

Diagrama de Estado(Ejemplo)

Estado Compuesto¿Cómo implementaría

esto?

Page 13: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

13

Diagrama de Estado(Ejemplo)

Mostrar Ejemplo de Implementación

Mostrar HTML de los USB

Page 14: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

14

Diagramas de Actividades

Diagramas de Actividades

Page 15: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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?

Page 16: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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?

Page 17: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

17

Diagramas de Actividades(¿Qué Muestran?)

¿Qué es una actividad y cual es la diferencia con un estado?

Suena el Timbre

Buscandoniños alcolegio

PreparandoTorta

HaciendoCena

AtendiendoVisitas :-/

Se van las visitas

contento tristemala

noticia

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

Page 18: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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

Page 19: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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

Page 20: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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:

Page 21: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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

Page 22: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

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

Page 23: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

23

Diagramas de Actividades(Ejemplo)

AcciónEvento

de Tiempo

¿Por qué no hay nodo de inicio?

Page 24: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

24

Diagramas de Actividades(Ejemplo)

Final deFlujo

Swimlanes (Carrileras /

Calles)

Page 25: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

25

Diagramas de Actividades(Ejemplo)

El mismo diagrama anterior pero sin carrileras / calles

Page 26: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

26

Diagramas de Actividades(Ejemplo)

Acción Recurrente (Iterativa)

Envío de Señal

(Evento)

Recepción de Señal (Evento)

Aclarar envío yrecepción de señales

Page 27: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

27

Diagramas de Actividades(Ejemplo)

Carrilera (Calle) Doble

Nota

Page 28: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

28

Diagramas de Actividades(Ejemplo)

Noten el equilibrio entre las separaciones

y uniones

Page 29: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

29

Ejemplo de Workflow (1)(Ejemplo tomado de CLEDA)

Recibir Oferta(Cliente)

Análisis Legal(Analista)

*

Recepción deDocumentos(Secretaria)

*

NotificarAprobación(Secretaria)

NotificarRechazo

(Secretaria)

PrepararContrato

(Dpto. Legal)

Análisispor Junta(Junta)

NotificarAprobación(Secretaria)

Firma deContrato(Cliente)

[aprobar] [else]

[aprobar]

[else]

Proceso de Negocio: Proceso de ContrataciónModelado con un Diagrama de Actividades

MDocOferta

idnombreapellidocedula...workflow_id

MRecaudo

idnombretipo...

1

0..n

BD

Page 30: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

30

Ejemplo de Workflow (2)(Ejemplo tomado de CLEDA)

Recibir Solicitudde Inscripción

(Cliente)

Aceptar(Analista)

Rechazar(Analista)

GuardarTemporalmente

(Analista)

NotificarRechazo

(Secretaria)

RecibirRecaudo

(Secretaria)

RecaudosFaltantes(Sistema)

RecaudosCompletos(Sistema)

Rechazar(Junta)

Aceptar(Junta)

NotificarAprobación(Secretaria)

(Auto)Notificar

Aprobación(Secretaria)

FirmarContrato(Cliente)

PrepararContrato

(Dpto. Legal)

Proceso de Negocio: Proceso de ContrataciónModelado con Redes de Petri

MDocOferta

idnombreapellidocedula...workflow_id

MRecaudo

idnombretipo...

1

0..n

BD

Page 31: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

31

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

<net­petri­def name="..." doc­type="...">

  <!­­ *********************************** ­­>  <!­­ The list of places in the net­petri ­­>  <!­­ *********************************** ­­>

  <!­­ *********************************** ­­>  <!­­ The list of trans­set and trans     ­­>  <!­­ *********************************** ­­>

  <!­­ *********************************** ­­>  <!­­ The list of states in the net­petri ­­>  <!­­ *********************************** ­­>

</net­petri­def>

Page 32: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

32

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

<net­petri­def name="..." doc­type="...">

  <!­­ *********************************** ­­>  <!­­ The list of places in the net­petri ­­>  <!­­ *********************************** ­­>

  <place­list>    <place name="..." />    <place name="..." />    ...  </place­list>

  ...

</net­petri­def>

Page 33: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

33

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

<net­petri­def name="..." doc­type="...">  ...  <trans­list>    <trans­set name="...">      <agent­def time="..." class="..." method="..." />

      <privilege name="..." />      <work­list name="..." />

      <meta­data key="..." val="..." />      <meta­data key="..." val="..." />      ...      <doc­section­state name="..." state="..." />      <doc­section­state name="..." state="..." />      ...      <trans name="..." type="...">        <meta­data key="..." val="..." />        <meta­data key="..." val="..." />        ...        <pre­place name="..." />        <pre­place name="..." />        ...        <pos­place name="..." />        <pos­place name="..." />        ...      </trans>      ...    </trans­set>    ...  </trans­list>  ...</net­petri­def>

Page 34: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

34

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

<net­petri­def name="..." doc­type="...">  ...  <state­list>    <state­grp name="..." terminal="...">

      <meta­data key="..." val="..." />      <meta­data key="..." val="..." />      ...      <doc­section­state name="..." state="..." />      <doc­section­state name="..." state="..." />      ...      <state­set name="...">        <place name="..." tokens="..." />        <place name="..." tokens="..." />        ...      </state­set>      ...    </state­grp>    ...  </state­list>  ...</net­petri­def>

Page 35: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

35

Arquitectura (General)(Ejemplo tomado de CLEDA)

BD

Motorde

Workflow(CledaFlow, CledaScheduler y

CledaBase)

Hib

erna

te

JDB

C

Documentos

MVCCledaMVC(Struts1)

oEcho2

Modelode

Dominio

Servlets

NavegadorWEB

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.

Page 36: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

36

Discusión

DISCUSIÓN¿Por qué los

diagramas de estados / actividades son

importantes?

Page 37: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

37

Gracias

¡Gracias!

Page 38: Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

38

TODO: Investigar si existen buenasprácticas en cuanto a los nombres de loseventos, 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 lasláminas anteriores

La información en: http://en.wikipedia.org/wiki/UML_state_machine está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 confundamenos a los estudiantes

(24) TODO: Revisar en el estándar el final de flujo y versi está bien utilizado

(21)TODO: Ojo con estos conceptos que entran en contradicción con los conceptospresentados en los diagramas de estado (Y no debería ser)