sábado, 18 de enero de 2014

Diagramas de estados - Parte 2 de 3





Sucesos y acciones

También puede agregar ciertos detalles a las líneas de transición. Puede indicar un suceso que provoque una transición (desencadenar un suceso), y la actividad de cómputo (la acción) que se ejecute y haga que suceda la modificación del estado.

A los sucesos y acciones los escribirá cerca de la línea de transición mediante una diagonal para separar un suceso desencadenado de una acción. En ocasiones un evento causará una transición sin una acción asociada, y algunas veces una transición sucederá dado que un estado finalizará una actividad (en lugar de hacerlo por un suceso). A este tipo de transición se le conoce como transición no desencadenada. La GUI (interfaz gráfica de usuario) con que interactúe le dará ejemplos de detalles de la transición. Por el momento, asumamos que la GUI puede establecerse en uno de tres estados:
  • lnicialización
  • Operación
  • Apagar


Cuando encienda su equipo, se ejecutará un proceso de arranque. Al encender la PC se desencadena un suceso que provoca que la GUI aparezca luego de una transición desde el estado de Inicialización, y el arranque es una acción que se realiza durante tal transición. Como resultado de las actividades en el estado de inicialiïación, la GUI entra al modo de Operación. Cuando desea apagar su PC, desencadena un suceso que provoca la transición hacia el estado de Apagado, y con ello la PC se apaga. La siguiente figura muestra el diagrama de estados que captura los estados y transiciones en la GUI.

Los estados y transiciones de una interfaz gráfica del usuario incluyen el desencadenamiento de eventos, acciones y transiciones no desencadenadas.


Condiciones de seguridad

La anterior secuencia de estados dc la GUI deja mucho que desear. Por ejemplo: si deja solo su equipo o si realizara alguna actividad en la que no tocará al ratón o al teclado, podría aparecer un protector de pantallas que evitaría el desgaste de su pantalla. Para decir esto en términos de cambio de estado, si ha pasado cierto tiempo sin que haya interacción con el usuario, la GUI hará una transición del estado Operación a un estado que no aparece en la figura anterior: el estado de Protector de pantallas.

El intervalo se especifica en el panel de control de su sistema operativo (Windows en este caso). Por Io general es de 15 minutos. Cualquier opresión de una tecla o movimiento del ratón provocará una transición del estado Protector de pantallas al estado Operación.

El intervalo de 15 minutos es una condición de seguridad: cuando se llega a ella, se realiza la transición. La figura 8.5 muestra el diagrama de estados de la GUI con el estado Protector de pantalla y la condición de seguridad añadida. Vea que la condición de seguridad se establece como expresión booleana.

El diagrama de estados para la GUI, con el estado Protector de pantalla y la condición de seguridad.
Subestados

Nuestro modelo de la GUI aún está algo vacío. El estado Operación, en particular, es mucho más sustancioso de lo que he indicado en las figuras anteriores.

Cuando la GUI está en el estado Operación, hay muchas cosas que ocurren tras bambalinas, aunque no sean particularmente evidentes en la pantalla. La GUI aguarda de forma constante a que usted haga algo (oprimir una tecla, mover el ratón u oprimir uno de sus botones). Luego, deberá registrar tales acciones y modificarlo que se despliega para reflejarlas en la pantalla (como mover el cursor cuando usted mueva el ratón, o mostrar una "a" cuando usted oprima la tecla "a”).

Con ello la GUI atravesará por varios cambios mientras se encuentre en el estado Operación. Tales cambios serán cambios de estado. Dado que estos estados se encuentran dentro de otros, se conocerán como subestados. Hay dos tipos de subestados: secuencial y concurrente.


Subestados secuenciales

Como su nombre lo indica, los subestados secuenciales suceden uno detrás de otro. Si retomamos los subestados mencionados con anterioridad dentro del estado Operación de la GUI, tendrá la siguiente secuencia:

A la espera de acción del usuario
Registro de una acción del usuario
Representación de la acción del usuario

La acción del usuario desencadena la transición a partir de A la espera de acción del usuario hacia Registro de una acción del usuario. Las actividades dentro del Registro trascienden de la GUI hacia la Representación de la acción del usuario. Después del tercer estado, la GUI vuelve a iniciar A la espera de acción del usuario. La figura siguiente le muestra cómo representar los subestados secuenciales dentro del estado Operación.

Subestados secuenciales dentro del estado Operación de la GUI.

Subestados concurrentes

Dentro del estado Operación, la GUl no sólo aguarda a que usted haga algo. También verifica el cronómetro del sistema y (posiblemente) actualiza el despliegue de una aplicación luego de un intervalo específico. Por ejemplo, una aplicación podria incluir un reloj en pantalla que tuviera que actualizar la GUl.

Todo esto sucede al mismo tiempo que la secuencia que ya indique. Aunque cada secuencia es, claro, un conjunto de subestados secuenciales, las dos secuencias son concurrentes entre sí. Puede representar la concurrencia con una línea discontinua entre los estados concurrentes, como en la figura siguiente.

Las subestados concurrentes suceden al mismo tiempo.  Una línea discontinua los separa.


La separación del estado Operación en dos componentes podría recordarle algo.
Recuerda cuando traté el tema de las adiciones y composiciones? Cuando cada componente sea parte de un “todo", tratará con una composición. Las partes concurrentes del estado Operación tienen el mismo tipo de relación con él. Por ello, el estado Operación es un estado Compuesto. Un estado que consta sólo de subestados secuenciales, también es un estado compuesto.


Espero haber ayudado en algo. Hasta la próxima oportunidad! 








4 comentarios:

  1. Respuestas
    1. Hola Anónimo, gracias por la visita y saludo!!
      Los mejores deseos! Hasta cualquier momento!!

      Eliminar
  2. Buenas noches, ante todo gracias por tus aportes, y preguntarte, que hay en base a UML 2.0 y los diagramas de estados y su uso en el nuevo software de rational; el RSA : rational software architect?

    ResponderEliminar
    Respuestas
    1. Hola Gerson Moises Purisaca Martinez, gracias por la visita y el aporte de tu consulta!!

      Esperemos que la comunidad pueda aportar con información valiosa!!

      Éxitos!! Hasta cualquier instante!

      Eliminar