• Nenhum resultado encontrado

Modelagem dinâmica

No documento eBook - Microcontrolador 8051- Detalhado (páginas 31-43)

Lista de Exercícios 1 Descubra classes de objetos potenciais em uma Biblioteca.

5. Modelagem dinâmica

• O modelo dinâmico descreve os aspectos de um sistema relativos ao tempo e à seqüência

de operações que ocorrem em resposta a estímulos externos, sem considerar como as operações são implementadas.

• Principais conceitos: eventos e estados. • Principal ferramenta: diagrama de estados.

• O modelo dinâmico consiste em múltipos diagramas de estado, um para cada classe com

comportamento dinâmico importante.

Eventos

• Evento: transmissão ou informação unidirecional de um objeto para outro; estímulo

individual. Diferente de uma subrotina (retorna um valor).

• Informação: sinal simples ou dados (atributos de eventos, mostrados entre parênteses). • Evento representa um ponto no tempo. É algo que acontece em um certo momento. É uma

ocorrência considerada rápida. Não tem duração.

Exemplos

partida de avião (empresa aérea, número de vôo, cidade) botão do mouse apertado (botão, localização)

string de entrada introduzido (texto) telefone levantado

dígito discado (dígito)

velocidade da máquina penetrou em zona de perigo

• Eventos podem depender um do outro. Exemplo: o vôo 123 deve partir de São Paulo

antes de chegar ao Rio de Janeiro.

• Um evento pode não depender de outro evento, neste caso eles são chamados eventos

• Eventos são também modelados como classe. O momento em que um evento ocorre é um

atributo implícito de todos os eventos.

Cenários e diagramas de eventos

• Cenário é uma seqüência de eventos que ocorrem durante uma determinada execução do

sistema.

• Um cenário pode incluir todos os eventos de um sistema ou somente aqueles que são

gerados por alguns objetos.

Exemplo: cenário para utilização de uma linha telefônica

pessoa que chama (chamador) retira o fone do gancho começa o sinal de discar

chamador disca um número (5) sinal de discar pára

chamador disca um número (5) chamador disca um número (5) chamador disca um número (1) chamador disca um número (2) chamador disca um número (3) chamador disca um número (4) telefone chamado começa a tocar

ouve-se o tilintar do telefone chamado pessoa chamada atende

telefone chamado pára de tocar

som de chamada desaparece do telefone chamador telefones são interligados

pessoa chamada desliga telefones são desligados chamador desliga

Diagrama de eventos

• Um diagrama que mostra a seqüência de eventos e os objetos que permutam eventos. • Objetos são representados por uma linha vertical e os eventos por uma seta horizontal

Exemplo: diagrama de eventos para uma chamada telefônica.

Linha telefônica

 levanta o fone do gancho inicia o sinal de linha

disca (5)

termina o sinal de linha disca (5) disca (5) disca (1) disca (2) disca (3) disca (4)

sinal de chamada o telefone toca

atende o telefone

o sinal pára pára de tocar

linha conectada linha conectada

coloca o fone no gancho quebra de conexão

Pessoa liga Pessoa atende

coloca o fone no gancho

quebra de conexão

Estados

• Estado: valores do conjunto de atributos.

• Um estado corresponde ao intervalo entre dois eventos recebidos por um objeto. Eventos

e estados formam duplas: um evento separa dois estados e um estado separa dois eventos

• Estados representam intervalos de tempo (têm uma duração).

• Objetos reagem aos eventos recebidos. A reação pode ser a modificação de seu estado

interno. Exemplo: se um dígito for discado no estado SINAL DE DISCAR, a linha telefônica abandona o sinal de discar e passa para o estado DISCANDO.

Exemplos

O tilintar de um telefone

Viagem de São Paulo ao Rio de Janeiro

Água no estado líquido (a temperatura está entre 0 e 100 graus) Transmissão do automóvel na primeira marcha

Aguardando usuário introduzir uma senha Aquecendo uma mistura

Aguardando o próximo comando Acelerando o motor

Enchendo o tanque Processador ocioso

Caracterização de estado

• Um estado pode ter um nome, uma descrição de seu propósito, a seqüência de eventos

que conduz a ele, a condição que o caracteriza, os eventos aceitos, as ações tomadas e o próximo estado.

Exemplo: alarme soando em um relógio.

• Nome do estado: alarme soando.

• Descrição: o alarme do relógio está soando para indicar o momento visado • Seqüência de eventos que produz o estado:

⇒Preparar o alarme (momento visado)

⇒Qualquer seqüência exclusive desligar o alarme ⇒Momento atual = momento visado

• Condição que caracteriza o estado: alarme = ligado e momento visado < = momento atual

< = momento visado + 20 segundos e nenhum botão apertado desde o momento visado.

• Eventos aceitos no estado:

momento atual = momento visado + 20 reajustar alarme normal botão pressionado (qualquer botão) reajustar alarme normal

Diagrama de estados

• O diagrama de estados é uma ferramenta gráfica que mostra a relação entre estados e

eventos.

• Quando um evento é recebido, o estado seguinte depende do estado atual e do evento. A

modificação de estado por um evento é chamada “transição”.

• Notação: o diagrama de estados é representado por um grafo contendo nós e arcos. Os

nós são “estados” e os arcos direcionados são “transições” contendo os nomes de

“eventos”. O nó é uma figura arredondada. Dentro do nó escreve-se o nome do estado.

• A transição é uma seta que parte de um estado-origem para o estado-destino. O nome da

seta é o evento que causa a transição entre os estados. Quando acontece o evento diz-se que a transição “disparou”.

• Estados não definem totalmente todos os valores de atributos do objeto. Por exemplo, o

estado discando inclui todas as sequências de números incompletos de telefone. Cada número não é um estado diferente, mas o número inteiro é um atributo.

• Um diagrama de estados descreve o comportamento de uma única classe de objetos.

Como todas as instâncias da classe têm o mesmo conjunto de operações, todas compartilham o mesmo diagrama. Como cada objeto tem seus próprios valores de atributos, cada um tem o seu estado interno próprio como resultado da seqüência de eventos que recebeu. Logo, cada objeto é independente e comporta-se a seu próprio modo.

• Um diagrama pode representar ciclos simples ou contínuos.

• Ciclo simples (uma só passagem): representam objetos com vidas finitas. Enfatiza o

estado inicial e final do objeto, onde o estado inicial representa a criação do objeto e o estado final a destruição do objeto.

• Notação: estado inicial é indicado por um círculo cheio e o final por um “olho de boi”.

Podem ser rotulados para indicar as condições de início e fim.

Exemplo: jogo de xadrez.

Início Vez das cheque-mate Pretas

brancas vencem

empate forçado

pretas brancas Empate

 jogam jogam Vez das

pretas empate forçado

Brancas cheque-mate vencem

Condição

• Condição é uma função booleana de valores de objeto (retorna valor verdadeiro ou falso).

Exemplo: “temperatura abaixo do ponto de congelamento”. (V, F)

• Condição pode ser usada como “guarda” na transição. Uma transição “guardada” dispara

quando seu evento ocorre, mas somente se a condição for verdadeira. Exemplo: “Quando sair de manhã (evento) e a temperatura estiver abaixo do ponto de congelamento

(condição), coloque as luvas (estado seguinte).”

• Notação: escrever a condição entre colchetes, à frente do evento.

Exemplo: tráfego terrestre

Controle de operações

• Operações vinculadas a estados ou transições são executadas em resposta aos

correspondentes eventos ou estados. Dois tipos de operações são definidos: “atividade” e “ação”.

Atividade

• “Atividade” é uma operação que consome tempo para se completar. Está associada a

“estado”.

• Pode ser uma operação contínua (exibição de uma imagem) ou sequencial, que termina

• Notação: escrever “faça: A” dentro da caixa de estado. Indica que a atividade A inicia na

entrada do estado e termina na saída do estado.

Ação

• Ação: é uma operação instantânea e está associada a um evento. Representa uma

operação cuja duração é insignificante. Modelar uma operação como “ação” significa não estar preocupado com controle interno ou detalhamento.

• Notação: escrever o nome da ação à frente do evento, separado pela “/ “.

Exemplo: menu instantâneo

Resumo da notação

• Estado: escrever dentro da caixa.

• Evento: escrever junto à seta de transição.

• Condição: escrever dentro de colchetes, à frente do evento.

• Atividade: escrever dentro da caixa de estado, junto à palavra “faça”. • Ação: escrever à frente do evento, precedido pela barra “/”.

Relacionamento entre os modelos de classe e dinâmico.

• O modelo dinâmico especifica as seqüências possíveis de modificações nos objetos. • O diagrama de estado descreve uma parte do comportamento dos objetos de uma classe. • Estado relacionam-se aos atributos dos objetos.

• Eventos podem ser representados como operações no modelo de classe.

Sugestões práticas

• Construa diagramas de estado para classes com comportamento dinâmico significativo. • Use cenários para ajudar a iniciar a elaboração do diagrama de estados.

• Considere atributos relevantes ao definir um estado. Nem todos os atributos são usados

Exercícios

1. Para que serve o diagrama de transição de estados?

2. Descreva os principais conceitos e ferramentas do modelo dinâmico.

3. Como o diagrama de transição de estados se relaciona com o diagrama de classes? 4. Para qual tipo de sistema o diagrama de transição de estados é considerado uma boa

ferramenta de modelagem? Justifique!

5. O que é um cenário? Elabore um cenário para uma consulta de saldo em um caixa automático.

6. Qual é a definição de “estado”? O que é uma mudança de estado? Como a mudança de estado é mostrada no diagrama de transição de estado?

7. Qual é a definição de “evento”? Como a ocorrência do evento é mostrada no diagrama de transição de estado?

8. O que são condições em um diagrama de transição de estados? Como são mostradas? 9. Qual a diferença entre ação e atividade? Como são mostradas no diagrama?

10.Nas afirmações abaixo, coloque certo (C) ou errado (E), justificando as erradas. ( ) Cenário é uma sequência de eventos.

( ) Atividade é uma operação instantânea e está associada a um evento. ( )Endereço de cobrança de cliente é um estado aceitável.

( ) As operações em uma classe podem ser classificadas emação e atividade. ( ) Toda classe deve ter um diagrama de estados associado a ela.

( ) Vários objetos trocam eventos em um diagrama de eventos ( ) Tecla ESC pressionada é um evento aceitável.

( ) Uma atividade é normalmente invocada quando o objeto muda de estado. ( ) Somente um evento pode ocorrer em um estado.

( ) Uma condição impede a ocorrência de um evento. ( ) Uma condição impede a transição de estado.

( ) Ação é uma operação demorada e está associada a um estado. ( ) Um evento com condição de guarda nunca dispara uma transição.

( ) Pode ocorrer um evento em um estado e o objeto permanecer nesse estado. ( ) Evento corresponde a um estímulo externo ao sistema.

13. Elabore um diagrama de transição de estados para um semáforo. 14. Elabore um diagrama de transição de estados para uma lâmpada.

15. Explique em detalhes quando haverá transição do estado “Ligada/inativa” para o estado

“Aguardando”.

Toque do telefone [quinto toque]

16. Explique o significado de: “tempo decorrido [carros nas vias esquerdas N/S]” no trecho de diagrama abaixo.

Tempo decorrido [carros nas vias esquerdas N/S]

17. Explique o que está errado no diagrama abaixo.

C [calcular taxa de envio de dados] D A B

18) Elabore um diagrama de transição de estados para o tocador de fita cassete  simples. Considere que o aparelho funciona com o seguinte conjunto de teclas, cujo significado é familiar a todos: Eject  (abrir/fechar a unidade), Play  (tocar), Stop  (parar), Pause (pausa/continua), Fast Forward (avanço rápido), Rewind (rebobinar). OBS: despreze a queda de energia e considere que o aparelho já está ligado com fita.

19) Elabore um diagrama de transição de estados para a catraca. Uma catraca, acionada por cartões magnéticos, controla a entrada e saída de alunos no laboratório. Ela permanece travada e somente é liberada quando o aluno passa o cartão em uma das leitoras. Para entrar no laboratório, o aluno passa o cartão na leitora de entrada e aguarda a liberação da catraca. Quando esta é liberada, o aluno entra, a catraca gira no sentido da entrada, em seguida é novamente travada. Para sair do laboratório, o procedimento é inverso. O aluno pode passar o cartão mas não entrar nem sair do laboratório. Neste caso, a catraca é

travada após um certo tempo. Considere que não há nenhum problema com o cartão ou o

Ligada/inativa Estado 1 Estado 1 Aguardando Estado 2 Estado 2 Estado 3 Estado 4

ato de passar o cartão na leitora, nem é feito nenhum controle sobre a entrada ou saida, ou seja, se alguém passar o cartão em uma leitora mas não girar a catraca, pode passar

novamente o cartão na mesma leitora, que a catraca é liberada.

20. O trecho de diagrama abaixo corresponde ao objeto IGNIÇÃO de um automóvel. Considere que para passar de Desligada  para Partida  deve-se girar a chave, porém somente haverá transição se a transmissão estiver em ponto morto. Complete o diagrama com esses detalhes.

Desligar chave Liberar

21.Elabore um diagrama de transição de estados para o controle de uma secretária eletrônica, que responde às chamadas telefônicas com um aviso pré-gravado. Uma chamada telefônica é detectada mas a secretária somente responde com o aviso pré-

gravado se o telefone não for atendido até o quinto toque da campainha. Se o telefone for atendido antes do quinto toque, a secretária desliga.Quando o aviso da secretária termina, a mensagem de quem chamou é gravada. Quando o chamador desliga, a secretária

também desliga. O chamador pode desligar o telefone enquanto a secretaria estiver avisando. Neste caso, a secretária também desliga.

22.Elabore um diagrama de estados para o calibrador de pneu. O calibrador de pneu indica uma certa medida de pressão. Quando um novo pneu é calibrado, um novo ajuste de

pressão pode ser necessário. O ajuste é feito pressionando-se dois botões, A e B, com um leve toque. O botão A aumenta o indicador de pressão em uma unidade e o botão B

diminui em uma unidade. Quando a pressão atual do pneu é detectada, o calibrador

automaticamente ajusta a pressão do pneu segundo a medida de seu indicador. Note que a pressão do pneu pode estar menor, igual ou maior do que a medida do indicador. Se a pressão do pneu estiver menor, o pneu será enchido até a pressão do indicador. Se a

pressão estiver maior, o pneu será esvaziado até a pressão do indicador. Se for igual, nada ocorrerá.

23.Elabore um diagrama de estados para o relógio digital simples. O relógio tem um visor, dois botões para ajustá-lo, “A” e “B”, e três estados operacionais: “exibindo hora”,

“acertando hora” e “acertando minuto”. No estado “exibindo hora”, as horas e minutos são mostrados, separados por dois pontos piscantes. O botão “A” é usado para mudar os estados. A cada vez que é acionado, a mudança ocorre na sequência: “exibindo hora”, “acertando hora”, “acertando minuto”, “exibindo hora”, etc. Nos estados “acertando hora” e “acertando minuto”, o botão “B” é usado para avançar as horas ou minutos uma

Desligada Partida

No documento eBook - Microcontrolador 8051- Detalhado (páginas 31-43)

Documentos relacionados