• Nenhum resultado encontrado

RelatóriodeExecução-Labs1a4

N/A
N/A
Protected

Academic year: 2021

Share "RelatóriodeExecução-Labs1a4"

Copied!
34
0
0

Texto

(1)

Instituto Tecnológico de Aeronáutica

Divisão de Engenharia da Computação

CE-235

Sistemas Embarcados de Tempo Real

Professor Doutor Adilson Marques da Cunha

Listex 3

Relatório de execução de atividades: Labs 1 a 7

Roberto Pepato Mellado

(2)

1. Introdução

1.1. Objetivo

O conjunto de exercícios de lab proposto para execução dos alunos da disciplina CE-235 Sistemas Embarcados de Tempo Real do ITA (Instituto Tecnológico de Aeronáutica) tem como principal objetivo propiciar aos alunos:

 Amadurecimento no entendimento dos conceitos básicos nas ferramentas Rational Rose Real Time RRRT e Rational Quality Architect RQA, apresentados inicialmente nos exercícios de aquecimento (warmups);

 Solidificar o conhecimento sobre o ferramental que será aplicado na construção do protótipo de projeto ITA-ECO-SAT 2.

1.2. Finalidade

Os exercícios propostos para realização têm como objetivo propiciar aos alunos da disciplina CE-235 Sistemas Embarcados de Tempo Real a solidificação dos conceitos apresentados inicialmente nos exercícios de aquecimento (warmups) além de apresentar novos conceitos das ferramentas da Rational utilizadas para desenvolvimento de software embarcado em abordagem MDA/MDD. A proposta do exercício é fundamentada na execução de 7 labs cumulativos, para que o aluno possa entender, aprender e analisar as diferentes possibilidades oferecidas pelo ferramental, bem como analisar quais das soluções apresentadas melhor se encaixam na construção de sua USC e posterior integração em CSC, ICSC e SdS. A seção 2 deste documento apresenta uma síntese dos principais pontos considerados na realização de cada um dos labs, bem como screenchots das principais etapas de seu desenvolvimento.

2. Desenvolvimento dos Exercícios

2.1. Introdução

O contexto dos exercícios apresentados nos labs de 1 a 7 está relacionado com a emulação de uma aplicação de um sistema de tingimento. Os passos envolvidos na execução de cada um dos exercícios para alcance dos objetivos do sistema de tingimento estão descritos nas seções abaixo.

2.2. Lab 1: Controller / Tester

Na realização deste exercício, o aluno irá criar uma versão simplificada do sistema de tingimento através da utilização de um modelo previamente fornecido pelos professores

(3)

Os principais objetivos relacionados à execução deste Lab são:

 Uso de funções básicas da ferramenta

 Construção de um modelo simples a partir de elementos pré-existentes

 Compilação, execução, depuração e testes do modelo

 Geração de diagrama de sequência a partir de execução do modelo

 Criação de um diagrama de classes para o modelo

Alguns conceitos foram revisitados nesse exercício como, por exemplo, cápsulas, que são objetos autônomos que encapsulam suas propriedades, diagramas de estrutura, diagramas de estado, portas e protocolos. A execução deste exercício partiu de um modelo pré-existente, fornecido previamente pelos professores da disciplina CE-235 Sistemas Embarcados de Tempo Real, ministrado no segundo semestre de 2010 no ITA. A estrutura lógica dos elementos existentes nesse modelo pré-existente pode ser visualizada abaixo:

Figura 1 – Visão Lógica do Modelo Pré-Existente

Para o desenvolvimento do exercício, foi criada uma nova cápsula, denominada

(4)

instâncias das cápsulas controller e tester pré-existentes. A cápsula tester tem como objetivo testar o correto funcionamento da cápsula controller e será descartada futuramente, com o desenvolvimento dos exercícios complementares desta lista de exercícios. A cápsula DyeingSystem, juntamente com seu diagrama de estrutura, é apresentada na figura abaixo:

Figura 2 – Cápsula DyeingSystem e seu diagrama de estrutura

A próxima etapa do exercício envolve a execução do modelo e geração de um diagrama de sequência a partir do modelo em execução. Antes da realização desta etapa, foi realizada uma análise da cápsula pré-existente controller e de seu diagrama de estados, responsável pelo comportamento apresentado pelo sistema:

(5)

A sequência de ações realizada pela cápsula controller através de seu diagrama de estados é descrita a seguir :

1. A transição inicial é disparada e o sistema muda para o estado empty.

2. Ao recebimento de um sinal start através do protocolo OperatorDialog, a transição start é disparada. Durante a transição, o sinal turnOn do protocolo

DeviceControl é enviado através da porta fill. Esta transição, move a aplicação

para o estado filling.

3. A transição level é disparada quando o sinal value do protocolo MonitoredValue é recebido através da porta level. Esta transição move o estado do diagrama de estados para o Choice Point isFull.

4. O Choice Point isFull executa uma condicional para verificar se o tanque está cheio. Caso a condicional retorne falso, o sistema executa a transição False e retorna ao estado filling. Caso a condicional retorne verdadeiro, o sistema executa a transição True. A execução da transição True envia o sinal turnOff do protocolo DeviceControl através da porta fill. Esta mesma transição move o sistema para o estado dyeing e dispara um serviço de timer, colocando o sistema em espera por 20 segundos.

5. Assim que o serviço de timer disparar sua interrupção, ou seja, assim que os 20 segundos se esgotarem, a transição timeout será executada. Nesta transição, é enviado o sinal turnOn do protocolo DeviceControl através da porta drain. O sistema tem seu estado alterado para drainning.

6. A transição level é disparada quando o sinal value do protocolo

MonitoredValue é recebido através da porta level. Esta transição move o estado

do diagrama de estados para o Choice Point isEmpty.

7. O Choice Point isEmpty executa uma condicional para verificar se o tanque está vazio. Caso a condicional retorne falso, o sistema executa a transição False e retorna ao estado drainning. Caso a condicional retorne verdadeiro, o sistema executa a transição True. A execução da transição True envia o sinal turnOff do protocolo DeviceControl através da porta drain. Esta mesma transição envia o sinal done do protocolo OperatorDialog através da porta operatorDialog e move o sistema novamente para o estado empty.

8. O sistema aguar o recebimento de um novo sinal start para iniciar o processo novamente.

A próxima parte do exercício envolve a execução do sistema, acompanhamento das mensagens de trace e geração de um diagrama de sequência do processo capturado através do trace da aplicação. Para que esse procedimento possa ser realizado, devemos criar um componente, indicar qual é a top capsule do componente e qual a configuração alvo para geração de código e compilação. Além disso, é necessário criarmos um compilador para execução do sistema e indicarmos o componente e compilador como ativos:

(6)
(7)

Após os passos de configuração descritos acima, foi possível compilar e executar a aplicação, obtendo o trace da mesma. Para isso, foi necessário incluir uma ponta de prova (probe) sobre a porta operatorDialog da cápsula controller, conforme diagrama abaixo:

Figura 6 – Inclusão de Probe no diagrama de estrutura da cápsula DyeingSystem Para inicialização do trace, o procedimento necessário foi clicar nas duas cápsulas que fazem parte do diagrama de estrutura da cápsula DyeingSystem e após isso, clicar com o botão direito em alguma área vazia do diagrama. Essa ação nos abre um menu de contexto com a opção OpenTrace:

(8)

A partir deste momento, basta inicializar a aplicação e enviar o sinal start através da ponta de prova para que o trace seja capturado:

Figura 8 – Resultado da operação de Trace

Com o trace da aplicação capturado, a criação de um diagrama de sequência é tarefa trivial. Basta clicar com o botão direito sobre o resultado do trace habilitar a opção

Open Sequence Diagram:

(9)
(10)

Este exercício menciona como objetivo a criação de um diagrama de classes. Abaixo são apresentados os diagramas de classe e diagrama de componentes do sistema:

Figura 11 – Diagrama de classes da aplicação

(11)

2.3. Lab 2: Valve, Start Low-Temp System

Este exercício tem sua construção baseada no resultado do exercício 1 previamente aplicado. Essa é uma característica da sequência de Labs realizada neste relatório, onde cada etapa realizada é pré-requisito da próxima etapa, tornando a aplicação e desenvolvimento dos exercícios de Labs uma atividade cumulativa. A execução do exercício de Lab 2 envolve a criação de cápsulas com estrutura e comportamento simples, bem como a construção de um novo protocolo de comunicação.

Os principais objetivos relacionados à execução deste Lab são:

 Criação de uma cápsula com estrutura e comportamento simples

 Início de construção de um modelo simples (primeira etapa do estudo de caso que será desenvolvido de forma cumulativa, nos exercícios subsequentes)

 Criação de um protocolo simples

No primeiro passo de execução desse exercício, foi removida a cápsula tester do diagrama de estrutura da cápsula DyeingSystem. A cápsula tester não será mais utilizada, e será substituída pela implementação da cápsula Valve que será definida posteriormente na execução do exercício. Para execução do Lab 2, criamos um novo protocolo denominado Flow. Esse protocolo possui o sinal de saída amount definido com o tipo de dados int:

Figura 13 – Protocolo de comunicação Flow

Na próxima etapa do exercício criamos a cápsula Valve. Essa cápsula define um atributo do tipo int, nomeado flowAmount que possui o valor inicial definido como 2. Na cápsula Valve, foram definidas as portas control, que se utiliza do protocolo

DeviceControl e é definida como EndPort conjugada, e flow que se utiliza do protocolo Flow e é definida como EndPort. A definição da cápsula, bem como seu diagrama de

estrutura, foi definida conforme abaixo:

(12)

Figura 15 – Diagrama de Estrutura da cápsula Valve

A seguir foi definido o diagrama de estados para a cápsula Valve. As transições desse diagrama de estados possuem como eventos de triggers sinais trocados através da porta

control. Ambas as ações contém instruções customizadas para execução. O

detalhamento dessas instruções é demonstrado abaixo:

(13)

Figura 17 – Instruções customizadas na execução da transição turnOn

Figura 18 – Instruções customizadas na execução da transição turnOff

A configuração demonstrada nas figuras 16, 17 e 18 define que, sempre que a transição

turnOn for disparada, o sinal isOn será enviado através da porta control e o sinal amount será disparado através da porta flow, informando o valor constante do atributo flowAmount. Na execução da transição turnOff, o sinal isOff será enviado através da

porta control.

Para verificação da execução do diagrama de estados e trace de execução da cápsula

(14)

Figura 19 – Configuração do componente DyeingSystem contendo a cápsula Valve como TopCapsule

Para que fosse possível realizar o teste da aplicação, foram incluídas duas pontas de prova (probes) sobre as portas control e flow do digrama de estrutura da cápsula Valve:

Figura 20 – Diagrama de estrutura da cápsula Valve contendo probes nas portas control e

(15)

Figura 21 – Mensagens definidas para a probe aplicada sobre a porta control

A partir dessa configuração, foi possível executar a aplicação, capturar o trace e gerar um diagrama de sequência que apresenta os estados da aplicação em execução. Esse procedimento é útil para que possamos realizar uma depuração visual do modelo e garantir que o comportamento em execução é aquele que foi configurado na ferramenta:

Figura 22 – Diagrama de sequencia gerado a partir do trace capturado na execução do aplicativo.

A última etapa do Lab 2 envolve a criação de CapsuleRoles na cápsula DyeingSystem. Essas são instâncias da cápsula Valve, uma delas fillValve, representa uma válvula de entrada de líquido de tingimento no tanque e a outra, drainValve, representa uma válvula de drenagem do líquido do tanque. Foram realizadas as associações das portas das cápsulas do

(16)

Figura 23 – Diagrama de estrutura da cápsula DyeingSystem.

A compilação do projeto com a estrutura descrita previamente finaliza o Lab 2. O sistema cuja modelagem foi iniciada nesse lab, terá sua conclusão realizada nos exercícios seguintes.

2.4. Lab 3: Complete Low-Temp System

Este exercício tem como principal objetivo, a conclusão do modelo iniciado no Lab 2. Para conclusão deste exercício, foi integrado um timer na estrutura da cápsula Valve , que periodicamente envia mensagens indicando a quantidade de líquido na válvula, através da porta Flow. Este exercício exige também, a criação de um protocolo denominado AcquiredValue e duas novas cápsulas: Level e Dye.

Os principais objetivos relacionados à execução deste Lab são:

 Completar a construção de um modelo complexo (iniciado no Lab 2)

Fazer o uso de timer através da biblioteca de serviços de Timing

A primeira atividade deste Lab envolveu a modificação da cápsula Valve para enviar mensagens indicando a quantidade de líquido de tingimento periodicamente através da porta flow. Abaixo são apresentadas as modificações na cápsula Valve:

(17)

Figura 24 – Cápsula Valve modificada com serviços de Timing

Figura 25 – Estrutura da Cápsula Valve modificada

A próxima atividade deste Lab envolve a modificação do diagrama de estados da cápsula Valve. Uma transição de timeout foi adicionada ao modelo e as transições pré-existentes foram alteradas para fazer uso dos serviços de timer incluídos nesta cápsula:

(18)

Figura 27 – Especificação de triggers da transição turnOn

(19)

Figura 30 – Especificação de actions da transição timeout

Figura 31 – Especificação de triggers da transição turnOff

(20)

A seguir, foi definido o protocolo AcquiredValue. Esse protocolo é composto de dois sinais: um de input denominado value e de tipo de dados inteiro e um de output, denominado request. A estrutura do novo protocolo é apresentada abaixo:

Figura 33 – Estrutura do protocolo AcquiredValue

A próxima etapa do exercício definiu uma nova cápsula: Level. A estrutura desta cápsula criada é apresenta nas figuras que se seguem:

Figura 34 – Definição da cápsula Level.

(21)

Figura 36 – Diagrama de estados da cápsula Level.

O estado idle possui um trecho de código que é executado sempre que o sistema entra nesse estado:

Figura 37 – EntryAction do estado idle.

A seguir, foram configurados as triggers e actions para as demais transições que compõem o diagrama de estados da cápsula Level:

(22)

Figura 38 – Trigger da transição sample.

(23)

Figura 41 – Action da transição report.

A action da transição report utiliza um conceito ainda não introduzido, *rtdata. Através deste elemento, é possível capturar o valor recebido através da mensagem de disparou o

trigger da transição, e enviá-lo através de uma porta, conforme apresentado na figura 41.

Continuando o Lab 2, foi criada a cápsula Dye, que é uma representação computacional do tanque de tingimento que é utilizado no sistema objeto de execução dos exercícios

constantes desse relatório:

(24)

.

Figura 43 – Diagrama de estrutura da cápsula Dye

O comportamento da cápsula Dye foi configurado conforme apresentado na sequência de imagens a seguir:

(25)

Figura 45 – Trigger da transição flowIn

(26)

Figura 47 – Trigger da transição flowOut

(27)

Figura 49 – Trigger da transição level

Figura 50 – Action da transição level

Com as cápsulas Valve, Level e Dye previamente configuradas, realizamos uma alteração no diagrama estrutural da cápsula DyeingSystem, conectando os elementos que o compõem para que os testes de execução pudessem ser realizados:

(28)

Figura 51 – Diagrama de estrutura da cápsula DyeingSystem

Após realização de todas as configurações previamente descritas, foi executado o teste de 30 segundos. Nesse teste, foi observado o comportamento da aplicação onde o nível de líquido no tanque cresceu de 0 a 10 em 5 segundos, permaneceu constante no valor 10 por 20 segundos e decresceu de 10 a 0 em mais 5 segundos, totalizando um teste de 30 segundos:

Figura 52 – Trace da execução do teste de 30 segundos

(29)

2.5. Lab 4: Master and Tank Containers

O Lab 4 foi desenvolvido para reorganizarmos o modelo do sistema de tingimento, realizado nos exercícios anteriores. Para conclusão desse exercício, foram apresentados dois importantes conceitos: aggregation, que permite combinarmos cápsulas do sistema para obtermos uma interface de comunicação mais simples (diferentemente do conceito de agregação da UML) e replication, que nos permite trabalhar com mais de uma instância e relações de cardinalidade entre as cápsulas.

Os principais objetivos relacionados à execução deste Lab são:

 Criação de hierarquias de estruturas (cápsulas que contém outras cápsulas) no modelo existente.

 Aplicação da técnica de agregação.

 Aplicação de replicação (cardinalidade) entre cápsulas e portas.

 Compilação, execução e depuração de um modelo estruturalmente complexo. A primeira parte do exercício envolve a agregação das capsule roles fillValve, drainValve,

dye e LevelSensor, contidas na cápsula DyeingSystem, em uma nova cápsula, denominada Tank:

Figura 53 – Diagrama de estrutura da cápsula Tank, gerada a partir da agregação de outros elementos

O mesmo procedimento de agregação foi utilizado para agregação da capsule role fillValve,

(30)

Figura 54 – Diagrama de estrutura da cápsula Master, gerada a partir da agregação da

capsule role container

A criação das cápsulas acima através do conceito de agregação introduziu um novo conceito: relay ports. Esse tipo de porta permite a comunicação de capsule roles com cápsulas externas aquelas onde as capsule roles estão contidas. As portas fill, drain, level e

operatorDialog apresentadas nas figuras 53 e 54 ilustram esse conceito.

Após a agregação das cápsulas pré-existentes nas novas cápsulas Master e Tank são ilustradas no diagrama abaixo, que reflete o diagrama de estrutura modificado para a cápsula DyeingSystem:

(31)

Após as alterações no modelo, foi realizado novamente o teste de 30 segundos, para observarmos que as alterações propostas não modificaram o comportamento planejado para o sistema:

Figura 56 – Trace de execução do teste de 30 segundos

A próxima etapa do exercício nos apresenta o conceito de cardinalidade. Para isso, foram criados alguns artefatos de apoio, como a classe passiva Constant que define a MAXUNITS conforme especificado:

Figura 57 – Classe passiva Constant

(32)

A seguir, foi adicionada uma porta protegida à estrutura da cápsula DyeingSystem e conectada à porta operatorDialog. A cardinalidade desta nova porta foi configurada para

Constant::MAXUNITS. A cardinalidade da cápsula controller, contida na cápsula Master,

foi alterada para Constant::MAXUNITS. O mesmo procedimento foi realizado para as relay

ports da cápsula Master:

(33)

Figura 61 – Trace de execução do teste de 30 segundos.

Para que possamos analisar o funcionamento do sistema aplicando os conceitos de cardinalidade configurados nos passos anteriores, alteramos o valor da constante

MAXUNITS para 3:

Figura 62 – Configuração de atributo MAXUNITS.

Novamente aplicamos o teste de 30 segundos. Nesta execução do teste, analisaremos o comportamento utilizando o número de instâncias de cápsulas controller, configurados através da constante MAXUNITS:

(34)

Figura 63 – Trace de execução do teste de 30 segundos, utilizando cardinalidade e três instâncias da cápsula controller.

A execução do teste de 30 segundos indicando a correta execução do modelo configurado encerra o Lab 4.

3. Conclusão

A execução desta sequencia de Labs amadureceu o conhecimento deste aluno nas ferramentas utilizadas. Alguns novos conceitos apresentados na prática como: relay ports, agregação e cardinalidade serão de grande valor para modelagem da USC TPA e CSC CSM, pois apresentam conceitos de execução de múltiplas instâncias e simplificação de interfaces de comunicação.

Referências

Documentos relacionados

No capítulo seguinte será formulado o problema de programação não linear e serão apresentadas as técnicas de penalização para tratar os problemas com restrições gerais

5.2 Importante, então, salientar que a Egrégia Comissão Disciplinar, por maioria, considerou pela aplicação de penalidade disciplinar em desfavor do supramencionado Chefe

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Através do experimento in vivo, verificou-se que o pó nebulizado de nanocápsulas (Neb-NC) é efetivo na proteção da mucosa gastrintestinal frente à indometacina, enquanto que os

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

Câmara dos Santos.. A pesquisa deste casal é divulgada no mundo a partir da publicação do primeiro artigo que tratava da teoria pelo Van Hiele na França, pois até então a teoria