Está en la página 1de 48

Diagrama de

estados
LIC. CARLA SALAZAR SERRUDO
DEPARTAMENTO DE INFORMÁTICA Y SISTEMAS
UMSS – JUNIO 2020

1
Diagrama de estados
Un diagrama de estado describe el comportamiento
dinámico de los objetos en el tiempo, modelando el ciclo
de vida de los objetos de cada clase.
Son útiles sólo para los objetos con un comportamiento
significativo
Un estado es un conjunto de valores del objeto que
tienen la misma respuesta ante un evento.
Eventos representan los cambios que un objeto puede
detectar: tiempo, condiciones, acciones

2
Diagrama de estados (2)

 Un diagrama de estados es un grafo dirigido de


estados y transiciones.
 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.
 Los estados se representan con rectángulos
redondeados y las transiciones con flechas dirigidas.

3
Diagrama de estados (3)
 Estados y Transiciones

Evento [condición] / Acción

A B

Tanto el evento como la acción se


consideran instantáneos

4
Ejemplo diagrama de estados
 Ejemplo de un diagrama de estados para la clase
persona:
contratar
en el paro en activo

perder empleo

jubilarse
jubilarse

jubilado

5
Diagrama de estados
Dada la clase Persona, se representarán sus
estados civiles

6
Ejemplo estados de coche

7
Ejemplo de estados libro

8
Ejemplo

9
Diagrama de estado de préstamo

alta baja

número_préstamos = 0
sin préstamos

prestar devolver[ número_prés tamos = 1 ]

número_prést amos > 0

c on préstamos

pres tar

devolver[ número_préstamos > 1 ]

10
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

11
Ej. Transiciones temporizadas
A

/ Abrir ranura

esperar dinero después de


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

Depósito efectuado

12
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

13
Generalización de estados (2)

e1
A B

e2
e2

14
Generalización de estados (3)

e1
Aa b
B

e2

15
Generalización de estados (4)
 Las transiciones de entrada deben ir hacia
subestados específicos:

e1
Aa Bb

e2

e0

16
Generalización de estados (5)
 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

17
Ejemplo de estados
secuenciales

18
Ejemplo de estados
concurrentes

19
Ejemplo estados concurrentes (2)

20
Ejemplo

21
Ejemplo

22
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
Procesar
Pedido

23
Transiciones
estado
inicioinicial

Planificar
Proceso

Asignar Tareas
transicionesiones

fin final
estado

24
Bifurcación

Planificar
Proceso

[ no hay materiales ] Volver a


Planificar

[ hay materiales ]

Asignar Tareas

25
Ejemplos bifurcación

26
División y unión

27
Ejemplo de división y unión

28
Ej. Diagrama actividades

29
Ejemplos.

30
Ejemplo

31
Diagramas de interacción
Interacción
Los objetos interactúan para realizar colectivamente los
servicios ofrecidos por las aplicaciones.
Los diagramas de interacción muestran cómo se
comunican los objetos en una interacción

Existen dos tipos de diagramas de interacción: el


Diagrama de Colaboración y el Diagrama de Secuencia

33
Diagramas de interacción
El Diagrama de Secuencia es más adecuado para
observar la perspectiva cronológica de las interacciones

El Diagrama de Colaboración ofrece una mejor visión


espacial mostrando los enlaces de comunicación entre
objetos

El D. de Colaboración puede obtenerse


automáticamente a partir del correspondiente
Diagrama de Secuencia (o viceversa)

34
Diagrama de Secuencia

Muestra la secuencia de mensajes entre objetos


durante un escenario concreto
Cada objeto tiene una línea de vida, dado por una
barra vertical.
El tiempo transcurre hacia abajo
Cuando existe demora entre el envío y la atención se
puede indicar usando una línea oblicua

35
Ej. Diagrama de Secuencia
:Cajero : cuent a
: Cliente
automático

tarjeta

solicitar número secret o

número

solicitar cantidad

cantidad

realizar transacción(cantidad)

saldo insuficiente

saldo insuficiente

36
Ej. Diagrama de Secuencia

37
Ej. Diagrama de Secuencia

38
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursión
creación y destrucción
de objetos

39
40
Ejercicio
Realice el diagrama de secuencia que muestre la hora en distintas
ciudades. Para ello se utilizará la clase Reloj que almacena internamente
la fecha y hora del sistema local (por ejemplo: time). Otra clase: HoraEn
se encarga de mostrar la hora local en cierto lugar del mundo
determinado en el momento de la creación. La información aparecerá
en pantalla cada vez que se actualice la hora, con el siguiente formato:
Cochabamba, 19:20:00
La clase Aplicación creará una instancia de la clase Reloj y tantas
instancias de HoraEn como desee. Para ello, habrá que indicar la ciudad y
la diferencia horaria ( entero entre 12 y -12). La clase Aplicación simulará
el paso del tiempo enviando el mensaje poner_en_hora a la instancia de
Reloj de manera continua

41
Solución reloj

42
Diagrama de Colaboración

Son útiles en la fase exploratoria para identificar


objetos
La distribución de los objetos en el diagrama
permite observar adecuadamente la interacción de
un objeto con respecto de los demás
La estructura estática viene dada por los enlaces; la
dinámica por el envío de mensajes por los enlaces

43
Mensajes

Un mensaje desencadena una acción en el objeto


destinatario
Un mensaje se envía de un objeto a otro,
numerando y poniendo dirección.

1:Mensaje B

44
Mensajes
Un mensaje se envía de manera condicionada:

[x>y] 1: Mensaje
B

45
Mensajes
Un mensaje que devuelve un resultado:

1: distancia:= mover(x,y)
B

46
Diagrama de Secuencia
Prestar Video
Encargado

: WInPréstamos :Socio :Video : Préstamo


: Encargado

prestar(video, socio)
verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

47
Diagrama de Colaboración
:Socio

:Video

2: verificar situación socio

1: prestar(video, socio) 3: verificar situación video


:WInPréstamos

5: entregar recibo
: Encargado 4: registrar préstamo

:Préstamo

48

También podría gustarte