Lenguaje de modelado unificado (UML) | Diagramas de estado

Un diagrama de estado se utiliza para representar la condición del sistema o parte del sistema en instancias finitas de tiempo. Es un diagrama de comportamiento y representa el comportamiento usando transiciones de estado finito. Los diagramas de estado también se denominan máquinas de estado y diagramas de gráficos de estado . Estos términos a menudo se usan indistintamente. De manera simple, se utiliza un diagrama de estado para modelar el comportamiento dinámico de una clase en respuesta al tiempo y los estímulos externos cambiantes. Podemos decir que todas y cada una de las clases tienen un estado, pero no modelamos cada clase usando diagramas de estado. Preferimos modelar los estados con tres o más estados.

Usos del diagrama de estado –

  • Lo usamos para indicar los eventos responsables del cambio de estado (no mostramos qué procesos causan esos eventos).
  • Lo usamos para modelar el comportamiento dinámico del sistema.
  • Comprender la reacción de objetos/clases a estímulos internos o externos.

En primer lugar, comprendamos qué son los diagramas de comportamiento . Hay dos tipos de diagramas en UML:

  1. Diagramas de estructura: se utilizan para modelar la estructura estática de un sistema, por ejemplo, diagrama de clase, diagrama de paquete, diagrama de objeto, diagrama de implementación, etc.
  2. Diagrama de comportamiento: se utiliza para modelar el cambio dinámico en el sistema a lo largo del tiempo. Se utilizan para modelar y construir la funcionalidad de un sistema. Entonces, un diagrama de comportamiento simplemente nos guía a través de la funcionalidad del sistema utilizando diagramas de casos de uso, diagramas de interacción, diagramas de actividad y diagramas de estado.

Diferencia entre diagrama de estado y diagrama de flujo:
el propósito básico de un diagrama de estado es representar varios cambios en el estado de la clase y no los procesos o comandos que causan los cambios. Sin embargo, un diagrama de flujo, por otro lado, representa los procesos o comandos que en la ejecución cambian el estado de la clase o un objeto de la clase.

UML-State-Diagram

Figura: un diagrama de estado para la verificación del usuario

El diagrama de estado anterior muestra los diferentes estados en los que existe el subsistema o clase de verificación para un sistema en particular.

Componentes básicos de un diagrama de estado:

  1. Estado inicial: usamos un círculo relleno de negro para representar el estado inicial de un sistema o una clase.

    UML-State-Diagram

    Figura – notación de estado inicial
  2. Transición: usamos una flecha sólida para representar la transición o el cambio de control de un estado a otro. La flecha está etiquetada con el evento que provoca el cambio de estado.

    UML-State-Diagram

    Figura – transición
  3. Estado: usamos un rectángulo redondeado para representar un estado. Un estado representa las condiciones o circunstancias de un objeto de una clase en un instante de tiempo.
    UML-State-Diagram
    Figura – notación de estado
  4. Bifurcación: usamos una barra rectangular sólida redondeada para representar una notación de bifurcación con una flecha entrante desde el estado principal y flechas salientes hacia los estados recién creados. Usamos la notación de bifurcación para representar un estado que se divide en dos o más estados concurrentes.

    UML-State-Diagram

    Figura: un diagrama que usa la notación de horquilla
  5. Unirse: usamos una barra rectangular sólida redondeada para representar una notación de unión con flechas entrantes desde los estados de unión y una flecha saliente hacia el estado objetivo común. Usamos la notación conjunta cuando dos o más estados convergen simultáneamente en uno cuando ocurre un evento o eventos.

    UML-State-Diagram

    Figura: un diagrama que usa la notación de unión
  6. Transición automática: usamos una flecha sólida que apunta hacia el estado mismo para representar una transición automática. Puede haber escenarios en los que el estado del objeto no cambie ante la ocurrencia de un evento. Usamos auto transiciones para representar tales casos.

    UML-State-Diagram

    Figura: notación de autotransición
  7. Estado compuesto: también usamos un rectángulo redondeado para representar un estado compuesto. Representamos un estado con actividades internas usando un estado compuesto.

    UML-State-Diagram

    Figura – un estado con actividades internas
  8. Estado final: usamos un círculo relleno dentro de una notación circular para representar el estado final en un diagrama de máquina de estado.

    UML-State-Diagram

    Figura – notación de estado final

Pasos para dibujar un diagrama de estado –

  1. Identificar el estado inicial y los estados finales finales.
  2. Identificar los posibles estados en los que puede existir el objeto (los valores límite correspondientes a diferentes atributos nos guían en la identificación de diferentes estados).
  3. Etiquete los eventos que desenstringn estas transiciones.

Ejemplo: diagrama de estado para un pedido en línea:

UML-State-Diagram

Figura: diagrama de estado para un pedido en línea

Los diagramas UMI que dibujamos dependen del sistema que pretendemos representar. Este es solo un ejemplo de cómo se vería un sistema de pedidos en línea:

  1. En el caso de que se reciba un pedido, pasamos de nuestro estado inicial al estado de pedido sin procesar.
  2. A continuación, se comprueba el pedido no procesado.
  3. Si se rechaza el pedido, pasamos al estado Pedido rechazado.
  4. Si se acepta el pedido y tenemos los artículos disponibles, pasamos al estado de pedido completo.
  5. Sin embargo, si los artículos no están disponibles, pasamos al estado de Pedido pendiente.
  6. Una vez cumplida la orden, transitamos al estado final. En este ejemplo, fusionamos los dos estados, es decir, pedido cumplido y pedido rechazado en un estado final.

Nota: aquí también podríamos haber tratado el pedido cumplido y el pedido rechazado como estados finales por separado.

Referencia –
Diagrama de estado – IBM

Este artículo es una contribución de Ankit Jain . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *