Setiembre, 2014 DIAGRAMA DE ESTADOS DIAGRAMA DE ESTADOS Un Diagrama de Secuencias describe parte de la dinmica de un sistema en trminos de la interaccin entre varios objetos del sistema, generalmente de distintas clases. El Diagrama de Estados permite describirla en trminos del ciclo de vida de un objeto de una clase, mostrando los estados que ste puede tener y los estmulos que dan lugar a los cambios de estado. DR.LUIS BOY CHAVIL DIAGRAMA DE ESTADOS-EJEMPLO Si una biblioteca adquiere un nuevo tem se crea un objeto tem (con la operacin de construccin de la clase), el cual queda inicialmente en el estado EnProceso en tanto el tem real es preparado para entrar en servicio. Si el tem est listo; se pone en el estante, y en el sistema se invoca la operacin exponer() para dejarlo en estado Disponible. DR.LUIS BOY CHAVIL DIAGRAMA DE ESTADOS-EJEMPLO En Disponible, el tem puede ser reservado o prestado a un lector, o sacado de circulacin para mantenimiento o baja definitiva; estas acciones y los cambios de estado correspondientes estn soportados por las operaciones: reservar(), prestar() y retirar(), respectivamente.
DR.LUIS BOY CHAVIL
DIAGRAMA DE ESTADOS-EJEMPLO Desde el estado Reservado se puede regresar a Disponible, a travs de borrarReserva() cuando un lector cancela su reserva, o bien se puede avanzar al estado Prestado, cuando el lector hace efectiva su reserva y se lleva el tem. Por su parte, el estado Prestado slo tiene una transicin de salida posible, hacia Disponible, cuando el lector devuelve el tem prestado. DR.LUIS BOY CHAVIL DIAGRAMA DE ESTADOS-EJEMPLO Finalmente, el ciclo de vida del objeto termina cuando, estando en el estado EnProceso, se le da de baja definitiva y se invoca a su destructor. La clase tem debe tener un atributo estado, para registrar el estado del objeto.
DR.LUIS BOY CHAVIL
DIAGRAMA DE ESTADOS SIMPLE
DR.LUIS BOY CHAVIL
DIAGRAMA DE ESTADOS-EJEMPLO Un tem se saca de circulacin con la operacin extraer(), slo cuando est en Disponible. Si se quisiera aplicar extraer() desde cualquier estado, para considerar la prdida del tem, habra que crear transiciones desde cada uno de los estados hasta el estado EnProceso, etiquetados con la operacin extraer(). Esto afectara de manera muy negativa su legibilidad. DR.LUIS BOY CHAVIL DIAGRAMA DE ESTADOS-JERARQUAS Consideremos la invocacin de extraer() en cualquier estado. Tendremos dos estados principales, EnProceso y Circulando, que representan respectivamente cundo el tem est en manos de la administracin de la biblioteca (o en situacin de ser dado de baja) y cundo est al servicio de los lectores.
DR.LUIS BOY CHAVIL
DIAGRAMA DE ESTADOS-JERARQUAS El estado Circulando tiene los sub- estados: inicial, Disponible, Reservado y Prestado. La transicin desde el sub-estado inicial a Disponible seala que ste es el sub- estado de destino cuando un tem entra al estado Circulando por efecto de la invocacin de la operacin exponer(). La operacin retirar(), en cualquiera de los sub-estados de Circulando, genera una transicin hacia el estado EnProceso. DIAGRAMA DE ESTADOS-JERARQUAS
DR.LUIS BOY CHAVIL
DIAGRAMA DE ESTADOS Escuela de Ingeniera De Sistemas