Está en la página 1de 38

UML

Diagramas de Estados
Diagrama de Actividades
(UML Ilustrado)

Universidad de los Andes


Demin Gutierrez
Mayo 2011

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
deprimido

en
tratamiento
evaluacin
favorable
evaluacin
desfavorable

buena
noticia

tiempo

normal
(vivo)

mala
noticia

antidepresivos

anti depresivos
tiempo

triste
muerto
(sobredosis)

noticia
devastadora

mucho
menos
deprimido

mala
noticia

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

buena
noticia
contento
deprimido

en
tratamiento
evaluacin
favorable

buena
noticia

tiempo
noticia
devastadora

normal
(vivo)

evaluacin
desfavorable
estados

mala
noticia

tiempo

transiciones
eventos
muerto
(sobredosis)

antidepresivos

anti depresivos

triste
mucho
menos
deprimido

mala
noticia

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

Los estados
generalmente son
atmicos y se pasa al
siguiente estado por
medio de un evento

mala
noticia

triste

Las actividades no son atmicas y


generalmente se pasa a la siguiente
actividad cuando la actividad actual termina

Buscando
nios al
colegio

Preparando
Torta
Suena el
Timbre

Haciendo
Cena
Se van las
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
19
cierto orden preestablecido

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
(Fork / Split)

Accin

Unin
(Join)

Inicio
Eje de
Actividad o
Transicin
Fin

Nodo
Objeto o
Parmetro
de Entrada

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

Mezcla
(Merge)

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)

Notificar
Aprobacin
(Secretaria)

Anlisis Legal
(Analista)

[aprobar]

[else]

id
nombre
apellido
cedula
...
workflow_id

Notificar
Rechazo
(Secretaria)

MRecaudo

0..n

id
nombre
tipo
...

BD
Recepcin de
Documentos
(Secretaria)

Preparar
Contrato
(Dpto. Legal)

[else]
Anlisis
por Junta
(Junta)

[aprobar]

Notificar
Aprobacin
(Secretaria)

Proceso de Negocio: Proceso de Contratacin


Modelado con un Diagrama de Actividades

Firma de
Contrato
(Cliente)

29

Ejemplo de Workflow (2)


(Ejemplo tomado de CLEDA)
Recibir Solicitud
de Inscripcin
(Cliente)

MDocOferta
Guardar
Temporalmente
(Analista)
Notificar
Rechazo
(Secretaria)

id
nombre
apellido
cedula
...
workflow_id

Aceptar
(Analista)

MRecaudo

0..n
Rechazar
(Analista)

id
nombre
tipo
...

Firmar
Contrato
(Cliente)
Preparar
Contrato
(Dpto. Legal)

Notificar
Aprobacin
(Secretaria)

Recibir
Recaudo
(Secretaria)

Recaudos
Faltantes
(Sistema)

BD

Rechazar
(Junta)

Aceptar
(Junta)
(Auto)

Notificar
Aprobacin
(Secretaria)

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)
Aplicacin

Navegador
WEB

MVC
CledaMVC
(Struts1)
o
Echo2

CledaCore

Documentos

JDBC

CledaTags

Modelo
de
Dominio

Hibernate

Servlets

BD

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

También podría gustarte