Análise e Projeto de Sistemas OO Diagrama de Máquina de Estados Demonstra o comportamento de um elemento através de um conjunto de transições de estado. Um Estado representa a situação em que um objeto se encontra em um determinado momento durante o período em que esse participa de um processo.
Objetivos Usado para analisar comportamento de objetos de uma classe Mostra os estados que os objetos podem assumir e os eventos das transições de um estado para outro Exibe as ações decorrentes dos eventos Apresentam as seqüências de estados que um objeto assume em sua existência em resposta a estímulos recebidos Complemento das descrições estáticas de classes Diagrama de Máquina de Estados Dizemos que um estado descreve o conjunto de valores dos atributos de um objeto Modificação do valor de um atributo muda o estado desse objeto A criação ou destruição de objetos muda o estado do sistema. Um estado descreve uma operação que o sistema ou um objeto esta executando, portanto chamar uma operação ou enviar um sinal vão, também, mudar o estado do sistema e de alguns objetos.
Diagrama de Máquina de Estados Recomenda-se que só se construam Diagramas de Gráfico de Estados quando se existir um certo grau de complexidade referente a Transição de Estados de um dos objetos envolvidos no processo Características dos Objetos Objetos de uma classe possuem um "ciclo de vida" São gerados Assumem posições (estados) Dão origem a outros objetos Deixam de existir (são destruídos) O estudo dos diferentes estados de um objeto de uma classe e das transições entre estes estados permite o levantamento de serviços adicionais a serem incorporados na classe
Estados Um objeto pode passar por diversos estados dentro de um processo. 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. Ex: Estados Segunda divisão do retângulo pode armazenar três cláusulas: Entry: representa as ações realizadas no momento em que o objeto assume o Estado em questão; Exit: identifica as ações executadas antes do objeto mudar de Estado; Do: ilustra as atividades executadas enquanto o objeto se encontra em um determinado Estado. Ex:
Estados Inicial e Final Inicial: é utilizado para representar o início da modelagem de estados de um objeto, representado por um círculo preenchido. Final: é utilizado para representar o fim dos estados modelados, representado por um círculo preenchido envolvido por outro círculo não preenchido. Estados Inicial e Final
Exemplo Transições Uma transição representa um evento que causa uma mudança no Estado de um objeto, gerando um novo Estado (evento de ativação). Transições podem possuir condições de guarda e descrições, se isto for considerado necessário. Arco que liga dois estados: estado origem -> estado destino Evento - Provoca a transição de estado. Guarda - Condição que restringe a ocorrência da transição. Ação - Operação decorrente da transição de estado.
Transições Ex: Eventos Ocorrência que deve ser reconhecida e gerar uma reação pelo sistema em estudo. A ocorrência de um evento provoca a transição entre estados de instâncias de alguma classe pertencente ao sistema
Guarda e Ação A guarda é uma expressão que resulta em um valor booleano. É representada entre colchêtes [expressão]. A ação é representada pela invocação de uma operação: operacao(parametros) É precedida por uma barra inclinada ou um acento circunflexo Auto-Transições Transições Internas ocorrem durante o estado de um objeto sem modificá-lo As Auto-Transições saem do Estado Atual do objeto, podendo executar alguma ação quando dessa saída e retornam ao mesmo estado.
Exemplo Auto-Transição Exemplo de Diagrama de Estado Pedido de Compra
Regras para modelagem Como escolher o objeto e seu atributo para descrever em um diagrama de estado? Preciso conhecer melhor o comportamento deste objeto. Descobrir o atributo de estado Um diagrama de estado é ideal para modelar objeto que tenha atributo que possua 2 características: Atributo que possua poucos valores Atributo que possua restrições bem definidas nas transições entre estes valores Exemplo Class ItemDeVenda Atributos: precodevenda:dinheiro estadodeinspecaocorrente:estadodeinspecao precodevenda Um número grande de possíveis valores Não existe restrições para mudança de seus valores estadodeinspecaocorrente Um número pequeno de possíveis valores (Recebido, Inspecionando, Aceito e Rejeitado) Mudanças de valor não são diretas. Não passa de Recebido para Aceito sem antes passar por Inspecionando.
Exemplo Pseudo-Estado de Escolha ou Estado de Ponto de Escolha dinâmico Representa um ponto na transição de estados de um objeto em que deve ser tomada uma decisão, a partir da qual um determinado estado será ou não gerado.
Pseudo-Estado de Escolha Exemplo
Barra Sincronização Utilizada quando da ocorrências de estados paralelos, causados por transições concorrentes.