• Nenhum resultado encontrado

Método de desenvolvimento dirigido a modelos para rede de sensores sem fio

N/A
N/A
Protected

Academic year: 2021

Share "Método de desenvolvimento dirigido a modelos para rede de sensores sem fio"

Copied!
183
0
0

Texto

(1)

DE AUTOMAC¸ ˜AO E SISTEMAS

Andr´e Ruza Paulon

M ´ETODO DE DESENVOLVIMENTO DIRIGIDO A MODELOS PARA REDES DE SENSORES SEM FIO

Florian´opolis 2015

(2)
(3)

M ´ETODO DE DESENVOLVIMENTO DIRIGIDO A MODELOS PARA REDES DE SENSORES SEM FIO

Tese submetida ao Programa de P´ os-Gradua¸c˜ao em Engenharia de Automa¸c˜ao e Sistemas para a obten¸c˜ao do Grau de Mestre em Engenharia de Automa¸c˜ao e Sistemas.

Orientador: Prof. Dr. Leandro Buss Becker

Coorientador: Prof. Dr. Antˆonio Au-gusto Fr¨ohlich

Florian´opolis 2015

(4)

A ficha catalogr´afica ´e confeccionada pela Biblioteca Central.

Tamanho: 7cm x 12 cm

Fonte: Times New Roman 9,5

Maiores informa¸c˜oes em:

(5)

M ´ETODO DE DESENVOLVIMENTO DIRIGIDO A MODELOS PARA REDES DE SENSORES SEM FIO

Esta Tese foi julgada aprovada para a obten¸c˜ao do T´ıtulo de “Mestre em Engenharia de Automa¸c˜ao e Sistemas”, e aprovada em sua forma final pela Programa de P´os-Gradua¸c˜ao em Engenharia de Automa¸c˜ao e Sistemas.

Florian´opolis, 01 de Julho 2015.

Prof. Dr. Jomi Fred Hubner Coordenador do Curso

Prof. Dr. Leandro Buss Becker Orientador

Prof. Dr. Antˆonio Augusto Fr¨ohlich Coorientador

Banca Examinadora:

Prof. Dr. Leandro Buss Becker Presidente

(6)
(7)
(8)
(9)
(10)
(11)

A realiza¸c˜ao deste trabalho foi poss´ıvel gra¸cas ao apoio e parti-cipa¸c˜ao de pessoas as quais possuo uma grande admira¸c˜ao e respeito.

Al´em da realiza¸c˜ao pessoal, pude crescer como pessoa, contando com a participa¸c˜ao, t´ecnica e particular, de grandes acadˆemicos que me guiaram e me auxiliaram durante esta jornada, como tamb´em de pes-soas sempre queridas como minha fam´ılia e amigos, que me apoiaram e me encorajaram de in´umeras formas. Assim, gostaria de reportar meus sinceros agradecimentos:

Ao meu orientador Leandro Buss Becker, sem o qual este tra-balho n˜ao seria poss´ıvel. Agrade¸co sua disposi¸c˜ao para discuss˜oes, dedica¸c˜ao e orienta¸c˜ao proporcionadas, que propiciaram boas contri-bui¸c˜oes para elabora¸c˜ao dessa obra. Um agradecimento especial pela paciˆencia e amizade oferecida em todos os momentos.

Ao meu co-orientador Antˆonio Augusto Fr¨ohlich, que me ins-truiu nos primeiros passos dentro da academia e proporcionou diversos ensinamentos durante todo o processo.

Ao doutorando Fabio Basso, cuja participa¸c˜ao e disposi¸c˜ao em sempre ajudar foi fundamental. Agrade¸co sua aten¸c˜ao, dedica¸c˜ao, en-sinamentos e conselhos dados durante o desenvolvimento do trabalho.

A todos os amigos de laborat´orio, que tamb´em contribu´ıram com sua competˆencia t´ecnica e amizade para o desenvolvimento deste tra-balho. Um agradecimento especial ao Rodrigo Steiner, que ofereceu um grande apoio t´ecnico em algumas partes do trabalho.

A meus pais Antˆonio Edson e Maria Salete, e irm˜a Mariana, que deram todo suporte necess´ario, com compreens˜ao, confian¸ca e palavras de conforto e incentivo. Quero agradecer minha m˜ae, pela colabora¸c˜ao na revis˜ao desse trabalho.

A meus primos Vitor e Daniel, que contribu´ıram com sua ami-zade e apoio durante o desenvolvimento do trabalho.

A todos os meus amigos e demais familiares que sempre estive-ram presentes em minha vida, apoiando, divertindo e compartilhando novos momentos comigo.

(12)
(13)

possam apreci´a-lo e compreendˆe-lo. Isso ´

e - ou deveria ser - a mais elevada forma de arte.

(14)
(15)

Redes de Sensores Sem Fio (RSSF) vˆem sido amplamente pesquisadas havendo uma grande evolu¸c˜ao ao longo dos anos. As RSSFs est˜ao rapi-damente se tornando uma ferramenta necess´aria em diferentes ´areas de aplica¸c˜ao, tais como monitoramento ambiental, sa´ude, seguran¸ca e ou-tras. A heterogeneidade de hardware ´e grande, por isso existe diversos ambientes que suportam programa¸c˜ao de RSSF, podendo ser aplicados em diversos tipos de cen´arios. No entanto, a grande maioria de tais am-bientes visa apenas direcionar a programa¸c˜ao de sensores, esquecendo-se de sua verdadeira inten¸c˜ao: a aplica¸c˜ao. Modelar uma RSSF para o uso eficaz ´e uma tarefa ´ardua, sendo necess´arios conhecimentos em linguagens de programa¸c˜ao com baixo n´ıvel de abstra¸c˜ao, dependente do sistema operacional, dos dom´ınios aos quais ser´a implementada e das plataformas que se adequam melhor `a aplica¸c˜ao. Neste trabalho, propomos uma abordagem para satisfazer a necessidade de m´etodos de desenvolvimento de alto n´ıvel em aplica¸c˜oes de RSSF, com o objetivo de fornecer uma liga¸c˜ao clara entre as restri¸c˜oes de RSSF modelados e as entidades de programa¸c˜ao. Uma parte importante desta proposta ´e a cria¸c˜ao do Perfil e do framework chamados WiSeN. O Perfil WiSeN ´

e perfil de UML dedicado para o projeto de aplica¸c˜oes de RSSF, en-quanto o framework apresenta ferramentas que auxiliam a implanta¸c˜ao de aplica¸c˜oes para RSSFs desde a gera¸c˜ao do c´odigo-fonte at´e o proces-samento dos dados coletados. No trabalho ´e discutido o uso do Perfil WiSeN em conjunto com o framework seguindo o paradigma de Desen-volvimento Dirigido por Modelos (DDM) que contribuem com um um conjunto significativo de recursos para gerar aplica¸c˜oes de RSSFs em diferentes plataformas durante a implanta¸c˜ao de novas aplica¸c˜oes. Palavras-chave: 1. Perfil UML, 2. RSSF, 3. Desenvolvimento Diri-gido a Modelos

(16)
(17)

Wireless Sensor Networks (WSNs) have been widely researched and its evolution is increasing over the years. Wireless Sensor Networks (WSNs) are rapidly becoming a necessary tool in many different ap-plication areas, such as environmental monitoring, health, safety, and so on. The heterogeneity of hardware is large, so there exists seve-ral different environments that support WSN programming, they may be applied to various types of scenarios. However, the great majority of such environments only target the sensors programming, forgetting about their real intent: the application. Model a WSN for an effective use is an arduous task, it is necessary some knowledge in programming languages with a low level of abstraction, depending on the operating system, the domains in which will be implemented and the platforms that best suits the application. We propose an approach to satisfy the need of high level development methods in WSN applications, aiming to provide a clear link between the modeled WSN constraints and the programming entities. An important part of this proposal is the profile and framework so-called WiSeN. The WiSeN Profile is a UML profile devoted for WSN applications design, while the framework has tools to assist the deploy of applications for WSNs from the generation of source codes to the processing of the data collected. In this work is discussed the use of the WiSeN Profile together with the framework following the Model-Drivel Development (MDD) paradigm providing a significant set of resources to generate WSN applications on different platforms during the implementation of the new applications.

(18)
(19)

Figura 1 Componentes do hardware de um nodo sensor. . . 31 Figura 2 Diagrama de pacotes que possui o perfil MARTE.. . . 35 Figura 3 Domain-Specific Language apresentada em ( VICENTE-CHICOTE et al., 2007a). . . 47 Figura 4 DSL apresentada em (RODRIGUES et al., 2011). . . 48 Figura 5 Etapas para o DDM utilizando o m´etodo WiSeN. . . 72 Figura 6 Diagrama de pacotes que cont´em os pacotes importados dos perfil MARTE pelo perfil WiSeN. . . 74 Figura 7 Diagrama de Perfil que apresenta as tags propostas pelo perfil WiSeN e os pacotes em que est˜ao contidas. . . 75 Figura 8 Diagrama de classes que modela uma aplica¸c˜ao em RSSF. 79 Figura 9 Diagrama de Sequˆencia que aplica o funcionamento de um nodo sensor. . . 80 Figura 10 Diagrama de Sequˆencia que aplica o funcionamento de um nodo sink. . . 82 Figura 11 Diagrama de classes padr˜ao para modelagem de uma aplica¸c˜ao de RSSF. . . 84 Figura 12 Rela¸c˜oes do MF Definidas por (CZARNECKI, 1998) . . . 86 Figura 13 Modelo com as features referentes `a aplica¸c˜ao e conex˜ao selecionadas (as caixas preenchidas est˜ao selecionadas). . . 88 Figura 14 Exemplifica¸c˜ao de uma transforma¸c˜ao utilizando o mo-delo de features em conjunto com o diagrama de classes . . . 91 Figura 15 N´ıveis organizacionais adotados para a implementa¸c˜ao dos transformadores. . . 93 Figura 16 Ciclo do Desenvolvimento Dirigido `a Testes. . . 94 Figura 17 C´odigo fonte do test case criado para testar o transfor-mado do nodo sensor. . . 95 Figura 18 Diagrama com os componentes de inicializa¸c˜ao do ga-teway. . . 97 Figura 19 Diagrama com a componentes usados para habilitar a sele¸c˜ao de um arquivo de configura¸c˜ao. . . 98 Figura 20 Diagrama com as tags de leitura para interpreta¸c˜ao do arquivo de configura¸c˜ao. . . 98 Figura 21 Diagrama que cont´em os componentes para a manipula¸c˜ao

(20)

sink. . . 100

Figura 23 Diagrama que cont´em unicamente os componentes visu-ais.. . . 101

Figura 24 Interface dos componentes visuais visualizados no servi-dor de controle. . . 101

Figura 25 Diagrama que cont´em unicamente os componentes para cria¸c˜ao do arquivo de Log. . . 102

Figura 26 Log gerado pelo gateway. . . 102

Figura 27 Log convertido para XML. . . 103

Figura 28 C´odigo em linguagem Scala contendo o objeto Applica-tion e seus m´etodos para salvar e recuperar os dados do banco de dados . . . 104

Figura 29 Log convertido para Json. . . 105

Figura 30 Tela que cont´em a lista de dados contidos no BD. . . 106

Figura 31 Tela de apresenta¸c˜ao do calculo da m´edia dos valores escolhidos pelo usu´ario na lista da primeira tela. . . 107

Figura 32 Tela de demonstra¸c˜ao do gr´afico gerado pela sele¸c˜ao dos valores escolhidos pelo usu´ario na lista da primeira tela.. . . 108

Figura 33 Estrutura especificada para o cen´ario de avalia¸c˜ao. . . 112

Figura 34 EPOSMoteI . . . 114

Figura 35 EPOSMoteII . . . 114

Figura 36 Divis˜ao da estrutura de acordo com a identifica¸c˜ao de cada nodo. . . 115

Figura 37 Modelo especificado para montar estrutura do pacote de mensagem. . . 116

Figura 38 Features selecionadas para representar o protocolo de acesso ao meio de acordo com a especifica¸c˜ao. . . 117

Figura 39 Features selecionadas para representar a transmiss˜ao de acordo com a especifica¸c˜ao. . . 117

Figura 40 Features selecionadas para especificar as caracter´ısticas dos nodos de acordo com a especifica¸c˜ao. . . 118

Figura 41 Features selecionadas para escolher o SO para a trans-forma¸c˜ao. . . 119

Figura 42 Features selecionadas para especificar as caracter´ısticas dos sensores de acordo com a especifica¸c˜ao. . . 119

(21)

Figura 44 Features selecionadas para representar as conex˜oes . . . 120

Figura 45 Features selecionadas para representar o a aplica¸c˜ao do nodo sink. . . 121

Figura 46 Features selecionadas para selecionar para qual tipo de nodo a aplica¸c˜ao deve ser gerada.. . . 122

Figura 47 Diagrama de classes que explora uma aplica¸c˜ao de RSSF real para sensoriamento de temperatura usando um sensor digital . 123 Figura 48 Diagrama de classes que explora apenas os elementos que possuem varia¸c˜ao quando usado um sensor anal´ogico. . . 125

Figura 49 Diagrama que representa o inicio da transforma¸c˜ao. . . 126

Figura 50 Diagrama com a sequencia de transforma¸c˜ao do arquivo MakeDefs. . . 127

Figura 51 Entrada e Sa´ıda da transforma¸c˜ao do arquivo MakeDefs.128 Figura 52 Arquivos gerados ap´os a transforma¸c˜ao. . . 128

Figura 53 Ambiente real controlado de acordo com a estrutura es-pecificada. . . 129

Figura 54 Modelo completo com todas as features propostas. . . 149

Figura 55 C´odigo gerado para a aplica¸c˜ao do nodo sensor. . . 179

Figura 56 C´odigo gerado para a aplica¸c˜ao do nodo sink. . . 180

Figura 57 Diagrama contendo todos os componentes do gateway implementado no LabView.. . . 181

(22)
(23)

AOP Aspect-Oriented Programming . . . 25 AOSD Aspect-Oriented System Design . . . 25 BD Banco de Dados . . . 25 CDFG Control and Data Flow Graph . . . 25 DBMS Database Management System . . . 25 DDM Desenvolvimento Dirigido a Modelos . . . 25 DSE Design Space Exploration . . . 25 DSML Domain Specific Modeling Language . . . 25 EPOS Embedded Parallel Operating System . . . 25 FBD Family-Based Design . . . 25 FOMDA Features-Oriented Model-Driven Architecture . . . 25 GUI Graphical User Interface . . . 25 HTTP Hypertext Transfer Protocol . . . 25 IAMM Internal Application Meta-Model . . . 25 IDE Integrated Development Environment . . . 25 IMM Implementation Meta-Model . . . 25 IP Internet Protocol . . . 25 IPMM Internal Platform Meta-Model . . . 25 M2M Model-To-Model . . . 25 M2T Model-To-Text . . . 25 MARTE Modeling and Analysis of Real-Time and Embedded

Sys-tems . . . 25 MDD Model-Driven Development . . . 25 MDE Model-Driven Engineering . . . 25 MF Modelo de Feature . . . 25 MMM Mapping Meta-Model . . . 25 ModES Model-driven Design of Embedded Systems . . . 25 MOF Meta Object Facility . . . 25 OCL Object Constraint Language . . . 25 ODBC Open Database Connectivity . . . 25 OMG Object Management Group . . . 25 OO Orientado a Objetos . . . 25

(24)

PDA Personal Digital Assistant . . . 25 PSM Platform Specific Model . . . 25 rCOs Relational Calculus of Object and Component Systems . 25 RDBMS Relational DataBase Management Systems . . . 25 RSM Repetitive Structure Modeling . . . 25 RTE Real Time Environment . . . 25 RTES Real Time and Embedded Systems . . . 25 RSSF Redes de Sensores Sem Fio . . . 25 SE Sistemas Embarcados . . . 25 SGBD Sistema Gerenciador de Banco de Dados . . . 25 SNA Sensor Network Appliance . . . 25 SO Sistema Operacional . . . 25 STR Sistemas de Tempo-Real . . . 25 TASK Tiny Application Sensor Kit . . . 25 TCP Transmission Control Protocol . . . 25 UML Unified Modeling Language . . . 25 VSL Value Specification Language . . . 25 WSAN Wireless Sensor and Actuator Network . . . 25 WSN Wireless Sensor Network . . . 25

(25)

1 INTRODUC¸ ˜AO . . . 25 1.1 MOTIVAC¸ ˜AO . . . 26 1.2 METODOLOGIA . . . 27 1.3 ESTRUTURA DO DOCUMENTO . . . 28 2 CONTEXTUALIZAC¸ ˜AO DO TRABALHO . . . 31 2.1 RSSF . . . 31 2.2 UML PROFILE . . . 33 2.3 DESENVOLVIMENTO DIRIGIDO POR MODELOS (DDM) 36 3 TRABALHOS RELACIONADOS . . . 41 3.1 GERAC¸ ˜AO DE C ´ODIGO A PARTIR DE MODELOS UML 41 3.2 PERFIL E MODELOS UML . . . 46 3.3 GERAC¸ ˜AO DE C ´ODIGO PARA RSSF . . . 47 3.4 MIDDLEWARE . . . 50 3.5 VISUALIZADORES DE DADOS . . . 51 3.6 DISCUSS ˜AO . . . 54

4 FERRAMENTAS E TECNOLOGIAS UTILIZADAS . 61

4.1 WTC . . . 61 4.2 FERRAMENTAS DE MODELAGEM . . . 62 4.3 LABVIEW . . . 63 4.4 HEROKU . . . 64 4.5 MONGODB . . . 65 4.6 SISTEMAS OPERACIONAIS . . . 66 4.6.1 EPOS . . . 66 4.6.2 TinyOS . . . 67 5 M ´ETODO DE DESENVOLVIMENTO DIRIGIDO A

MODELOS PARA RSSF . . . 71 5.1 M ´ETODO WISEN . . . 71 5.2 PERFIL WISEN . . . 73 5.3 ABORDAGEM DDM PARA RSSF . . . 79 5.3.1 Diagrama de Classes . . . 83 5.3.2 O Modelo de Feature WiSeN . . . 86 6 O FRAMEWORK WISEN . . . 89 6.1 TRANSFORMADORES . . . 89 6.1.1 Desenvolvimento dos transformadores . . . 93 6.2 LEITOR DE DADOS (GATEWAY ) . . . 96 6.3 WEBSERVICE DE INTEGRAC¸ ˜AO . . . 104 6.4 APLICATIVO MOBILE . . . 106

(26)

7.2 ESTRUTURA . . . 111 7.2.1 Sensores . . . 113 7.2.2 Motes . . . 114 7.3 ESPECIFICAC¸ ˜AO . . . 115 7.3.1 Modelos de Features . . . 116 7.3.2 Diagrama de Classes . . . 122 7.4 TRANSFORMAC¸ ˜AO . . . 126 7.5 IMPLANTAC¸ ˜AO . . . 128 7.6 INTEGRAC¸ ˜AO . . . 129 7.7 AVALIAC¸ ˜AO . . . 130 8 CONCLUS ˜AO . . . 133 REFER ˆENCIAS . . . 137 AP ˆENDICE A -- Guia de uso das Features . . . 149 AP ˆENDICE B -- Guia de uso das Tags . . . 167 AP ˆENDICE C -- Dependˆencias . . . 175 AP ˆENDICE D -- C´odigos e Diagramas de Blocos . . . 179

(27)

1 INTRODUC¸ ˜AO

O Desenvolvimento Dirigido a Modelos (DDM), ou em inglˆes Model-Driven Development (MDD), tem como id´eia b´asica gerar um c´odigo-fonte para uma plataforma de software espec´ıfica a partir de um modelo de linguagem denominado DSL (Domain Specific Language). O MDD surgiu devido `a necessidade de se desenvolver softwares indepen-dentemente de plataformas e com um alto ´ındice de reuso (MELLOR; CLARK; FUTAGAMI, 2003)

Devido ao alto n´ıvel de abstra¸c˜ao que o DDM fornece, ´e poss´ıvel capturar o comportamento e restri¸c˜oes da aplica¸c˜ao, auxiliando na iden-tifica¸c˜ao de pontos que precisem ser otimizados durante a implanta¸c˜ao. Isto faz com o DDM se torne adequado para o desenvolvimento de sis-temas embarcados, como as Redes de Sensores Sem Fio (RSSF) ou, em inglˆes, Wireless Sensor Networks (WSNs) (AKYILDIZ et al., 2002; CHONG; KUMAR, 2003; CULLER; ESTRIN; SRIVASTAVA, 2004), pois es-tas redes podem ser entendidas como sistemas compostos de pequenos dispositivos embarcados.

Comumente, as RSSFs s˜ao usadas para monitoramento de am-bientes in´ospitos e de dif´ıcil acesso atrav´es de sensoriamento cont´ınuo e controle local de atuadores. Do ponto de vista da aplica¸c˜ao, o que realmente importa s˜ao os dados coletados a partir das RSSFs, os quais devem ser transmitidos dos sensores para algum tipo de servidor, de forma a serem posteriormente armazenados e processados. Por´em, a configura¸c˜ao destas redes n˜ao ´e algo trivial.

Durante os projetos, ´e comum que os projetistas de aplica¸c˜oes de RSSFs gastem muito tempo com detalhes de baixo n´ıvel relacionados `

a programa¸c˜ao dos sensores. Percebe-se que, normalmente, isto ocorre porque o fluxo de um projeto em RSSF ´e iniciado codificando-se as aplica¸c˜oes diretamente na linguagem de programa¸c˜ao.

De fato, as funcionalidades adicionais deveriam ser programadas ou pelo menos configuradas, nos nodos sensores como, por exemplo, a frequˆencia para coleta de dados e transmiss˜ao, o padr˜ao de trans-miss˜ao de mensagens (e.g. broadcast ou ponto-a-ponto), a pol´ıtica de roteamento das mensagens, entre outros. Dessa forma, assumindo que tais funcionalidades s˜ao fornecidas por um Sistema Operacional (SO) embarcado, seria desej´avel que tais aplica¸c˜oes pudessem ser modeladas e testadas num n´ıvel de abstra¸c˜ao mais elevado quando houvesse al-tera¸c˜oes nos objetivos de cada aplica¸c˜ao, o que permitiria ao projetista somente se preocupar em configurar adequadamente o SO.

(28)

O uso de linguagens de modelagem como UML (OMG, 2012) para o desenvolvimento de aplica¸c˜oes em RSSF ´e uma abordagem muito promissora (SADILEK, 2008). S˜ao linguagens de f´acil compreens˜ao e permitem que os projetistas modelem um sistema sem a necessidade de conhecimentos em linguagem de programa¸c˜ao, podendo focar seus esfor¸cos apenas na aplica¸c˜ao. Al´em disso, elas s˜ao altamente acopl´aveis a outras tecnologias, aumentando o seu n´ıvel de abstra¸c˜ao.

Visando uma simplifica¸c˜ao ao longo do desenvolvimento de aplica¸c˜oes para RSSFs, este trabalho apresenta um m´etodo orientado a modelos, chamado de m´etodo WiSeN, que aumenta o n´ıvel de abstra¸c˜ao do desenvolvimento , permitindo que os projetistas se concentrem na aplica¸c˜ao, sem a necessidade de lidar com os detalhes de baixo n´ıvel.

Junto ao m´etodo, a abordagem proposta inclui o perfil e o fra-mework WiSeN que, criados para facilitar a especifica¸c˜ao e implanta¸c˜ao de aplica¸c˜oes de RSSF, possuem como finalidade sua utiliza¸c˜ao sob a perspectiva do DDM.

Como meio verificar se a proposta atinge os objetivos, neste trabalho ser´a apresentado um cen´ario de avalia¸c˜ao que visa aplicar o m´etodo WiSeN para implantar uma Rede de Sensores sem Fio utili-zando as ferramentas propostas.

1.1 MOTIVAC¸ ˜AO

O Desenvolvimento Dirigido a Modelos vem se tornando um pa-radigma importante para a produ¸c˜ao de sistemas por meio de espe-cifica¸c˜oes de alto n´ıvel utilizando requisitos de hardware e software (SELIC, 2007; SADILEK, 2007). Entretanto, dentro deste tema h´a uma carˆencia de propostas que tratam detalhadamente e exclusivamente de sistemas para RSSF, raz˜ao pela qual, com algumas exce¸c˜oes na litera-tura como as que est˜ao descritas na se¸c˜ao 3,

“os desenvolvedores geralmente tˆem de lidar com problemas de sistema em baixo n´ıvel, as-sim como com o design de protocolos dis-tribu´ıdos”.(MOTTOLA; PICCO, 2011)

Corpora¸c˜oes que realizam a an´alise de tecnologias contem-porˆaneas, como (ONWORLD, 2013) e (CONET, 2013) afirmam que

“apesar dos avan¸cos de hardware representarem um papel significativo no tema RSSF, o poder desta tecnologia apenas poder´a ser plenamente aproveitado se plataformas de software

(29)

adequa-das estiverem dispon´ıveis para os desenvolvedo-res de aplicativos”.

Neste sentido, o uso de modelos permite n˜ao s´o uma melhor compreens˜ao do problema, como torna poss´ıvel o aumento do n´ıvel de abstra¸c˜ao no desenvolvimento de aplica¸c˜oes para RSSF.

Alguns desses conceitos est˜ao sendo usados em ( VICENTE-CHICOTE et al., 2007b; RODRIGUES et al., 2011) onde diferentes n´ıveis de abstra¸c˜oes foram definidos para construir aplica¸c˜oes de RSSF.

Portanto, atrav´es de modelos que atendam a arquitetura de uma RSSF ´e poss´ıvel gerar uma gama de aplica¸c˜oes e facilitar a gera¸c˜ao e implementa¸c˜ao de novas aplica¸c˜oes para interpreta¸c˜ao dos dados, raz˜ao pela qual ´e poss´ıvel ter uma consider´avel evolu¸c˜ao no que diz respeito ao monitoramento de ambientes. Por´em, segundo (HAC, 2003):

“a implanta¸c˜ao de grandes redes de sensores exige ferramentas para coletar e consultar seus dados. H´a interesses particulares agregados a opera¸c˜oes que se resumem a valores mo-mentˆaneos de parte dos sensores ou para toda uma rede de sensores. Dada uma densa rede de milhares de sensores que consultam por exemplo, a temperatura, os usu´arios querem saber padr˜oes de temperatura em regi˜oes relativamente gran-des, abrangendo dezenas de sensores, e as leitu-ras dos sensores individuais s˜ao de pouco valor.”

Considerando as afirma¸c˜oes acima, a motiva¸c˜ao deste traba-lho visa facilitar aos desenvolvedores, que n˜ao detenham conhecimento t´ecnico aprofundado sobre sistemas embarcados, possam realizar a im-planta¸c˜ao de aplica¸c˜oes de RSSF com um framework que os auxilie desde a coleta at´e a visualiza¸c˜ao final dos dados.

1.2 METODOLOGIA

O objetivo deste trabalho ´e realizar um Desenvolvimento Diri-gido a Modelos de forma que seja poss´ıvel, a partir de modelos prede-finidos e configur´aveis, gerar aplica¸c˜oes para redes de sensores sem fio desde a codifica¸c˜ao em multiplataformas at´e a interface com os usu´arios finais, visando um desenvolvimento amig´avel com uma alta usabilidade. Para demonstrar a proposta em quest˜ao, foi utilizada uma me-todologia de pesquisa baseada na apresenta¸c˜ao de um cen´ario de ava-lia¸c˜ao. Utilizando enfoques explorat´orios e descritivos, buscou-se

(30)

iden-tificar a multiplicidade de dimens˜oes presentes numa situa¸c˜ao previ-amente estabelecida para o atingimento dos objetivos deste trabalho. Para isso, as seguintes tarefas foram executadas:

• Investigar como o uso de uma abordagem dirigida a modelos pode auxiliar no desenvolvimento de aplica¸c˜oes para RSSF, aumen-tando o n´ıvel de abstra¸c˜ao e reuso.

• Criar um perfil UML que atenda as necessidades da modelagem de alto n´ıvel para RSSF.

• Desenvolver transformadores de modelos para permitir a mi-gra¸c˜ao dos modelos em alto n´ıvel para as plataformas EPOS-MOTEII e EPOSMoteI/Meshnetics.

• Implementar um gateway para o recebimento dos dados e um sistema de monitoramento para o servidor de controle, de forma que ambas as aplica¸c˜oes possam ser configuradas e integradas a partir de modelos de alto n´ıvel.

• Implementar um aplicativo de visualiza¸c˜ao dinˆamica para o mo-nitoramento remoto a partir de dispositivos m´oveis (celulares ou tablets).

• Demonstrar o m´etodo proposto atrav´es de um cen´ario de ava-lia¸c˜ao aplicando todo ciclo de desenvolvimento proposto.

• Coletar dados quantitativos relacionados as perspectivas usadas no trabalho para avaliar sua eficiˆencia, como: Tamanho dos mo-delos, quantidade de c´odigos gerados, utiliza¸c˜ao dos geradores e quantidade de features selecionadas.

No estudo foram utilizados dois SOs diferentes, denominados EPOS e TinyOS, em conjunto com duas plataformas livres para RSSF, denominadas EPOSMoteII e EPOSMoteI/Meshnetics que serviram de material privilegiado de an´alise, exemplifica¸c˜ao e utiliza¸c˜ao do fra-mework em m´ultiplas plataformas.

1.3 ESTRUTURA DO DOCUMENTO

O restante do trabalho est´a organizado como segue:

O Cap´ıtulo 2 faz uma revis˜ao conceitual sobre as tecnologias utilizadas no trabalho.

(31)

O Cap´ıtulo 3 descreve trabalhos relacionados com o tema de estudo em quest˜ao.

O Cap´ıtulo 4 faz uma introdu¸c˜ao das ferramentas que foram utilizadas no presente trabalho.

O Cap´ıtulo 5 analisa a proposta do m´etodo WiSeN para o De-senvolvimento Dirigido a Modelos para RSSF junto com os modelos, perfis e framework WiSeN propostos para a gera¸c˜ao das aplica¸c˜oes.

O Cap´ıtulo 6 faz uma apresenta¸c˜ao sobre o framework WiSeN proposto e aborda como as ferramentas interagem entre si.

O Cap´ıtulo 7 apresenta um cen´ario de avalia¸c˜ao para o Desen-volvimento Dirigido a Modelos. Esse estudo apresenta um exemplo que ilustra a aplica¸c˜ao do m´etodo WiSen durante a especifica¸c˜ao de um modelo de alto n´ıvel para uma aplica¸c˜ao t´ıpica de RSSF que con-sidera o dom´ınio de WSN requerido e faz uso da proposta de Perfil WISeN junto ao framework. Esse exemplo tamb´em abrange a gera¸c˜ao de c´odigo-fonte.

(32)
(33)

2 CONTEXTUALIZAC¸ ˜AO DO TRABALHO

Este capitulo apresenta alguns conceitos fundamentais para com-preens˜ao das tecnologias utilizadas neste trabalho.

2.1 RSSF

Uma Rede de Sensores Sem Fio (RSSF) ´e um tipo particular de redes ad-hoc com uma s´erie de caracter´ısticas e requisitos espec´ıficos.

Seus nodos s˜ao formados por “sensores inteligentes”, isto ´e, pe-quenos dispositivos equipados com avan¸cadas funcionalidades de senso-riamento (t´ermico, press˜ao, ac´ustico, etc.), um processador, uma fonte de energia (interna ou externa) e transceivers para transmiss˜ao a curtas distˆancias (SANTI, 2005;CARLE; SIMPLOT-RYL, 2004), representado na Figura 1. Devido a sua limita¸c˜ao de processamento, armazenamento e, na maioria das vezes, consumo de energia, os dispositivos se limitam a coletar, eventualmente agregar, e transmitir seus pr´oprios dados e os dos seus vizinhos para os nodos sorvedouros.

Figura 1 – Componentes do hardware de um nodo sensor.

´

E constitu´ıda uma rede de sensores sem fio, quando dois ou mais dispositivos colaboram entre si usando comunica¸c˜ao sem fio e um fluxo de dados assim´etrico de muitos para um (CARLE; SIMPLOT-RYL, 2004). Seu principal objetivo ´e realizar tarefas de sensoriamento de forma dis-tribu´ıda em benef´ıcio de aplica¸c˜oes clientes. Nesse tipo de rede, nodos trocam informa¸c˜oes sobre um ambiente a fim de construir uma vis˜ao

(34)

global da regi˜ao monitorada, que se torna acess´ıvel ao usu´ario externo atrav´es de um ou mais nodos gateways, os quais s˜ao muitas vezes partes intr´ınsecas das redes de sensores e s˜ao obrigados a conectar os dados entre as redes de sensores e dispositivos de outras redes. Portanto, essas redes funcionam como poderosos sistemas de aquisi¸c˜ao de dados ambientais. Os dados s˜ao coletados atrav´es dos sensores distribu´ıdos e entregues a pontos de sa´ıdas da rede, chamados nodos sorvedouros, a fim de sofrerem an´alise e processamento adicional.

Para que seja efetuada uma modelagem adequada em alto n´ıvel de abstra¸c˜ao, ´e necess´ario definir as principais caracter´ısticas que en-volvem uma RSSF. Esta tarefa ´e relativamente complexa sendo este um assunto que possui uma constante evolu¸c˜ao e a todo momento apare-cem e somem novas propriedades a seu respeito. Al´em das constantes mudan¸cas, muitos de seus componentes exigem estudos extremamente detalhados para que seja poss´ıvel atingir um n´ıvel alto de maturidade. Por exemplo, algumas caracter´ısticas como a fonte de energia que s˜ao utilizada pelos nodos, possuem diversas vari´aveis e protocolos para des-crever sua funcionalidade. O mesmo ´e v´alido para protocolos de comu-nica¸c˜ao, que est˜ao em constante aprimoramento e h´a sempre novos tipos sendo propostos. Estas propriedades poderiam gerar novos estudos que contemplariam somente suas peculiaridades.

Na literatura, s˜ao encontradas excelentes pesquisas que abor-dam os conceitos funabor-damentais de RSSFs de uma maneira simplifi-cada, como mostrado em (MOTTOLA; PICCO, 2011; ZHAO; GUIBAS, 2004;YICK; MUKHERJEE; GHOSAL, 2008;BARONTI et al., 2007; AKYIL-DIZ et al., 2002). Estas pesquisas descrevem as necessidades e solu¸c˜oes relacionadas a concep¸c˜ao, programa¸c˜ao e configura¸c˜ao de hardware e software.

Os principais aspectos introduzidos por estas obras foram exa-minadas e como resultado, observou-se todos os atributos, associa¸c˜oes e restri¸c˜oes necess´arias para especificar uma aplica¸c˜ao de RSSF. Em resumo, os seguintes aspectos foram identificados:

Aplica¸c˜ao − Para descrever uma aplica¸c˜ao, s˜ao desej´aveis a re-presenta¸c˜ao de v´arios elementos. Alguns destes elementos como a taxo-nomia, os padr˜oes de intera¸c˜ao e a mobilidade s˜ao cruciais para idealizar o cen´ario.

Atuador − Ap´os ser definida a aplica¸c˜ao, algumas medidas po-dem ser tomadas a partir das informa¸c˜oes recebidas. Para isto, equipa-mentos de automa¸c˜ao, monitoramento de ambientes e/ou outros con-troles podem ser utilizados em uma aplica¸c˜ao.

(35)

rede devem ser especificadas. Isso pode depender desde o n´umero m´aximo de nodos emissores e receptores at´e a topologia que ser´a utili-zada, ou at´e mesmo o comportamento esperado pela rede.

Nodo − Algumas informa¸c˜oes n˜ao funcionais s˜ao necess´arias para que a modelagem da aplica¸c˜ao torne-se poss´ıvel. Entre elas ´e poss´ıvel citar os diferentes atributos que podem ser usados dentro da plata-forma escolhida, quais sensores dispon´ıveis (por exemplo, temperatura, press˜ao), quais as fontes de alimenta¸c˜ao (por exemplo, solar, bateria), sistemas operacionais, drive do r´adio, entre outros. Fora isso, ainda existem as caracter´ısticas que n˜ao s˜ao f´ısicas, tais como, a posi¸c˜ao es-pacial, os vizinhos de cada nodo, per´ıodo de hiberna¸c˜ao do node, entre outros.

Comunica¸c˜ao − ´E uma das partes mais cruciais do trabalho. Aborda como os nodos se comunicam entre si dentro da rede. Diferentes tipos de protocolos de roteamento est˜ao dispon´ıveis. Para que a escolha seja bem feita, devem ser considerados, por exemplo, quais tipos de mensagens ser˜ao transmitidas, a eficiˆencia energ´etica e a sincroniza¸c˜ao das mensagens entre as transmiss˜oes.

Nos estudos realizados, notou-se que embora o ambiente de aplica¸c˜ao das RSSF possa variar consideravelmente, seu funcionamento b´asico permanece praticamente o mesmo. Com os conceitos arquitetu-rais citados abaixo ´e poss´ıvel modelar uma aplica¸c˜ao para RSSF, sendo eles:

1. Os nodos sensores devem coletar informa¸c˜oes de suas unidades de sensoriamento;

2. os nodos sensores enviam os dados coletados para o nodo sink ; 3. o nodo sink recebe os dados e os armazena em um servidor atrav´es

de um gateway; e

4. o gateway processa os dados usando programas de an´alise.

2.2 UML PROFILE

Analisando as defini¸c˜oes apresentadas pela OMG (OMG, 2011) definiu-se um perfil da UML (RUMBAUGH; JACOBSON; BOOCH, 2004) como sendo extens˜oes limitadas a um metamodelo de referˆencia com o objetivo de adaptar o metamodelo a uma plataforma ou dom´ınio es-pec´ıfico. Portanto, um perfil ´e uma esp´ecie de pacote que estende um metamodelo de referˆencia. A estrutura principal ´e o estere´otipo, que ´e

(36)

definida como parte dos perfis. Um perfil apresenta v´arias limita¸c˜oes ou restri¸c˜oes em metamodelos comuns atrav´es da utiliza¸c˜ao das meta-classes definidas neste pacote.

Um estere´otipo define como uma meta-classe existente pode ser estendida, e permite o uso de plataformas ou terminologias espec´ıficas de dom´ınio no lugar, ou al´em, dos usados para nestas meta-classes. As-sim como uma classe, um estere´otipo pode ter propriedades que podem ser referenciadas como tag. Quando um estere´otipo ´e aplicado a um elemento do modelo, os valores das propriedades podem ser referidos como sendo os valores das tags.

Portanto, um perfil ´e uma biblioteca (disponibilizada na forma de pacotes) que possui defini¸c˜oes para complementar metamodelos que podem ser referenciados. Este pacote possui diversos estere´otipos que possibilitam que o perfil seja aplicado a meta-classes existentes. Os estere´otipos, por sua vez, possuem tags que atuam como caracter´ısticas funcionais e n˜ao funcionais, recebendo e disponibilizando valores com o objetivo de adaptar o meta-modelo a uma plataforma ou dom´ınio espec´ıfico.

O perfil MARTE (Modeling and Analysis of Real-Time and Em-bedded Systems, ou em portuguˆes Modelagem e An´alise de Tempo-Real e Sistemas Embarcados) (OMG, 2009) foi proposto para substituir o perfil UML SPT (OMG, 2005). O MARTE ´e hoje um dos principais padr˜oes de modelagem para projetos de sistemas embarcados e esta fi-cando cada vez mais popular. Este padr˜ao visa aprimorar a UML para lidar com as necessidades espec´ıficas de Sistemas de Tempo Real (STR) e Sistemas Embarcados (SE).

Este perfil define conceitos para descri¸c˜oes baseadas em modelos, an´alise em tempo real e sistemas embarcados. A inten¸c˜ao n˜ao ´e definir novas t´ecnicas para a an´alise de sistemas de tempo real e sistemas em-barcados, mas sim apoi´a-las. A ideia inicial era permitir a constru¸c˜ao de modelos UML preditivos que poderiam ser utilizados para anali-sar as propriedades principais do sistema - tais como o desempenho, escalonabilidade e pr´e-requisitos para seu funcionamento - antes que o sistema fosse constru´ıdo. Isso significa oferecer aos projetistas uma maneira f´acil de projetar hardware e software, contendo os aspectos da RTES com a capacidade de anexar informa¸c˜oes quantitativas a um modelo UML. Al´em disso, os padr˜oes utilizados por MARTE permitem uma interoperabilidade entre ferramentas de modelagem, ferramentas de an´alise de modelos, ferramentas para a gera¸c˜ao de c´odigo, entre outros.

(37)

diferen-Figura 2 – Diagrama de pacotes que possui o perfil MARTE.

tes tipos de atributos que podem ser agregados ao sistema modelado. Esta estrutura foi criada visando duas quest˜oes principais de modela-gem: As caracter´ısticas de um STR e SE e a descri¸c˜ao da aplica¸c˜ao, de modo a apoiar a an´alise das propriedades do sistema. Desta forma, o perfil MARTE foi dividido em quatro pacotes distintos, como mostrado na Figura 2.

• Funda¸c˜oes MARTE − Cont´em defini¸c˜oes comuns para descrever o tempo e uso de recursos concorrentes. A maioria deles s˜ao com-partilhados com as duas partes principais, o “Modelo de Design MARTE”e o “Modelo de An´alise MARTE”.

(38)

• Modelo de Design MARTE − Fornece conceitos de alto n´ıvel para a modelagem de caracter´ısticas quantitativas e qualitativas de sis-temas ou protocolos de tempo real. Al´em disso, tamb´em descreve alguns recursos de hardware e software que podem ser utilizados na execu¸c˜ao de uma aplica¸c˜ao.

• Modelo de An´alise MARTE − Trabalha principalmente com ava-lia¸c˜oes precisas utilizando an´alises quantitativas formais e tempo; al´em disso, define tamb´em um quadro de an´alise geral, que tem a inten¸c˜ao de refinar algum outro tipo de an´alise, tais como con-sumo de energia, uso de mem´oria, ou a confiabilidade.

• Anexos MARTE − Cont´em os perfis anexos definidos no MARTE tais como VSL MARTE (Value Specification Language), RSM (Repetitive Structure Modeling) e bibliotecas pr´e-definidas que podem ser usadas pelos modeladores.

No entanto, os recursos oferecidos pelo MARTE se concentram principalmente em atender as peculiaridades de sistemas embarcados. Ao lidar com RSSF, esta tecnologia possui suas pr´oprias peculiarida-des, o MARTE possui algumas desvantagens e observou-se que alguns melhoramentos s˜ao necess´arios para torn´a-lo mais adequado para a mo-delagem de aplica¸c˜oes. No que diz respeito a RSSF, por exemplo, ca-racter´ısticas adicionais devem ser inclu´ıdas ao perfil, tais como comu-nica¸c˜ao, sensoriamento e sincroniza¸c˜ao, gerando a necessidade de com-plementa¸c˜ao para que atenda as exigˆencias da modelagem de aplica¸c˜oes para RSSF. Al´em disso, alguns conceitos como estrutura de mensagens e as peculiaridades do nodo, n˜ao existem no MARTE conforme ser´a visto no capitulo 5.

2.3 DESENVOLVIMENTO DIRIGIDO POR MODELOS (DDM)

Desenvolvimento Dirigido por Modelos (SELIC, 2003) ´e uma espe-cializa¸c˜ao contida na Engenharia Dirigida por Modelos (EDM) ou, em inglˆes, Model-Driven Engineering(MDE) descrita em (SCHMIDT, 2006) como uma abordagem promissora para lidar com a complexidade de di-ferentes plataformas e expressar conceitos de dom´ınio de forma eficaz. A EDM combina tecnologias como Domain-specific modeling languages (DSML) e Transformation engines and generators.

De acordo com (B´eZIVIN, 2005), para se compreender o termo “modelo”, deve-se levar em considera¸c˜ao o contexto em que o mesmo ´e utilizado. Para sistemas relacionados `a computa¸c˜ao, h´a uma defini¸c˜ao

(39)

consensual de modelo dada por Rothenberg (ROTHENBERG, 1989), que diz:

“modelagem, no sentido mais amplo, ´e o uso econˆomico de algo no lugar de outra coisa para algum prop´osito cognitivo. Ela permite usar algo que ´e mais simples, mais seguro ou mais barato do que a realidade para algum prop´osito. Um modelo representa a realidade para um determi-nado prop´osito; o modelo ´e uma abstra¸c˜ao da re-alidade, no sentido de que ele n˜ao pode represen-tar todos os aspectos da realidade. Desta forma, ´

e poss´ıvel lidar com o mundo de uma forma sim-plificada, evitando a complexidade, o perigo e a irreversibilidade da realidade”.

O uso de modelos se torna cada vez mais significante tanto para o desenvolvimento e engenharia de softwares quanto em qualquer outra disciplina da engenharia. Para usar estes potenciais benef´ıcios que a EDM prega, o DDM surgiu com o objetivo de amadurecer estas t´ecnicas ao ponto que elas possam ser aplic´aveis.

Segundo (SELIC, 2003), uma das principais vantagens do DDM ´

e a possibilidade de expressar modelos usando conceitos que s˜ao muito menos ligados `a tecnologia a ser implementada e mais `a proximidade junto ao dom´ınio do problema, considerado um problema para as lin-guagens de programa¸c˜ao mais populares. Estas vantagens fazem com que os modelos sejam mais f´aceis de especificar, de serem compreen-didos e atualizados. Com isso, a modelagem dos sistemas pode ser atribu´ıda a especialistas de dom´ınio ao inv´es de especialistas em tecno-logia, melhorando a qualidade do software e aprimorando a utiliza¸c˜ao dos recursos. Os modelos gerados acabam sendo menos sens´ıveis a plataformas que ser˜ao utilizadas e mais independente em rela¸c˜ao as mudan¸cas evolutivas da tecnologia.

Com o avan¸co das t´ecnicas e ferramentas foi poss´ıvel alcan¸car um grau de maturidade que tornou vi´avel o uso de DDM mesmo em aplica¸c˜oes industriais de larga escala. A utiliza¸c˜ao do DDM em pro-jetos industriais em diversas ´areas se torna cada vez mais comum, e mais casos de sucesso s˜ao divulgados a cada dia (HUTCHINSON; ROUN-CEFIELD; WHITTLE, 2011). Uma pesquisa realizada pela Middleware Company (COMPANY, 2003) indicou que com o uso de DDM no projeto houve um acr´escimo de 37% na produtividade.

De acordo com (HERRINGTON, 2003), a gera¸c˜ao de c´odigo n˜ao se limita a ser apenas uma maneira r´apida de produzir c´odigo fonte. Outros benef´ıcios podem ser alcan¸cados durante o processo conforme

(40)

segue:

• Qualidade: ferramentas geradoras de c´odigo utilizam templates para produzir um c´odigo (para uma plataforma alvo) a partir de elementos especificados em modelos de alto n´ıvel. Quanto maior e mais completo for o conjunto de templates, melhor ´e a qualidade do c´odigo fonte obtido. Se os templates descreverem uma gera¸c˜ao de c´odigo otimizada com base em crit´erios de otimiza¸c˜ao e qua-lidade de design, o aumento de quaqua-lidade ´e refletido no c´odigo fonte final;

• Consistˆencia: a padroniza¸c˜ao de nomenclatura para classes, m´etodos e atributos ´e totalmente consistente no c´odigo gerado. Tal padroniza¸c˜ao facilita a interface entre classes e suas utiliza¸c˜oes porque os padr˜oes utilizados foram definidos dentro dos templa-tes;

• Produtividade: a gera¸c˜ao de c´odigo aumenta os ganhos de produ-tividade, devido `a sua capacidade de adaptar-se rapidamente `as mudan¸cas durante o projeto. Em outras palavras, as modifica¸c˜oes na especifica¸c˜ao podem ser propagadas automaticamente para a implementa¸c˜ao do sistema. Al´em disso, como a gera¸c˜ao de c´odigo pode comprimir o tempo em determinados projetos, resta mais tempo para ser gasto com uma modelagem adequada e testes do prot´otipo, evitando retrabalhos no futuro.

• Abstra¸c˜ao: vantagens em termos de n´ıvel de abstra¸c˜ao de projeto podem ser obtidas usando ferramentas de gera¸c˜ao de c´odigo que funcionam com parˆametros de entrada (por exemplo, modelos es-truturais e de comportamento do sistema, os modelos da base de dados ou defini¸c˜oes sobre as interfaces de usu´ario,etc.) em um formato que seja independente de linguagem. Em outras pala-vras, ´e poss´ıvel gerar o c´odigo-fonte para diferentes linguagens de programa¸c˜ao (tais como Java, Smalltalk ou C++) a partir de um mesmo modelo abstrato.

Por´em, a gera¸c˜ao de c´odigo ´e um recurso somente poderoso quando usado apropriadamente e pode ser muito trabalhoso quando usado em circunstˆancias erradas. Para obter uma solu¸c˜ao eficaz ´e ne-cess´ario usar uma s´erie de ferramentas heterogˆeneas que devem estar bem adaptadas para suas tarefas espec´ıficas.

A estabilidade do projeto e o conjunto de recursos devem ser considerados. Quando o conjunto de recursos n˜ao ´e particularmente

(41)

est´avel, ou o projeto para a implementa¸c˜ao ´e periodicamente alterado junto com as tecnologias, ´e preciso avaliar se a gera¸c˜ao de c´odigos ´e a melhor op¸c˜ao, j´a que seu uso torna-se realmente ´util apenas ap´os um grande esfor¸co de planejamento e implementa¸c˜ao dos componentes de transforma¸c˜ao de c´odigos.

O princ´ıpio do DDM ´e especificar a funcionalidade do sistema utilizando um modelo independente de plataforma (PIM) usando um DSL apropriado. O PIM fornece uma especifica¸c˜ao do sistema que seja adequado para a sua implementa¸c˜ao em diferentes plataformas. Al´em disso, este PIM ´e traduzido para um modelo especifico de plata-forma (PSM), que, por sua vez, oferece um ponto de vista espec´ıfico da plataforma do sistema, por exemplo, ele combina o PIM com as espe-cifica¸c˜oes que o sistema ir´a utilizar para uma determinada plataforma. A fim de possibilitar esta transforma¸c˜ao (ou mapeamento), um modelo de plataforma (PM) deve ser fornecido. O PSM fornece um conjunto de conceitos t´ecnicos, representando as diferentes partes e os diferentes servi¸cos que comp˜oem a plataforma. Ele tamb´em proporciona conceitos que representam os diferentes tipos de elementos para serem utilizados na especifica¸c˜ao e qual plataforma deve ser utilizado pela aplica¸c˜ao. Ao final deste processo ´e realizada a gera¸c˜ao de c´odigos para auxiliar na constru¸c˜ao de novas aplica¸c˜oes.

Gera¸c˜ao de c´odigo significa usar um ou mais programas de com-putador para auxiliar na produ¸c˜ao de c´odigo-fonte, seja o c´odigo-fonte de aplicativos, c´odigos para a configura¸c˜ao da plataforma, entre outros. Resumidamente, pode-se dizer que um programa gerador de c´odigo ´e um conjunto de transformadores que recebem como entrada especi-fica¸c˜oes de alto n´ıvel, normalmente em formato de modelos, a fim de criar um ou mais arquivos de c´odigo-fonte como sa´ıda. Esses transfor-madores formam um conjunto de templates que adequam os arquivos de sa´ıda de acordo com as informa¸c˜oes proporcionadas a partir dos modelos de entrada.

Os transformadores especificados em ferramentas como ( BOO-COCK, 2013) e (OLDEVIK, 2005) s˜ao est´aticos. Um transformador ´e est´atico quando n˜ao ´e poss´ıvel modificar a sua transforma¸c˜ao. Existem propostas em que os transformadores s˜ao dinˆamicos (WILLINK, 2003). Em transformadores dinˆamicos ´e poss´ıvel modificar as transforma¸c˜oes que ele realiza, assim como criar novos transformadores a partir de transformadores pr´e-fabricados. Como as tecnologias dispon´ıveis para desenvolver um sistema mudam com frequˆencia (GRAAF; LORMANS; TOETENEL, 2003; BASSO; BECKER; OLIVEIRA, 2006), a maioria dos transformadores de modelos precisam ser reescritos para efetuar novas

(42)

transforma¸c˜oes. Isto ocorre porque eles s˜ao desenvolvidos para aplicar transforma¸c˜oes voltadas `a uma tecnologia espec´ıfica. Logo, eles n˜ao s˜ao reutiliz´aveis se existirem mudan¸cas nas tecnologias utilizadas pelos sistemas.

Apenas ap´os o desenvolvimento de toda a estrutura de trans-formadores, ´e poss´ıvel gerar um volume significativo de c´odigos que poder˜ao ser empregues ao trabalho. Esta disserta¸c˜ao aplica na pr´atica alguns conceitos de transforma¸c˜oes dinˆamicas baseadas em Linhas de Produto de Software, ou Software Product Lines (SPL)(BASSO et al., 2013).

(43)

3 TRABALHOS RELACIONADOS

Neste cap´ıtulo ser˜ao apresentados os trabalhos relacionados com este tema de mestrado. Por se tratar de um estudo que envolve a in-tegra¸c˜ao de diferentes tecnologias coletamos diferentes referˆencias em diversos campos de pesquisa e, por isso, os trabalhos foram classifica-dos por assuntos. Apesar classifica-dos trabalhos estarem alocaclassifica-dos `a se¸c˜ao que indica o tema principal do estudo, muitas das referencias deste cap´ıtulo tamb´em tratam da integra¸c˜ao de mais de uma tecnologia conforme dis-cutido a seguir.

3.1 GERAC¸ ˜AO DE C ´ODIGO A PARTIR DE MODELOS UML

Na literatura, h´a muitas abordagens diferentes para gerar c´odigo fonte a partir de modelos UML. Alguns destes trabalhos usam so-mente um diagrama (por exemplo, diagrama de classes), enquanto ou-tros usam uma combina¸c˜ao de diferentes diagramas (por exemplo, di-agramas de classe com diagrama de estado, sequˆencia e/ou atividade) para gerar c´odigos que v˜ao desde a constru¸c˜ao das classes at´e c´odigos que cont´em o comportamento dos elementos do sistema. Esta se¸c˜ao apresenta algumas propostas para gerar c´odigo a partir de modelos UML, bem como ferramentas comerciais que implementam tal gera¸c˜ao de c´odigo.

Um trabalho importante para este estudo est´a apresentado em (BASSO; BECKER; OLIVEIRA, 2006) onde a abordagem FOMDA para desenvolvimento de sistemas de tempo real embarcados ´e explorada.O principal objetivo da abordagem FOMDA ´e definir uma solu¸c˜ao para projetistas identificarem mapeamentos e transforma¸c˜oes de modelos de sistemas. Nesta abordagem, o Modelo de Features ´e utilizado para identificar plataformas. Estas s˜ao usadas para identificar modelos fonte (especificados em alto n´ıvel) e modelos alvo (dependentes de uma pla-taforma). Esta identifica¸c˜ao representa um mapeamento. Este deter-mina uma transforma¸c˜ao que deve ser realizada por uma caracter´ıstica do FM para, a partir do modelo fonte, gerar o modelo alvo.

Neste trabalho, foi utilizada a FOMDA Toolkit, tamb´em dis-cutida em (BASSO; BECKER; OLIVEIRA, 2006), que ´e uma ferramenta prot´otipo que d´a suporte `a abordagem FOMDA. Ela ´e utilizada por um projetista de uma aplica¸c˜ao para transformar um modelo especificado em alto n´ıvel em um c´odigo para uma aplica¸c˜ao.

(44)

Como complemento, os autores em (BASSO; OLIVEIRA; FARIAS, 2014) apresentam uma API Java que estende o framework de testes JUnit, usada comumente para automatizar casos de teste para as fun-cionalidades de aplica¸c˜oes, e atualmente aplicado para testar trans-forma¸c˜oes variantes com desempenho semelhante ao da API padr˜ao, tamb´em utilizados nesse estudo. A forma como estes trabalhos foram utilizados neste estudo ser´a aprofundada na se¸c˜ao 6.1.1.

O trabalho apresentado por (HARRISON; BARTON; RAGHAVA-CHARI, 2000) demonstra o mapeamento de diagramas de classes para o c´odigo-fonte Java. Esta abordagem visa a gera¸c˜ao de classes skeletons de alto n´ıvel, o que permite a abstra¸c˜ao dos detalhes sobre os atributos da implementa¸c˜ao a partir do ponto de vista da classe implementada, como por exemplo, os tipos de dados dos atributos. Em outras palavras, a implementa¸c˜ao n˜ao precisa “enxergar” os atributos porque os valores que foram atribu´ıdos a eles s˜ao acessados atrav´es de m´etodos get/set. O processo de gera¸c˜ao de c´odigo s´o considera as classes do modelo UML decoradas com o estere´otipo << Entidade >>. Cada entidade ´e mapeada para uma interface e um par de classes que implementam esta interface, ou seja, para cada entidade X, os seguintes elementos Java s˜ao gerados: (i) uma interface, (ii) uma classe abstrata chamada XAbst, e (iii) uma classe concreta chamada XInst. A interface criada cont´em as opera¸c˜oes definidas no modelo UML para a entidade. A classe abstrata implementa a interface e especifica seus atributos, bem como seus tipos de dados (por exemplo, Integer,String...) e m´etodos auxiliares que acessam os atributos, gerados automaticamente pelo ge-rador de c´odigo. Por fim, a classe concreta estende a classe abstrata para adicionar os m´etodos que devem ser implementados para apoiar as opera¸c˜oes da interface. A partir desta etapa, o programador deve preencher os m´etodos que s˜ao gerados vazios, a fim de proporcionar o comportamento da entidade. A classe concreta acessa os atributos das outras classes por meio dos m´etodos get /set especificados na classe abstrata. Al´em disso, as associa¸c˜oes entre as classes no modelo UML s˜ao representadas por cursores, que s˜ao entidades que encapsulam a complexidade da navega¸c˜ao das associa¸c˜oes e atualiza¸c˜oes. O conceito de cursores foi proposto para separar as associa¸c˜oes semˆanticas das representa¸c˜oes reais e de implementa¸c˜ao.

Uma abordagem de gera¸c˜ao de c´odigo baseado em conceitos de MDA foi apresentado por (HAUSMANN; KENT, 2003) para gerar o c´odigo-fonte de skeletons a partir de diagramas de classes. A aborda-gem proposta utiliza transforma¸c˜oes baseadas em meta-modelos. Para cada linguagem-alvo, um meta-modelo e as regras de mapeamento do

(45)

PIM para o PSM devem ser especificados. O processo de cria¸c˜ao de regras de mapeamento ´e baseado nos pares de elementos, em seus relaci-onamentos, em seus dom´ınios e em suas restri¸c˜oes. Cada par representa dois elementos existentes em diferentes modelos. Os modelos est˜ao co-nectados atrav´es de um relacionamento que especifica as restri¸c˜oes que devem existir entre os mesmos e a quais elementos elas est˜ao ligadas. O mapeamento entre PIM e PSM ´e especificado em diagramas de clas-ses aos quais os elementos dos meta-modelos est˜ao ligados por meio de associa¸c˜oes. Para complementar o modelo, restri¸c˜oes OCL adicionais podem ser inclu´ıdas nas associa¸c˜oes. Apesar de n˜ao mostrar o c´ odigo-fonte gerado no final, regras de mapeamento de UML para linguagem Java foram retratadas em (HAUSMANN; KENT, 2003). Nota-se que esta abordagem gr´afica para descrever as regras de mapeamento podem au-xiliar na visualiza¸c˜ao global da transforma¸c˜ao, no entanto, ela pode dificultar a cria¸c˜ao de mapeamentos mais complexos entre elementos de diferentes modelos.

A formaliza¸c˜ao de classes e diagramas de sequˆencia foi proposto por (LONG et al., 2005), a fim de permitir a gera¸c˜ao do c´odigo a partir de modelos UML 2.0. As semˆanticas dos modelos propostos s˜ao baseadas na semˆantica de C´alculos Relacionais de Objetos de Sistema(rCOs), que foi concebida para projetar sistemas OO. Esse trabalho gera skele-tons de classes Java a partir dos diagramas de classes e c´odigos para os m´etodos presentes no diagrama de sequˆencia. O algoritmo de gera¸c˜ao de c´odigo interpreta diagramas de sequˆencia como uma composi¸c˜ao de sequˆencias de mensagens, permitindo a sua utiliza¸c˜ao para a cria¸c˜ao de c´odigos em fragmentos separados. O c´odigo-fonte pode ser ge-rado apenas se o modelo passar por uma verifica¸c˜ao de consistˆencia. Nesse trabalho, a gera¸c˜ao de c´odigo para a linguagem rCOs ´e demons-trada, mostrando como os skeletons das classes, contendo os atributos e m´etodos vazios, s˜ao criados. Dependendo do comportamento, cada mensagem nos diagramas de sequˆencia ´e transformada em uma cha-mada para m´etodos rCOs. As mensagens s˜ao mapeadas para chamadas de m´etodos no corpo do m´etodo pai.

A gera¸c˜ao de c´odigo a partir de modelos UML que visam a lin-guagem SystemC ´e investigada em (ANDERSSON; H¨oST, 2008). Inicial-mente, o estudo avaliou as constru¸c˜oes de UML 2.0 e SystemC 2.2, e fez uma compara¸c˜ao a fim de criar um mapeamento entre os concei-tos de ambas as linguagens. Considerando a especifica¸c˜ao estrutural, pacotes UML s˜ao mapeados para namespaces do SystemC, enquanto nomes, portas e classes ativas da UML s˜ao mapeados para m´odulos do SystemC (a maioria destes conceitos s˜ao apresentados em diagramas de

(46)

componentes). No entanto, outros tipos de classes n˜ao mencionados s˜ao mapeados para classes C++. Na UML, uma porta tem uma interface requerida e uma fornecida que indicam quais sinais enviam e recebem. Por outro lado, em SystemC uma sc port deve ter exatamente uma in-terface, que corresponde `a interface requerida da porta UML. A Inter-face fornecida das portas UML ´e equivalente a constru¸c˜ao de um m´odulo sc export no SystemC. Em rela¸c˜ao `a especifica¸c˜ao da comunica¸c˜ao entre os elementos, na UML a comunica¸c˜ao pode ser modelada como sinais, i.e. mensagens ass´ıncronas, que s˜ao enviadas atrav´es das portas. O destino ´e especificado usando conectores. No objeto receptor, o sinal ´e armazenado em uma fila que, eventualmente, ser´a consumido. Em SystemC, as portas s˜ao conectadas atrav´es de canais, cuja referˆencia ´e armazenada na porta durante a inicializa¸c˜ao do sistema. Portanto, para mapear as semˆanticas mencionadas de UML para SystemC, co-nectores UML s˜ao mapeados para canais sc fifo em SystemC que ligam um m´odulo sc export a outro m´odulo sc port. Al´em disso, para pro-duzir c´odigos fonte em SystemC a partir de modelos UML, o processo de mapeamento ´e composta por trˆes etapas propostas: (i) a descri¸c˜ao UML inicial ´e manualmente modelada com um profile que visa a lin-guagem SystemC, (ii) o modelo ´e transformado em uma nova descri¸c˜ao UML que inclui apenas representa¸c˜oes UML diretas `a SystemC, isto ´e, classes, atributos, heran¸ca, etc. Outras constru¸c˜oes como m´aquinas de estado s˜ao traduzidas para a linguagem-alvo. Durante esta etapa, cada m´aquina do estado ´e transformada em uma classe com m´etodos que implementam o comportamento dos estados e transi¸c˜oes.(iii) o modelo UML produzido na etapa anterior ´e transformado em c´odigos SystemC. Esta ´e uma transforma¸c˜ao de um-para-um em que a gera¸c˜ao de c´odigo SystemC foi implementada utilizando um gerador de c´odigo C++ da Telelogic Tau (IBM, 2013b), que foi adquirida pela IBM e agora faz parte do Rational Tau (IBM, 2013a). Desta forma, foi poss´ıvel reutili-zar o suporte dado pela ferramenta, as regras de escopo e a inclus˜ao de header-files , bem como realizar a gera¸c˜ao de arquivos sem quaisquer modifica¸c˜oes.

Em (NASCIMENTO et al., 2006) foi proposta uma infra-estrutura de meta-modelos, chamada de ModES (Model-driven Design of Embed-ded Systems), para representar sistemas embarcados distribu´ıdos em tempo real utilizando um n´ıvel maior de abstra¸c˜ao. O objetivo do Mo-dES ´e fornecer uma infra-estrutura comum a v´arias ferramentas MDE, como por exemplo, ferramentas de alto n´ıvel que visam a explora¸c˜ao de espa¸co ou a gera¸c˜ao de c´odigo. Essa abordagem sugere uma metodo-logia que aplica refinamentos sucessivos a partir de uma especifica¸c˜ao

(47)

inicial, que no caso ´e um PIM, para um modelo de implementa¸c˜ao do sistema utilizando uma plataforma que foi previamente selecionada. O PIM (que pode ser especificado usando UML, Simulink, ou outras lin-guagens de modelagem) ´e transformado em um modelo de aplica¸c˜ao que ´e uma instˆancia de IAMM (Internal Application Meta-Model ), que representa as funcionalidades da aplica¸c˜ao de maneira uniforme. Da mesma forma, modelos de v´arias plataformas (e.g. SystemC, Java, VHDL, e outros) s˜ao especificados usando uma representa¸c˜ao de pla-taforma uniforme chamado IPMM (Internal Platform Meta-Model ). O conjunto de regras de mapeamento ´e descrito usando o MMM (Mapping Meta-Model ), que ´e usado para orientar a transforma¸c˜ao dos modelos IAMM e IPMM em um modelo de realiza¸c˜ao do sistema chamado IMM (Implementation Meta-Model ). O IMM representa a implementa¸c˜ao do modelo inicial (ou seja, aquele especificado usando UML, Simulink, etc) usando uma plataforma alvo previamente selecionada (por exemplo, Java, VHDL, SystemC, etc.) onde ´e gerado o c´odigo do IMM.

O framework ModEs foi utilizado em (NASCIMENTO; OLIVEIRA; WAGNER, 2012). Neste trabalho, ´e apresentado um quadro MDE para melhorar o design de sistemas embarcados. A partir da especifica¸c˜ao funcional da aplica¸c˜ao embarcada, descrita em diagramas UML de clas-ses e de sequˆencia, o framework adota conceitos de MDE para a gera¸c˜ao autom´atica de uma representa¸c˜ao do fluxo de dados e dos controles in-ternos. O modelo obtido capta aspectos estruturais de um modelo de aplica¸c˜ao usando uma hierarquia de m´odulos e processos, bem como aspectos comportamentais por meio de um CDFG. Se desejado, ele pode ser utilizado por ferramentas de verifica¸c˜ao DSE para otimizar o design. Aplicando as regras de transforma¸c˜oes no modelo UML do sis-tema, uma representa¸c˜ao baseada em MOF ´e obtida automaticamente atrav´es de um mapeamento iterativo durante as transforma¸c˜oes. As transforma¸c˜oes do modelo tamb´em possui como entrada um modelo de plataforma, o qual especifica o hardware, os recursos de software e interface e produz um modelo de implementa¸c˜ao. No modelo de imple-menta¸c˜ao, a s´ıntese de software, a s´ıntese de comunica¸c˜ao e algoritmos de s´ıntese de alto n´ıvel s˜ao aplicadas para gerar a aplica¸c˜ao final. Al´em disso, foi definido um meta-modelo DSE, de modo que os espa¸cos no design podem ser facilmente manipulados pelos transformadores MDE usando suas regras de transforma¸c˜ao. Modelos UML/MARTE s˜ao usa-dos para gerar as regras de transforma¸c˜ao adicionais, que removem designs invi´aveis do projeto.

(48)

3.2 PERFIL E MODELOS UML

Um framework chamado Baobab foi apresentado em ( AKBAL-DELIBAS; BOONMA; SUZUKI, 2009), abordando o DDM para o desenvol-vimento de sistemas para RSSF. Em sua proposta, ´e descrito um meta-modelo que inclui componentes comportamentais, aspectos funcionais e n˜ao funcionais de uma RSSF. Al´em disso, a DSL exposta no trabalho pode ser estendida pelos desenvolvedores para englobar novos dom´ınios de aplica¸c˜oes e plataformas para RSSF. Esta DSL suporta a inclus˜ao de restri¸c˜oes OCL (Object Constraint Language), o que garante que os modelos gerados ser˜ao v´alidos. Com o framework tamb´em ´e poss´ıvel realizar transforma¸c˜oes de modelos para c´odigos NesC para TinyOS atrav´es do gerador openArchitectureware(OPENARCHITECTUREWARE, 2013).

Em (VICENTE-CHICOTE et al., 2007a) ´e apresentada uma abor-dagem MDE para o desenvolvimento de aplica¸c˜oes que utilizam uma RSSF. Nela s˜ao definidos trˆes n´ıveis de abstra¸c˜ao que permitem aos de-senvolvedores criar: (1) modelos espec´ıficos de dom´ınio, (2) descri¸c˜oes da arquitetura baseada em componentes, e (3) modelos espec´ıficos de cada plataforma. Transforma¸c˜oes automatizadas dos modelos entre esses trˆes n´ıveis de abstra¸c˜ao foram concebidas. Para demonstrar a vi-abilidade da proposta, foi desenvolvido uma aplica¸c˜ao utilizando uma rede de nodos de sensores que utilizam TinyOS(ABCM, 2012), com sen-sores para medir a temperatura da seiva das ´arvores e um software para controlar a necessidade de irriga¸c˜ao e a transmiss˜ao dos dados, que foi implementado na linguagem NesC (GAY et al., 2003). Para de-finir um modelo com possibilidade de re´uso e uma maior flexibilidade, foi utilizado o MDE para criar o modelo apresentado na Figura 3.

A DSL, apresentada na Figura 3, inclui tanto caracter´ısticas es-truturais quanto comportamentais da aplica¸c˜ao. A ideia principal ´e dividir os nodos da aplica¸c˜ao em regi˜oes, que ´e determinada pela dis-tancia f´ısica entre os nodos. Estas regi˜oes s˜ao subdivididas em grupos que determinam os nodos que s˜ao respons´aveis pela execu¸c˜ao de uma mesma tarefa, estes grupos podem ou n˜ao se interligar via um link. O tipo do nodo (E.g. MicaZ, EPOSMoteII) pode ser definido, e cada nodo pode possuir um comportamento que pode ser parametrizado de acordo com as necessidades. Com este modelo, as transforma¸c˜oes M2M e M2T s˜ao realizadas e assim ´e gerado um c´odigo em NesC que pode ser aplicado aos nodos da rede.

(49)

Figura 3 – Domain-Specific Language apresentada em ( VICENTE-CHICOTE et al., 2007a).

3.3 GERAC¸ ˜AO DE C ´ODIGO PARA RSSF

O DSL proposto em (VICENTE-CHICOTE et al., 2007a) ´e apresen-tado como base e s˜ao sugeridas algumas modifica¸c˜oes para aumentar o poder de express˜ao da DSL em (RODRIGUES et al., 2011). Embora estas propostas sejam semelhantes, alguns elementos ainda n˜ao explorados por (VICENTE-CHICOTE et al., 2007a) s˜ao analisados. Dentre estes no-vos elementos abordados, podem ser citadas algumas caracter´ısticas da pol´ıtica de economia de energia a ser utilizada, fun¸c˜oes de agrega¸c˜ao de dados, controle de fluxo de opera¸c˜ao da aplica¸c˜ao, hardware, espe-cifica¸c˜ao no envio de dados, representa¸c˜ao de atuadores entre outros considerados muito importantes no desenvolvimentos de um sistema de RSSF. A Figura 4 exibe a DSL proposta por (RODRIGUES et al., 2011) com as modifica¸c˜oes sugeridas.

Al´em disso, ´e explorado a gera¸c˜ao de PSMs para diferentes plata-formas que demonstra o comportamento da abordagem para diferentes dom´ınios. Tamb´em ´e explorado o argumento de que a constru¸c˜ao de

(50)

sis-Figura 4 – DSL apresentada em (RODRIGUES et al., 2011).

temas de RSSFs envolve desenvolvedores com diferentes conhecimentos e habilidades, ou seja, especialistas de dom´ınio e especialistas de rede, e ´e sugerida uma divis˜ao de tarefas entre os especialista no desenvolvi-mento. Outra diferen¸ca ´e que, enquanto em (RODRIGUES et al., 2011) ´e adotado uma DSL textual, em (VICENTE-CHICOTE et al., 2007a) ´e fornecido um editor gr´afico para modelagem do aplicativo.

O trabalho citado acima foi usado em (RODRIGUES et al., 2013) para dividir sistemas WSAN em diferentes n´ıveis de abstra¸c˜ao, sendo eles dependentes ou n˜ao de plataformas de sensores. A proposta deste trabalho deixa sobre a responsabilidade dos especialistas a concep¸c˜ao de cada n´ıvel, sendo que os artefatos de software desenvolvidos po-dem ser reutilizados ou modificados. Nesta proposta, um framework

(51)

chamado de ArchWiSeN (Architecture for Wireless Sensor and Actu-ator Network ) foi projetado para auxiliar o desenvolvimento de siste-mas WSAN e seus processos de desenvolvimento de software utilizando MDA. ArchWiSeN baseia-se na cria¸c˜ao de modelos UML, podendo in-corporar aspectos est´aticos e dinˆamicos de software atrav´es de diferen-tes diagramas. Sendo que cada diagrama pode representar diferendiferen-tes vis˜oes do sistema, h´a uma melhoria em rela¸c˜ao ao trabalho anterior em (RODRIGUES et al., 2011) pois adota uma especifica¸c˜ao diferente para cada modelo (aplica¸c˜ao, comportamento e customiza¸c˜ao).

De acordo com o trabalho, o ArchWiSeN visa representar o co-nhecimento do dom´ınio de aplica¸c˜ao no n´ıvel PIM. Para isso s˜ao utili-zados dois recursos diferentes da UML: os diagramas (os diagramas de classes e atividades) em parceria com um perfil, que destina-se a adicio-nar caracter´ısticas espec´ıficas de WSAN nos modelos. O PIM descreve a semˆantica dos elementos necess´arios para construir aplica¸c˜oes WSAN independentemente da plataforma de implementa¸c˜ao. A base que re-presenta as diferentes plataformas de sensores e atuadores ´e especificada no n´ıvel PSM que novamente utiliza dois diagramas UML diferentes (os diagramas de componentes e de estados finitos).

Uma abordagem para aumentar o n´ıvel de abstra¸c˜ao e integra¸c˜ao entre aplica¸c˜ao, implementa¸c˜ao e a performance de uma RSSF foi pro-posta em (BOONMA; SUZUKI, 2010). O trabalho investiga um nova es-trutura de engenharia de desempenho dirigida a modelo (Model-driven performance engineering) para aplica¸c˜oes de RSSF. O quadro proposto, chamado de MOPPET, destina-se a melhorar a produtividade da im-plementa¸c˜ao de aplica¸c˜oes de RSSF e seu desempenho. O framework MOPPET consiste em dois componentes: Feature modeler (Modela-dor de Caracter´ısticas) e Performance estimator (Estima(Modela-dor de Perfor-mance). O Feature modeler ´e um ambiente de modelagem gr´afica para configurar aplica¸c˜oes de RSSF. Ele aproveita a no¸c˜ao de modelagem para modelar graficamente caracter´ısticas de um aplicativo (e.g. fun-cionalidades e pol´ıticas de configura¸c˜ao) e as restri¸c˜oes entre elas. O Performance estimator foi projetado para estimar o desempenho apro-ximado de um aplicativo RSSF sem gerar o c´odigo, nem execut´a-lo em simuladores ou em RSSFs reais.

Em (SHIMIZU et al., 2011) uma abordagem voltada a DDM ´e apresentada com base em uma DSL para prototipagem e otimiza¸c˜ao de aplica¸c˜oes para RSSF. Para definir um processo de desenvolvimento foram usados trˆes n´ıveis de abstra¸c˜ao: N´ıvel de Rede, N´ıvel de Grupo e N´ıvel de Nodo. Para cada n´ıvel foram definidas trˆes DSMLs (Do-main Specific Modeling Language) a fim de descrever os modelos nos

(52)

diferentes n´ıveis de abstra¸c˜ao.

O modelo em n´ıvel de rede ´e independente da rede e descreve o fluxo de dados necess´arios para cumprir os respectivos requisitos (e.g. tipo de dados que ser´a enviado e recebido, condi¸c˜oes de transmiss˜ao, etc). O modelo em n´ıvel de grupo ´e dependente da rede e descreve a manipula¸c˜ao de um grupo de nodos (cada grupo de nodos ´e tra-tado como um conjunto de nodos que est˜ao geograficamente pr´oximos uns dos outros e que tˆem a mesma tarefa) como uma ´unica entidade. Neste modelo s˜ao encontradas informa¸c˜oes como amostragem de dados, agrega¸c˜ao de dados, fus˜ao de dados, entre outros. E o modelo em n´ıvel de nodo ´e dependente da rede e descreve o comportamento de cada nodo. Al´em disso, o modelo de n´ıvel de nodo expressa a atribui¸c˜ao de tarefas para cada nodo e o link de comunica¸c˜ao entre eles. Cada nodo pode ser expresso como um conjunto de tarefas que devem ser explici-tadas no modelo, como por exemplo, sensoriamento e recebimento de mensagens.

Al´em das DSMLs, foram definidas regras de transforma¸c˜ao para converter os modelos de alto n´ıvel de abstra¸c˜ao em modelos exe-cut´aveis. Assim, as regras de transforma¸c˜ao autom´atica podem auxiliar na gera¸c˜ao do modelo execut´avel a partir do modelo de n´ıvel de rede e fornecer outros pontos de vista para otimizar o desempenho.

Segundo a proposta, o desenvolvedor precisa apenas descrever um modelo usando a DSML referente ao n´ıvel mais alto de abstra¸c˜ao (no caso, seria o n´ıvel de rede). Com isso, as regras de transforma¸c˜ao automaticamente geram o modelo descrito em n´ıvel de grupo e, em seguida, um modelo de n´ıvel de nodo. Durante o processo de trans-forma¸c˜ao s˜ao agregados novos elementos com valores fixos pr´e-definidos nas regras de transforma¸c˜ao. Posteriormente, o desenvolvedor pode criar um modelo execut´avel a partir do modelo de n´ıvel de nodo.

Ap´os a transforma¸c˜ao, existe a op¸c˜ao de promover uma oti-miza¸c˜ao sobre os modelos, onde o desenvolvedor usa o prot´otipo em um ambiente de execu¸c˜ao e mede a sua performance usando uma ferra-menta de monitoramento. Com base no novo objetivo tra¸cado pelo de-senvolvedor, o novo modelo descrito ´e automaticamente transformado em modelos mais concretos que dar˜ao origem a um modelo execut´avel, gerado de acordo com regras de transforma¸c˜ao.

(53)

3.4 MIDDLEWARE

Uma abordagem a DDM ´e apresentada em (BUCKL et al., 2008), neste estudo o especialista de dom´ınio deve criar o modelo da aplica¸c˜ao pretendida com base em um meta-modelo que descreve as carac-ter´ısticas relevantes das aplica¸c˜oes de rede de sensores. Com base no modelo, um gerador de c´odigo produz o middleware alvo, incluindo as interfaces para a l´ogica da aplica¸c˜ao. Cada modelo apresentado visa resolver um aspecto particular do middleware ou construir o mid-dleware de outros modelos. A maioria dos modelos implementados s˜ao dependentes de plataforma pois eles oferecem uma solu¸c˜ao ´unica para uma determinada combina¸c˜ao de hardware com o sistema opera-cional. Por isso, ´e necess´ario uma sele¸c˜ao correta dos modelos. Em vez de implementar um gerador de c´odigo pr´oprio, foi utilizada uma estrutura de gera¸c˜ao de c´odigo existente, chamada openArchitectu-reWare(OPENARCHITECTUREWARE, 2013).

Para aumentar o n´ıvel de heterogeneidade a proposta utiliza trˆes componentes e dois servi¸cos que se responsabilizam por diferentes par-tes do sistema. O componente Application realiza a fun¸c˜ao de controle da aplica¸c˜ao, enquanto o componente Hardware Interaction se ocupa de fazer a integra¸c˜ao com o hardware e o Node Management monitora o conjunto de nodos, descobrindo novos nodos e realizando o monito-ramento (e.g. estado da bateria ) dos nodos conectados. Para com-plementar as funcionalidades n˜ao tratadas pelos componentes existem dois servi¸cos, o Network Service ´e respons´avel pela comunica¸c˜ao entre os nodos e o Service Broker ´e encarregado de controlar para onde as mensagens recebidas s˜ao encaminhadas, sendo respons´avel por toda a l´ogica de comunica¸c˜ao do aplicativo.

3.5 VISUALIZADORES DE DADOS

Um dos frameworks criados com o objetivo de facilitar a uti-liza¸c˜ao dos usu´arios finais unindo middlewares `a viewers foi explorado em (BUONADONNA et al., 2005). Chamado de TASK, consiste em trˆes n´ıveis:

1. Uma cole¸c˜ao de nodos sensores - Os nodos sensores TASK s˜ao Mica2 ou mica2dot, rodando TinyDB;

2. Um aparelho de rede de sensores (SNA) - serve como um gateway entre a rede de sensores e os clientes. O SNA ´e uma esta¸c˜ao base

Referências

Documentos relacionados

O índice da quantidade de dias úmidos por ano (R1mm) mostrou uma tendência com significância estatística para redução apenas nas regiões 2 (norte da BA e Estado de SE) e 4;

Objetivou-se com este trabalho avaliar a eficiência da inoculação de Trichoderma, como promotores de crescimento vegetal na cultura da soja [Glycine max (L.) Merrill.],

Qualquer intenção ou acto de dopagem e uso ilícito de medicação constitui uma ofensa grave ao bem-estar e não será tolerada. Após qualquer tratamento veterinário deve ser dado

Geralmente utilizado Dureza: 70 +- 5 Shore A na confecção de aventais industriais, juntas, cobertura de bancada, etc..... Utilização: Não Recomendado: Ozônio, combustíveis

Não só o currículo tem que compreender essa linguagem, como os professores e as famílias também?. A partir de um planejamento pedagógico estruturado, o LIV tem a preocupação

Nós Sensores Sem Fio Bateria &amp; Conversor Microprocessador Memória (RAM/ROM) Rad io Con v ersor A/D Sistema Operacional Algoritmos e Protocolos Sensores Unidade de

‰ RSSF propõe novos desafios e oportunidades de pesquisa em diferentes áreas:. ƒ Sistemas distribuídos, geometria

Protocolos MAC Tempo de escuta constantes para energia eficiente Mudança de fase de aplicação e atrasos de pré- transmissões Acesso randomico baseado em contenção CSMA