Escolar Documentos
Profissional Documentos
Cultura Documentos
BANDEIRANTES–PR
2019
RAFAEL FIGUEIRA GONÇALVES
BANDEIRANTES–PR
2019
RAFAEL FIGUEIRA GONÇALVES
BANCA EXAMINADORA
RESUMO
Com o passar dos anos, novas abordagens de desenvolvimento de software foram propostas
e implementadas com o intuito de melhorar o processo de desenvolvimento e o produto
final.Uma dessas abordagens é a dirigida a modelo (MDD), metodologia que permite a
geração de soluções de software por meio de modelos abstratos, que tem como objetivo
facilitar o desenvolvimento, aproximando a solução abstrata com a implementação do
problema. Outro conceito que vem tendo seu uso aumentado é a Internet das Coisas, que
permite a criação das mais diversas soluções, utilizando diferentes dispositivos conectados
por meio da internet. Contudo desenvolvedores com pouco conhecimento de domínio tem
dificuldades ao criar soluções adequadas, produzindo software com deficiências em alguns
requisitos de software, como manutenção e segurança.O trabalho propõe uma ferramenta
que auxilie na criação de novas soluções para Internet das Coisas utilizando a metodologia
dirigida a modelos. A ferramenta gera código para a plataforma Arduino a partir de
modelos editados graficamente. Espera-se que o uso da ferramenta resulte em uma maior
praticidade no desenvolvimento, até mesmo para desenvolvedores com pouco ou nenhum
conhecimento de domínio, e uma maior qualidade de software.
ABSTRACT
Over the years, new software development approaches have been proposed and implemented
with the objective of improving the development process and the end product. One such
approach is the model-driven development (MDD), which enables the generation of software
solutions through models, which aims to facilitate development by bringing the abstract
solution closer to the implementation of the problem. Another concept that has been
increasing in use is the Internet of Things, which allows the creation of various solutions,
using different devices connected through the Internet. However developers with little
domain knowledge have found difficulties in creating appropriate solutions, producing
software with deficiencies in some software requirements such as maintenance and security.
The tool generates code for the Arduino platform from graphically edited models. Using
the tool is expected to result in greater development convenience, even for developers with
little or no domain knowledge, and higher software quality.
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Formulação do Problema . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Justificativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 23
2.1 Desenvolvimento Dirigido a Modelos . . . . . . . . . . . . . . . . 23
2.1.1 Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.2 Transformações de Modelos . . . . . . . . . . . . . . . . . . . . . 24
2.1.3 Geração de Código . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Internet of Things . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1 Plataformas para IoT . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1.1 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1.2 Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2 Sistemas de Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.2.1 Estruturas Comunicantes . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Métricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.1 FRASAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.2 MDE4IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Engenharia de Software Orientada a Modelos MDD . . . . . . 35
3.2 Seleção dos Parâmetros de Escopo do Trabalho . . . . . . . . . 36
3.3 Edição do Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 UMLet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Seleção de Código . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Desenvolvimento da ferramenta . . . . . . . . . . . . . . . . . . . 38
3.5.1 Linguagem de Programação . . . . . . . . . . . . . . . . . . . . . 38
3.5.2 Ambiente de Desenvolvimento . . . . . . . . . . . . . . . . . . . . 39
4 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 41
4.1 Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Abordagem proposta . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1 Metamodelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.2 Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Desenvolvimento do Gerador . . . . . . . . . . . . . . . . . . . . . 44
5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6 CONCLUSÃO E DISCUSSÃO . . . . . . . . . . . . . . . . . . . 49
6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.1 Contextualização
Nos últimos anos as pesquisas e aplicações reais da Internet das Coisas cresceram
exponencialmente, com o intuito geral de aumentar o conforto pessoal, ao conectar as coisas
em nossa volta. O percentual da população mundial com acesso a internet aumentou em
1125% de 2000 a 2019 (World. . . [2]). De acordo com Howell[3] o numero de dispositivos
conectados (desconsiderando computadores e smartphones) vai de 27 bilhões em 2017 para
a projeção de atingir 125 bilhões até 2030. A Internet das Coisas prevê uma variedade de
novas aplicações, segundo Gubbi et al.[4] essas tecnologias são ideais para inovações, sendo
limitadas somente pela criatividade de seus realizadores. Essas aplicações são resultantes
da possibilidade de embarcar inteligência computacional nos mais diversos dispositivos,
e integrá-los por meio de redes de computadores a outros dispositivos, computadores e
pessoas. Essa nova tecnologia permite que sejam criadas as mais diversas aplicações, tais
como ambientes mais qualificados em quesitos de praticidade e utilidade, como casas e
escritórios inteligentes capazes de coletar e entregar dados para seus usuários, além de
cumprirem ações que os auxiliem.
Com essa recente amplificação do nível de acesso a essas tecnologias, alguns autores
como Schwab e Davis[5] trazem um apelo para que cada individuo faça parte desta
robotização do mundo e "humanização das coisas", porém apesar de seu ótimo nível de
disponibilidade não significa que a criação destas soluções seja algo simples; estas soluções
especificamente projetadas para Internet das Coisas normalmente necessitam da integração
e comunicação de sensores entre outros tipos de dispositivos a programas computacionais
complexos como o processamento de uma grande quantidade de dados. Outro obstáculo no
desenvolvimento para a Internet das Coisas se porta como os diversos desafios inexistentes
(com a mesma magnitude) em outras plataformas como Mobile e Desktop, um dos maiores
desafios é entregar os requerimentos constantes de fatores como segurança e disponibilidade,
apesar do baixo poder computacional e pouca energia disponível em dispositivos nós, o
que necessita de uma optimização extrema de eficiência.
Existem algumas plataformas que auxiliam o desenvolvimento destes tipos de
aplicações, tais como as soluções Arduino (Javed[6]) e Raspberry (Grimmett[7]), Arduino
é uma plataforma de código aberto, incluindo seu hardware enquanto o Raspberry trabalha
com sistemas operacionais abertos. Estas plataformas permitem a prototipagem eletrônica
16
• O estado atual do mercado, onde soluções podem ser condenadas inviáveis em con-
sequência de não estar disponível o quanto antes possível, muitas vezes negligenciando
ou sacrificando fatores de qualidade para atender esses prazos mais curtos. Fitzgerald
e Stol[10] citam os eventuais problemas encontrados ao ignorar etapas importantes
na engenharia de software, como o planejamento e testes.
Ray et al.[13] denotam alguns outros fatores bem conhecidos que podem influenciar na
qualidade de código, como tamanho do código, tamanho da equipe de desenvolvimento e
maturidade dos processos.
Em uma pesquisa sobre métodos específicos para Internet das Coisas (Imani et
al.[14]) determina 10 áreas problemáticas para Internet das Coisas:
1. Interoperabilidade de padrões:
Muitas tentativas de padronizações específicas para Internet das Coisas existem
atualmente, provenientes de empresas e comissões de todo o mundo como ETSI
(European Telecommunications Standards Institute), CEN (European Committee
for Standardization), ISO (International Organization for Standardization) e ITU
(Telecommunication Standardization Sector). Apesar desses esforços a padronização
continua um problema para a Internet of Things, segundo Atzori, Iera e Morabito[15]
isso é causado pela falta de um framework compreensivo e adequado capaz de
integrar os diferentes padrões, que possa ser utilizado sem causar resistências aos
desenvolvedores.
4. Protocolos de Transporte:
Protocolos existentes atualmente no mercado e implementados em outros contextos
não são ideais para uso com a Internet das Coisas, a despesa de recursos é inade-
quada e seus mecanismos de controle de congestionamento muitas vezes são inúteis
nessas aplicações. Protocolos específicos como 6LowPAN (IPv6 Low-power Wireless
Personal Area Network) são usados de uma maneira dispersa.
6. Autentificação:
Existe uma falta de infraestrutura para autenticação em cenários de Internet of
Things, um dos desafios intensificados pelo menor número de recursos computacionais
e preocupação com o consumo de energia.
8. Privacidade:
Nas atuais soluções temos uma situação onde o usuário final não consegue, de uma
maneira viável, ter um controle sobre quais informações privativas (das muitas
coletadas) pelos dispositivos conectados, estão sendo compartilhadas ou não, um
desafio exagerado pela imaturidade das leis relacionadas.
9. Segurança: Um fator que afeta e é afetado por outros itens nessa lista como Auten-
tificação, Integridade dos dados e privacidade, dispositivos de Internet of Things
são por natureza extremamente suscetíveis a ataques man-in-the-middle onde um
intruso se coloca entre dispositivos e livremente coleta informações, nenhuma solução
ate o momento previne esse e outros tipos de ataque (Atzori, Iera e Morabito[15]).
1.3 Justificativas
estão preocupados em conectar e fazer funcionar seus dispositivos, seguindo uma forma
de pensar próxima ao MVP (Minimum Viable Product, Produto Mínimo Viável, termo
muito utilizado em meios empresariais, onde o objetivo é a produção de um protótipo/uma
amostra do produto final teórico), essas aplicações frequentemente sofrem na falta de
consideração dos impactos que a solução proposta acarretará no futuro.
No caso de protótipos, os mesmos deveriam sofrer reformulações severas no momento
que saem da fases de teste e antes de entrar em uma escala de produção em massa, o
que tende a não ser feito devido aos custos e falta de retorno imediato. Essas decisões
de projetos tomadas visando benefícios em curto prazo, geralmente levam a sistemas de
difícil manutenibilidade e portabilidade, características fundamentais de aplicações para
Internet das Coisas. Além disso, muitas vezes é difícil fazer com que os dispositivos e
sensores funcionem adequadamente na plataforma desejada, principalmente por virem de
fornecedores distintos.
A metodologia dirigida a modelos é uma estrutura de engenharia de software que
por trabalhar com um nível de abstração mais alto e o reuso de código, consegue simplificar
o desenvolvimento desses projetos, sem que os mesmos sofram por isso. O único obstáculo
previsto após a analise da literatura é a dificuldade de adoção da ferramenta por parte
dos desenvolvedores, por isso a ferramenta deve ser extremamente intuitiva.
As amostras de código resultante da produção com a ferramenta e da etapa de
pesquisa serão analisadas individualmente e comparadas através de métricas de software,
McDonald e Goggins[17] defende a validade da utilização de métricas para mensurar a
qualidade de software ou a performance do mesmo, assim como referencia diversos estudos
de sucesso que demonstram a validade da abordagem às métricas. Além disso, Xenos et
al.[18], apresenta em seu estudo, que é bem conceituado, a validade de cada uma das
métricas, viabilizando a utilização de sua pesquisa para os fins deste trabalho.
1.4 Objetivos
Este trabalho tem como objetivo geral desenvolver uma ferramenta para geração
de soluções para Internet of Things baseada no desenvolvimento dirigido à modelo.
• Criar ferramenta
• Avaliação do trabalho
Esse capitulo apresenta uma introdução dos conceitos utilizados neste trabalho.
• Arquiteturas uma vez definidas podem ser utilizadas como parte de uma linha de
produção para outros sistemas de software, aumentando a reusabilidade.
• Oferece um ambiente que incentiva boas práticas nos campos de tecnologia, enge-
nharia e gerência.
2.1.1 Modelos
são definidos utilizando UML. Diagramas UML não são automaticamente modelos, o
que os distingue são as semânticas utilizadas nos modelos, a serem interpretadas pela
linguagem de modelagem correspondente, responsável de seguir suas regras para aplicar as
transformações,
Metamodelo segundo Stahl, Voelter e Czarnecki[19] é um dos aspectos principais
do MDD, pois auxilia nos seguintes desafios:
• Integração com ferramenta, ferramentas podem ser adaptadas para domínios especí-
ficos a partir do metamodelo.
Dentro dessa metodologia á diversos níveis de modelos, e esses passam por trans-
formações para chegarem uma representação abstrata até uma implementação concreta.
PIM(Plataform-Independent Model) é o modelo independente de plataforma, que
segundo Ayed, Delanote e Berbers[21] se distingue por não ter algum detalhe técnico,
enquanto o PSM(Plataform Specific Model) é uma representação do mesmo sistema,
porém contendo todos os detalhes técnicos necessários para implementar esse modelo em
uma plataforma concreta. A separação destes dois modelos é um conceito chave para a
arquitetura orientada a modelos da OMG (Object Management Groups), pois trabalham
com o fato de conceitos serem mais estáveis que tecnologias e que modelos formais são mais
úteis para transformações automáticas (Stahl, Voelter e Czarnecki[19]). O mapeamento
de PIM para PSM é feito por meio de uma transformação automática, produzida com o
auxílio de alguma ferramenta específica para MDD, transformações são possíveis entre
modelos e de modelos para código-fonte.
25
2. Volume de código: o tamanho do código pode ser facilmente otimizado com a geração
de código, visto que no momento da compilação o gerador pode incluir somente
aquilo que será necessário em momento de execução
• Conectividade: para que o sistema funcione todos o dispositivos devem estar co-
nectados, a conectividade é uma possibilidade para a Internet das Coisas. Além
de estarem conectados, as ’coisas’ devem poder se comunicar livremente entre elas.
Arquiteturas como os protocolos usados hoje, tais como TCP/IP, foram suficientes
até o momento, porém para a internet das coisas necessitamos de uma quantidade
de banda e endereçamento muitas vezes maior. O autor realça a necessidade de uma
nova arquitetura, que contenha itens como QoS (Quality of Service), segurança e
privacidade, esse é um dos itens tratados na Formulação do Problema 1.2.
Coetzee e Eksteen[24] também cita a Internet das Coisas como parte da "Internet
do Futuro", o autor cita alguns fenômenos como:
• o fato de cada vez mais ’coisas’ serem equipadas com diversas tecnologias como tags
de RFID ou QR-codes
Segundo Coetzee e Eksteen[24], todos esses fenômenos contribuem para uma progressão
natural, que nos leva a Internet das Coisas.
O autor referencia o trabalho de Fleisch et al.[25] o qual identifica sete principais
aplicações de propostas de valor, o qual as quatro primeiras são baseadas em relações
coisa-coisa e as tres últimas criam valor com a integração coisa-usuário:
• Gatilho simples e manual de proximidade: são coisas que comunicam quando algo
se move dentro do seu espaço de leitura, comunicando sua identidade, podendo
acarretar em uma ação.
• Gatinho automático de sensores: coletor de dados por meio de sensores como tem-
peratura, velocidade, orientação e umidade, essa informação é comunicada com o
objetivo de tomada de decisões, muitas vezes também automatizadas.
• Feedback para mudança de mente: combina o mundo físico com o virtual para gerar
um novo nível de alterações em comportamentos humanos.
Como vimos anteriormente, não existe uma padronização oficial para a classificação
de Internet das Coisas para um dispositivo, a partir deste principio, qualquer computador
que tenha alguma entrada ou saída para usuários ou sensores e que esteja conectado a
rede pode ser definido como tal. Contudo, existem plataformas mais adequadas para tal
tarefas, como o Arduino e o Raspberry Pi.
O mais próximo de padronização atualmente é devido ao monopólio de mercado
da plataforma Arduino, os fabricantes de componentes de fácil acesso para prototipação,
como módulos e sensores com conversores analógico-digital embutidos, ou os fabricam
especificamente para o Arduino ou pelo menos a suportam. A plataforma Raspberry Pi
tem um suporte nativo aos módulos e bibliotecas para Arduino.
2.2.1.1 Arduino
por serem suportadas pela IDE oficial. O Arduino Uno (figura 1) é o modelo mais popular
por ter uma quantidade alta de conexões e processamento com um custo baixo, comparado
com outros modelos.
2.2.1.2 Raspberry Pi
• World-Wide Web;
31
2.3 Métricas
o desenvolvimento Internet das Coisas. Essas propostas são recentes e a cada ano mais
abundantes. Nesta seção vão ser analisadas algumas destas com o intuito de contrastar
com a abordagem proposta neste trabalho.
2.4.1 FRASAD
Framework for Sensor Application Development foi proposto por Nguyen et al.[1]
com o intuito de criar um framework capaz de lidar com a heterogeneidade e a complexidade
dos sensores e sistemas para a Internet das Coisas
Podemos reparar uma das principais diferenças de implementação em seu diagrama
3, ele não contem as afirmações necessárias para a tomada de decisões, o autor explica
que as condições lógicas são configuradas com flags específicas e proprietárias
Na sua interface gráfica (Figura 4) nota-se que a edição de tomada de decisões não
somente é mais escrita do que visual mas como também se torna bastante prolixa por
haver código boilerplate e o usuário final acaba tendo que digitar os métodos previstos no
modelo. Atualmente o framework suporta somente modelos a partir do meta-modelo de
33
DSL, o autor cita que seu framework estaria disponível no formato de um plug-in para a
IDE Eclipse, porém até a data desta publicação o framework não foi encontrado.
2.4.2 MDE4IoT
Segundo o objetivo é uma pesquisa aplicada, que se define por tem um objetivo na
geração de conhecimento e aplicação prática, cuja finalidade é a criação de uma ferramenta
para a edição e transformação de modelos em soluções de software IoT. Para isso deve ser
efetuada a criação de modelos independentes de plataforma para uma abordagem baseada
em modelos. Pretende-se criar uma abordagem que permita criar soluções IoT de forma
mais rápida, simples e padronizadas, utilizando as melhores práticas da Engenharia de
Software.
Uma representação visual dos planos de trabalho estão presentes na Figura 5, a
partir da Revisão Bibliográfica é feita a Seleção do Escopo do Trabalho, que pode necessitar
em mais Pesquisa, após essas duas etapas o desenvolvimento é partido em duas Seções:
Geração Modelos
Desenvolvimento
Interface Gráfica
Comparação Conclusões
e Avaliação Finais
Nessa etapa foi feita a seleção das plataformas que foram analisadas, assim como
quais linguagens e paradigmas de programação, com o intuito de delimitar o contexto de
todo o trabalho selecionando a amostra que representaria Internet of Things visto que
essa tecnologia como um todo, como alvo da pesquisa, se tornaria excessiva.
O modelo devera ser editado pelo desenvolvedor alvo, de maneira textual, eventual-
mente a ferramenta substituiria a edição textual por uma edição visual WYSIWYG (What
You See Is What You Get), basicamente um editor gráfico com alguns poucos elementos
dos editores UML (Unified Modeling Language). No momento optamos por usar o UMLet
(versão 14.3), a ferramenta geradora de códigos efetua a leitura dos arquivos XML da
edição, futuramente desenvolveremos a nossa própria ferramenta para edição, substituindo
o UMLet de uma maneira pratica e modular.
37
3.3.1 UMLet
UMLet se distingue de outros editores UML por permitir criar elementos customi-
záveis via texto, além disso ele permite montar uma paleta customizada para conter esses
elementos. Nossa ferramenta geradora de código criaria também esses elementos antes da
edição do usuário final, sua interface gráfica esta representada na Figura 6.
Figura 6 – Interface do UMLet com um modelo em etapa de edição, podendo notar que
os elementos customizados estão presente na paleta a direita superior)
do movimento código aberto. A ferramenta possui também uma versão online que não
necessita de nenhuma instalação localizada em http://www.umletino.com/, única diferença
para a versão executável multiplataforma é o suporte parcial a elementos customizados.
Foi feita uma seleção dos códigos a serem comparados com os gerados pela ferra-
menta, as comparações serão feitas utilizando projetos mais próximos dentro do possível,
exemplo: comparação entre duas soluções Arduino que se comunicam com o chipset do
ESP8266 (uma placa de rede wireless para soluções IoT).
As soluções serão provenientes de repositórios públicos no GitHub.com, além do
contexto do código para comparação, a popularidade do repositório também será levada
em consideração, dando preferencia a repositórios com mais observadores e/ou estrelas
(sistema de favoritos), tendo também uma quantidade de corte para seleção dos repositórios
(valor a ser definido), o intuito é de obter código que mais represente as soluções utilizadas
no momento.
desafio onde funcionalidades necessárias não são de suporte nativo da linguagem, como
a manipulação de arquivos de texto para a leitura dos diagramas e geração dos códigos,
assim como com o tratamento de imagens para futuras ilustrações gráficas.
Python é uma linguagem muito utilizada em protótipos, não somente devido à sua
facilidade de escrita e leitura mas também com a praticidade de ser utilizado como um
comunicador entre outros programas de computador. Ele é facilmente integrado em scripts
Bash, o que se enquadra bem ao nosso uso pois futuramente planejamos implementar uma
interface gráfica.
4.1 Pesquisa
4.2.1 Metamodelo
O modelo inicial da proposta é o metamodelo, por ser classe base de todos os outros
modelos (derivado) editáveis. O modelo apresentado na Figura 7 pode ter aparência sim-
plista por ter sido desenvolvido não somente com o intuito de englobar muitas plataformas
mas também graças as sua genericidade conseguimos manter um alto nível de flexibilidade
quanto aos modelos.
O objetivo na sua criação foi que fosse genérico o suficiente para suportar não
somente os modelos inicialmente desenvolvidos mas também os futuramente desenvolvidos
pelos usuários da ferramenta.
Ambos os atributos são do tipo inteiro e se referem ao número de portas disponíveis para
comunicações entre componentes. A distinção entre analógico e digital deve ser feita, pois
estas estão presentes em quantidades diferentes e são endereçadas de maneiras diferentes.
O método setup é algo presente em Arduinos. Um método principal de inicialização do
script, ocorrendo somente uma vez por execução. Enquanto o loop se trata de um método
síncrono executado uma vez para cada ciclo do microcontrolador, idealmente utilizado
para checagens como as derivadas do padrão de projetos Observer.
Somente uma instância de Microcontrolador pode ocorrer por projeto, mas esse
Microcontrolador é um agregado de componente. Um componente representa todos os
módulos complexos com suas próprias bibliotecas como placas eletrônicas Wi-Fi e Blue-
tooth até componentes elétricos como botões ou LEDs que não possuem bibliotecas de
funcionamento. Esses Componentes podem conter atributos e métodos a serem também
estipulados pelos modelos.
4.2.2 Modelo
4. Por ultimo é feita uma varredura na lista de objetos Componentes, é produzido uma
nova lista de todas as bibliotecas utilizadas no projeto, removendo as duplicações
e inserindo com a sintaxe correta no arquivo de destino. Da mesma maneira é
interpretada a relação entre os componentes e adicionado dentro do loop(), todo
componente do modelo é instanciado dentro do setup().
5 RESULTADOS
• Botão
• Motor
• Sensor de Temperatura
• LED
A análise das soluções poderá ser feita com o auxilio da ferramenta Analizo,
desenvolvida por Terceiro et al.[34] para a análise de códigos por meio de métricas de
software como a contagem de atributos públicos e métodos.
A abordagem ainda tem espaço para crescimento, este trabalho será dado sua
devida continuação por meio do programa de mestrado na UEL (Universidade Estadual
de Londrina) com a orientação do Prof. Dr. André Luís Andrade Menolli.
REFERÊNCIAS
[2] WORLD Internet Users Statistics and 2019 World Population Stats. Disponível em:
<https://www.internetworldstats.com/stats.htm>.
[3] HOWELL, J. Number of Connected IoT Devices Will Surge to 125 Billion by
2030, IHS Markit Says. Disponível em: <https://technology.ihs.com/596542/
number-of-connected-iot-devices-will-surge-to-125-billion-by-2030-ihs-markit-says>.
[4] GUBBI, J. et al. Internet of things (iot): A vision, architectural elements, and future
directions. Future generation computer systems, Elsevier, v. 29, n. 7, p. 1645–1660,
2013.
[5] SCHWAB, K.; DAVIS, N. Aplicando a quarta revolução industrial. [S.l.]: EDIPRO,
2019.
[6] JAVED, A. Building Arduino projects for the Internet of Things: experiments with
real-world applications. [S.l.]: Apress, 2016.
[7] GRIMMETT, R. Raspberry Pi robotics projects. [S.l.]: Packt Publishing Ltd, 2015.
[8] LEA, R.; BLACKSTOCK, M. City hub: A cloud-based iot platform for smart cities.
In: IEEE. 2014 IEEE 6th international conference on cloud computing technology
and science. [S.l.], 2014. p. 799–804.
[10] FITZGERALD, B.; STOL, K.-J. Continuous software engineering and beyond: trends
and challenges. In: ACM. Proceedings of the 1st International Workshop on Rapid
Continuous Software Engineering. [S.l.], 2014. p. 1–9.
[11] ZHU, T. et al. Monitoring software quality evolution by analyzing deviation trends of
modularity views. In: IEEE. 2011 18th Working Conference on Reverse Engineering.
[S.l.], 2011. p. 229–238.
[12] BABAR, M. I.; RAMZAN, M.; GHAYYUR, S. A. Challenges and future trends in
software requirements prioritization. In: IEEE. International conference on computer
networks and information technology. [S.l.], 2011. p. 319–324.
[13] RAY, B. et al. A large scale study of programming languages and code quality in
github. In: ACM. Proceedings of the 22nd ACM SIGSOFT International Symposium
on Foundations of Software Engineering. [S.l.], 2014. p. 155–165.
[15] ATZORI, L.; IERA, A.; MORABITO, G. The internet of things: A survey. Computer
networks, Elsevier, v. 54, n. 15, p. 2787–2805, 2010.
[18] XENOS, M. et al. Object-oriented metrics-a survey. In: Proceedings of the FESMA.
[S.l.: s.n.], 2000. p. 1–10.
[21] AYED, D.; DELANOTE, D.; BERBERS, Y. Mdd approach for the development
of context-aware applications. In: SPRINGER. International and Interdisciplinary
Conference on Modeling and Using Context. [S.l.], 2007. p. 15–28.
[23] TAN, L.; WANG, N. Future internet: The internet of things. In: IEEE. 2010 3rd
international conference on advanced computer theory and engineering (ICACTE).
[S.l.], 2010. v. 5, p. V5–376.
[26] TRUONG, H.-L.; DUSTDAR, S. Principles for engineering iot cloud systems. IEEE
Cloud Computing, IEEE, v. 2, n. 2, p. 68–76, 2015.
[27] SEVERANCE, C. Eben upton: Raspberry pi. Computer, IEEE, v. 46, n. 10, p. 14–16,
2013.
[31] CICCOZZI, F. et al. Model-driven engineering for mission-critical iot systems. IEEE
software, IEEE, v. 34, n. 1, p. 46–53, 2017.
1. Rafael Figueira Goncalves, José Maria Clementino Júnior, Erikson Júlio de Aguiar, Fe-
lipe Chiarotti Giron, André Luis Andrade Menolli, Configuração de Dispositivos
IoT Utilizando Protocolo MQTT Para Arduino, Bandeirantes, Outubro/2017,
SEMINÁRIO DE INFORMÁTICA E TECNOLOGIA, (SECAPEE 4345)
2. Erikson Julio de Aguiar, Yuri Lucas Luz da Silva, Rafael Figueira Goncalves, André
Luis Andrade Menolli, Implantação de Uma Abordagem Baseada no De-
senvolvimento Dirigido a Modelos Para Persistência de Dados em Java
Utilizando o Acceleo, Bandeirantes, Outubro/2017, SEMINÁRIO DE INFOR-
MÁTICA E TECNOLOGIA, (SECAPEE 4245)