Download - 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:
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:
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.
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
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
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.
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.
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.]
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.
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
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.