Você está na página 1de 55

UMA ABORDAGEM ORIENTADA A MODELOS PARA GERAÇÃO

DE APLICAÇÕES BASEADAS EM INTERNET DAS COISAS PARA
SMARTPHONES

Aluno: Willamys G. F. Araújo {wgfa}@cin.ufpe.br
Orientador: Vinícius Cardoso Garcia {vcg}@cin.ufpe.br

28/06/2017 1
Roteiro
• Introdução/Motivação
• Objetivos
• Estado da Arte
• Abordagem Proposta
• Ferramenta
• Avaliação da Abordagem
• Análise dos Resultados
• Conclusão
– Contribuições
– Trabalhos Futuros

2
Introdução/Motivação
Pessoas como sensores
Internet das Coisas (IoT)
“Dispositivos de computação identificáveis, que são conectados à internet e

incorporados a objetos do nosso dia-a-dia (ou coisas) ou ligados a animais ou

pessoas”[1];

[1] ATZORI, L.; IERA, A.; MORABITO, G. The Internet of Things: a survey. Computer Networks, [S.l.], v.54, n.15, p.2787 – 2805, 2010. 3
Introdução/Motivação
Tendências da Internet das Coisas (IoT)

4
[2] SUNDMAEKER, H. et al. Vision and challenges for realising the Internet of Things. Cluster of
Introdução/Motivação
Smartphones
“Capacidades de processamento computacional e sensores

múltiplos que podem ser usados para monitorar atividades

físicas, temperatura ambiente e umidade, pressão

barométrica, estado de saúde, movimentos e outras

condições ambientais que cercam os usuários.[3]”

[3] SALIM, F.; HAQUE, U. Urban computing in the wild: a survey on large scale participation and citizen engagement with ubiquitous computing, 5
cyber physical systems, and internet of things. International Journal of Human-Computer Studies, [S.l.], v.81, p.31 – 48, 2015. Transdisciplinary Approaches to Urban
Introdução/Motivação
Desenvolvimento Orientado à Modelos (MDD)
• Modelos
– Não são apenas ferramentas de comunicação e documentação

– Elementos ativos e participantes do processo de desenvolvimento como um todo

• Benefícios:
– Desenvolvimento mais rápido e reduzindo prazos

– Utilizando formas de padronização

– Facilidade de manutenção ao evitar redundância,

– Redução dos custos financeiros relacionados ao desenvolvimento de software.

6
Introdução/Motivação
Programação generativa (Generative Programming)[5]
– Maximização da automação do desenvolvimento de aplicativos

– Sistema concreto baseado em conjunto de componentes reutilizáveis

– Tecnologias
• DSL

• Geradores

• Componentes
7
Pergunta de pesquisa
Qual a
proporção/taxa/Nível
de Reutilização ?

<code>

Código gerado da
aplicação (Projeto)

Componentes Generative
MDD Programming
Reutilizáveis Aplicação
empacotada
8
8
Objetivo Geral

Demonstrar e avaliar o reuso de software na abordagem proposta, a
qual é baseado na composição de componentes reutilizáveis de
software permitindo a transformação automatizada de modelos MDA
em código fonte de aplicativos que fazem uso de sensores presentes
em smartphones.

9
Objetivo Específicos
•Definir quais componentes de software reutilizáveis serão combinados para a elaboração da
abordagem;
•Selecionar técnicas e procedimentos que irão estruturar a abordagem;
•Disponibilizar uma ferramenta que permita orquestração dos componentes definidos e
geração do código fonte das aplicações;
•Avaliar a abordagem por meio de um estudo de caso com aplicações construídas com a
ferramenta.

10
Estado da Arte

11
Estado da Arte
Trabalhos Relacionados
• IoTLink: An Internet of Things Prototyping Toolkit (PRAMUDIANTO, F. et al. 2014)

– Ferramenta domínio gráfica que criar um aplicativo Internet das coisas.

– Plugin do Eclipse

– Não para smartphones e android.

12
Estado da Arte
Trabalhos Relacionados (cont.)
• Integration In The Physical World In Iot Using Android Mobile Application for

Effective Web of Things Development (WoT) (THIYAGARAJAN; RAVEENDRA, 2015)

– Aplicações android em conjunto com serviços IoT

– Smartphone como controle remoto

– Sem ferramenta gráfica.

13
Estado da Arte
Trabalhos Relacionados (cont.)
• OpenIoT- An Open Service Framework for the Internet of Things (KIM; LEE, 2014 )

– Ferramenta gráfica.

– Permite o desenvolvimeto de aplicações para smartphone

– Smartphone funciona como controle de sensores

14
Estado da Arte
Trabalhos Relacionados (cont.)
• Mobile digcovery: discovering and interacting with the world through the
Internet of things (JARA et al., 2014)
– Sensoriamento participativo, utilizando o smartphone como ferramenta.
– Controle dos sensores presente na plataforma com o smartphone
– Não possui ferramenta gráfica.

15
Estado da Arte
Trabalhos Relacionados (cont.)
• A High-Level Modeling Language for the Efficient Design, Implementation, and
Testing of Android Applications (JABER et al., 2016)
– Linguagem de modelagem (MoDroid)
– Gera aplicação Android;
– Não aplicada a IoT.
– Não possui ferramenta gráfica.

16
Estado da Arte
Trabalhos Relacionados

17
Abordagem

18
Abordagem Proposta
• Tem a finalidade de permitir uma melhoria de
produtividade, qualidade e reuso na construção
de aplicações através da transformação de
modelos, com o enfoque em adquirir
informações baseadas nos sensores mais
comuns e usuais encontrados em smartphones.

19
Abordagem Proposta

20
Cenário para demonstração
• Aplicação "Lembre-me!".
• A aplicação permite registrar ideias no aplicativo
com a informação de localização e fotos do local,
semelhante ao Keep da Google.
• Essas ideias podem ser compartilhadas para aqueles
que possuem o aplicativo instalado.

21
Identificação dos objetos do domínio

• Análise de requisitos (requisitos funcionais).
– Classes, Atributos, Componentes, relacionamentos
entre eles.
• Essas informações irão servir como entrada
para a ferramenta de modelagem.

22
Identificação dos objetos do domínio
Componente

Classe
Relação

Atributo

23
Realização das transformações

tags

Cada tag, possui suas respectivas
regras de transformação.

24
Realização das transformações
Tag Regras de Transformação
classes Essa Tag é responsável por identificar entidades dentro do modelo de domínio
especificado. Cada entidade criada será processada pelo gerador que irá
transformá-la em classes atendendo ao padrão de projeto MVC. Será criada a
classe de modelo e persistência de dados (firebase), classes de layouts de
tela em Android (View) e classes controladoras com validações.
attributes Essa Tag é responsável por identificar os atributos de uma classe no
modelo de domínio especificado. O atributo na transformação irá ser um
campo da tela.
Relation Nesta tagged Value o Engenheiro de Sistema informa qual atributo está
Attribute relacionado com o componente. Para isso é necessário informar o alvo
To (target) e a origem (source). O atributo associado ao componente é
Component identificado pelo gerador, o qual realiza as transformações necessárias a fim
de permitir que o campo (EditText do Android) inicie a tela do Componente.

25
Realização das transformações

Layout e Funcionamento
26
Realização das transformações

27
Realização das transformações
Nessa etapa são gerados os código fontes:
1) das telas do aplicativo (Activitys);
2) das funções responsáveis por restringir
o conteúdo dos atributos das entidades;
3) das funções responsáveis pela
manipulação dos dados (persistência).

28
Implantação da aplicação

• Realizar o deploy do código fonte no
dispositivo com o sistema operacional
Android.
• O deploy é realizado através da IDE Eclipse ou
Android Studio.

29
Implantação da aplicação
• Eclipse • Android Studio
– JDK 7 ou superior – JDK 7 ou superior
– Android Developer Tools – SDK Android (Default)
(ADT) – Gradle(Default)
– SDK Android
– Gradle

30
Implantação da aplicação
• Importar o projeto no eclipse/android studio.
• Executar build.gradle (download bibliotecas necessárias)
• Alterar o arquivo FirebaseUtil.java com as informações da
conta de usuário que deve ser criada.
• Alterar google_maps_api.xml com sua KEY para ser usado a
API
• Pronto. Excute a aplicação.

31
Ferramenta de modelagem

32
Ferramenta de Modelagem

33
Ferramenta de Modelagem

• MDD
• Framework EuGenia
– Eclipse Epsilon
– Graphical Modeling
Framework (GMF)
• Editor GMF
34
Ferramenta de modelagem
metamodelo
*.ecore <code>

Código gerado da
aplicação (Projeto)
EuGENia Meta-modelo Template *.egl

Adaptações

Camada Fina de Dados
necessárias/escopo
API

Generation Language

Aplicação
GMF Editor Engine empacotada
35
Avaliação da Abordagem

36
Cenário
• Aedes Points, aplicação desenvolvida com base
em Oliveira (2015)
• Analisou e demostrou a distribuição espacial dos
locais acometidos com o desequilíbrio ambiental
que possam influenciar na prevalência dos casos
de dengue.

37
Cenário
• Georreferenciar o
desequilíbrio ambiental
(lixo, esgoto à céu aberto e
água parada)
• 4 Bairros de Juazeiro-BA
• 181 casos de dengue
confirmados nos quatro
bairros.
38
Cenário
• Identificação dos objetos do domínio

39
Cenário
Realização das
Transformações

40
Cenário
Implantação da Aplicação

41
Cenários

42
Avaliação
• Goal Question Metric (GQM)
– definir e avaliar um conjunto de metas operacionais,
usando medição.

43
Avaliação
• Objetivo definido é:

Avaliar o reuso nas aplicações geradas, no ponto
de vista do engenheiro de software no
contexto da abordagem proposta.

44
Avaliação – Plano GQM

45
Avaliação – Coleta de Dados
• Eclipse Metrics, versão 1.3.6
• Plugin Compare do Notepad++, versão 5.6
• Todos os dados coletados, alimentaram uma
planilha as quais foram realizados os cálculos
segundo as métricas apresentadas a seguir.

46
Avaliação - Interpretação
• Avaliou-se duas aplicações desenvolvidas com a
abordagem e foram respondidas as seguintes
questões:
– Questão 1: Qual a distribuição do reuso de forma geral no
código gerado da aplicação?
– Questão 2: Qual a distribuição do reuso entre as classes
da aplicação gerada?

47
Avaliação - Interpretação
Questão 1: Qual
a distribuição do
reuso de forma
geral no código
gerado da
aplicação?

48
Avaliação - Interpretação
Questão 2: Qual a
distribuição do
reuso entre as
classes da
aplicação gerada?

49
Avaliação - Análise dos Resultados
• Benefícios
– Automatização
– Modelagem de requisitos
– Reuso

50
Avaliação - Análise dos Resultados
• Desvantagens
– Construção da ferramenta de modelagem
– Código fonte gerado

• Ameaças
– Má especificação
Usar abordagem para outro domínio

51
Conclusão
• Foi possível alcançar aos objetivos almejados, uma vez que nesta
dissertação, a abordagem proposta e em conjunto com a ferramenta
criada, mostraram-se eficazes para o desenvolvimento de aplicações no
âmbito de pessoas como sensores para smartphones. Além disso, no
estudo em que avaliou a reutilização de software auxiliada pelo
desenvolvimento orientado a modelos foram obtidos bons resultados.

52
Contribuições
• Definição de uma abordagem (reuso, a produtividade e automatização)
• Ferramenta de modelagem (modelando e implementado simultaneamente).
• Especificação de regras de transformação baseadas em templates para Iot.
• Automatizar atividades de Engenharia de Software (ES) (Especificação e análise de
requisitos).
• Confirmar que o MDD => aumento da reutilização de software e automatização da
implementação das aplicações.
• Desenvolvimento de aplicações completas e funcionais (BDReal + Storage Real na Nuvem)

53
Trabalhos Futuros
• Integrar essa abordagem como forma de plugin ao Android Studio
• Adicionar uma nova etapa a abordagem, em que uma metodologia de testes
possa ser integrada.
• Adaptar a ferramenta desenvolvida para a abordagem para outros domínios de
aplicação.
• Adaptar a ferramenta para outras plataformas (iOS, Arduíno).

54
OBRIGADO!

28/06/2017 55