Diagrama de máquina de estado e diagrama de gráfico de estado em UML

O que é um diagrama de máquina de estados?

Diagrama de Estado são usados ​​para capturar o comportamento de um sistema de software. Os diagramas de máquina de estados UML podem ser usados ​​para modelar o comportamento de uma classe, um subsistema, um pacote ou até mesmo um sistema inteiro. Também é chamado de Statechart ou diagrama de transição de estado.

O que é um diagrama de estado?

Os diagramas Statechart nos fornecem uma maneira eficiente de modelar as interações ou comunicações que ocorrem dentro das entidades externas e de um sistema. Esses diagramas são usados ​​para modelar o sistema baseado em eventos. O estado de um objeto é controlado com a ajuda de um evento. Os diagramas Statechart são usados ​​para descrever vários estados de uma entidade dentro do sistema aplicativo.

Há um total de dois tipos de diagrama de máquina de estados na UML:

1. Diagrama de Máquina de Estado Comportamental

  • Ele captura o comportamento de uma entidade presente no sistema.
  • É usado para representar a implementação específica de um elemento.
  • O comportamento de um sistema pode ser modelado usando diagrama de máquina de estado comportamental em OOAD.

2. Diagrama de máquina de estado de protocolo

  • Esses diagramas são usados ​​para capturar o comportamento de um protocolo.
  • Representa como o estado do protocolo muda em relação ao evento. Também representa mudanças correspondentes no sistema.
  • Eles não representam a implementação específica de um elemento.

Por que diagrama de máquina de estados?

O diagrama Statechart é usado para capturar o aspecto dinâmico de um sistema. Diagramas de máquina de estado são usados ​​para representar o comportamento de um aplicativo. Um objeto passa por vários estados durante sua vida útil. A vida útil de um objeto permanece até que o programa seja encerrado. O objeto passa de vários estados dependendo do evento que ocorre dentro do objeto. Cada estado representa algumas informações exclusivas sobre o objeto.

Os diagramas Statechart são usados ​​para projetar sistemas interativos que respondem a eventos internos ou externos. O diagrama Statechart em UML visualiza o fluxo de execução de um estado para outro estado de um objeto.

Representa o estado de um objeto desde a criação de um objeto até que o objeto seja destruído ou encerrado.

O objetivo principal de um diagrama de gráfico de estado é modelar sistemas interativos e definir cada estado de um objeto. Diagramas Statechart são projetados para capturar o comportamento dinâmico de um sistema de aplicação. Esses diagramas são usados ​​para representar vários estados de um sistema e entidades dentro do sistema.

Notação e símbolo para diagrama de máquina de estados (diagrama Statechart)

A seguir estão as várias notações usadas em todo o diagrama do gráfico de estado. Todas essas notações, quando combinadas, formam um único diagrama.

Notações do diagrama de estado UML
Notações de diagrama de estado UML

Estado inicial

O símbolo de estado inicial é usado para indicar o início de um diagrama de máquina de estados.

Estado final

Este símbolo é usado para indicar o fim de um diagrama de máquina de estados.

Caixa de decisão

Ele contém uma condição. Dependendo do resultado de uma condição de guarda avaliada, um novo caminho é seguido para execução do programa.

Transição

Uma transição é uma mudança de um estado para outro que ocorre devido a algum evento. Uma transição causa uma mudança no estado de um objeto.

Caixa de estado

É um momento específico na vida de um objeto. É definido usando alguma condição ou instrução dentro do corpo do classificador. É usado para representar qualquer situação estática e dinâmica.

É denotado por um retângulo com cantos arredondados. O nome de um estado está escrito dentro do retângulo arredondado.

O nome de um estado também pode ser colocado fora do retângulo. Isso pode ser feito no caso de estados compostos ou de submáquina. Pode-se colocar o nome de um estado dentro do retângulo ou fora do retângulo em uma caixa tabular. Não se pode realizar os dois ao mesmo tempo.

Um estado pode ser ativo ou inativo. Quando um estado está no modo de trabalho, ele fica ativo, assim que para de executar e transita para outro estado, o estado anterior torna-se inativo e o estado atual torna-se ativo.

Tipos de Estado

A Linguagem de Modelagem Unificada define três tipos de estados:

  • Estado simples
  • Eles não têm nenhum subestado.
  • estado composto
  • Esses tipos de estados podem ter um ou mais subestados.
  • Um estado composto com dois ou mais subestados é chamado de estado ortogonal.
  • Estado da submáquina
  • Esses estados são semanticamente iguais aos estados compostos.
  • Ao contrário do estado composto, podemos reutilizar os estados da submáquina.

Como desenhar um diagrama Statechart?

Os diagramas Statechart são usados ​​para descrever os vários estados pelos quais um objeto passa. Uma transição entre um estado para outro ocorre devido a algum evento desencadeado. Para desenhar um diagrama de estado em UML, deve-se identificar todos os estados possíveis de qualquer entidade específica.

O objetivo destes Diagramas UML é representar estados de um sistema. Os estados desempenham um papel vital nos diagramas de transição de estado. Todos os objetos essenciais, estados e eventos que causam mudanças dentro dos estados devem ser analisados ​​primeiro antes de implementar o diagrama.

As seguintes regras devem ser consideradas ao desenhar um diagrama de estado:

  1. O nome de uma transição de estado deve ser exclusivo.
  2. O nome de um estado deve ser facilmente compreensível e descrever o comportamento de um estado.
  3. Se houver vários objetos, apenas os objetos essenciais deverão ser implementados.
  4. Nomes próprios para cada transição e evento devem ser fornecidos.

Quando usar um diagrama de máquina de estados?

Diagramas de estado são usados ​​para implementar modelos de trabalho da vida real e sistemas orientados a objetos em profundidade. Esses diagramas são usados ​​para comparar a natureza dinâmica e estática de um sistema, capturando o comportamento dinâmico de um sistema.

Os diagramas Statechart são usados ​​para capturar as mudanças em várias entidades do sistema do início ao fim. Eles são usados ​​para analisar como um evento pode desencadear mudanças em vários estados de um sistema.

Diagramas de caracteres de estado são usados:

  1. Modelar objetos de um sistema.
  2. Modelar e implementar sistemas interactivos.
  3. Para exibir eventos que desencadeiam alterações nos estados.

Exemplo de máquina de estado

O gráfico de exemplo do diagrama de estado a seguir representa o processo de autenticação do usuário.

Diagrama de estado UML

Diagrama de estado UML

Há um total de dois estados, e o primeiro estado indica que o OTP deve ser inserido primeiro. Depois disso, o OTP é marcado na caixa de decisão, se estiver correto, ocorrerá apenas a transição de estado e o usuário será validado. Se o OTP estiver incorreto, a transição não ocorrerá e retornará novamente ao estado inicial até que o usuário insira o OTP correto, conforme mostrado no exemplo do diagrama de máquina de estado acima.

Diagrama de máquina de estado vs. fluxograma

A seguir estão as principais diferenças entre o diagrama de estado e o fluxograma

Diagrama de máquina de estado Fluxograma
Representa vários estados de um sistema. O Fluxograma ilustra o fluxo de execução do programa.
A máquina de estados possui um conceito WAIT, ou seja, esperar por uma ação ou evento. O Fluxograma não trata de esperar por um conceito.
Máquinas de estado são usadas para um sistema em execução ao vivo. O fluxograma visualiza sequências de ramificação de um sistema.
A máquina de estados é um diagrama de modelagem. Um fluxograma é um fluxo de sequência ou um diagrama DFD.
A máquina de estados pode explorar vários estados de um sistema. O fluxograma lida com caminhos e controla o fluxo.

Resumo

  • Os diagramas Statechart também são chamados de diagramas de máquina de estados.
  • Esses diagramas são usados ​​para modelar o sistema baseado em eventos.
  • O estado de uma entidade é controlado com a ajuda de um evento.
  • Há um total de dois tipos de diagramas de máquina de estado: 1) Diagrama de máquina de estado comportamental 2) Diagrama de máquina de estado de protocolo
  • O diagrama Statechart é usado para capturar o aspecto dinâmico de um sistema.
  • Um estado é um momento específico na vida de um objeto.