Modelado de Comportamiento con Diagramas de Estados UML

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,57 KB

Introducción a los Diagramas de Estados

¿Qué es un Diagrama de Estados?

Un diagrama de estados muestra la secuencia de estados que un objeto (o interacción) puede atravesar durante su existencia. Es una herramienta fundamental en el modelado de software para describir el comportamiento dinámico de un sistema.

  • Se define en respuesta a los estímulos que el objeto vaya recibiendo, junto con las correspondientes respuestas y acciones.
  • Define un autómata de estados finitos: una máquina que tiene un número determinado de estados.
  • La máquina recibe eventos del mundo exterior y cada evento provoca que la máquina cambie de un estado a otro.

Un diagrama de estados representa los patrones de eventos, estados y transiciones de estados para una clase.

Diagramas de Estados y Máquinas de Estados Finitos

El diagrama de estados es un concepto fundamental en ciencias de la computación, siendo una representación gráfica de la máquina de estados finitos. Utiliza escenarios y el diagrama de estados siguiendo la notación de David Harel.

Diagramas de Estados en el Modelado Dinámico

En el contexto del modelado dinámico, la respuesta a un evento puede incluir un cambio de estado o el envío de otro evento. El diagrama de estados es una red de estados y eventos. El modelo dinámico consiste en múltiples diagramas de estados, uno por cada clase con comportamiento significativo.

Elementos Clave de un Diagrama de Estados

Un Diagrama de Estados muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación, junto con los cambios que permiten pasar de un estado a otro. Está representado principalmente por los siguientes elementos: estado, evento y transición.

Estado

Un Estado identifica un período de tiempo del objeto (no instantáneo) en el cual el objeto está esperando alguna operación, tiene un cierto estado característico o puede recibir cierto tipo de estímulos.

Acciones

Las Acciones permiten especificar la solicitud de un servicio a otro objeto como consecuencia de una transición. También se puede especificar la ejecución de una acción como consecuencia de entrar, salir o permanecer en un estado, o por la ocurrencia de un evento.

Transición

Una Transición representa un cambio de un estado a otro. Una transición se dispara por un evento y puede tener una condición de guarda y una acción asociada. Puede ser una relación entre un estado fuente y un estado destino. Existen transiciones más complejas que involucran múltiples fuentes o destinos (como las transiciones de bifurcación o unión).

Tipos de Eventos o Disparadores de Transición

  • Condición de guarda: Una condición que se evalúa como verdadera o falsa, y debe ser verdadera para que la transición ocurra.
  • Recepción de una señal: Una señal enviada por otro objeto en el modelo.
  • Recepción de un mensaje: Un mensaje recibido por el objeto.
  • Paso de tiempo: Un cierto período de tiempo transcurrido después de entrar al estado, o una hora y fecha particular.

Transiciones Temporizadas

Las Transiciones Temporizadas se refieren a esperas que son actividades con una cierta duración asociada. La actividad de espera se interrumpe cuando el evento esperado tiene lugar. Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado.

Conceptos Avanzados en Diagramas de Estados

Destrucción de un Objeto

La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado. La llegada a un estado final anidado implica la "subida" al superestado asociado, no el fin del objeto.

Generalización y Composició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.

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. Las transiciones de entrada deben ir hacia subestados específicos.

Entradas relacionadas: