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
Página siguiente |