Anda di halaman 1dari 38

UML

Diagramas de Estados Diagrama de Actividades (UML Ilustrado)

Universidad de los Andes


Demin Gutierrez Mayo 2011 1

Diagramas de Estados

Diagramas de Estados
2

Diagramas de Estados (Qu Muestran?) Los Diagramas de Estados muestran una Mquina 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)
3

Diagramas de Estados (Mquina de Estados) Una mquina 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?


4

Diagramas de Estados (Mquina de Estados)


busca ayuda contento en tratamiento evaluacin favorable evaluacin desfavorable deprimido buena noticia tiempo noticia devastadora anti depresivos tiempo triste muerto (sobredosis) mucho menos deprimido mala noticia buena noticia

normal
(vivo)

mala noticia

antidepresivos

antidepresivos

menos deprimido ...

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda, evaluacin favorable, noticia devastadora, ad, ad, ad ...

Diagramas de Estados (Conceptos)


Un estado es una condicin o situacin en la vida de un objeto durante la cual satisface una condicin, realiza alguna actividad o espera algn evento Un evento es la especificacin de un acontecimiento significativo que ocupa un lugar en el tiempo y en el espacio. Es la aparicin de un estmulo que puede (o no) activar una transicin de estado Una transicin es una relacin 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
6

Diagramas de Estados (Mquina de Estados)


busca ayuda contento en tratamiento evaluacin favorable evaluacin desfavorable estados transiciones eventos muerto (sobredosis) triste mucho menos deprimido deprimido buena noticia tiempo noticia devastadora tiempo mala noticia anti depresivos buena noticia

normal
(vivo)

mala noticia

antidepresivos

antidepresivos

menos deprimido ...

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda, evaluacin favorable, noticia devastadora, ad, ad, ad ...

Diagrama de Estado (Ejemplo)


Transicin Como implementara la guarda?

En qu estado se encuentra la puerta inicialmente?


Estado

Diagrama de Estado (Ejemplo)


Estado Inicial

Estado Final
9

Diagrama de Estado (Ejemplo)


Accin (Se ejecuta cuando se dispara la transicin) Cmo implementara esto? Do / seleccionar producto es una actividad Cmo implementara esto?

10

Diagrama de Estado (Ejemplo)

11

Diagrama de Estado (Ejemplo)


Estado Compuesto Cmo implementara esto?

12

Diagrama de Estado (Ejemplo)

Mostrar Ejemplo de Implementacin Mostrar HTML de los USB

13

Diagramas de Actividades

Diagramas de Actividades
14

Diagramas de Actividades (Qu Muestran?) Un Diagrama de Actividades no es ms que un caso especial de un diagrama de estados, en el que todos los estados (o la gran mayora) son actividades

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

15

Diagramas de Actividades (Qu Muestran?)

Si estoy contento, eso es un estado o una actividad? Cmo paso de contento a triste? Cul es la diferencia entre estar contento o preparar una torta? Qu sucede despus de que termino de preparar la torta?
16

Diagramas de Actividades (Qu Muestran?)


contento mala noticia triste

Los estados generalmente son atmicos y se pasa al siguiente estado por medio de un evento Buscando nios al colegio Suena el Timbre

Las actividades no son atmicas y generalmente se pasa a la siguiente actividad cuando la actividad actual termina

Preparando Torta Se van las visitas Atendiendo Visitas :-/

Haciendo Cena

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

17

Diagramas de Actividades (Qu Muestran?)

El flujo de un objeto a lo largo de una serie de estados o actividades Se pueden usar para modelar la dinmica de una sociedad de objetos o el flujo de control de una operacin (Diagramas de flujo?)

Tomado de Booch, Rumbaugh, Jacobson, el lenguaje unificado de modelado

18

Diagramas de Actividades (Qu Muestran?) Un Diagrama de Actividades muestra el flujo de control entre una serie de tareas o actividades 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 flujo de trabajo se puede ver como una serie de tareas (acciones) que son ejecutadas o realizadas por ciertos actores en 19 cierto orden preestablecido

Diagramas de Actividades (Qu Muestran?)

Los Diagramas de Actividades expresan:


Conjunto de actividades En que orden se ejecutan? Dnde ocurren? Qu insumos requieren? Qu hacen las actividades? Cundo ocurren? Quin las ejecuta? Qu productos generan?
20

Diagramas de Actividades (Conceptos Bsicos?) Actividad: Es la especificacin de un comportamiento que puede ser parametrizado y que define la secuenciacin coordinada de unidades subordinadas denominadas acciones Accin: Una accin es la unidad fundamental de especificacin de comportamiento. Una accin es generalmente atmica, es decir, indivisible Transiciones: Representan el paso de una accin a otra
21

Diagramas de Actividades (Ejemplo)


Separacin (Fork / Split) Accin Unin (Join)

Inicio Eje de Actividad o Transicin Fin Mezcla (Merge)

Nodo Objeto o Parmetro de Entrada

Decisin (Choose / Branch) Nodo Objeto o Parmetro de Salida

22 Recordar Etiquetas

Diagramas de Actividades (Ejemplo)

Accin Evento de Tiempo

Por qu no hay nodo de inicio?


23

Diagramas de Actividades (Ejemplo)

Final de Flujo

Swimlanes (Carrileras / Calles)

24

Diagramas de Actividades (Ejemplo)

El mismo diagrama anterior pero sin carrileras / calle


25

Diagramas de Actividades (Ejemplo)

Accin Recurrente (Iterativa)

Aclarar envo y recepcin de seales

Envo de Seal (Evento)

Recepcin de Seal (Evento)

26

Diagramas de Actividades (Ejemplo)

Nota

Carrilera (Calle) Doble

27

Diagramas de Actividades (Ejemplo)

Noten el equilibrio entre las separaciones y uniones


28

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


MDocOferta

Recibir Oferta (Cliente)

Anlisis Legal (Analista)

id nombre apellido cedula ... workflow_id

MRecaudo id nombre tipo ...

Notificar Aprobacin (Secretaria)

[aprobar]

[else]

Notificar Rechazo (Secretaria)

0..n

BD
Recepcin de Documentos (Secretaria)

Preparar Contrato (Dpto. Legal)

[else] Anlisis por Junta (Junta) Notificar Aprobacin (Secretaria) Firma de Contrato (Cliente)

[aprobar]

Proceso de Negocio: Proceso de Contratacin Modelado con un Diagrama de Actividades

29

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


Recibir Solicitud de Inscripcin (Cliente) Guardar Temporalmente (Analista) Notificar Rechazo (Secretaria) Aceptar (Analista) Rechazar (Analista) MDocOferta id nombre apellido cedula ... workflow_id 1

MRecaudo id nombre tipo ...

0..n

Firmar Contrato (Cliente) Notificar Aprobacin (Secretaria) Preparar Contrato (Dpto. Legal) Rechazar (Junta)

BD

Recibir Recaudo (Secretaria)

Aceptar (Junta) (Auto)

Notificar Aprobacin (Secretaria)

Recaudos Faltantes (Sistema)

Recaudos Completos (Sistema)

Proceso de Negocio: Proceso de Contratacin Modelado con Redes de Petri

30

XML (Versin 1.5) (2) (Ejemplo tomado de CLEDA)

<netpetridefname="..."doctype="..."> <!***********************************> <!Thelistofplacesinthenetpetri> <!***********************************> <!***********************************> <!Thelistoftranssetandtrans> <!***********************************> <!***********************************> <!Thelistofstatesinthenetpetri> <!***********************************> </netpetridef>

31

XML (Versin 1.5) (3) (Ejemplo tomado de CLEDA)

<netpetridefname="..."doctype="..."> <!***********************************> <!Thelistofplacesinthenetpetri> <!***********************************> <placelist> <placename="..."/> <placename="..."/> ... </placelist> ... </netpetridef>

32

XML (Versin 1.5) (4) (Ejemplo tomado de CLEDA)


<netpetridefname="..."doctype="..."> ... <translist> <transsetname="..."> <agentdeftime="..."class="..."method="..."/> <privilegename="..."/> <worklistname="..."/> <metadatakey="..."val="..."/> <metadatakey="..."val="..."/> ... <docsectionstatename="..."state="..."/> <docsectionstatename="..."state="..."/> ... <transname="..."type="..."> <metadatakey="..."val="..."/> <metadatakey="..."val="..."/> ... <preplacename="..."/> <preplacename="..."/> ... <posplacename="..."/> <posplacename="..."/> ... </trans> ... </transset> ... </translist> ... </netpetridef>

33

XML (Versin 1.5) (5) (Ejemplo tomado de CLEDA)

<netpetridefname="..."doctype="..."> ... <statelist> <stategrpname="..."terminal="..."> <metadatakey="..."val="..."/> <metadatakey="..."val="..."/> ... <docsectionstatename="..."state="..."/> <docsectionstatename="..."state="..."/> ... <statesetname="..."> <placename="..."tokens="..."/> <placename="..."tokens="..."/> ... </stateset> ... </stategrp> ... </statelist> ... </netpetridef>

34

Arquitectura (General) (Ejemplo tomado de CLEDA)


Servlets Aplicacin Modelo de Dominio

CledaTags

Navegador WEB

MVC CledaMVC (Struts1) o Echo2

Hibernate

Documentos

JDBC

BD

CledaCore

Motor de Workflow (CledaFlow, CledaScheduler y CledaBase)

Arquitectura a 3 capas bien definida. Validada con la experiencia de los proyectos desarrollados. En constante evolucin y refinacin.
35

Discusin

DISCUSIN Por qu los diagramas de estados / actividades son importantes?


36

Gracias

Gracias!

37

(21)TODO: Ojo con estos conceptos que entran en contradiccin con los conceptos presentados en los diagramas de estado (Y no debera ser) (24) TODO: Revisar en el estndar el final de flujo y ver si est bien utilizado TODO: Investigar si existen buenas prcticas en cuanto a los nombres de los eventos, acciones, transiciones, etc TODO: Quizs faltan algunas cosas, como acciones de entrada, de salida, la evaluacin de expresiones, maquinas de estado concurrentes y anidadas, etctera... 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 convencin de [guarda] evento / accin de las lminas anteriores La informacin en: http://en.wikipedia.org/wiki/UML_state_machine est bastante interesante... (18)TODO: Hay que revisar y consolidar, me parece que se habla mucho aqu repitiendo conceptos. Esto debera ser algo mucho ms concreto y que confunda menos a los estudiantes
38