• Nenhum resultado encontrado

5.4 CONJUNTO DE MARCAS

5.5.1 Mapeamento Estrutural

O principal objetivo do mapeamento estrutural da AST ´e extrair

aspectos arquiteturais do modelo funcional Simulink para gerar um mo- delo de arquitetura de software preliminar em AADL. O mapeamento

estrutural da AST possui as seguintes regras de transforma¸c˜ao:

• Simple-to-Process/Thread. Um bloco Subsystem do tipo

Simple que recebeu a marca process/thread ´e mapeado como um componente AADL do tipo Process que encapsula uma Thread

que chama um subprogram - trˆes componentes AADL s˜ao gerados

neste caso.

• Simple-to-Thread. Um bloco Subsystem do tipo Simple que

recebeu a marca thread ´e mapeado como uma Thread que chama

um subprogram - dois componentes AADL s˜ao gerados neste caso.

• Simple-to-Device. Um bloco Subsystem do tipo Simple com a

marca Device ´e mapeado como um componente AADL do tipo

Device.

• Composite-to-System. Um bloco Subsystem do tipo Compo- site que recebeu a marca system ´e mapeado como um componente AADL do tipo System.

• Composite-to-Process. Um bloco Subsystem do tipo Compo- site que recebeu a marca process ´e mapeado como um componente AADL do tipo Process.

• Composite-to-Device. Um bloco Subsystem do tipo Composite

com a marca Device ´e mapeado como um componente AADL do

tipo Device.

• MATLABFunction-to-Process/Thread. Um bloco Subsys- tem do tipo MatlabFunction que recebeu a marca process/thread ´e mapeado como um componente AADL do tipo Process que encap-

sula uma Thread que chama um subprogram - trˆes componentes

AADL s˜ao gerados neste caso.

• MATLABFunction-to-Thread. Um bloco Subsystem do tipo MatlabFunction que recebeu a marca thread ´e mapeado como uma Thread que chama um subprogram - dois componentes AADL s˜ao gerados neste caso.

As portas dos tipos signal name, port number e port number and signal name de um bloco Subsystem do modelo funcional Simulink

ao mapeadas respectivamente como portas do tipo event port, data

port e event data port dos respectivos componentes no modelo AADL.

Os tipos de dados suportados pelas portas do bloco Subsystem s˜ao

mapeados como sendo o tipo de dado suportado pelas respectivas portas do tipo data port e event data port do componente no modelo AADL. O mapeamento estrutural gera no modelo AADL um pacote chamado dados com os tipos de dados que trafegam pelas portas dos

blocos Subsystem no modelo funcional Simulink, e tamb´em um pacote

chamado subprograms com especifica¸c˜oes b´asicas dos subprogramas

chamados pelas threads no modelo AADL. As linhas que conectam

as portas dos blocos Subsystem no modelo funcional Simulink s˜ao

mapeadas como conex˜oes entre seus respectivos componentes no modelo

AADL.

Visando um melhor entendimento do papel das marcas e da

execu¸c˜ao do mapeamento estrutural da AST, observe o exemplo gr´afico

apresentado na Figura 30, a qual apresenta o primeiro n´ıvel hier´arquico

do modelo funcional Simulink de um sistema embarcado que realiza

manobras de estacionamento de forma autˆonoma (SIAMES). Ele ´e

respons´avel por controlar a velocidade do ve´ıculo, por encontrar uma

vaga de estacionamento compat´ıvel com o ve´ıculo e por controlar a manobra de estacionamento propriamente dita.

O primeiro n´ıvel hier´arquico do modelo funcional Simulink ´e o

ponto de partida do processo de transforma¸c˜ao de modelos da AST.

Neste n´ıvel o modelo ´e composto por quatro blocos subsystem, um que

representa o sistema propriamente dito (SystemParking), que ´e do tipo

Composite, outro que representa a intera¸c˜ao do sistema com o mundo

exterior (UserInterface), que ´e do tipo Simple. Os blocos SensorSlot

e SensorSpeed s˜ao blocos subsystem do tipo Simple e representam

dois sensores que enviam sinais para o sistema. Os blocos Subsystem

foram marcados manualmente utilizando o recurso de anota¸c˜ao de

blocos da pr´opria ferramenta Simulink, e principalmente, levando em

considera¸c˜ao a posi¸c˜ao hier´arquica de cada bloco Subsystem dentro do modelo funcional Simulink. As marcas aparecem na parte inferior do blocos.

Figura 30 – Modelo Funcional Simulink de N´ıvel 1- SIAMES

O modelo AADL correspondente de n´ıvel 1 gerado pelo ma-

peamento estrutural da AST ´e mostrado na Figura 31. Note que

na linha 1 este modelo cont´em um componente system ra´ız chamado

s siames.impl, que possui como subcomponentes um componente sys- tem chamado s systemparking e outros trˆes componentes devices iden- tificados como d userinterface, d sensorspeed e d sensorslot (linhas 3

a 6). Todos os componentes foram mapeados levando em considera¸c˜ao

1 SYSTEM IMPLEMENTATION s_siames.impl 2 subcomponents

3 d_userinterface: device d_userinterface.impl; 4 s_systemparking: system s_systemparking.impl; 5 d_sensorspeed: device d_sensorspeed.impl; 6 d_ssensorslot: device d_sensorslot.impl; 7 connections

8 port userinterface.on -> systemparking.on; 9 port userinterface.off -> systemparking.off;

10 port userinterface.searchslot -> systemparking.searchslot; 11 port userinterface.park -> systemparking.park; 12 port userinterface.nextslot -> systemparking.nextslot; 13 port systemparking.highspeed -> userinterface.highspeed; 14 port systemparking.slotfound -> userinterface.slotfound; 15 port systemparking.running -> userinterface.running; 16 port systemparking.finished -> userinterface.finished; 17 port sensorspeed.sensorspeed ->systemparking.sensorspeed; 18 port sensorslot.sensorslot -> systemparking.sensorslot; 19 END siames.impl;

Figura 31 – Modelo AADL de N´ıvel 1 - SIAMES)

funcional Simulink foram mapeadas automaticamente como portas e

conex˜oes no modelo AADL (linhas 7 a 18).

Outra perspectiva do mapeamento estrutural entre os modelos

Simulink e AADL ´e apresentado na Figura 32. No lado esquerdo

aparece um trecho do arquivo .mdl do modelo funcional Simulink do sistema SIAMES e do lado direito aparece o trecho correspondente

do arquivo .aadl gerado ap´os a execu¸c˜ao do mapeamento estrutural.

Os trechos destacados em vermelho mostram que o bloco Subsystem chamado SearchingSlot que recebeu a marca Process gerou no modelo AADL um componente de software do tipo Process chamado Sear- chingSlot. Os trechos em azul mostram que os blocos do tipo Inport e Outport que pertencem ao bloco Subsystem SearchingSlot no arquivo .mdl foram mapeado no modelo AADL como portas de entrada e sa´ıda do componente Process SearchingSlot no modelo AADL. Os trechos em verde mostram que as linhas do bloco Subsystem SerachingSlot

foram mapeadas como conex˜oes do componente Process SearchingSlot

no modelo AADL.

Documentos relacionados