11

Click here to load reader

Modelagem Dinâmica Exercício 01:

  • Upload
    freira

  • View
    25

  • Download
    1

Embed Size (px)

DESCRIPTION

Desligado. Avisar. Gravar. Modelagem Dinâmica Exercício 01:. - PowerPoint PPT Presentation

Citation preview

Page 1: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

1

Modelagem DinâmicaExercício 01:

A Figura abaixo é um diagrama de estados simplificado e parcialmente completo para o controle de uma secretária eletrônica. As chamadas são atendidas automaticamente da seguinte maneira: uma chamada é detectada no primeiro toque da campainha e a secretária responde à chamada com um aviso pré-gravado. Quando o aviso termina, a mensagem de quem chamou é gravada. Quando o chamador desliga, a secretária também desliga. Coloque o seguinte no diagrama: chamada detectada, responder à chamada, apresentar o aviso, gravar a mensagem de quem chamou, chamador desliga, aviso termina.

Diagrama de estados parcialmente completo para uma secretária eletrônica

Desligado Avisar Gravar

Desligado

Avisandofaça: apresentar

o aviso

Gravandofaça: gravar a mensagem dequem chamou

Chamador desliga

Chamada detectada/ responder à chamada

Avisotermina

Chamador desliga

Resposta:

Page 2: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

2

Modelagem DinâmicaExercício 02:

Desligado

Avisandofaça: apresentar

o aviso

Gravandofaça: gravar a mensagem dequem chamou

Chamador desliga Campainha[n. toques = 5]/ responder à chamada

Chamado atende

Chamador desliga

Conversando

Chamada detectada/ posição n. toques := 0

Chamadordesliga

Aviso termina

Chamado atende

Chamador desliga

Campainha[n. toques < 5]

Tocando acampainha

A secretária eletrônica do exercício anterior é ativada ao primeiro toque da campainha. Revise o diagrama de estados para que ela atenda após cinco toques. Se o telefone for atendido antes de cinco toques, a secretária nada fará. Atente para a diferença entre cinco chamadas em que o telefone é atendido ao primeiro toque e uma chamada que toca cinco vezes.

Resposta:

Page 3: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

3

Modelagem DinâmicaExercício 03:

A Figura a seguir é uma parte do diagrama de estados para o controle de um aparelho de videocassete (VCR). O VCR tem diversos botões, incluindo selecionar, liga/desl e ajustar para acertar o relógio e os timers automáticos de funcionamento e parada, auto para permitir a gravação automática, vcr para by-passar o VCR, e temp para gravar por um período de tempo. Muitos dos eventos da Figura a seguir correspondem ao pressionamento do botão com o mesmo nome. Alguns botões têm comportamento alternado. Por exemplo, o pressionamento do botão vcr alterna entre os modos VCR e TV. Alguns botões utilizados para o controle manual do VCR não são considerados na Figura a seguir, como play, record, fast forward, rewind pause e eject. Esses botões só aparecem no estado Manual. Faça o seguinte:

a Prepare listas de eventos, ações e atividades.

b Prepare um manual do usuário, explicando como operar o VCR.

c Por meio do acréscimo de estados, estenda o diagrama de estados para acomodar outro timer de funcionamento e parada para um segundo canal.

d Existe muita coisa repetida em sua resposta à parte anterior. Por exemplo, ajuste da hora pode ser feito em diferentes contextos com o mesmo resultado. Discuta como a duplicação de esforços pode ser reduzida.

Page 4: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

4

Ajustando timer de parada entrada/inicializar hora de parada

faça : exibir hora de parada

Modelagem DinâmicaExercício 03:

Ajustando timer de início entrada/inicializar hora de início

faça : exibir hora de início

Gravando tempfaça: gravartemp/mais

tempo

Manualfaça: exibir hora

faça: atualizar hora

Vídeofaça:saída

vídeo

TVfaça:saída

tv

vídeo

vídeo

Automáticafaça : exibir hora

faça : atualizar horafaça : exibir “auto”

auto auto

Liga/desliga

Liga/desligatempodecorridotemp

Acertando relógiofaça : mostrar hora

seleção

Liga/desliga

seleção

Versão simplificada do diagrama

Page 5: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

5

Ajustando timer de parada entrada/inicializar hora de parada

faça : exibir hora de parada

Modelagem DinâmicaExercício 03:

Diafaça: piscar dia

ajustar/diaseguinte

Horafaça: piscar hora

ajustar/horaseguinte

Minutosfaça: piscar minutos

ajustar/minutosseguinte

seleção seleção seleção

Ajustando timer de início entrada/inicializar hora de início

faça : exibir hora de início

Dia de iníciofaça: piscar dia

ajustar/diaseguinte

Hora de iníciofaça: piscar hora

ajustar/horaseguinte

Minutos de iníciofaça: piscar minutos

ajustar/minutosseguinte

sele

ção

sele

ção

sele

ção Canal

faça: piscar canalajustar/canal

seguinte

seleção

Hora de paradafaça: piscar hora

ajustar/ horaseguinte

sele

ção Minutos de parada

faça: piscar minutosajustar/minuto

seguintese

leçã

o

Gravando tempfaça: gravartemp/mais

tempo

Manualfaça: exibir hora

faça: atualizar hora

Gravaçãoautomáticafaça:gravar

Autodesliga [hora = hora de parar]

[hora = hora de início]Vídeofaça:saída

vídeo

TVfaça:saída

tv

vídeo

vídeo

Automáticafaça : exibir hora

faça : atualizar horafaça : exibir “auto”

auto

auto

Liga/desliga

Liga/desliga

tempodecorridote

mp

Liga/desliga

Acertando relógiofaça : mostrar hora

sele

ção

Page 6: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

6

Modelagem DinâmicaExercício 03:

A) Os eventos são os seguintes:

– Seleção: pressionar sobre o botão seleção– Liga/desliga: pressionar sobre o botão liga/desliga– Timer: pressionar sobre o botão timer– Auto: pressionar sobre o botão auto– Ajustamento: pressionar sobre o botão ajustamento– Vídeo: pressionar sobre o botão vídeo– tempo decorrido: o tempo de gravação terminou

As ações são as seguintes:– Dia seguinte: fazer avançar o mostrador horário para o

próximo dia da semana.– Hora seguinte: fazer avançar o mostrador horário para a

próxima hora.– Minuto seguinte: fazer avançar o mostrador horário para o

próximo minuto.– Canal seguinte: fazer avançar o mostrador de canais para

o próximo canal pré-selecionado.– Inicializar hora de início: posicionar o mostrador horário

para a hora de início com a hora corrente.– Inicializar hora de parada: posicionar o mostrador horário

para a hora de parada com a hora de início.– Mais tempo: acrescentar um incremento fixo de tempo ao

tempo pré-selecionado de gravação.

Page 7: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

7

Modelagem DinâmicaExercício 03:

A) continuação:

As atividades são as seguintes:– Exibir hora: exibir hora corrente no mostrador

horário– Exibir hora início: exibir hora de início no

mostrador horário– Exibir hora parada: exibir hora de parada no

mostrador horário– Piscar dia: fazer piscar dia na porção dia do

mostrador horário– Piscar hora: fazer piscar hora na porção hora do

mostrador horário– Piscar minuto: fazer piscar minuto na porção

minuto do mostrador horário– Piscar canal: fazer piscar a porção canal

mostrador de canais– Gravar: gravar o canal pré-selecionado sobre a

banda vídeo– Atualizar hora: mudar o mostrador hora para

prosseguir a modificação da hora– Exibir auto: ascender o indicador “auto” sobre o

painel de apresentação.

Page 8: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

8

Modelagem DinâmicaExercício 03:

B)Pode-se imaginar a seguinte sinopse para o manual de utilização:

– Para acertar a hora, selecione o botão SELEÇÃO passo à passo e sucessivamente para os dias da semana, as horas, os minutos. A cada passo, pressione sobre o botão AJUSTAMENTO para fazer avançar as posições de uma unidade (15 minutos para os minutos).

– Para regular o timer de gravação, pressione sobre o botão LIGA/DESLIGA. A hora de início da gravação é exibida. Ela é inicialmente posicionada na hora corrente. A hora de início pode ser corrigida com o auxilio dos botões SELEÇÃO e AJUSTAMENTO, da mesma forma que foi feita para a regulagem da hora e do canal de gravação.

– Quando a hora de início de gravação e o canal foram selecionados, pressione uma vez sobre LIGA/DESLIGA para selecionar a hora de parada de gravação. A hora de parada se exibe. Ela é inicialmente posicionada na mesma hora que o início da gravação. Utilize os botões SELEÇÃO e AJUSTAMENTO para regular as horas e os minutos da hora de parada assim como foi descrito para a regulagem do relógio.

– Quando a hora de parada já foi regulada, pressione uma última vez sobre LIGA/DESLIGA a fim de voltar à apresentação da data. Para autorizar o modo de gravação automática, pressione sobre AUTO. O indicador “auto” se exibe. Quando a hora de gravação pré-selecionada é atingida, o vídeo comuta automaticamente sobre o canal pré-selecionado e inicia a gravação. Quando a hora de parada de gravação pré-selecionada é atingida, a gravação se interrompe automaticamente. A hora corrente é exibida, continuando no modo automático. Para introduzir o modo automático, pressione sobre o botão AUTO novamente; se o vídeo já está ligado, a gravação se interrompe.

– Para gravar um período de 15 minutos com início imediato, pressione sobre timer. O vídeo começa a gravar sobre o canal corrente. Para aumentar o tempo de gravação de um período suplementar de 15 minutos, pressione sobre TIMER uma ou mais vezes. [Observe que não é possível parar uma gravação temporizada, antes que seu tempo seja esgotado. Trataria-se de um erro do diagrama de estados que seria extremamente maldoso para os possuidores de vídeo.]

– Pressione sobre o botão VÍDEO para comutar a saída do vídeo entre a antena e a saída do vídeo (a televisão deve estar regulada sobre o canal 3 ou 4).

– [O manual de uso deveria conter igualmente a descrição dos botões dos comandos manuais que não figuram no diagrama de estados. Este último omite também os comandos permitindo regular o canal corrente.]

Page 9: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

9

Modelagem DinâmicaExercício 03:

C)

O novo diagrama de estados (ver próximo slide) foi construído duplicando inicialmente os estados Ajustar o timer de início e Ajustar o timer de parada para a segunda hora e ligando os novos estados na seqüência LIGA/DESLIGA. Foi destruída a ação de entrada para inicializar a hora de início e a hora de parada, para que o usuário não corra o risco de perder a hora precedentemente selecionada quando estiver procedendo a segunda regulagem.

Page 10: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

10

Modelagem DinâmicaExercício 03:

Ajustar timer início (1)faça : exibir hora de início 1

Dia de iníciofaça: piscar dia

ajustar/diaseguinte

Hora de iníciofaça: piscar hora

ajustar/horaseguinte

Minutos de iníciofaça: piscar minutos

ajustar/minutosseguinte

sele

ção

sele

ção

sele

ção Canal

faça: piscar canalajustar/canal

seguinte

seleção

Hora de paradafaça: piscar hora

ajustar/ horaseguinte

sele

ção Minutos de parada

faça: piscar minutosajustar/minuto

seguinte

sele

ção

Liga/desliga

Dia de iníciofaça: piscar dia

ajustar/diaseguinte

Hora de iníciofaça: piscar hora

ajustar/horaseguinte

Minutos de iníciofaça: piscar minutos

ajustar/minutosseguinte

sele

ção

sele

ção

sele

ção Canal

faça: piscar canalajustar/canal

seguinte

seleção

Ajustar timer de parada (1)faça : exibir hora de parada 1

Ajustar timer início (2)faça : exibir hora de início 2

Hora de paradafaça: piscar hora

ajustar/ horaseguinte

sele

ção Minutos de parada

faça: piscar minutosajustar/minuto

seguinte

sele

ção

Liga/desliga

Ajustar timer de parada (2)faça : exibir hora de parada 2

Manualfaça: exibir horafaça: atualizar

hora

Liga/desliga

Liga/desliga

Page 11: Modelagem Dinâmica Exercício 01:

Fecilcam - 24/setembro/1999

11

Modelagem DinâmicaExercício 03:

Ajustar timer início (1)faça : exibir hora de início 1

Liga/desliga

Ajustar timer de parada (1)faça : exibir hora de parada 1

Ajustar timer início (2)faça : exibir hora de início 2

Ajustar timer de parada (2)faça : exibir hora de parada 2

Manualfaça: exibir horafaça: atualizar

hora

Liga/desliga

Liga/desliga

Liga/desliga

Liga/desliga

D)Poderia-se parametrizar os estados de maneira a evitar a duplicidade de informações em vários locais, como será indicado abaixo.Os estados Ajustar o timer de início e Ajustar o timer de parada seriam definidos por diagramas de estados com um estado inicial por omissão e alguns argumentos formais. A parametrização dos estados não foi abordada no curso porque os detalhes são ainda incertos.