1 / 11

Modelagem Dinâmica Exercício 01:

Desligado. Avisar. Gravar. Modelagem Dinâmica Exercício 01:.

freira
Download Presentation

Modelagem Dinâmica Exercício 01:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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:

  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: • 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.

  4. 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

  5. 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

  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.

  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.

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

  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.

  10. 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

  11. 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

More Related