Na modelagem UML, uma máquina de estado é uma especificação do comportamento dinâmico de objetos de classe individuais, casos de uso e sistemas inteiros. Com a exceção das operações, ao criar uma máquina de estado, o objeto anexado à máquina de estado se torna seu proprietário. Ao criar uma máquina de estado para uma operação, esta se torna o proprietário da máquina de estado. Um diagrama de máquina de estado em branco é aberto quando você cria uma máquina de estado. Um diagrama de máquina de estado é uma representação gráfica da seqüência de estados de um objeto, dos eventos que causam uma transição de um estado para outro e as ações que resultam de uma alteração no estado. É possível incluir diagramas em uma máquina de estado para descrever diferentes aspectos comportamentais de um objeto.
É possível criar máquinas de estado para descrever classes e sistemas que possuem comportamento significativo. Nem todos os objetos requerem máquinas de estado. Se o comportamento de um objeto for básico, caso ele simplesmente armazene ou recupere dados, o comportamento do objeto pode não ser importante para você e sua máquina de estado pode ser de pouco interesse. As máquinas de estado também podem conter estados aninhados que representam níveis de estado hierárquico diferentes. É possível utilizar estados aninhados para examinar alterações complexas de estado em objetos.
É possível incluir diagramas em uma máquina de estado para descrever diferentes perspectivas do comportamento de um objeto. Cada diagrama é aberto como uma janela separada mas os mesmos elementos de modelo são exibidos em todos os diagramas. Os diagramas em uma máquina de estado são sincronizados por padrão. As alterações feitas em uma região na visualização Explorador de Modelos são refletidas em outros diagramas da mesma máquina de estado e as alterações feitas em uma região em um diagrama são refletidas na visualização Explorador de Modelos. É possível alterar as configurações de edição de uma região para que as alterações feitas em uma região na visualização Explorador de Modelos não sejam refletidas nos diagramas de máquina de estado correspondentes e para que uma região possa ser editada independentemente de outros diagramas na mesma máquina de estado, alterando o valor das propriedades canônicas de uma região para falso.
As máquinas de estado são auxílios de modelagem úteis para o desenvolvimento de sistemas de tempo real ou dirigidos por eventos porque elas mostram o comportamento dinâmico. É possível desenvolver máquinas de estado durante todas as fases de um projeto de software e para modelagem de negócios. É possível utilizar máquinas de estado nas seguintes situações:
As máquinas de estado podem ser utilizadas para modelar comportamento dirigido por eventos. Eventos como tempo, sinais ou operações podem fazer com que o estado de um objeto seja alterado. Um evento não possui duração e pode preceder ou seguir outro evento. Os estados que modelam o comportamento dirigido por eventos continuam os mesmos até a chegada de um evento. Após o estado responder a um evento, o processo reverte a um estado estável de que está pronto para receber o próximo evento.