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

Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Embed Size (px)

Citation preview

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

Modelagem Orientada a Objetos

Modelagem Dinâmica

Diagrama de Estados

Page 2: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Objetivos de umdiagrama de estados

Representar o comportamento dinâmico de classes individuais

Representar o comportamento dinâmico de colaboração entre classes

Page 3: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Elementos de umdiagrama 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.

Page 4: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 5: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagramas de EstadosExemplo : Linha telefônica

Inativa

Sinal de discar

Ligando

Tocando

Interligando

Desligando

Queda-da-linha

Mensagem gravadaSinal de

ocupado

Sinal de ocu-pado rápido

no-gancho

dígito( n )

no-gancho

Discando

Mensagemterminada

encaminhado

telefone chamado atende

telefone chamado desliga

número válido

número invalido

fora-do-gancho

dígito( n )

número ocupado

tronco ocupado

queda-da-linha

queda-da-linha

Page 6: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagramas de EstadosExemplo : jogo de xadrez

Vez dasbrancas

Vez daspretas

brancasjogam

pretasjogam

Início cheque-mate

empate forçado

empate forçado

cheque-mate

Pretasvencem

Brancasvencem

Empate

Diagrama de estados de uma só passagem para um jogo de xadrez

Page 7: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 8: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 9: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagramas de EstadosExemplo: Veículo em um cruzamento

Leste / Oestepodem dobrar

à esquerda

tempodecorrido

Diagrama de estados com transições guardadas

Leste / Oestepodem ir em frente

Norte / Sulpodem ir em frente

tempo decorrido [ carrosnas vias esquerdas N / S ]

tempo decorrido [ carrosnas vias esquerdas L / O ]

tempodecorrido

tempo decorrido [ sem carros

nas vias esquerdas N / S ]

Norte / Sulpodem dobrar

à esquerda

tempo decorrido [ sem carros

nas vias esquerdas L / O ]

Page 10: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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!

Page 11: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 12: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 13: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Controle de Operações

Ações para um menu instantâneo

Inativo

botão direito pressionado /exibir menu instantâneo

Menu visível

botão direito liberado / apagar menu instantâneo

cursor movimentado / iluminar item do menu

Page 14: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagrama de Estados com Operações

Notação

Estado 1faça : atividade 1

Evento 1 ( atributos )[ condição 1 ] / ação 1 Estado 2

. . .

Exercício:reescrever o diagrama de uma chamada telefônica utilizando a notação acima

Page 15: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 16: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagramas de Estados NiveladosExemplo : máquina de vender

Inativa

moedas introduzidas( quantia ) verificar saldo Recolhendo dinheiro

moedas introduzidas ( quantia ) /acrescentar ao saldo

faça : entregaritem

faça : preparartroco

faça : testar item e calcular troco

[ troco = 0 ] [ troco < 0 ]

[ troco < 0 ]

Selecionar ( item )[ item vazio ]

cancelar / devolver moedas

Page 17: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Diagramas de Estados NiveladosExemplo : máquina de vender

Faça : moverbraço para afileira correta

faça : prepararitem

Faça : moverbraço para a

coluna correta

faça : empurraritem para forada prateleira

braço pronto braço pronto empurrado

dígito( n )

clear

faça : acrescentar

dígito

dígito( n )

enter

Selecionar( item )

Atividade entregar item da máquina de vender

Transição selecionar item da máquina de vender

Page 18: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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

Page 19: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Generalização de Estados Exemplo : transmissão de um carro

Primeira Segunda Terceira

sobe

Neutro Réapertar R

apertar N

reduz

sobe

reduz

Para a frente

pára

apertar Fapertar N

Page 20: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 21: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Generalização de EventosExemplo : eventos de teclado

evento

Entrada do usuário

Botão do mouse

apertado

controle gráfico

espaço alfanumérico pontuação

tempo

dispositivo

Botão do mouselocalização

caracter do tecladocaracter

Botão do mouse

liberado

Hierarquia parcial deeventos para eventos

de teclado

Page 22: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 23: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Concorrência de Agregação

CarroIgnição Transmissão Freio Acelerador

Desligada Partida Ligada

Girar chave para dar partida[ transmissão em Neutro ]

desligar a chave

liberar chave

Ignição

Desligado Ligado

apertaracelerador

apertar freio

liberar acelerador liberar freio

Acelerador Freio

Desligado Partido

Page 24: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 25: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Concorrência Interna de Objetos

Não vulnerável

Não vulnerável

Vulnerável

Vulnerável

N-S vence rubber

L - O vence rubber

Vulnerabilidade N - S

jogo N - S

Vulnerabilidade L - O

jogo L - O

jogo N - S

jogo L - O

Jogando rubber

Jogo de bridge com estados concorrentes

Page 26: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 27: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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)

Page 28: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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)

Page 29: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

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.

Page 30: Modelagem Orientada a Objetos Modelagem Dinâmica Diagrama de Estados

Sincronização de Eventos Concorrentes

Faça : entregar dinheiro

Faça : ejetar cartão

Pronta parareinicializar

Emitindo

cartão recolhido

dinheiro recolhido

Preparação