A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem Orientada a Objetos

Apresentações semelhantes


Apresentação em tema: "Modelagem Orientada a Objetos"— Transcrição da apresentação:

1 Modelagem Orientada a Objetos
Modelagem Dinâmica Diagrama de Estados

2 Objetivos de um diagrama de estados
Representar o comportamento dinâmico de classes individuais Representar o comportamento dinâmico de colaboração entre classes

3 Elementos de um diagrama de estados
os estados possíveis para os objetos de uma certa classe as transições de estado os eventos que causam transições de estados as ações decorrentes de uma transição de estado entrada em um estado saída de um estado as ações realizadas por objetos enquanto estão em um certo estado durante todo o tempo em que o objeto está no estado decorrente de algum evento as condições para ocorrer uma transição de estado ou para a execução de uma ação.

4 Diagramas de Estados Relaciona eventos e estados
Um objeto muda de estado dependendo do evento e do estado atual. Transição: modificação de estado causada por um evento (mesmo quando estado final e inicial coincidem). Um evento pode ser irrelevante para um objeto em um certo estado. Exemplo: linha telefônica

5 Diagramas de Estados Exemplo : Linha telefônica
no-gancho no-gancho Inativa fora-do-gancho queda-da-linha Queda- da-linha Sinal de discar queda-da-linha dígito( n ) dígito( n ) número invalido Mensagem gravada Discando número ocupado Sinal de ocupado número válido Ligando tronco ocupado Sinal de ocu- pado rápido encaminhado Tocando Mensagem terminada telefone chamado atende Interligando telefone chamado desliga Desligando

6 Diagramas de Estados Exemplo : jogo de xadrez
Diagrama de estados de uma só passagem para um jogo de xadrez Início Vez das brancas cheque-mate Pretas vencem empate forçado pretas jogam brancas jogam Empate empate forçado Vez das pretas Brancas vencem cheque-mate

7 Tipos de diagramas de estados
Diagrama de laço contínuo: representa um ciclo de vida; sem estado inicial ou final. Exemplo: linha telefônica. Diagrama de uma só passagem: representa objetos com vida finita; possuem um estado inicial (criação do objeto) e um estado final (destruição do objeto). Exemplo: jogo de xadrez

8 Condições Uma condição é uma função booleana de valores, válida dentro de um intervalo de tempo. Condições funcionam como guardas nas transições: uma transição só dispara quando ocorre o evento e a condição de guarda for verdadeira. Exemplo: Veículo em um cruzamento.

9 Diagramas de Estados Exemplo: Veículo em um cruzamento
Diagrama de estados com transições guardadas tempo decorrido [ carros nas vias esquerdas N / S ] Norte / Sul podem ir em frente Norte / Sul podem dobrar à esquerda tempo decorrido [ sem carros nas vias esquerdas N / S ] tempo decorrido tempo decorrido tempo decorrido [ sem carros nas vias esquerdas L / O ] Leste / Oeste podem dobrar à esquerda Leste / Oeste podem ir em frente tempo decorrido [ carros nas vias esquerdas L / O ]

10 Controle de Operações Atividades e ações podem ser vinculadas a estados e eventos a fim de se especificar o que faz o objeto quando está em um determinado estado e o que faz em resposta a estímulos externos. Definem o comportamento do objeto!

11 Atividade Está sempre vinculada a um estado
Consome tempo para se completar É executada continuamente durante o tempo em que o objeto está num certo estado Notação: faça: atividade Exemplo: Um vendedor logo após ter recebido dinheiro para pagamento do item vendido deve calcular o troco. faça: calcular troco

12 Ação Está normalmente vinculada a um evento, mas também pode estar vinculada a um estado (ações de entrada, saída e internas) É executada "instantaneamente" Notação: evento / ação Exemplo: Exibir um menu quando o botão direito do mouse é pressionado. botão direito pressionado / exibir menu

13 Ações para um menu instantâneo
Controle de Operações Ações para um menu instantâneo botão direito pressionado / exibir menu instantâneo Inativo Menu visível botão direito liberado / apagar menu instantâneo cursor movimentado / iluminar item do menu

14 Diagrama de Estados com Operações
Notação Evento 1 ( atributos ) [ condição 1 ] / ação 1 Estado 1 faça : atividade 1 Estado 2 . . . Exercício: reescrever o diagrama de uma chamada telefônica utilizando a notação acima

15 Diagramas de Estados Nivelados
Permitem refinamentos sucessivos do modelo dinâmico Permitem uma descrição estruturada do sistema Pode-se expandir: um evento e sua correspondente ação uma atividade realizada em um certo estado Exemplo: Máquina de vender

16 Diagramas de Estados Nivelados Exemplo : máquina de vender
moedas introduzidas ( quantia ) verificar saldo Inativa Recolhendo dinheiro moedas introduzidas ( quantia ) / acrescentar ao saldo cancelar / devolver moedas Selecionar ( item ) [ item vazio ] [ troco < 0 ] faça : testar item e calcular troco [ troco = 0 ] [ troco < 0 ] faça : entregar item faça : preparar troco

17 Diagramas de Estados Nivelados Exemplo : máquina de vender
Atividade entregar item da máquina de vender braço pronto braço pronto empurrado Faça : mover braço para a fileira correta Faça : mover braço para a coluna correta faça : empurrar item para fora da prateleira Transição selecionar item da máquina de vender dígito( n ) Selecionar( item ) dígito( n ) faça : acrescentar dígito faça : preparar item enter clear

18 Generalização de Estados
Os estados de um objeto podem ser organizados de forma hierárquica, em super-estados e sub-estados. Um sub-estado é um refinamento de um super-estado, i.e., um sub-estado é um dos possíveis estados do objeto dentro daquele super-estado. Um sub-estado herda as transições do super-estado; transições que se aplicam ao super-estado também se aplicam ao sub-estado. Exemplos: linha telefônica, transmissão automática de um automóvel

19 Generalização de Estados Exemplo : transmissão de um carro
apertar R Neutro apertar N apertar N apertar F Para a frente pára sobe sobe Primeira Segunda Terceira reduz reduz

20 Generalização de Eventos
Os eventos que ocorrem em um sistema podem ser organizados de forma hierárquica, em super-eventos e sub-eventos. Um sub-evento herda atributos do super-evento. Onde um evento é descrito qualquer sub-evento seu é implicitamente descrito. A generalização de eventos facilita a abstração e permite concisão na representação de diagramas. Exemplo: Entrada do usuário.

21 Generalização de Eventos Exemplo : eventos de teclado
Hierarquia parcial de eventos para eventos de teclado tempo Entrada do usuário dispositivo Botão do mouse caracter do teclado localização caracter controle gráfico Botão do mouse apertado Botão do mouse liberado espaço alfanumérico pontuação

22 Concorrência de Agregação
O estado de um objeto composto (um agregado) é determinado pelos estados dos objetos que o compõem. Exemplo: O estado de um carro é determinado pelo estado da ignição, da transmissão, do freio, do acelerador, do motor, ... Os componentes de um agregado normalmente interagem entre si: a mudança de estado de um componente pode disparar uma transição em outro componente. A interação entre diagramas de estados de componentes é representada através de eventos compartilhados e/ou condições de guarda.

23 Concorrência de Agregação
Carro Ignição Transmissão Freio Acelerador Ignição Girar chave para dar partida [ transmissão em Neutro ] liberar chave Desligada Partida Ligada desligar a chave Acelerador Freio apertar acelerador apertar freio Desligado Ligado Desligado Partido liberar acelerador liberar freio

24 Concorrência Interna de Objetos
O diagrama de estados de um objeto pode ser particionado de acordo com atributos e ligações em sub-diagramas. O estado do objeto compreende um estado de cada sub-diagrama. Um mesmo evento pode causar transições em mais de um sub-diagrama. Exemplo: Jogo de bridge rubber.

25 Concorrência Interna de Objetos
Jogo de bridge com estados concorrentes Jogando rubber Vulnerabilidade N - S jogo N - S jogo N - S Não vulnerável Vulnerável N-S vence rubber Vulnerabilidade L - O jogo L - O jogo L - O Não vulnerável Vulnerável L - O vence rubber

26 Transição Automática Disparada quando a atividade vinculada a um estado termina O "evento" que causa a transição é o término da atividade Exemplo: Máquina de vender no estado correspondente a atividade testar item e calcular troco pode disparar uma de quatro transições automáticas.

27 Ações de Entrada e de Saída
Ações vinculadas ao ato de entrar ou sair de um estado Não adicionam poder de expressão, mas permitem uma representação mais concisa Exemplo: Controle de uma porta de garagem (p. 135)

28 Envio de Eventos Uma ação pode ser especificada como enviar um certo evento para outro objeto. Notação: enviar E (atributos) (palavra enviar pode ser omitida) Exemplo: Uma linha telefônica envia o evento ligar(número-de-telefone) para o comutador quando um número completo é discado. número completo / ligar(número-de-telefone)

29 Sincronização de Eventos Concorrentes
Um objeto pode executar várias atividades de forma concorrente (paralela). As atividades não são necessariamente sincronizadas, mas todas devem terminar para que ocorra transição de estado. Exemplo: Caixa automática.

30 Sincronização de Eventos Concorrentes
Emitindo dinheiro recolhido Faça : entregar dinheiro Preparação Pronta para reinicializar Faça : ejetar cartão cartão recolhido


Carregar ppt "Modelagem Orientada a Objetos"

Apresentações semelhantes


Anúncios Google