Estados

Solo disponible en BuenasTareas
  • Páginas : 7 (1586 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de marzo de 2011
Leer documento completo
Vista previa del texto
Los diagramas de estados son una técnica conocida para describir el comportamiento de un sistema. Describen todos los estados posibles en los que puede entrar un objeto particular y la manera en que cambia el estado del objeto, como resultado de los eventos que llegan a él. En la mayor parte de las técnicas OO, los diagramas de estados se dibujan para una sola clase, mostrando el comportamientode un solo objeto durante todo su ciclo de vida.
Existen muchas formas de diagramas de estados, cada una con semántica ligeramente diferente. La más popular que se emplea en las técnicas de OO se basa en la tabla de estados de David Harel (Vol. 8). OMT fue quien la usó por primera vez para los métodos de OO y fue adoptada por Grady Booch en su segunda edición (1994).
La Figura 8-1 muestra undiagrama de estados de UML para un pedido del sistema de proceso de pedidos que presenté antes. El diagrama indica los diversos estados de un pedido.
Comenzamos en el punto de partida y mostramos una transición inicial al estado de Comprobación. Esta transición está etiquetada como "/obtener el primer artículo". La sintaxis de una etiqueta de transición tiene tres partes, las cuales son optativas:Evento {Guard Guardia} / Acción. En este caso, sólo tenemos la acción "obtiene primer artículo." Una vez realizada tal acción, entramos al estado de Comprobación. Este estado tiene una actividad asociada con él, la cual se indica mediante una etiqueta con la sintaxis hace/actividad. En este caso, la actividad se llama" comprueba artículo".

Figura 8-1:Diagrama de estados
Nótese que utilizo lostérminos "acción" para indicar la transición, y "actividad" para indicar el estado. Aunque ambos son procesos, implementados característicamente mediante algún método sobre Pedido, se tratan de manera diferente. Las acciones se asocian con las transiciones y se consideran como procesos que suceden con rapidez y no se pueden interrumpir. Las actividades se asocian con los estados y pueden tardarmás. Una actividad puede ser interrumpida por algún evento.
Adviértase que la definición de "rápidamente" depende del tipo de sistema que se está produciendo. En un sistema de tiempo real, "Rápidamente" puede significar unas pocas instrucciones de código máquina; en los sistemas de información normales, "rápidamente" puede significar menos de unos cuantos segundos.
Cuando una transición no tieneevento alguno en su etiqueta, significa que la transición se da tan pronto como se completa cualquier actividad asociada con el estado dado. En este caso, ello significa tan pronto se termine la Comprobación. Del estado Comprobación se derivan tres transiciones. Las tres sólo tienen guardias en su etiqueta. Un guardia es una condición lógica que sólo devuelve "verdadero" o "falso." Una transición deguardia ocurre sólo si el guardia se resuelve como "verdadero".
Sólo se puede tomar una transición de un estado dado, por lo que tratamos de que los guardias sean mutuamente excluyentes para cualquier evento. En la Figura 8-1 abarcamos tres condiciones:
1. Si no hemos comprobado todos los artículos, tomamos el siguiente artículo y regresamos al estado de Comprobación para comprobado.
2. Sihemos comprobado todos los artículos y todos están en existencia, hacemos la transición al estado de Despachando.
3. Si hemos comprobado todos los artículos pero no todos están en existencia, hacemos la transición al estado Espera.
Veamos, en primer lugar, el estado Espera. Como no hay actividades para este estado, el pedido se detiene en él esperando un evento. Ambas transiciones del estado Esperase etiquetan con el evento Artículo recibido. Esto significa que el pedido espera hasta que detecta este evento. Llegado ese momento, evalúa los guardias de las transiciones y hace la transición apropiada (ya sea a Despachando o de vuelta a Espera).
Dentro del estado Despachando, tenemos actividad que inicia una entrega. También hay una transición simple no guardada, disparada por el evento...
tracking img