Guia Completo do Diagrama de Estado com Exemplos

Um diagrama de máquina de estado é um comportamento que especifica a sequência de estados que um objeto visita durante seu tempo de vida em resposta a eventos, juntamente com suas respostas a esses eventos.

Estado

Um estado é uma condição durante a vida de um objeto durante o qual ele satisfaz alguma condição, realiza alguma atividade ou espera por algum evento externo.

Exemplo:

Características do Estado

  • Estado representam as condições dos objetos em determinados pontos no tempo.
  • Objetos (ou Sistemas) podem ser vistos movendo-se de estado para estado
  • Um ponto no ciclo de vida de um elemento de modelo que satisfaz alguma condição, onde alguma ação particular está sendo executada ou onde algum evento é esperado

A Figura abaixo mostra uma descrição detalhada de um estado. O estado é estendido com ações internas (faça, ajude). Ao contrário de outras ações, essas ações podem ser interrompidas. Se ”cancelar” acontecer, as ações do ou help são interrompidas. As ações internas são executadas após a seção “entry” e são abortadas quando o estado é deixado.

Estados iniciais e finais

  • O  estado inicial  de um diagrama de máquina de estados, conhecido como pseudoestado inicial, é indicado com um círculo sólido. Uma transição deste estado mostrará o primeiro estado real
  • O  estado final  de um diagrama de máquina de estados é mostrado como círculos concêntricos. Uma máquina de estado de malha aberta representa um objeto que pode terminar antes que o sistema termine, enquanto um diagrama de máquina de estado de malha fechada não tem um estado final; se for o caso, então o objeto vive até que todo o sistema termine.

Exemplo:

Evento

Um evento é a especificação de uma ocorrência significativa. Para uma máquina de estado, um evento é a ocorrência de um estímulo que pode desencadear uma transição de estado.

Transição

Uma transição é uma relação entre dois estados indicando que um objeto no primeiro estado irá, quando um conjunto especificado de eventos e condições forem satisfeitos, executar determinadas ações e entrar no segundo estado.

Uma transição tem: Componentes de transição que incluem (1) um estado de origem (2) gatilho de evento (3) uma ação (4) um estado de destino

Autotransição

Uma autotransição é uma transição cujos estados de origem e destino são os mesmos

Açao

Uma ação é uma computação executável, atômica (com referência à máquina de estado). As ações podem incluir operações, a criação ou destruição de outros objetos ou o envio de sinais para outros objetos (eventos)

Exemplo de biblioteca

A Figura abaixo mostra um diagrama de máquina de estado simples. Os principais componentes de tal diagrama são:

  • Estado: o exemplo tem dois estados: ”Em empréstimo” e ”Na prateleira”.
  • Estado inicial: este é o estado em que o sistema inicia.
  • Transições: as transições descrevem possíveis mudanças de estado. O diagrama tem duas transições: de ”Em empréstimo” para ”Na prateleira” e vice-versa.
  • Eventos: os eventos são rotulados nas transições. Eles representam o evento realizado em uma transição. Ao passar do estado ”Em empréstimo” para o estado ”Na prateleira”, o evento ”retornado()” é executado.

As ações são modificações das variáveis ​​de estado. No exemplo abaixo, as ações são especificadas nas transições. Quando a transição de “Na prateleira” para “Em empréstimo” é feita, os livros de variável de estado são reduzidos.

As ações podem ser especificadas em transições, mas também em estados. Nesse caso, pode-se especificar se a ação deve ser realizada ao entrar ou sair do estado. Na Figura abaixo mostra essas opções.

  • A primeira opção mostra a especificação das ações quando uma transição é realizada. A ação é executada na mudança de estado.
  • A segunda opção mostra a especificação de uma ação em um estado. A palavra-chave ”entry” indica que a ação deve ser executada quando o estado é inserido.
  • Finalmente, a terceira opção mostra como especificar que uma ação é executada ao sair de um estado. Observe a palavra-chave “exit”.

Notação de diagrama de máquina de estado simples

Diagrama de Máquina de Estado — Conceitos Avançados

Restrições

É possível adicionar restrições às transições. Considere a Figura abaixo. As restrições ”[not last copy]” e ​​”[last copy]” são usadas para distinguir as duas transições com o evento ”copyBorowed()”. A semântica é que uma transição é habilitada quando a restrição é verdadeira.

Subestados

Um estado simples é aquele que não tem subestrutura. Um estado que possui subestados (estados aninhados) é chamado de estado composto. Os subestados podem ser aninhados em qualquer nível. Uma máquina de estado aninhada pode ter no máximo um estado inicial e um estado final. Os subestados são usados ​​para simplificar máquinas de estado plano complexas, mostrando que alguns estados só são possíveis dentro de um contexto específico (o estado envolvente).

Exemplo de Subestado – Aquecedor

Diagramas de máquina de estado são frequentemente usados ​​para derivar casos de teste, aqui está uma lista de ideias de teste possíveis:

  • O estado ocioso recebe o evento Too Hot
  • Estado ocioso recebe evento Too Cool
  • O estado de resfriamento/inicialização recebe o evento Compressor Running
  • O estado de resfriamento/pronto recebe o evento de funcionamento do ventilador
  • O estado de resfriamento/funcionamento recebe o evento OK
  • O estado de resfriamento/execução recebe o evento de falha
  • O estado de falha recebe o evento Failure Cleared
  • Estado de aquecimento recebe evento OK
  • Estado de aquecimento recebe evento de falha

Estados da história

A menos que especificado de outra forma, quando uma transição entra em um estado composto, a ação da  máquina de estado aninhada recomeça no estado inicial  (a menos que a transição tenha como alvo um subestado diretamente). Os estados do histórico permitem que a máquina de estado entre  novamente no último subestado que estava ativo antes de sair  do estado composto. Um exemplo de uso do estado do histórico é apresentado na figura abaixo.

Estado simultâneo

Como mencionado acima, os estados nos diagramas de máquina de estado podem ser aninhados. Os estados relacionados podem ser agrupados em um único estado composto. Aninhar estados dentro de outros é necessário quando uma atividade envolve subatividades simultâneas. O diagrama de máquina de estados a seguir modela um leilão com dois subestados simultâneos: processamento do lance e autorização do limite de pagamento.

Exemplo de diagrama de máquina de estado simultâneo – Processo de leilão

Neste exemplo, a máquina de estado que entra primeiro no Leilão requer uma bifurcação no início em dois encadeamentos de início separados. Cada subestado tem um estado de saída para marcar o fim do encadeamento. A menos que haja uma saída anormal (Cancelado ou Rejeitado), a saída do estado composto ocorre quando ambos os subestados tiverem saído.

Links Relacionados

  1. O que é Linguagem de Modelagem Unificada?
  2. Ferramenta de diagrama UML profissional

Exemplos de diagramas de estado do tipo faça você mesmo com o Visual Paradigm Online

  • Exemplos e templates gratuitos de State Machine Diagram editáveis ​​em um software de State Machine Diagram online:  Visual Paradigm Online .
  • Use os modelos como ponto de partida para criar seu próprio Diagrama de Máquina de Estado.

Forno

Relógio digital

Estado ortogonal

Estado Composto

Aquecedor

Torradeira

Sistema de venda de ingressos

Telefone

Ferramenta de software UML gratuita

Você aprendeu o que é um diagrama de máquina de estado e como desenhar um diagrama de máquina de estado. É hora de desenhar seu próprio Diagrama de Máquina de Estado. Obtenha o Visual Paradigm Community Edition, um software UML gratuito e crie seu próprio diagrama de máquina de estado com a ferramenta gratuita de diagrama de máquina de estado. É fácil de usar e intuitivo.

Download grátis

Leave a Reply

O seu endereço de email não será publicado.