Está en la página 1de 38

UML

Diagramas de Estados
Diagrama de
Actividades (UML
Ilustrado)

Universidad de los Andes


Demián Gutierrez
Mayo 2011
1
Diagramas de Estados

Diagramas de
Estados

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

3
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?

4
Diagramas de Estados
(Máquina de
Estados)
busca
buena
ayuda
noticia
contento
en deprimido
tratamiento buena
tiempo
evaluación noticia noticia
favorable normal devastadora
evaluación (vivo)
anti depresivos
desfavorable mala
tiempo
noticia
mala
noticia
triste

mucho menos
muerto menos deprimid
(sobredosis) deprimido o
antidepresivos antidepresivos
...
buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,
5
evaluación favorable, noticia devastadora, ad, ad, ad ...
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

6
Diagramas de Estados
(Máquina de
Estados)
busca
buena
ayuda
noticia
contento
en deprimido
tratamiento buena
tiempo
evaluación noticia noticia
favorable normal devastadora
evaluación (vivo)
desfavorable mala anti depresivos
estados tiempo
noticia
mala
transiciones noticia
eventos triste

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

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


7
evaluación favorable, noticia devastadora, ad, ad, ad ...
Diagrama de Estado
(Ejemplo)

Transición
¿Como implementaría 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)
Acción (Se ejecuta
cuando se dispara la Do / seleccionar
transición) producto es
una actividad
¿Cómo
implementaría esto? ¿Cómo implementaría
esto?

10
Diagrama de Estado
(Ejemplo)

11
Diagrama de Estado
(Ejemplo)

Estado Compuesto
¿Cómo implementaría
esto?

12
Diagrama de Estado
(Ejemplo)

Mostrar Ejemplo de
Implementación

Mostrar HTML de
los USB

13
Diagramas de Actividades

Diagramas de
Actividades

14
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?

15
Diagramas de Actividades
(¿Qué Muestran?)

¿Si estoy contento, eso es un


estado o una actividad?

¿Cómo paso de contento a


triste?
¿Cuál es la diferencia entre estar
contento o preparar una torta?

¿Qué sucede después de que


termino de preparar la torta?
16
Diagramas de Actividades
(¿Qué Muestran?)

contento triste
mala
noticia
Los estados
generalmente son
atómicos y se pasa al Las actividades no son atómicas y
siguiente estado por generalmente se pasa a la siguiente
medio de un evento actividad cuando la actividad actual termina

Buscando
Preparando Haciendo
niños 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 dinámica de una


sociedad de objetos o el flujo de control de una
operación (¿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? ¿Cuándo ocurren?

¿Dónde ocurren? ¿Quién las ejecuta?

¿Qué insumos requieren? ¿Qué productos generan?

20
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
21
Diagramas de Actividades
(Ejemplo)
Separación Acción Unión
(Fork /
Split) (Join)

Inicio

Eje de
Actividad o
Transición

Fin

Mezcla
Decisión (Choose
Nodo / Branch) (Merge)
Objeto o
Parámetro
de Entrada
Nodo Objeto o
Parámetro de Salida Recordar Etique2ta2
Diagramas de Actividades
(Ejemplo)

Acción

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)

Acción
Recurrente
(Iterativa)

Aclarar envío y Envío de Recepción


recepción de señales Señal de Señal
(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 Análisis Legal * id


nombre
(Cliente) (Analista) 1
apellido MRecaudo
cedula
... id
workflo nombre
Notificar Notificar w_id 0..n tipo
Aprobación Rechazo ...

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

BD
Preparar
Recepción de * Contrato
(Dpto. Legal)
Documentos
(Secretaria)

[else
]
Análisis Notificar Firma de
por Junta Aprobación
(Junta) [aprobar] (Secretaria) Contrato

(Cliente)

Proceso de Negocio: Proceso de Contratación


29
Modelado con un Diagrama de Actividades
Ejemplo de Workflow (2)
(Ejemplo tomado de CLEDA)
Recibir Solicitud MDocOferta
de Inscripción
(Cliente)
id
Guardar
Temporalment nombre
e (Analista) 1
apellido MRecaudo
Notificar
Rechazo cedula
(Secretaria) ... id
workflo nombre
Aceptar 0..n
(Analista) w_id tipo
...
Rechazar

(Analista)

Firmar
Contrato

(Cliente)
Notificar
Aprobación
Preparar
Contrato Rechazar
(Junta)
BD
(Dpto. Legal)
(Secretaria)

Aceptar

Recibir (Junta) Notificar


Recaudo (Auto) Aprobación
(Secretaria)
(Secretaria)

Recaudos Recaudos
Faltantes
Completos
(Sistema) (Sistema)

Proceso de Negocio: Proceso de Contratación


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

31
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>

32
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>
33
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>

34
Arquitectura (General)
(Ejemplo tomado de CLEDA)

Servlets Aplicación

Modelo
de
Dominio
CledaTags

MVC

Hibernate
CledaMVC

JDBC
Navegador (Struts1) Documentos
WEB o
BD
Echo2

CledaCor e Motor
de
Workf
low
(CledaFlow, CledaScheduler y
CledaBase)

Arquitectura a 3 capas bien definida.


Validada con la experiencia de los proyectos desarrollados.
En constante evolución y refinación.
35
Discusión

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

36
Gracia
s

¡Gracias!

37
(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)
(24) TODO: Revisar en el estándar el final de flujo y ver
si está bien utilizado
TODO: Investigar si existen buenas
prácticas en cuanto a los nombres de los
eventos, acciones, transiciones, etc

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...

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á
bastante interesante...
(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 38
menos a los estudiantes

También podría gustarte