CE-235 Sistemas Embarcados de Tempo Real Prof. Adilson Cunha 19/09/2005 Prova do Primeiro Bimestre Warm-Ups 1 a 7 Aluno: Marcelo de Lima Bastos Moreira 1. INTRODUÇÃO... 2 2. DESENVOLVIMENTO... 2 Warm-Up 1...2 Warm-Up 2...3 Warm-Up 3...5 Warm-Up 4...8 Warm-Up 5...10 Warm-Up 6...13 Warm-Up 7...16 3. CONCLUSÃO... 18 4. APLICABILIDADE... 19 1
1. INTRODUÇÃO Os Warm-ups são destinados a complementar os módulos do manual de estudante do Mastering Rational Rose RealTime. Cada exercício foca em um conhecimento específico que proporciona aplicação imediata do que foi aprendido pela leitura dos módulos. O Rational Rose RealTime é um ambiente de desenvolvimento para o ciclo de vida completo da Unified Modeling Language especialmente criado para atender os desafios de tempo real. Rational Rose RealTime unifica o time de projeto ao prover um extenso conjunto de ferramentas de integração que vão desde a captura de requisitos, passando por geração automática de código até depuração para sistemas operacionais de tempo real. 2. DESENVOLVIMENTO Warm-Up 1 Consiste na criação de um modelo contendo uma cápsula, cujo comportamento é escrever Hello, World na tela. Figura 1 Diagrama de Estados 2
Figura 2 Execução do programa Warm-Up 2 Consiste de uma classe passiva simples com uma operação que contém o código para se escrever uma saudação. Quando o modelo estiver completo e rodando corretamente, é possível modificar a saudação fora do conjunto de ferramentas Rose RealTime. É possível sincronizar o novo código com o modelo no Rose RealTime. 3
Figura 3 Código dentro da operação main Figura 4 Execução do programa 4
Warm-Up 3 Consiste na criação de uma aplicação de semáforo composta por cápsulas e uma porta, e cuja máquina de estado é composta por três estados. Os requisitos do modelo estão especificados na forma de um diagrama de seqüência. Figura 5 - Diagrama de Estados do Semáforo 5
Figura 6 Inicio do programa, no estado Red. Figura 7 Estado Green, resultado do envio do sinal control/green. 6
Figura 8 Estado Yellow, resultado do envio do sinal control/yellow. Figura 8 Estado Red, resultado do envio do sinal control/red. 7
Warm-Up 4 Consiste na modelagem do comportamento de um cadeado eletrônica. O modelo começa com o cadeado na posição travado. Para destravar é preciso entrar com a senha 1 2. O cadeado é travado ao se entrar com a letra L. Na dúvida pressione o símbolo?. O modelo é composto de uma classe passiva com uma máquina de estados com três estados: Travado, Destravando e Destravado. O estado Destravando espera pela entrada do segundo caractere da senha mudando para Travado ou Destravado dependendo do caractere recebido. Figura 9 Diagrama de Estados do Cadeado Ao se executar o programa aparece na tela de prompt do DOS com a mensagem: ACME Eletronic Lock System. Ao se digitar a senha correta 1 2 aparece a seguinte tela: 8
Figura 10 Cadeado destravado Para travar o cadeado deve-se pressionar L, com isso aparece a mensagem The lock is LOCKED. Ao digitar?, aparece a seguinte tela: 9
Figura 11 Tela resultado de pressionar L e?. Se uma senha errada for digitada, aparece a seguinte tela: Figura 12 Resultado de entrada de senha errada. Warm-Up 5 Consiste em um modelo de simulação de um navio que envia um sinal de sonar (pings) no oceano em intervalos de tempo regulares, e detecta e mostra os sinais retornados (echoes). O modelo tem uma estrutura e comportamento simples e usa os serviços de Timer e Log. 10
Figura 13 Diagrama de Estados do Battleship Figura 14 Diagrama de Estados do Ocean 11
Figura 14 Diagrama Estrutural do World Figura 15 Diagrama de Seqüência 12
Warm-Up 6 Consiste na criação de um sistema de semáforos para o cruzamento de duas ruas. As ruas são norte-sul e leste-oeste. Figura 16 Diagrama de estados de um semáforo 13
Figura 17 Diagrama de estados do controlador dos semáforos Figura 18 Diagrama de estrutura do controlador dos semáforos 14
Figura 19 Diagrama de Seqüência Figura 20 Diagrama de estados em funcionamento. Semáforos leste e norte. 15
Warm-Up 7 Consiste na criação de duas aplicações cliente-servidor simples. Na primeira, o cliente será encarnado pela cápsula e na outra ele será importado. Os modelos criados têm uma estrutura e comportamentos dinâmicos. Figura 21 Diagrama de estados do cliente 16
Figura 22 Diagrama de estados do servidor Figura 23 Visão Lógica da Main 17
Figura 24 Diagrama de seqüência 3. CONCLUSÃO Com o Warm-Up 1 foi possível aprender a: Criar um novo modelo. Criar uma cápsula no modelo. Adicionar um simples comportamento nessa cápsula. Compilar, rodar e depurar o modelo. Com o Warm-Up 2 foi possível aprender a: Criar um modelo usando uma classe passiva Adicionar um simples comportamento a essa classe ao se adicionar uma operação Compilar, rodar e depurar o modelo. Modificar o código produzido pelo Rose RealTime com um editor de texto Sincronizar o modelo com o código modificado Com o Warm-Up 3 foi possível aprender a: Criar um modelo a partir de requisitos n forma de diagrama de seqüência Criar uma classe protocolo simples Definir um comportamento (máquina de estados finita), composto por múltiplos estados e transições. Compilar, rodar, depurar e verificar o modelo de múltiplos estados, usando a seqüência de diagramas gerada durante o tempo de execução. 18
Com o Warm-Up 4 foi possível aprender a: Adicionar uma máquina de estados a uma classe passiva Criar uma operação de gatilho para a máquina de estados de classe passiva Adicionar código à transição. Com o Warm-Up 5 foi possível aprender a: Criar um novo modelo a partir de elementos existentes Engatilhar o comportamneto de uma cápsula com um temporizador, usando o Timming Service na biblioteca de serviços Mostrar mensagens de texto da cápsula, usando o Log Service na biblioteca de serviços Compilar, rodar, depurar e verificar o modelo usando a seqüência de diagramas gerada durante o tempo de execução. Com o Warm-Up 6 foi possível aprender a: Criar um novo modelo a partir de elementos existentes Criar uma nova classe e definir sua estrutura e funcionamento Criar uma cápsula contida Adicionar uma estrutura a essa cápsula através de funções de cápsula (capsule roles). Compilar, rodar e depurar o modelo. Com o Warm-Up 7 foi possível aprender a: Criar um modelo com cápsulas que são encarnadas (dinamicamente criadas em tempo de execução). Criar um modelo com cápsulas que são importadas (dinamicamente movidas em tempo de execução). Compilar, rodar e depurar o modelo. 4. APLICABILIDADE Minha Dissertação de mestrado envolve geração automática de código através do Ambiente de Simulação MATRIXx. O Rational Rose RealTime poderia se utilizado como um mecanismo paralelo para a geração automática de código, demandando para isso um esforço extra para a modelagem do objeto da minha dissertação na forma de classes e cápsulas, que é a linguagem utilizada no Rose RealTime. 19