Diagrama de estado o que é

A UML(Unified Modeling Language) prevê um diagrama específico para modelar os diversos estados de um objeto durante o seu ciclo de vida. Tal diagrama é chamado de diagrama de estados.

Muito utilizado na área de eletrônica digital e em engenharia de software, um diagrama de estado é a representação de um estado ou situação em que um objeto se encontra no decorrer da execução dos processos de um sistema. É uma maneira eficiente e clara de descrever todos os possíveis estados de um sistema, assim como quais eventos levam transição de um estado para outro.

Os diagramas de estado representam uma alternativa para o diagrama de casos de uso. Geralmente, os diagramas de caso de uso são utilizados durante a etapa de análise do sistema, e os diagramas de estados, durante a etapa de projeto do sistema. O foco principal dos diagramas de estados reside na identificação dos valores que os atributos de uma classe podem assumir, assim como os eventos ou mensagens enviadas para o objeto que efetivamente implicará na atribuição dos valores.

Diagramas de estados podem ser concebidos englobando diversos objetos, porém, o ideal é modelar diagramas de estados individuais para cada objeto e utilizar outros diagramas para ilustrar como diferentes objetos interagem durante a execução do sistema.

Elementos de um Diagrama de Estados

Estado Inicial – Ponto de entrada da utilização do objeto, pode ser sua instanciação ou sua reinicialização do mesmo para um estado estável inicial.

Estado Final – Ponto de saída da utilização do objeto, pode ser sua destruição ou o ato de deixar de ser utilizado.

Estado – Possível estado que o objeto pode se encontrar em cada momento. É definido como sendo a identificação dos atributos que o compõe. Um estado pode demonstrar a espera pela ocorrência de um evento, a reação a um estímulo, a execução de alguma atividade ou a satisfação de alguma condição.

Evento – Também chamado de transição, representa uma ação externa sobre o objeto.

Verificação de um Diagrama de Estados

Após a criação de um diagrama de estados, precisamos verificar se o mesmo é consistente, como cada verificação é específica para cada diagrama, pois depende diretamente da mecânica da classe e do problema se se propõe a resolver, podemos verificar de uma forma sistemática cada diagrama de estados respondendo às seguintes perguntas:
1 – Todos os estados podem ser atingidos?
2 – A partir de qualquer estado, existe um caminho que leve para o estado final?
3 – Todos os estados possíveis que o objeto pode assumir foram definidos?
4 – Cada estado reage adequadamente a todos os possíveis eventos?

Exemplos de Diagramas de Estados

Um exemplo simples seria um semáforo onde cada estado corresponde a uma situação que ocorrerá. Quando verde, os carros podem prosseguir na via. Passado um tempo, é acionada a tarefa de mudar para amarelo. Então o semáforo passa de verde para amarelo. Aqui os carros ficam em estado de atenção e já aguardam a próxima transição.
O próximo passo é passar para vermelho. Nesse estado, os carros estão parados na via. De vermelho, o próximo estado somente será verde, assim, os carros podem voltar a trafegar na via.

Diagrama de estado o que é

Outro exemplo simples seria a troca de estações do ano. Onde cada estação possui seu tempo de duração, após esse tempo ter se esgotado, uma transição de estados ocorre e a estação passa ao seu próximo estado, com sua determinada duração.

Diagrama de Atividade

Oriundo do Diagrama de Máquina de Estados, este diagrama enfatiza a sequência e condições para descrever um processo computacional completo de uma atividade. Como já observado, é um dos mais detalhistas diagramas da UML, muito semelhante aos fluxogramas utilizados para lógica de programação. Está sempre associado a um Caso de Uso, descrevendo as atividades executadas pelo Ator e pelo Sistema. Composto por estados que representam as atividades e ações que representam as transições, já foi considerado uma parte especial do Diagrama de Gráficos de Estados, porém a partir da versão 2.0 da UML, tornou-se totalmente independente.

Este diagrama preocupa-se em descrever os passos a serem percorridos para a conclusão de um método ou algoritmo específico, ou seja, tem como objetivo principal a especificação do comportamento do software do ponto de vista funcional e das suas funcionalidades e não um processo completo como é o diagrama de sequência, e possui três estados obrigatórios:

  • Estado Inicial;
  • Estado de Ação;
  • Estado Final.

É também utilizado para modelar dois tipos específicos de fluxos, o Fluxo de Controle e o Fluxo de Objetos.

Diagrama de estado o que é

Figura 1 – Esquema exemplificando o Diagrama de Atividade

Principais Elementos de Utilização

Estados Iniciais e Finais: Todos os diagramas de atividades possuem pelo menos um estado inicial e pelo menos um estado final. O Estado inicial indica o início do processo enquanto o estado final indica o fim do processo:

Diagrama de estado o que é

Figura 2 – Exemplo de Estado inicial e final

Atividades: Representados por um retângulo com as bordas arredondadas, equivalem as atividades ou ações que devem ser feitas. Quando a referida ação é finalizada, transfere a execução para a próxima atividade:

Diagrama de estado o que é

Figura 3 – Exemplo de Atividade

Transições: Setas contínuas que representam o fluxo de trabalho de uma atividade para outra, ou seja, o “caminho” a ser seguido para a conclusão do processo:

Diagrama de estado o que é

Figura 4 – Exemplo de Transição entre Atividades

Ponto de Decisão / Desvio: Representa uma escolha entre dois ou mais fluxos em que um dos fluxos será escolhido em detrimento dos outros. É representado pela figura de um losango:

Diagrama de estado o que é

Figura 5 – Exemplo de nó de decisão

Condição de Guarda: Condiciona a ocorrência de uma transição para a execução de uma atividade, geralmente é utilizada após um ponto de decisão:

Diagrama de estado o que é

Figura 6 – Exemplo de Condição de Guarda

Barras de Sincronização – Bifurcação/ União: Representam a execução de atividades concorrentes e independentes. Na condição de Bifurcação ou Fork, as atividades associadas continuam seu processamento paralelo. Já na condição de União ou Join, as atividades concorrentes são novamente sincronizadas em um único processo:

Diagrama de estado o que é

Figura 7 – Exemplo de Fork e Join

Raias: Representam uma forma de organização lógica das atividades. Podem estar associadas a objetos, componentes ou atores do sistema:

Diagrama de estado o que é

Figura 8 – Exemplo da utilização de Raias

Eventos: Eventos são mudanças de estado instantâneas que propiciam o início de uma outra ação. Existem basicamente três representações para eventos: únicos, periódicos e deliberados:

Diagrama de estado o que é

Figura 9 – Exemplo de utilização de Eventos

Nós de Objetos: Representam a instância de uma classe, que pode estar disponível em um determinado momento da atividade. É útil para mostrar o fluxo de dados acontecendo em um processo, e foi inserido a partir da versão 2.0 da UML:

Diagrama de estado o que é

Figura 10 – Exemplo de utilização de objetos

Exemplo Ilustrativo de Utilização do Diagrama de Atividade

Basicamente, temos referências a dois módulos nas duas Raias (Cadastro de Cliente e E-mail Marketing), e trata-se de um fluxo do sistema, onde um cliente após ser cadastrado sofre uma avaliação, e dependendo do resultado da avaliação (feita através do software) o fluxo pode tomar caminhos diferentes. Se todo o fluxo se completar, antes de encerrar-se, o cliente vai para uma situação de “espera”, onde outro fluxo, por exemplo, tratará o envio de uma nova oferta ao cliente que passou em todas as etapas:

Diagrama de estado o que é

Figura 11 – Exemplo completo de Diagrama de Atividade

Podemos identificar que o uso do Diagrama de Atividade é uma excelente opção para a especificação funcional de um software, desde que sua utilização seja empregada ao fim a que se destina. Mapear processos de forma que o desenvolvedor possa visualizar a funcionalidade isolada propicia um nível de controle e de abstração perfeitos de cada ponto do sistema e o deixa bem próximo do negócio. Também, dentro de suas limitações, pode ser utilizado por pessoas menos técnicas e até mesmo usuários para o entendimento dos processos de funcionamento gerais.

Para que serve um diagrama de estado?

Um diagrama de estados (statechart), também conhecido por diagrama de transição de estado ou por máquina de estados, permite modelar o comportamento interno de um determinado objeto, subsistema ou sistema global.

O que é um estado do diagrama de estados?

# Estado: representa um dos possíveis estados em que o objeto pode se encontrar em cada dado momento. Um estado de um objeto é definido como sendo a identificação de todos os atributos que o compõem; # Evento: Também referenciado como transição.

Como fazer o diagrama de estado?

Criar um diagrama de máquina de estado de UML.
Inicie o Visio. ... .
Na caixa Pesquisa, digite máquina de estado uml..
Selecione o diagrama da Máquina de Estado de UML..
Na caixa de diálogo, selecione unidades métricas ou unidades dos EUA..
Selecione Criar..
O diagrama é aberto..

Qual o objetivo do diagrama de estados em UML?

O foco principal dos diagramas de estados reside na identificação dos valores que os atributos de uma classe podem assumir, assim como os eventos ou mensagens enviadas para o objeto que efetivamente implicará na atribuição dos valores.