Visão Geral

Os modelos de máquina de estados são empregados para a modelagem dos aspectos dinâmicos de um sistema. Na maior parte, isso envolve a especificação do tempo de vida das instâncias de uma classe, um caso de uso ou um sistema inteiro. Essas instâncias poderão responder a eventos como sinais, operações ou a passagem de tempo. Quando um evento ocorre, alguma atividade acontecerá, dependendo do estado atual do objeto. As atividades acabam resultando em alguma ação, formada por computações atômicas executáveis que resultam em uma alteração do estado do modelo ou no retorno de um valor. O estado de um objeto é a condição ou situação na vida de um objeto durante a qual ele satisfaz alguma condição, realiza alguma atividade ou aguarda algum evento. Uma máquina de estados pode ser visualizada de duas maneiras: dando-se ênfase ao fluxo de controle de uma atividade para outra (utilizando diagramas de atividades) ou dando-se ênfase aos estados potenciais dos objetos e às transições entre esses estados (utilizando diagramas de gráficos de estados). Uma máquina de estados é um comportamento que especifica as seqüências de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos, juntamente com suas respostas a esses eventos.

Uso Comum

Um diagrama de gráfico de estados mostra uma máquina de estados, dando ênfase ao fluxo de controle de um estado para outro. Uma máquina de estados é um comportamento que especifica as seqüências de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos, juntamente com suas respostas a esses eventos. Os diagramas de atividades são um caso especial de diagrama de gráfico de estados, em que todos ou a maioria dos estados são estados de atividades e todas ou a maioria das transições são ativadas pela conclusão de atividades no estado de origem. Portanto, tanto os diagramas de atividades como os diagramas de gráficos de estados são úteis para a modelagem do tempo de vida do objeto. Entretanto, enquanto um diagrama de atividades mostra o fluxo de controle de uma atividade para outra, o diagrama de gráfico de estados mostra o fluxo de controle de um estado para outro.

Termos e Conceitos

Os diagramas de gráficos de estados podem ser anexados a classes, a casos de uso ou a sistemas inteiros para visualizar, especificar, construir e documentar a dinâmica de um objeto individual. Um estado é uma condição ou situação na vida de um objeto durante a qual ele satisfaz a alguma condição, realiza alguma atividade ou aguarda algum evento. Estado composto é um estado que contém internamente dois ou mais estados, chamados de sub-estados.
 
Estado Composto

Um estado de sub-máquina é equivalente a um estado composto, no entanto não apresenta seus sub-estados (normalmente detalhados em outro diagrama).
 
Estado de Sub-Máquina

estado inicial indica o local de início padrão para a máquina de estados ou sub-estado e é representado como um círculo preto preenchido. O estado final indica que a execução da máquina de estado ou do estado que a contém foi concluída e é representado como um círculo preto preenchido e um círculo não-preenchido ao seu redor. Um evento é uma especificação de uma ocorrência significativa que tem uma localização no tempo e no espaço. No contexto de uma máquina de estados, um evento é uma ocorrência de um estímulo capaz de ativar uma transição de estado. Uma transição é um relacionamento entre dois estados, indicando que um objeto no primeiro estado realizará certas ações e entrará no segundo estado quando um evento especificado ocorrer e as condições especificadas estão satisfeitas. Transições podem possuir condições de guarda e descrições, se necessário.
Diagrama de Gráfico de Estados
 

Representatividade do Diagrama de Gráfico de Estados

Os diagramas de gráficos de estados são empregados para a modelagem dos aspectos dinâmicos de um sistema. Na maior parte, isso envolve a modelagem do comportamento de objetos reativos.
Um objeto reativo é aquele cujo comportamento é melhor caracterizado por sua resposta a eventos ativados externamente ao seu contexto. Um objeto reativo tem um claro tempo de vida cujo comportamento atual é afetado pelo seu passado.

Organização Física do Diagrama de Gráfico de Estados

Ao especificar um diagrama de gráfico de estados é conveniente atentar para os seguintes itens:
  • Dê-lhe um nome capaz de comunicar seu propósito.
  • Distribua seus elementos para minimizar o cruzamento de linhas.
  • Organize seus elementos espacialmente, de maneira que os itens semanticamente afins apareçam fisicamente próximos.
  • Use notas explicativas e cores como indicações visuais e chamar atenção para características importantes do diagrama.
  • Inicie com a modelagem dos estados estáveis do objeto de depois prossiga com a modelagem das transições legais de um estado para outro. Inclua ramificações, concorrências e fluxo de objetos como considerações secundárias, possivelmente em diagramas separados.