You are on page 1of 31

03/06/2014

Modelo Dinámico
Diagramas de Estado y de Actividades

¿Qué hemos visto?


• Modelo de Casos de Uso
• Modelo de Clases
• Modelo de Interacción
– Diagrama de Comunicación
– Diagrama de Secuencia

¿Cómo se complementan?

11058 – Sistemas de Información II – Universidad Nacional de Luján 2

1
03/06/2014

Pregunta
• Dos diagramas de interacción que
representan dos escenarios distintos
¿pueden mostrar objetos de la misma
clase recibiendo el mismo mensaje, pero
respondiendo de forma distinta?
• ¿Si? ¿No? ¿Estaría bien? ¿Serían
inconsistentes?

11058 – Sistemas de Información II – Universidad Nacional de Luján 3

Ejemplo
j:Juego j1:Jugador j2:Jugador :Mazo :Carta

tuTurno() unaCarta = getCartaCima()


c = getCarta()

evaluar()
tirarCarta(unaCarta)

unaCarta =
tuTurno() getCartaCima() c = getCarta()
evaluar()

cortar(unaCarta) cortar(unaCarta) tirarCarta(unaCarta)

11058 – Sistemas de Información II – Universidad Nacional de Luján 4

2
03/06/2014

Diagrama de estado

11058 – Sistemas de Información II – Universidad Nacional de Luján 5

Diagrama de Estados

• Los Diagramas de Estados • Cada objeto está en un estado en cierto


representan autómatas de instante
estados finitos, desde el punto • El estado está caracterizado parcialmente
de vista de los estados y las por los valores algunos de los atributos
transiciones del objeto

• Son útiles sólo para los • El estado en el que se encuentra un


objetos con un objeto determina su comportamiento
comportamiento significativo
• Cada objeto sigue el comportamiento
descrito en el Diagrama de Estados
• El formalismo utilizado asociado a su clase
proviene de los Statecharts
(Harel) • Los Diagramas De Estados y escenarios
son complementarios

3
03/06/2014

… Diagrama de Estados
• son autómatas jerárquicos que permiten
expresar concurrencia, sincronización y
jerarquías de objetos
• son grafos dirigidos
• de UML son deterministas
• Los estados inicial y final están diferenciados
del resto
• La transición entre estados es instantánea y se
debe a la ocurrencia de un evento

Diagrama de Estados
• “Se usa para mostrar la historia de
la vida de un objeto de una clase,
los eventos que causan una
transición de un estado a otro y las
acciones que resultan de un cambio
de estado”

4
03/06/2014

Estado
“Es una de las posibles situaciones en la cual
un objeto puede existir y representa una
combinación de todas las propiedades de un
objeto”

Estado
Cuando se está en un estado se pueden ejecutar
actividades que requieren de un tiempo de
ejecucion mayor que el instantáneo que
transcurre cuando se produce la transición hacía
él. También pueden validarse restricciones, que
de incumplirse provocan que el objeto salga de
ese estado.

Nombre del estado

Comportamiento interno
Provoca una reacción interna, pero no
Transiciones internas cambia el estado del objeto

5
03/06/2014

Evento
“Un evento es un hecho que ocurre en algún
momento y que es de importancia para la
aplicación”
Internos Externos Temporales

Condición guardiana
“Una condición guardián es una expresión
booleana de los valores de los atributos. Permite
transiciones sólo si la condición es true”
Se encierra entre [ ]

Acción de una transición


“Una acción es una operación que se ejecuta
instantáneamente y es no interrumpible”

Los nombres se muestran precedidas por un /

Transición
“Es una relación entre dos estados que indica que cuando
el evento ocurra pasa del estado anterior al siguiente.”

Es una flecha con orientación hacía el estado


siguiente, con una etiqueta para el evento.

6
03/06/2014

Para especificar una transición se sigue


el siguiente formato:

<Evento> [[Condición guardiana]][/Acción]

… Diagrama de Estados
• Estados y Transiciones

Evento [condición] / Acción

A B

Tanto el evento como la acción se


consideran instantáneos

14

7
03/06/2014

… Acciones
• Se puede especificar el ejecutar una acción como
consecuencia de entrar, salir, estar en un estado, o
por la ocurrencia de un evento

estado A
entry: acción por entrar
exit: acción por salir
do: acción mientras en estado
on evento: acción

15

8
03/06/2014

Clasificador de Atributo
Estático No cambia de valor en el tiempo por lo tanto no
puede ser actualizado. El único evento que lo afecta
es el que provoca la creación de la clase que como
consecuencia le da valor.
Dinámico Son afectados por otros eventos que son los que
hacen que cambie de valor.

Derivado Cambian cuando se modifican otros atributos.


Estos otros atributos integran la fórmula de
derivación y pueden pertenecer o no a la clase a la
que pertenece el atributo derivado.

Atributos Dinámicos
Cardinales El efecto en el atributo es el incremento
/decremento en 1 o una cantidad dada. Identificar
los eventos que provocan el incremento,
decremento o reinicio de su valor.
Caracterís El atributo adquiere un valor que es independiente
ticos de un del valor que haya tenido con anterioridad. Hay que
estado identificar evento que provoca el cambio.
Pertenecie Toman valor en un dominio limitado. El nuevo
ntes a una valor dependen del valor anterior, es decir, estando
situación en un estado dado solo se pueden tomar
determinados valores.

9
03/06/2014

Reglas para construir el DTE

• Si el atributo es del tipo cardinal, se identifiquen los


eventos que lo afectan teniendo en cuenta cuáles
aumenta su valor, cuáles lo decrementan y cuáles lo
reinicializan. Se deben agrupar todos los eventos que
tengan el mismo efecto y el mismo tipo de acción
(incrementadora, decrementadora y reinicializadora), y
definir un estado que refleje esta situación. Si hay más
de un evento en está unión, se relacionan usando el
operador OR.

FUENTE PARA DEFINIR ESTADOS ANIDADOS

Reglas para construir el DTE

• Si el atributo se clasifica del tipo


“característico de un estado”, una vez
identificados los eventos y el efecto que
provocan, se agrupan usando OR los eventos
que provocan una misma forma de obtener el
nuevo valor, y se define un estado para ellos.

10
03/06/2014

Reglas para construir el DTE

• Si el atributo es del tipo “perteneciente a una


situación”, se identifican todos los eventos, el
nuevo valor que provocan y el valor del
atributo para el cual ese evento tiene sentido.
Se definen tantos estados, como posibles
valores existan.

FUENTE PARA DEFINIR ESTADOS ANIDADOS

Notación Estado inicial

Estado 1

entry/ Acción de entrada 1


do/ Acción interna 1
event Evento 1/ Acción en respuesta a evento 1
exit/ Acción de salida 1

Evento que provoca transición[ Condición


necesaria para el cambio de estado ] /
Acción instantánea
Estado 2

entry/ Acción de entrada 2


do/ Acción interna 2
event Evento 2/ Acción en respuesta a evento 2
exit/ Acción de salida 2

Estado final

11
03/06/2014

Ejemplo

Cliente se inscribe
Cliente retira inscripción
Cliente válido Registrando préstamo
Cliente pide libro
entry/ CambiarEstado(´Válido´) do/ IncrementarCantidadPréstamos(Cantidad)

ChequerFechaFinSanción()=True

Cliente moroso

entry/ CambiarEstado(´Moroso´)
entry/ ActualizaeFechaFinSanción(Fecha)
Cliente se excede de do/ ChequearFechaFinSanción()
plazo de entrega exit/ ActualizaFechaFinSanción(0)

Generalización de Estados
• Podemos reducir la complejidad de estos
diagramas usando la generalización de estados
• Distinguimos así entre superestado y
subestados
• Un estado puede contener varios subestados
disjuntos
• Los subestados heredan las variables de
estado y las transiciones externas

24

12
03/06/2014

Generalización de Estados
• Ejemplo:

e1
A B

e2
e2

25

Generalización de Estados
• Quedaría como:

e1
Aa b
B

e2

C
26

13
03/06/2014

… Generalización de Estados

• Las transiciones de entrada deben ir hacia


subestados específicos:

e1
Aa Bb

e2

e0

27

… Generalización de Estados

• Es preferible tener estados iniciales de entrada a


un nivel de manera que desde los niveles
superiores no se sepa a qué subestado se entra:

e1
Aa b
B

e2 C
e0

28

14
03/06/2014

… Generalización de Estados
• La agregación de estados es la
composición de un estado a partir de
varios estados independientes
• La composición es concurrente por lo que
el objeto estará en alguno de los estados
de cada uno de los subestados
concurrentes

29

… Generalización de Estados

• Ejemplo:

e1
e1

30

15
03/06/2014

Historia
• Por defecto, los autómatas no tienen memoria
• Es posible memorizar el último subestado
visitado para recuperarlo en una transición
entrante en el superestado que lo engloba
• También es posible la memorización para
cualquiera de los subestados anidados
(aparece un * junto a la H)

32

… Historia
• Ejemplo:
A

d2
B

in
D x y
out
d1
C

H*
33

16
03/06/2014

… Historia

• Ejemplo:

Enjuague Lavado Secado

cerrar puerta abir puerta

Espera

34

Destrucción del Objeto


• La destrucción de un objeto es efectiva
cuando el flujo de control del autómata
alcanza un estado final no anidado
• La llegada a un estado final anidado
implica la “subida” al superestado
asociado, no el fin del objeto

35

17
03/06/2014

… Destrucción de Objeto
• Ejemplo:

crash
En vuelo

despegar aterrizar

Crear(matricula)
En tierra

36

Transiciones temporizadas
• Las esperas son actividades que tienen
asociada cierta duración
• La actividad de espera se interrumpe cuando el
evento esperado tiene lugar
• Este evento desencadena una transición que
permite salir del estado que alberga la actividad
de espera. El flujo de control se transmite
entonces a otro estado

37

18
03/06/2014

… Transiciones temporizadas
• Ejemplo:
A

/ Abrir ranura

esperar dinero después de


30 segundos anular
entry: Mostrar mensaje
exit: cerrar ranura transacción

Depósito efectuado

B
38

Ejercicio
• Dibujar un diagrama de estados de un
teléfono de línea

11058 – Sistemas de Información II – Universidad Nacional de Luján 39

19
03/06/2014

Diagrama de
Actividad

11058 – Sistemas de Información II – Universidad Nacional de Luján 40

Diagrama de Actividad
• El Diagrama de Actividad es una
especialización del Diagrama de Estado,
organizado respecto de las acciones y usado
para especificar:
– Un método
– Un caso de uso
– Un proceso de negocio (Workflow)

• Las actividades se enlazan por transiciones


automáticas. Cuando una actividad termina se
desencadena el paso a la siguiente actividad

41

20
03/06/2014

Ejemplos

42

... Ejemplos

43

21
03/06/2014

... Ejemplos

44

El artefacto
• La esencia del diagrama de actividades
consiste en mostrar una secuencia de
acciones o actividades. Ya sea un
proceso, un procedimiento, un conjunto de
eventos de un caso de uso o los de un
algoritmo.

22
03/06/2014

El artefacto
• Para mostrar los flujos más básicos sería
suficiente utilizar dos elementos del
diagrama: las actividades o acciones y las
transiciones. En otras palabras, los pasos del
proceso y el orden en que estos ocurren.

De ahí podemos agregar más elementos


para modelar flujos cada vez más complejos.
Por ejemplo, un elemento básico a
representar nos indicaría explícitamente cuál
es inicio y fin del flujo.

SIMBOLOS UTILIZADOS EN
DIAGRAMAS DE ACTIVIDADES

23
03/06/2014

NOTACION
• ESTADOS DE ACCION
• TRANSICIONES SIMPLES
• ESTADOS DE ACCION COMPUESTAS
• ESTADOS DE ACCION INICIALES Y
FINALES
• DESISIONES
• ANDARIVELES

ESTADOS DE ACCION SIMPLE

• Tiene una evento de entrada y al menos uno de


salida

24
03/06/2014

TRANSICIONES SIMPLES

• LAS TRANSICIONES SIMPLES REPRESNTAN


EL PASO DE UNA ACTIVIDAD A OTRA.
• LAS TRANSICIONES SIEMPRE SE DISPARAN
DE FORMA INMEDIATA.

ESTADOS DE NIVEL COMPUESTO


• SI RESULTA NECESARIO SE PUEDEN
CONSTRUIR DIAGRAMAS DE
ACTIVIDAD JERARQUICOS, DONDE
UNA ACTIVIDAD DE UN DIAGRAMA SEA
DESCOMPUESTA EN
SUBACTIVIDADES,
REPRESENTANDOSE ESTO EN UN
DIAGRAMA DE NIVEL INFERIOR

25
03/06/2014

ESTADOS DE ACCION INICIALES Y


FINALES

• EL INICIO DE LAS ACCIONES DE UN DIAGRAMA DE


ACIVIDADES SE DA A PARTIR DE UNA
PSEUDOACCION
• UNA TRANSICION A UNA ACCION FINAL
REPRESENTA LA FINALIZACION DEL DIAGRAMA DE
ACTIVIDAD

DECISIONES

• UN DIAGRAMA DE ACTIVIDADES EXPRESA


UNA DECISION CUANDO UNA CONDICION
ES USADA PARA INDICAR DIFERENTES
TRANSICIONES.

26
03/06/2014

ANDARIVELES

• LOS ANDARIVELES SE USAN PARA


ORGANIZAR LAS RESPONSABILIDADES DE
LAS ACTIVIDADES
• USUALMENTE CORRESPONDE A UNIDAES
ORGANIZACIONALES

ANDARIVELES
Pasaj ero Vendedor Airline

Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo

Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje

Emitir
billete

27
03/06/2014

TRANSICIONES CONCURRENTES

• PUEDE
TENER
MUCHAS
ACCIONES
ORIGEN Y
MUCHAS
ACCIONES
DESTINO

Ejemplo: Proceso de creación de un


Documento
Posible secuencia para este proceso:
1. Abrir la aplicación para procesamiento de textos.
2. Crear un archivo.
3. Guardar un archivo con un nombre único en una carpeta.
4. Teclear el documento.
5. Si se necesitan ilustraciones, se abre la aplicación relacionada, se generan los
gráficos y se colocan en el documento.
6. Si se necesita una hoja de cálculo, se abre aplicación relacionada, se crea la hoja
correspondiente y se pone en el documento.
7. Se guarda el archivo.
8. Se imprime el documento.
9. Se sale de la aplicación de oficina.

28
03/06/2014

DIAGRAMA DE ACTIVIDADES
EJEMPLO 1

29
03/06/2014

… Otro Ejemplo (con swim lines)


Pasajero Vendedor Airline

Solicitar pasaje
Verificar
existencia vuelo

Dar detalles vuelo

Informar alternativas
y precios
Seleccionar vuelo

Solicitar pago Reservar plazas

Confirmar
Pagar pasaje plaza reservada

Emitir billete

60

… Otro ejemplo

30
03/06/2014

Swim lines horizontales

Ultimo Ejemplo
[no hay café] [no zumo]
Buscar Bebida
[hay café [hay zumo]

Poner café en filtro Añadir agua al depósito Agarrar taza

Poner filtro en máquina Agarrar zumo

Encender máquina
/ cafetera.On
Café en preparación

indicador de fin
Servir café
Beber

31