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" v v v v 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: v v v v v 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: v v v v 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 v v v 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? v v 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: v v Atributo que possua poucos valores Atributo que possua restrições bem definidas nas transições entre estes valores Exemplo § Class ItemDeVenda v v Atributos: precoDeVenda:Dinheiro estadoDeInspecaoCorrente:EstadoDeInspecao § precoDeVenda v v Um número grande de possíveis valores Não existe restrições para mudança de seus valores § estadoDeInspecaoCorrente v v 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.