Diagrama de Estados
Los Diagramas de Estados representan autómatas de estados finitos, desde el p.d.v. de los estados y las transiciones
Son útiles sólo para los objetos con un comportamiento significativo
El formalismo utilizado proviene de los Statecharts (Harel)
Cada objeto está en un estado en cierto instante
El estado está caracterizado parcialmente por los valores algunos de los atributos del objeto
El estado en el que se encuentra un objeto determina su comportamiento
Cada objeto sigue el comportamiento descrito en el D. de Estados asociado a su clase
Los D. De Estados y escenarios son complementarios
… Diagrama de Estados
Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetos
Los D. de Estados son grafos dirigidos
Los D. De Estados 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
Estados y Transiciones
A
B
Evento [condición] / Acción
… Diagrama de Estados
Tanto el evento como la acción se consideran instantáneos
Ejemplo de un Diagrama de Estados para la clase persona:
… Diagrama de Estados
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición:
A
B
Evento [condición] / OtroObjeto.Operación
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
… Acciones
on evento: acción
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
Generalización de Estados
Ejemplo:
A
B
C
e1
e2
e2
Quedaría como:
C
a
b
A
B
e1
e2
Generalización de Estados
Las transiciones de entrada deben ir hacia subestados específicos:
C
a
b
A
B
e1
e2
e0
… 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:
C
a
b
A
B
e1
e2
e1
e0
… 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
… Generalización de Estados
Ejemplo:
… Generalización de Estados
Ejemplo:
… Generalización de Estados
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)
Página siguiente |