110 likes | 176 Views
Desligado. Avisar. Gravar. Modelagem Dinâmica Exercício 01:.
E N D
Desligado Avisar Gravar 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 Resposta: Chamador desliga Chamador desliga Aviso termina Gravando faça: gravar a mensagem de quem chamou Avisando faça: apresentar o aviso Desligado Chamada detectada / responder à chamada
Chamador desliga Gravando faça: gravar a mensagem de quem chamou Avisando faça: apresentar o aviso Aviso termina Chamador desliga Campainha[n. toques = 5] / responder à chamada Chamador desliga Desligado Tocando a campainha Chamada detectada / posição n. toques := 0 Campainha[n. toques < 5] Chamador desliga Chamado atende Conversando Chamado atende Modelagem DinâmicaExercício 02: 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:
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: • Prepare listas de eventos, ações e atividades. • Prepare um manual do usuário, explicando como operar o VCR. • Por meio do acréscimo de estados, estenda o diagrama de estados para acomodar outro timer de funcionamento e parada para um segundo canal. • 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.
vídeo Vídeo faça:saída vídeo TV faça:saída tv vídeo Modelagem DinâmicaExercício 03: Versão simplificada do diagrama Gravando temp faça: gravar temp/mais tempo Ajustando timer de parada entrada/inicializar hora de parada faça : exibir hora de parada tempo decorrido Liga/desliga temp Liga/desliga Liga/desliga Manual faça: exibir hora faça: atualizar hora Ajustando timer de início entrada/inicializar hora de início faça : exibir hora de início seleção seleção auto auto Automática faça : exibir hora faça : atualizar hora faça : exibir “auto” Acertando relógio faça : mostrar hora
Modelagem DinâmicaExercício 03: Acertando relógio faça : mostrar hora Dia faça: piscar dia ajustar/dia seguinte Hora faça: piscar hora ajustar/hora seguinte Minutos faça: piscar minutos ajustar/minutos seguinte 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ício faça: piscar dia ajustar/dia seguinte Hora de início faça: piscar hora ajustar/hora seguinte Minutos de início faça: piscar minutos ajustar/minutos seguinte Canal faça: piscar canal ajustar/canal seguinte seleção seleção seleção seleção Liga/desliga Liga/desliga Ajustando timer de parada entrada/inicializar hora de parada faça : exibir hora de parada Gravando temp faça: gravar temp/mais tempo Liga/desliga Hora de parada faça: piscar hora ajustar/ hora seguinte Minutos de parada faça: piscar minutos ajustar/minuto seguinte seleção seleção tempo decorrido temp Manual faça: exibir hora faça: atualizar hora Automática faça : exibir hora faça : atualizar hora faça : exibir “auto” seleção auto auto Gravação automática faça:gravar vídeo [hora = hora de início] Vídeo faça:saída vídeo TV faça:saída tv Auto desliga [hora = hora de parar] vídeo
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.
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.
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.]
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.
Modelagem DinâmicaExercício 03: Ajustar timer início (1) faça : exibir hora de início 1 Dia de início faça: piscar dia ajustar/dia seguinte Hora de início faça: piscar hora ajustar/hora seguinte Minutos de início faça: piscar minutos ajustar/minutos seguinte Canal faça: piscar canal ajustar/canal seguinte seleção seleção seleção seleção Liga/desliga Ajustar timer de parada (1) faça : exibir hora de parada 1 Hora de parada faça: piscar hora ajustar/ hora seguinte Minutos de parada faça: piscar minutos ajustar/minuto seguinte seleção seleção Ajustar timer início (2) faça : exibir hora de início 2 Dia de início faça: piscar dia ajustar/dia seguinte Hora de início faça: piscar hora ajustar/hora seguinte Minutos de início faça: piscar minutos ajustar/minutos seguinte Canal faça: piscar canal ajustar/canal seguinte seleção seleção seleção seleção Liga/desliga Liga/desliga Ajustar timer de parada (2) faça : exibir hora de parada 2 Manual faça: exibir hora faça: atualizar hora seleção Hora de parada faça: piscar hora ajustar/ hora seguinte Minutos de parada faça: piscar minutos ajustar/minuto seguinte Liga/desliga seleção
Modelagem DinâmicaExercício 03: 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. Manual faça: exibir hora faça: atualizar hora Liga/desliga Liga/desliga Ajustar timer início (1) faça : exibir hora de início 1 Ajustar timer de parada (2) faça : exibir hora de parada 2 Liga/desliga Liga/desliga Ajustar timer início (2) faça : exibir hora de início 2 Ajustar timer de parada (1) faça : exibir hora de parada 1 Liga/desliga