Está en la página 1de 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 buena
noticia
contento
en deprimido
tratamiento buena
tiempo
noticia
evaluacin noticia
favorable normal devastadora
evaluacin (vivo)
anti depresivos
desfavorable mala
tiempo
noticia
mala
noticia
triste

mucho menos
muerto
menos deprimido
(sobredosis)
antidepresivos deprimido antidepresivos ...

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,


5
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 buena
noticia
contento
en deprimido
tratamiento buena
tiempo
noticia
evaluacin noticia
favorable normal devastadora
evaluacin (vivo)
desfavorable mala anti depresivos
estados tiempo
noticia
mala
transiciones noticia
eventos triste

mucho menos
muerto
menos deprimido
(sobredosis)
antidepresivos deprimido antidepresivos ...

buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,


7
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

8
Diagrama de Estado
(Ejemplo)

Estado
Inicial

Estado
Final
9
Diagrama de Estado
(Ejemplo)
Accin (Se ejecuta
cuando se dispara la Do / seleccionar
transicin) producto es una
actividad
Cmo implementara
esto? 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 triste
mala
noticia
Los estados
generalmente son
atmicos y se pasa al Las actividades no son atmicas y
siguiente estado por generalmente se pasa a la siguiente
medio de un evento actividad cuando la actividad actual termina

Buscando
Preparando Haciendo
nios al
Torta Cena
colegio

Suena el Se van las


Timbre visitas

Atendiendo
Visitas :-/

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
cierto orden preestablecido 19
Diagramas de Actividades
(Qu Muestran?)

Los Diagramas de Actividades expresan:

Conjunto de actividades Qu hacen las actividades?

En que orden se ejecutan? Cundo ocurren?

Dnde ocurren? Quin las ejecuta?

Qu insumos requieren? 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 Accin Unin
(Fork / Split) (Join)

Inicio

Eje de
Actividad o
Transicin

Fin

Mezcla
Decisin (Choose (Merge)
Nodo / Branch)
Objeto o
Parmetro
de Entrada
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)

Swimlanes
Final de (Carrileras /
Flujo 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 Envo de Recepcin


recepcin de seales Seal de Seal
(Evento) (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 Anlisis Legal * id


nombre
(Cliente) (Analista) apellido 1
cedula MRecaudo
...
workflow_id id
nombre
Notificar Notificar 0..n tipo
Aprobacin Rechazo ...

(Secretaria) [aprobar] [else] (Secretaria)

BD
Recepcin de * Preparar
Documentos Contrato
(Secretaria) (Dpto. Legal)

[else]

Anlisis Notificar Firma de


por Junta Aprobacin Contrato
(Junta) [aprobar] (Secretaria) (Cliente)

Proceso de Negocio: Proceso de Contratacin


29
Modelado con un Diagrama de Actividades
Ejemplo de Workflow (2)
(Ejemplo tomado de CLEDA)
Recibir Solicitud MDocOferta
de Inscripcin
(Cliente)
Guardar id
Temporalmente nombre
(Analista) apellido 1
cedula MRecaudo
Notificar
Rechazo ...
(Secretaria) workflow_id id
nombre
Aceptar
0..n tipo
(Analista)
...
Rechazar
(Analista)

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

Aceptar
(Junta)
Recibir Notificar
Recaudo (Auto) Aprobacin
(Secretaria) (Secretaria)

Recaudos Recaudos
Faltantes Completos
(Sistema) (Sistema)

Proceso de Negocio: Proceso de Contratacin


30
Modelado con Redes de Petri
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

MVC

Hibernate
CledaMVC

JDBC
Navegador
(Struts1) Documentos
WEB
o
BD
Echo2

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 38
menos a los estudiantes

También podría gustarte