Anais - ENUCOMP - 2017 PDF
Anais - ENUCOMP - 2017 PDF
Anais - ENUCOMP - 2017 PDF
1ª Edição
EDITORA
Fundação Universidade Estadual do Piauí-FUESPI
ORGANIZAÇÃO
Ricardo de Andrade Lira Rabêlo
Rodrigo Augusto Rocha Souza Baluz
Thiago Carvalho de Sousa
PROMOÇÃO
REALIZAÇÃO
PARNAÍBA – PI
2017
Ficha Catalográfica elaborada pela Bibliotecária
Christiane Maria Montenegro Sá Lins CRB/3 - 952
E56a
ENCONTRO UNIFICADO DE COMPUTAÇÃO.
(10: 2017: Parnaíba, PI).
Anais Eletrônicos ENUCOMP 2017, Parnaíba, PI, 15 a 17
de novembro de 2017: [recurso eletrônico]/ Organização
[de] Ricardo de Andrade L. Rabêlo, Thiago C. de Sousa e
Rodrigo Augusto R. S. Baluz. - Parnaíba: FUESPI, 2017.
869 p.: Il.
ISBN: 978-85-8320-201-1
Até a próxima!
Comissão Organizadora
ENUCOMP 2017
iii
COMISSÃO ORGANIZADORA
COORDENAÇÃO GERAL
COORDENAÇÃO ADJUNTA
COMISSÃO DE FINANÇAS
COMISSÃO DE MINICURSOS
COMISSÃO DE PALESTRAS
COMISSÃO DE PATROCÍNIO
COMITÊ DE PROGRAMA
viii
SUMÁRIO
ARTIGOS
1. Agentes Inteligentes: conceituação e aplicações
2. Técnicas e Padrões para Otimizar a Interpretação de Código Fonte Aplicados à Fábrica de
Softwares
3. Novo Algoritmo de Ordenação Higher Count Comparado aos Demais
4. Experiência de desenvolvimento do Quiz Lógica: uma solução para aplicação do pensamento
computacional e gamificação no ensino da programação
5. Automação da horta do CTT utilizando Arduino
6. A Aplicação da Lógica de Fuzzy no Auxílio do Diagnóstico do Câncer de Mama
7. Técnica de Inteligência Computacional Aplicada na Qualificação da Rede do Assinante
8. Reconhecimento de Caracteres Manuscritos com SVM
9. DESENVOLVIMENTO DE UMA METODOLOGIA PARA PROCESSAMENTO DE
IMAGENS GEORREFERENCIADAS.
10. Análise de sentimentos de possíveis candidatos às eleições presidenciais de 2018 através da
rede social Twitter
11. Sistema Fuzzy Como Ferramenta de Apoio no Processo de Diagnóstico da Retocolite
Ulcerativa
12. Alocação Ótima de Reguladores de Tensão no Sistema Elétrico utilizando Algoritmos
Genéticos
13. VocaTeen: Um Jogo Multiplataforma Auxiliar para Orientação Vocacional de Adolescentes
14. Proposta de um Sistema para Detecção de Obstáculos Utilizando Câmera de um Smartphone
para o Auxílio a Deficientes Visuais
15. Projeto Versu: um aplicativo de legenda de filmes e seriados para surdos
16. AutoHome - Automação residencial de baixo de custo
17. Identificação de Fenômenos de Transferência Grafo-fônico-fonológica do Português
Brasileiro (L1) Para o Inglês (L2) Utilizando Frequências Formantes
18. Internet das coisas: o caminho para cidades inteligentes no Brasil
19. Análise da Segurança de Rede em um Ambiente Acadêmico: Uma Abordagem Utilizando
Pentest
20. Uma Analise da Segurança da Informação no Contexto da Vulnerabilidade Técnica do Painel
Administrativo de um Website
21. ADA: Evolução do Algoritmo do Duelista Aplicado a Problemas de Otimização Global
ix
22. Algoritmos Evolucionários Multiobjetivos para a Seleção de Casos de Teste para Sistemas
Inteligentes
23. Plataforma IoT para automação de controle IR não invasivo aplicado em ar-condicionado
24. Uma Proposta de uma Sirene Escolar Utilizando Hardware Livre Para os Colégios Técnicos
Vinculados à Universidade Federal do Piauí
25. Segmentação do Disco Óptico para Detecção Automática do Glaucoma Aplicando o
Algoritmo K-means
26. Análise de Desempenho de um Sistema Distribuído para Segmentação de Imagens da Retina
27. Estudo da Abordagem de Ensino Orientado a Projetos: Reflexos no Aprendizado de
Eletrônica Digital
28. Sistema IoT versátil para monitoramento em nuvem de sensores
29. Diagnóstico Automático do Glaucoma usando Convolutional Neural Network e Descritores
de Textura
30. APLICAÇÃO DE ALGORITMOS EVOLUTIVOS PARA RECONFIGURAÇÃO DE
REDES DE DISTRIBUIÇÃO NA PRESENÇA DE GERAÇÃO DISTRIBUÍDA
31. Análise sobre o Efeito de Fatores que Interfere na Acurácia do Registro de Temperatura em
Colmeias
32. Rootsbot
33. Desenvolvimento de uma bateria musical eletrônica sem fio com arduino e android
34. Implementação de uma solução computacional para auxiliar no processo de
acompanhamento de pacientes do Centro de Atenção Psicossocial II (CAPS): um estudo de
caso na sede de Floriano - PI.
35. Sistema Óptico Portátil para Auxílio na Análise de Marcha
36. Uma Avaliação de Desempenho sobre uma Microcloud
37. Diagnóstico Pulmonar baseado em TC usando Análise Funcional, MVS e CNN
38. Modelagem e Simulação do Deslocamento de Pessoas: uma técnica para a previsão de
formação de grupos
39. Plataforma Educacional Para Crianças com Dislexia
40. Gerenciamento agrícola utilizando dispositivos moveis através de bots telegram
41. Time analysis of attacks to USB plug-and-play by human interface device emulation and
keystroke injection
42. MATOFOBIA: Como tratar este sentimento através de um software
43. Um protótipo para automação de criatórios de peixes em uma fazenda escola utilizando
plataforma de hardware livre
44. Heurística para Geração de Configurações Radiais Não Ilhadas em Sistemas de Distribuição
45. Uma abordagem para auxílio à acessibilidade utilizando Internet das Coisas
x
46. Implementação de um módulo medidor para criação de Assinatura de cargas utilizando
Internet das Coisas
47. An approach for clustering sensor nodes by data similarity
48. Um estudo de caso utilizando o Protocolo MQTT e Internet das Coisas na Automação
Residencial
49. Protótipo computacional para averiguar a evasão acadêmica no curso de Bacharelado em
Ciência da Computação
50. Avaliação Comportamental em DoE do Protocolo PRoPHET em Redes Veiculares
Tolerantes a Atrasos
51. Um Modelo de Otimização Multi-Objetivo de Demand Response para Programação de
Carga Residencial
52. A Proposal for Route Selection in IoT Based on the Context of Specific Applications
53. Um Estudo Comparativo entre os Algoritmos de Seleção de Protótipos ENN e CNN
Aplicados ao Classificador KNN em Problemas de Diagnóstico Médico
54. Reconhecimento de gestos usando momentos invariantes de Hu e redes neurais profundas
55. O uso da técnica DAMICORE em dados de alunos do ensino superior para identificar
características de evasão
56. Um Mapeamento Sistemático sobre o uso das Redes Neurais Deep Learning e Interface
Cérebro-Computador em Eletroencefalogramas
57. Automação veicular: Um sistema de sensoriamento para dispositivos móveis baseado em
arduino
58. Um software para obtenção de resultados fidedignos ao Teste de Caminhada de 6 minutos
(TC6)
59. Benchmarking entre Ferramentas de Análise Estática de Códigos Escritos em C
60. Sistema Domótico de Baixo Custo e Eficiente Utilizando Raspberry PI e Arduino
61. Vantagens da utilização do framework SCRUM perante métodos tradicionais
62. Análise Comparativa do Algoritmo Dijkstra com e sem Desfragmentação nas Redes Ópticas
Elásticas
63. Rotulação Automática de Clusters Baseados em Análise de Filogenias
64. TECLA -- Um Módulo para Classificação de Expressões Temporais no Português Brasileiro
65. Sistema Móvel para Reconhecimento Automático de Gestos Estáticos da Linguagem
Brasileira de Sinais
66. A Implementação de Sistemas Distribuídos na Atualidade: descobrindo novas maneiras de
desenvolver computação distribuída.
67. Sistema IoT de comunicação interna por imagens
68. Uma Plataforma Distribuída para Avaliação de Desempenho em Aplicativos Móveis
xi
69. Uma Abordagem Baseada em Índices de Sensibilidade para a Determinação da Sequência de
Ajustes no Controle da Magnitude de Tensão em Sistemas de Transmissão de Energia
Elétrica
70. Avaliação do Padrão IEEE 802.15.4 para Redes Veiculares com Testes Embasados na RFC
2544
71. Avaliação de Usabilidade e Acessibilidade no Sistema de Gerenciamento de Refeitórios -
SARI
72. Desenvolvimento de aplicativo móvel para diagnosticar anemia em pequenos ruminantes
73. Modelo de arquitetura de distribuída aplicada a uma plataforma provedora de serviços
acadêmicos
74. Avaliação de Desempenho das Redes Ópticas Elásticas com Tipos Distintos de Fibras
Ópticas
75. Uma Abordagem Baseada na Máxima Estimativa de Geração de Potência Reativa para a
Determinação da Sequência de Ajustes no Controle da Magnitude de Tensão em Sistemas de
Transmissão de Energia Elétrica
76. Fundamentos da Aprendizagem Cooperativa Aplicados ao Ensino de Lógica de Programação
77. Processo de descoberta de conhecimento em base de dados de Microcefalia utilizando
Algoritmos Não-Supervisionados
78. Avaliação sobre Protocolos de Encaminhamento em Redes Veiculares Tolerantes a Atrasos e
Desconexões
79. Uma heurística para identificação de interesses transversais na escrita de histórias do usuário
MINICURSOS
1. Softwarização em Redes: Do Plano de Dados ao Plano de Orquestração
2. Roteamento Dinâmico em IoT baseado em Requisitos de Aplicações Específicas
3. Construção de Aplicações Baseadas em Física: uma Introdução ao ODE
4. Processamento Digital de Imagens Médicas com Python e OpenCV
5. Produção de Objetos de Aprendizagem Baseados em Vídeos Interativos voltados para o
ambiente TVDi
6. Uma Introdução ao Go: A Linguagem Performática do Google
7. Uma Introdução à Robótica Móvel
8. Construindo Microsserviços em Ambiente de Computação em Nuvem
9. Deep Learning: Uma Introdução às Redes Neurais Convolucionais
10. Introdução ao Desenvolvimento de Aplicativos Android Utilizando Conceitos de
Geolocalização
11. Monitoramento de tráfego em redes de Internet das Coisas
12. Introdução a análise de dados com Python e Pandas
xii
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. With the growing desire of society for comfort and agility in daily
processes, Intelligent Agents arise within the scope of Artificial Intelligence
(IA) knowledge to serve as the basis for the construction of devices formed by
software and hardware that can interact with the medium through Sensors in
an autonomous and intelligent way. The information presented in this work
aims to bring concepts and applications of these agents in society and were
obtained through a bibliographical research in books, articles and
periodicals, in this way, was understood the great feasibility and possibilities
of applications of Intelligent Agents to solve the Problems found in society.
1. Introdução
Diante do crescente anseio da sociedade por comodidade e agilidade nos
processos diários, pesquisadores buscam desenvolver softwares e hardwares que podem
aprender e em muitos casos tomar decisões baseados na observância do ambiente onde
estão inseridos, ou seja, construir conhecimento através de entidades inteligentes. Dessa
forma surge a Inteligência Artificial, ou IC, para Russell & Norvig (2003), a IC pode ser
definida como um sistema ou conjunto destes criados por serem humanos que podem
atuar racionalmente e de forma autônoma. Para Poole (1998) a IC pode ser definida
como o estudo do projeto de agentes inteligentes, já Oliveira (1996) afirma que a IA é o
ramo da ciência que estuda o fenômeno da inteligência, com o objetivo de modelar e
simular comportamentos inteligentes com máquinas para resolver problemas complexos
sem ter, necessariamente, o auxílio humano. Para tanto, vários processos de raciocínio,
aprendizado e percepção são necessários.
013
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Conceituação
Para Russel & Norvig (2003) um agente é qualquer entidade capaz de perceber o
mundo exterior através de sensores e agir neste mundo empregando atuadores. Para
Maes (1995) agentes inteligentes são sistemas computacionais que habitam algum
ambiente complexo e dinâmico e são capazes de sensoriar e atuar autonomamente neste
ambiente visando a execução de tarefas para as quais eles foram projetados. Hayes Roth
(1995) agentes inteligentes executam continuamente três funções: percebem as
condições dinâmicas do ambiente, agem alterando as condições do ambiente e
raciocinam de modo a interpretar percepções, resolver problemas, fazer inferências e
determinar ações. Nessa abordagem, os agentes são projetados para atuarem em
domínios específicos que correspondem a subconjuntos do problema principal. A
solução do problema é feita com a ajuda de todos os agentes envolvidos de maneira não
conflitante. (Gasser; Huhns, 1989; Hogg Huberman, 1991).
Brustoloni (1991) propôs uma taxonomia funcional para agentes: Agentes
reguladores (impedem funcionamentos indesejados), Agentes planejadores (antecipam
decisões), Agentes adaptativos (planejam e aprendem). Já Langton (1991) os classificam
de acordo com o ambiente que estão inseridos: Agentes de software (agentes que
buscam monitorar e apreender através de ações realizadas por um software) e Agentes
de vida artificial (agentes que observam e aprendem com os anseios oriundos do mundo
real ). Já Franklin & Graesser (1996) afirmam que um agente pode ser um programa,
mas nem todo programa pode ser um agente entendimento baseado.
3. Aplicações
Como já visto, os agentes inteligentes podem ser utilizados de diversas formas e
possuem uma vasta gama de conceitos e aplicações, a Figura 1 mostra alguma das
aplicabilidades desses agentes e como eles interagem com o meio.
014
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
015
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Conclusão
Com o entendimento que os Agentes Inteligentes são softwares ou hardwares
que conseguem absorver informações do meio em que estão inseridos, fazer uma análise
dessas informações e mostrar uma resposta para um outro agente ou para o meio
exterior de forma automatizada e podem ser utilizados para diversos objetivos. É notório
que com o passar dos anos eles estarão massificados nos mais variados dispositivos, e
cada vez com mais sensores. Casos como a utilização destes em projetos de SDI,
trazendo mais segurança para os ambientes privados e Jogos de Computadores,
construindo uma experiência para cada jogador de forma independente e totalmente
amigável, dão uma ideia da vasta gama de utilização, de como eles podem ser poderosos
e o quão eles podem facilitar a vida de todos.
Referências
Brustoloni, J.C. Autonomous Agents: Characterization and Requirements, Carnegie
Mellon Technical Report CMU-CS-91-204, 1991.
Franklin, S. & Graesser, A. Is it an Agent, or just a Program?: A Taxonomy for
Autonomous Agents, Proceedings of the International Workshop on Agent Theories,
Architectures, and Languages, Springer-Verlag, 1996.
Oiveira, D. P. R. de. Sistemas de Informações Gerenciais: estratégicas, táticas
operacionais 10ed. São Paulo: Atlas, 2005.
Russell, S.J. & Norvig, P., Artificial Intelligence: A Modern Approach, 2nd. Edition,
Prentice Hall, 2003.
Langton, C. (ed.) Artificial Life, Addison-Wesley, 1989.
Lima, C. F., Agentes Inteligentes para detecção de intrusos em redes de computadores.
<https://tedebc.ufma.br/jspui/bitstream/tede/316/1/Cristiane%20Lima.pdf>. Acesso
em 17 de julho de 2017.
Vieira, D. Inteligência Artificial na Agricultura: Sonho distante ou realidade?
<http://www.startagro.agr.br/inteligencia-artificial-na-agricultura-sonho-distante-ou-
realidade>. Acesso em 19 de outubro de 2010
Gasser, M. N. & Huhns, L., Themes in distributed artificial inteligence reseach. In Les
Gesser and Michel N. Huhns, editors, Pitman Publishing, 1989.
Silva, F. C. L., Agentes Inteligentes em Jogos de Computador.
<https://www.ime.usp.br/~leliane/MAC5701/2005-
1oSem/PlanosMonografias/Filipe.pdf>. Acesso em: 17 de julho de 2017.
John E. Laird and et al. Soar/games project. http://winter.eecs.umich.edu/.
Ron Coleman, Mary Krembs, Alan Labouseur, and Jim Weir. Game design &
programming concentration within the computer science curriculum. SIGCSE Bull.,
37(1):545–550, 2005. 18
016
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Recife, PE – Brazil
{raphaelhazin,washington.hc.almeida,lucianoaguiarthe,andclima}@gmail.c
om
Abstract. Reading the source code is generally not one of the easiest activities,
especially when we're talking about legacy code. In the software industry has just
become popular, many developers work on a source. Each one has a skill and a
different concept, thus leading to a disruption in the construction of software. The
use of patterns and techniques for optimization of interpretation will greatly assist
developers to understand the code, since it would be an easier activity when followed
with these techniques. This paper has the main objective to explore the best practices
for building / maintenance of source code showing techniques and standards
operated by big names in the field of Software Engineering.
Keywords: Clean Code, Refactoring, Software Maintenance
Resumo. A leitura de código fonte geralmente não é uma das atividades mais fáceis,
principalmente quando estamos falando de códigos legados. Na indústria de
software acaba-se tornando comum vários programadores trabalharem em um
código fonte. Cada um tem uma habilidade e um conceito diferente, levando assim
a uma desorganização na construção de um software. O uso dos padrões e técnicas
para otimização da interpretação ajudará muito aos programadores no
entendimento do código, visto que será uma atividade mais fácil quando seguida
com estas técnicas. O presente artigo terá como objetivo principal explorar as boas
práticas para a construção/manutenção de códigos fontes exibindo técnicas e
padrões explorados por grandes nomes na área da Engenharia de Software.
017
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O ramo da Engenharia de Software tem crescido muito no decorrer dos anos, gerando
assim mais oportunidades na área. Tendo em vista que este crescimento se deve à
necessidade da informação, temos como fator adverso a falta de pessoas capacitadas para
a realização das atividades, sendo este o motivo da existência da mão de obra deficiente.
As empresas do ramo estão com prazos apertados e pressionam mais os desenvolvedores
para atingirem metas, as quais muitas vezes são impostas de forma errada. A necessidade
de celeridade e prazos apertados acaba ocasionando a construção de um algoritmo
precário e de difícil entendimento, que ocasionalmente, até pelo nível de complexidade,
pode vir a ser descartado posteriormente, especialmente em função da inviabilidade de
sua evolução.
[Martin, 2009] versa uma situação em que ele viveu, na qual uma empresa que era
responsável por um projeto desenvolvido em um nível altamente complexo com código
ilegível teve que contratar outra equipe para construir um novo código para a construção
do mesmo software, sendo desta vez com a tentativa de torná-lo mais legível e flexível
possível. Esta equipe por não conhecer boas práticas e técnicas para a reengenharia do
software viria a cair na mesma situação da equipe anterior. Percebe-se que a empresa
perdeu muito dinheiro ao contratar uma segunda equipe para desenvolver o mesmo
software. No entanto, conclui-se que, se temos um código ruim, fica difícil ou até
impossível a resolução de problemas, e, por essa razão, esses problemas acabam
encurtando a vida do sistema.
O presente artigo tem como principal objetivo guiar o programador na
estruturação do seu código fonte, seguindo boas práticas utilizadas por grandes nomes na
área da engenharia de software. O método utilizado para o levantamento do estudo e a
proposta de solução tem como origem a análise realizada em ambientes reais, junto com
uma pesquisa descritiva com a inclusão de uma pesquisa bibliográfica. Este trabalho
também tem uma visão complementar ao trabalho de [Travassos, 2011], onde o seu
objetivo foi correlacionar as práticas ágeis mais utilizadas em fábricas de software. Os
conceitos apresentados foram aplicados na Fábrica de Software Moenda Digital do Curso
de Mestrado Profissional em Engenharia de Software no CESAR.EDU1.
Este artigo encontra-se organizado da maneira que segue: o item 2 discute técnicas
e padrões para a construção das aplicações; o item 3 versa sobre a Refatoração, que é o
uso de técnicas para reescrita do código sem interferir no comportamento externo do
sistema; por fim, as considerações finais apresentaram a importância da legibilidade do
código.
2. Técnicas e Padrões para a construção das aplicações
O grupo de técnicas descrito a seguir é uma possível solução para implementações ruins
e deficientes de escrita de código fonte, mas ela, por si só, não é a Bala de Prata [Brooks,
1986]. Quando as técnicas são usadas de maneira eficiente, pode-se dizer que ajudará a
percorrer este longo caminho que é a construção de um software de. Apresenta-se, logo
em seguida, algumas técnicas para melhorar esse cenário já conhecido, separados
didaticamente para uma explanação mais clara.
1
www.cesar.edu.br – Centro de Estudos e Sistemas Avançados do Recife
018
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Devem-se usar nomes que revelem seu propósito. Não pense que investir tempo com um
bom nome para uma variável ou um objeto é algo desnecessário. Imagine-se um método
“cadastrar” e dentro da implementação do método temos alguns campos de uso da classe.
Imagine-se que o nome da classe proprietária do método seria “Pessoa”, logo a chamada
do método seria algo como “pessoa.cadastrar”. O nome parece bastante coerente. Mas
considere que na implementação do método se faça uso de alguma variável chamada “a”
ou “b” ou até mesmo “ab”, estes nomes acabam confundindo quem lê o código fonte e
não revelam nada sobre o propósito da variável.
Sempre utilize nomes fáceis de ser pronunciáveis. Não se preocupe com nomes
extensos. Vale mais um nome extenso do que um nome abreviado de difícil entendimento.
Quanto às variáveis “I”,“J”,”K” normalmente utilizadas em laços de repetições, não ha
problema algum por se tratar apenas de uma variável para contagem.
2.2 Funções/Procedimentos/Métodos
De acordo com [Martin, 2009 p.34], em sua literatura ele cita: “Só existe uma coisa
melhor do que uma função pequena é uma função menor ainda”. O código fonte não deve
conter muitos níveis de indentação, como por exemplo, métodos com “if’s” aninhados. O
método sendo um método de nível de abstração mais abaixo deve ser objetivo. O seu
nome e sua implementação devem fazer apenas uma coisa. Se no método houver a
necessidade de atender a mais de uma funcionalidade, ela deve ser separada em outra
função específica.
Figura 1 – Representação abstrata de uma classe pouco coesa [Almeida and De Miranda
2010]
019
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
As funções podem ter efeitos colaterais. Isso ocorre quando uma função retorna
resultados diferentes do esperado.
Os parâmetros de uma função devem ter seus papeis bem definidos. Não é uma
boa prática passar um parâmetro de entrada e esperar seu retorno. Separe comando de
consulta. Nunca realize a união deles em uma só chamada. Um exemplo disso é escrever
uma função a qual insere um cliente, mas ao mesmo tempo você espera um resultado
indicando se a operação foi bem sucedida. Se acontecer isso, vai existir algo como “if
(cadastrarCliente)” como linha de código e, dessa maneira, parece ser algo difícil de
entender. A função cadastra um cliente. Neste caso ela seria um comando, mas o if espera
um resultado booleano, sendo assim complicada a interpretação. É meio confuso entender
que a função cadastrou o cliente e ao mesmo tempo confirmou a inclusão.
2.3 Comentários
Comentários na verdade são uma desculpa para uma escrita de código ruim. Os
comentários são partes do código que são esquecidas e que podem, em determinados
momentos, atrapalhar ou até confundir quem está a escrevê-lo. Além do mais, o
comentário deve ser revisado toda vez que o código fonte a que ele refere for alterado.
Evite poluir o sistema com autorias, citando nomes de autores ou e-mails, essa ação não
é mais necessária devido aos bons sistemas de versionamento de códigos fontes hoje
existentes. Essas ações só geram lixo no código.
Existem comentários que têm seu objetivo bem definido e que seu uso não é bem
uma desculpa, como no caso dos comentários de licença de uso do software ou direitos
autorais. Esse comentário pode ser necessário e seu uso não prejudica o entendimento do
software.
020
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
o surgimento. O Java faz bem o uso de exceções verificadas2. Mas existe um problema
nesta prática de checagem de exceções, que seria a quebra do principio de Aberto-
Fechado3 [Martin 2009].
3. Refatoração
Com a refatoração você pode pegar um projeto ruim até mesmo caótico e transformá-lo
em um projeto bom [Fowler 2004].
Nem todos encaram isso como uma prática boa, principalmente programadores
mal disciplinados. É importante que esta técnica seja compreendida por todos no grupo
para, assim, ser aplicada corretamente. Deve-se apresentar, além da refatoração no
código, uma breve explicação ou até mesmo uma demonstração do beneficio daquela
alteração, correspondendo muitas vezes esse objetivo à remoção do acoplamento e ao
incentivo ao reuso do código.
Outro problema sério nesta abordagem é que o programador quando tem uma
missão no código a ser construído e o mesmo observa que há algo de errado e que podia
ser melhorado no trecho analisado, ele evita se envolver por que esse não é o seu objetivo
principal. A refatoração é comumente utilizada pelas equipes de desenvolvimento que
usam XP4. Esta técnica é muito utilizada para códigos legados, que são aqueles códigos
que precisam de alguns ajustes para o seu funcionamento. Este item foi escolhido para
compor o artigo por ter relações reais e verdadeiras com a re-escrita de código, mantendo
assim a sua qualidade.
Fowler [2004] enfatiza bem que deve-se considerar refatorar sistemas antigos,
identificando os pontos a serem melhorados. Mas atenção: é importante perceber que o
processo de refatoração consiste em um melhoramento do código sem a alteração do seu
resultado externo. Existem até metodologias que adotam bem essa ferramenta e incluem
como umas das suas boas práticas o uso desta ferramenta. É interessante conhecer tanto
a metodologia que a incorpora bem, como a técnica de desenvolvimento que é guiada por
testes e aplica bem este conceito, junto com algumas ferramentas que corroboram a teoria.
A refatoração é muito bem aceita pelo TDD que é uma técnica de desenvolvimento
de software cujo processo é formado por pequenas iterações para o desenvolvimento de
uma nova funcionalidade, começando pela implementação de um caso de teste, depois
pelo código necessário para fazer o teste passar, e finalmente pela refatoração do código
visando melhor acomodar as mudanças feitas. Esta prática consiste em forçar ao
desenvolvedor a criar o código do projeto, tais como classes/métodos/funções, guiado
pelos testes que identificados como cruciais para o comportamento desejado. Com o
resultado, se obtém os testes automatizados.
O Processo ágil de desenvolvimento de software XP (Extreme Programming),
criado por Kent Beck no final da década de 90, segue à risca os princípios das
2
São exceções que podem ocorrer em um determinado trecho e sendo assim previsto pelo compilador
levantando erros em tempo de compilação.
3
Entidades de software (classes, módulos, funções, etc.) devem ser abertas para extensão, mas fechadas
para modificações”
4
Extreme Programming – Metodologia de desenvolvimento ágil para criação de softwares.
021
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados
As técnicas apresentadas foram aplicadas em ambiente de fábrica de software real, no
âmbito do Mestrado Profissional em Engenharia de Software do CESAR.EDU 5 . Os
resultados da aplicação dessas técnicas, tais como boas práticas de metodologias ágeis,
colaboraram para o melhor entendimento do projeto e do software construído, visto que
a clareza do código se tornou evidente no decorrer do projeto, facilitando assim a
evolução e até mesmo a manutenibilidade do produto, sendo claro na eficácia da entrega
das funcionalidades conforme detalhados na Figura 2, que demonstra a situação do
projeto em dois momentos distintos.
5
http://fabricas.cesar.edu.br/moendadigital/
022
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
se que a clareza do código facilitou o andamento das atividades, onde no começo, sem a
utilização em sua plenitude, a linha correspondente ao trabalho executado ficou abaixo
dos valores relacionados ao trabalho planejado. Com a adoção pela equipe das técnicas
demonstradas neste trabalho, ocorreu o inverso. Nota-se esta característica no inicio do
projeto (linha azul), onde não eram utilizadas as técnicas aqui apresentadas, e no seu final
sendo atendido (linha vermelha).
5. Considerações Finais
Existem ganhos significativos na produção de um bom algoritmo, deixando-o assim mais
fácil de ser entendido, minimizando os problemas que geram bugs no sistema. Antes das
visões aqui abordadas por profissionais e engenheiros da área, pensava-se que era
impossível manusear ou até mesmo evoluir um sistema legado. Com a adoção destas
técnicas é possível direcionar o software para um caminho mais próspero e evolutivo,
incrementando assim tanto a sua estrutura interna como suas interfaces.
É de grande valia, para o profissional da área da engenharia de software, dispender
parte do seu tempo, dando o melhor de si, refletindo assim no código-fonte escrito. Torna-
se um profissional deficiente aquele que possui habilidade, mas, por falta de vontade ou
até mesmo por prazos apertados, não aplicam as técnicas apresentadas neste trabalho.
Vale destacar que, quando o software é bem projetado e escrito, acaba se tornando a
principal fonte de documentação, evitando assim excesso de artefatos e documentos. As
IDE’s de desenvolvimento cooperam muito no processo de escrita do software,
facilitando assim a legibilidade do código.
É importante para as pessoas que estejam interessadas em trabalhar na área, pelo
menos, ter um bom entendimento dessas práticas abordadas, com fins tanto para o
desenvolvimento de um software ou até mesmo para gerência de uma equipe, com foco
em resultados e agregação de valor ao negócio, pois a tecnologia da informação é o maior
diferencial competitivo de uma organização na atualidade.
6. Referências
Almeida, L. T. and De Miranda, J. M. (2010). Código Limpo e seu Mapeamento para
Métricas de Código Fonte. Monografia de Graduação em Ciência da Computação, p.
74.
Beck, K. (1999) Extreme Programming Explained: Embrace Change. New Jersey, EUA:
Addison-Wesley.
023
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
024
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Na área da computação, um dos primeiros ensinamentos são os
algoritmos.[Doneda and Almeida 2016] descreve os algoritmos sendo basicamente
conjuntos de instruções para executar uma tarefa, produzindo uma saı́da de uma de-
terminada entrada. Porém, estas tarefas são das mais diversas, podendo ter calculos
matemáticos, ou até colocar um botão em uma tela. Sendo que, no inı́cio os algoritmos
foram desenvolvidos para a realização de cálculos matemáticos, porem viu-se a sua
necessidade de utiliza-los em outras formas.
Ao longo dos anos, os algoritmos deixaram de realizar apenas cáuculos
matemáticos e começaram a fazer outras tarefas, umas delas é a ordenação de valores.
A ordenação de valores existe a partir de algumas necessidades, como por exemplo, listar
as pessoas mais jovens de uma famı́lia, ou listar as maiores compras em um mercado,
desta forma surgiu os algoritmos de ordenaçao.
Atualmente há uma quantidade variada de algoritmos de ordenação, há algoritmos
que são mais comuns para ordenar valores reais, como o Bucket Sort. Existem outros
algoritmos voltados ao ensino desta técnica, exemplo o Selection Sort e o Bubble Sort.
Também existem os que realizam esta tarefa em pouco tempo, este é o caso do Count Sort
e o Quick Sort. Independente disto, todos eles tem como objetivo principal a ordenação
de valores.
Algo comum em sites de compra terem algoritmos de ordenação, isso acontece
porque os usuários desejam olhar os produtos desde os mais baratos, até os mais caros,
ou o inverso. Normalmente esta tarefa, pode ou não demorar, isto depende do algoritmo.
Por este motivo, que há diversos algoritmos de ordenação. Sendo todos estes estudados
nos cursos universitários de computação, mas alguns destes algoritmos são complicados
para o aprendizado desta técnica.
025
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
Esta seção, apresenta trabalhos os quais foram desenvolvidos ou modificados algoritmos
de ordenação. Na tabela 1 abaixo, verifica-se os estudos realizados com semelhanças a
este artigo. Na tabela 2, compara-se o que foi ou não realizado de acordo com as métricas
deste artigo. Em seguida é realizada uma discussão sobre cada trabalho.
026
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
no trabalho não há nenhuma comparação deste algoritmo com outros já existentes. No
[JADOON et al. 2010], houve uma modificação no algoritmo Selection Sort, desta forma,
os pesquisadores deste trabalho tiveram que comparar o novo Selection Sort com o antigo.
O trabalho [QURESHI et al. 2009], desenvolve-se um novo algoritmo, alem disso, houve
a comparação do mesmo com outros quatro(4) algoritmos.
Em todos estes trabalhos há algo em comum, nenhum deles atentou ao fato no
qual, um algoritmo pode se comportar de maneiras diferentes dependendo de cada caso.
Como já é conhecido nesta área de pesquisa, existem três (3) casos para teste, o melhor
caso, o pior caso e o caso aleatório. Em todos estes casos, houve a comparação do Higher
Count com outros algoritmos.
027
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O atual algoritmo será explicado por meio da Figura 4. No Higher Count primeiramente
temos um vetor no qual entra em dois laços de repetição for, assim realizando vários
loops. Estes laços aninhados, por conta desta quantidade de loops este algoritmo se torna
lento.
Neste algoritmo há duas comparações . Na primeira comparação é verificado se
há valores iguais no vetor, caso isso aconteça, o segundo valor é descartado. A segunda
comparação é realizada a parte, o qual é dado o nome de Higher, isso porque, captura-se
o valor que é o ı́ndice do primeiro for e verifica se é maior do que o valor o qual é o ı́ndice
do segundo for. Caso seja maior é acrescentado um na variável auxiliar, sendo esta parte
chamada de Count e a comparação repetida até acabar a segunda estrutura de repetição.
No final da segunda estrutura de repetição, a variável auxliar obter um determi-
nado valor, o qual torna-se o ı́ndice do vetor resposta e é posto neste ı́ndice o valor que
estava comparando com o restante do vetor. Desta forma é o funcionamento do Higher
Count.
028
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados
Nesta seção apresenta os resultados obtidos com as comparações realizadas. Foi com-
parado o Higher Count com outros seis(6) algoritmos, sendo eles, o Bubble Sort, Cock-
tail Sort, Gnome Sort, Insertion Sort, Odd-even Sort e Selection Sort. A escolha destes
algoritmos é por conta deles serem considerados lentos, em seu pior caso. Desta forma,
sendo uma comparação mais justa com Higher Count. Além disso, foi realizado testes
em três casos diferentes, o pior caso, caso aleatório e melhor caso. Isso para que haja
um teste mais amplo e também considerou tamanhos diferentes de vetores. Sendo estes
vetores com quinhentos (500), cinco mil (5000), cinquenta mil (50000) e quinhentos mil
números (500000).
É necessário resaltar, que todos os resultados apresentados neste artigo foram obti-
dos com o mesmo computador e no mesmo ambiente. O computador é um Assus pl401l,
com 8 gb de memória RAM, processador Intel core i3 com quatro núcleos, sistema op-
eracional Linux Ubuntu e a linguagem de programação C.
Todos os resultados serão apresentados por meio de um gráfico e uma tabela. No
qual, o gráfico têm a comparação dos algoritmos e na tabela o tempo de execução. Na
figura 5 abaixo, na qual compara o Higher Count com os demais Algoritmos. E nas
tabelas 3, 4, 5 e 6, apresenta o tempo de execução de cada algoritmo.
029
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Algoritmo Melhor caso 500000 Caso aleatório 500000 Pior caso 500000
Higher Count 1232,868463 2663,632439 1239,755240
Buble Sort 588,799690 1463.619349 1035,895536
Cocktail Sort 621,026539 1418,492047 1466,701908
Gnome Sort 0,002434 812,650906 1677,652342
Insertion Sort 0,003447 357,659880 718,050629
Odd-even Sort 583,468878 1359,902906 1482,235744
Selection Sort 577,470711 1418,025073 906,758946
Algoritmo Melhor caso 50000 Caso aleatório 50000 Pior caso 50000
Higher Count 12,453981 27,591690 12,423620
Buble Sort 5,864671 14,375767 10,351910
Cocktail Sort 6,214735 14,244352 14,544504
Gnome Sort 0,000244 8,127140 16,250013
Insertion Sort 0,000348 3,577225 7,140689
Odd-even Sort 5,846774 13,479495 14,785380
Selection Sort 5,400492 14,110960 9,039161
030
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Algoritmo Melhor caso 5000 Caso aleatório 5000 Pior caso 5000
Higher Count 0,124283 0,277883 0,124377
Buble Sort 0,059767 0,106947 0,103444
Cocktail Sort 6,214735 14,244352 14,544504
Gnome Sort 0,061967 0,131645 0,148063
Insertion Sort 0,000036 0,038107 0,072273
Odd-even Sort 0,059133 0,118632 0,147699
Selection Sort 0,055692 0,144027 0,090706
Algoritmo Melhor caso 500 Caso aleatório 500 Pior caso 500
Higher Count 0,001249 0,002230 0,001251
Buble Sort 0,000595 0,001009 0,001031
Cocktail Sort 0,000634 0,001199 0,001462
Gnome Sort 0,000003 0,000841 0,001655
Insertion Sort 0,000004 0,000389 0,000715
Odd-even Sort 0,000602 0,001226 0,001482
Selection Sort 0,000550 0,001425 0,000895
Com o estudo realizado neste artigo, percebe-se que o Higher Count tem um alto
tempo de execução no melhor caso e no caso aleatório, sendo nestes dois casos, o pior
dentre os algoritmos utlizados neste trabalho. No melhor caso, isso pode ser explicado
por conta da grande quantidade de verificações e de loops o qual o Higher Count realiza.
Já no caso aleatório este, alto tempo é dado por conta do vetor resposta.
Mesmo com os problemas no melhor e no caso aleatório, o Higher Count obteve
um mehor resultado no pior caso, isso quando comparado aos demais. Sendo que neste
caso, o mesmo conseguiu o quarto melhor tempo, estando atrás do Bubble Sort, Insertion
Sort e Selection Sort. Isto ocorre por que o Higher Count realiza menos comparações em
relação aos outros algoritmos. Mesmo com o resultado obtido no seu pior caso, o seu
tempo de execução é considerado alto.
O Higher Count tem uma particularidade dos demais, pois a tendencia de todo
algoritmo é que haja uma grande diferença de tempo entre o pior e o melhor caso. Como
pode ser visto nas tabelas e gráficos apresetados nesta seção. No entanto, o Higher Count
obteve quase os mesmos tempo no pior e no melhor caso, sendo assim, um algoritmo
estável, comparando o seu melhor e o seu pior caso. Assim, em casos os quais é necessário
manter a estabilidade e sem importância ao tempo de execução, recomenda-se utilizar o
Higher Count.
Na comparação realizada nesta seção, pode ser percebido uma vantagem do In-
sertion Sort perante os outros, sendo o melhor algoritmo no caso aleatório, no pior caso
031
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
e o segundo melhor no melhor caso. Este destaque do Insertion Sort se dá por conta do
mesmo realizar poucas comparações. Outro algoritmo há ser destacado é o Gnome Sort,
este mesmo atingiu o melhor tempo de execução no melhor caso. Isto acontece pela sua
rápida verificação dos valores em ordem.
5. Conclusão
Pode ser concluı́do, que o Higher Count não é a melhor opção comparado com os algo-
ritmos mais conhecidos (Bubble, Selection e Inserction Sort). Entretanto, conseguiu su-
perar alguns algoritmos no pior caso. Caso este, o qual é o mais importante em testes de
ordenação. Desta maneira, se tornando uma boa opção para este caso, em especı́fico. Mas
ainda não é um bom algoritmo por conta dos seus resultados no geral. Por fim, destaca-se
a sua facilidade de aprendizado, assim, o Higher Count pode ser uma boa opção para o
ensino de algoritmos de ordenação.
6. Trabalhos Futuros
O Higher Count contém diversas problemáticas, as quais devem ser melhoradas futura-
mente. Uma delas é a impossibilidade de ordenar um vetor com dois, ou mais valores
iguais. Outro problema são os seus altos tempos de ordenação, porém, pretende-se mel-
horar o algoritmo neste fato, principalmente no caso aleatório. Caso este, que o Higher
Count esteve com uma diferença de 1200,01309 segundos, em relação ao segundo pior,
isto no teste com quinhentos mil números(500.000)
References
Doneda, D. and Almeida, V. A. (2016). What is algorithm governance? IEEE Internet
Computing, 20(4):60–63.
Idrizi, F., Rustemi, A., and Dalipi, F. (2017). A new modified sorting algorithm: A
comparison with state of the art. In Embedded Computing (MECO), 2017 6th Mediter-
ranean Conference on, pages 1–6. IEEE.
Iqbal, S. Z., Ismail, M., and Gull, H. (2012). New relative concatenate sorting algorithm.
In Computer Science and Automation Engineering (CSAE), 2012 IEEE International
Conference on, volume 1, pages 1–6. IEEE.
Jadoon, S., Solehria, S. F., and Qayum, M. (2011). Optimized selection sort algorithm
is faster than insertion sort algorithm: a comparative study. International Journal of
Electrical & Computer Sciences IJECS-IJENS, 11(02):19–24.
Qureshi, M. A. (2009). Qureshi sort: A new sorting algorithm. In Computer, Control and
Communication, 2009. IC4 2009. 2nd International Conference on, pages 1–5. IEEE.
Zafar, S., Wahab, A., et al. (2009). A new friends sort algorithm. In Computer Science
and Information Technology, 2009. ICCSIT 2009. 2nd IEEE International Conference
on, pages 326–329. IEEE.
032
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Tema que vem sendo muito discutido na atualidade, a inserção de noções de lógica
de programação para alunos da educação básica vem ganhando espaço como campo de
pesquisa. Na Europa e nos Estados Unidos essa tendência já é uma realidade e começa a se
consolidar, sobretudo após a adoção do modelo curricular K-12 [Oliveira et al. 2014]. No
033
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Brasil, essa iniciativa ainda encontra certos entraves polı́ticos e culturais para uma efetiva
implantação, sendo observado ainda seu tı́mido crescimento em cursos técnicos e alguns
casos sendo observados envolvendo como público estudantes dos nı́veis fundamental e
médio [França and Tedesco 2015].
Não tendo contato com esses conceitos no ensino básico, o estudante de curso
de graduação tardiamente inicia seus estudos em programação, apresentando frequente-
mente dificuldades de incorporar determinados fundamentos dessa área. Especialistas
associam tal dificuldade a um conjunto de habilidades necessárias, como: capacidade ou
experiência em resolução de problemas, raciocı́nio lógico e determinado grau de desen-
volvimento cognitivo [Baidowi et al. 2013]. Essas exigências tornam-se um fardo para
muitos estudantes que apresentam quedas de desempenho [Sarmento Neto et al. 2016b].
Isso impacta negativamente no psicológico desses jovens, o que pode desmotivá-los em
continuar seguindo seus estudos na área de computação.
Pensando nessa problemática, especialistas e pesquisadores vêm aplicando
técnicas e ferramentas para dinamizar o aprendizado da programação, aumentando
a motivação dos alunos e, consequentemente, melhorando o desempenho em seus
cursos de TI. Como métodos que vêm sendo utilizados, cita-se: os jogos sérios
[Vahldick et al. 2015] e o pensamento computacional que permitem o desenvolvimento
de capacidades que contribuem no sentido de melhorar o raciocı́nio lógico dos es-
tudantes [Rodriguez et al. 2015] utilizando, por exemplo, técnicas de gamificação.
Como ferramentas, é marcante o uso do Scratch [Mota et al. 2014] e do App Inventor
[Duda et al. 2015] para esses propósitos.
Nesse sentido, este trabalho propõe relatar uma experiência sobre o desenvolvi-
mento de um jogo de perguntas e respostas para dispositivos móveis, que pode ser uti-
lizado como uma ferramenta de apoio no ensino da programação. O aplicativo foi de-
senvolvido por meio da plataforma App Inventor em forma de quiz, trazendo perguntas
sobre temas de lógica de programação com diferentes graus de complexidade; propondo
ao jogador uma forma lúdica de aprendizagem.
A criação de soluções tecnológicas com viés pedagógico no ensino de lógica de
programação vem contribuir para desenvolver um ambiente favorável à aprendizagem, au-
mentando a capacidade de construção do conhecimento por parte do aluno e promovendo
a autonomia no processo de ensino-aprendizagem.
O restante do artigo está organizado sob a seguinte estrutura: na Seção 2 são apre-
sentadas as caracterı́sticas e funcionalidades do App Inventor. Na Seção 3 são discutidas
as questões metodológicas desta pesquisa. Na Seção 4 é discutida a experiência resul-
tante do aplicativo desenvolvido. Na Seção 5 são apresentados e discutidos os trabalhos
relacionados. Finalmente, na Seção 6 são feitas as considerações finais.
034
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
pode ser utilizada como ferramenta de apoio para estudos introdutórios em lógica de
programação [Finizola et al. 2014]. Desse modo, essa solução foi desenvolvida para mi-
nimizar barreiras no que diz respeito à criação de aplicativos para smartphones e outros
dispositivos que utilizam como o sistema operacional o Android.
Vale ressaltar que a praticidade dessa ferramenta derruba a máxima de que apenas
um profissional da área da computação, dedicando muito tempo de estudos, tem poten-
cial para desenvolver um aplicativo para dispositivos móveis. Nesse sentido, não apenas
pessoas ligadas a essa área, mas todos que têm o interessante em começar a desenvol-
ver aplicativos voltados para o sistema Android, têm a capacidade de realizar tal ação de
forma bem simples e didática.
O App Inventor permanece sendo atualizado constantemente com o intuito de
melhorar sua interface e sua dinâmica, visando facilitar cada vez mais a sua utilização.
Isso contribui para tornar a plataforma mais simples e utilizável, sobretudo para aqueles
que estão iniciando no campo de desenvolvimento para Android. Dessa forma torna-se
possı́vel qualquer pessoa desenvolver seu próprio aplicativo de acordo com os componen-
tes que a plataforma disponibiliza.
A ferramenta permite que toda a programação necessária seja feita em forma de
blocos de construção. Toda a criação do aplicativo é feita de forma visual juntando seus
componente em uma tela, como uma espécie de quebra-cabeça. Conforme mostra a Fi-
gura 1, a criação de um aplicativo se desenrola por meio da seleção de componentes e
montagem de blocos, que especificam quais os atributos que a aplicação irá conter.
035
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Materiais e Métodos
Pela sua natureza, o trabalho assumiu o caráter de estudo de caso, pois se trata de
uma investigação inicialmente particular realizada por alunos de iniciação cientı́fica júnior
do curso de Informática de um colégio técnico federal. Essa iniciativa foi pensada após
ser observado o nı́vel preocupante de desempenho verificado na disciplina de Lógica de
Programação [Sarmento Neto et al. 2016b], uma realidade também observada em escala
nacional e internacional [Gomes and Melo 2012].
Nesse sentido, este trabalho assumiu um perfil de pesquisa descritiva e qualita-
tiva. Isso é justificado principalmente devido ao seu propósito em relatar e discutir a
experiência obtida na elaboração de uma solução para auxiliar o processo de ensino e
aprendizagem em disciplinas introdutórias de programação.
Com vistas a melhor organizar as informações sobre tal experiência, optou-se por
enumerar as etapas que envolveram todo o desenvolvimento da solução proposta, desde o
planejamento até a implementação do aplicativo. Cada etapa foi então enumerada como
segue:
1. Determinar a plataforma alvo para a solução: aplicativo para desktop, Web ou
mobile?
2. Selecionar a ferramenta de edição e desenvolvimento de acordo com a plataforma
escolhida;
3. Planejar o desenvolvimento do conteúdo do aplicativo: no caso de um quiz, que
temas abordar, quantas perguntas devem ser necessárias, que nı́veis de dificuldade
abordar
4. Modelar a solução: será necessário aplicar algum método de engenharia de soft-
ware, qual será a sequência de eventos que o aplicativo deve realizar?
5. Implementar a aplicação: haja vista que todos os passos anteriores foram con-
cluı́dos, inicia-se a codificação e construção da ferramenta.
Além desses passos relacionados é necessário levar em conta o tempo e recursos
desprendidos para o desenvolvimento, bem como o nı́vel de experiência da equipe. Os
desenvolvedores da solução foram três alunos de um curso técnico de Informática que até
então tinham pouco contato com o desenvolvimento de aplicações completas.
4. Resultados e Discussão
Como já descrito, este trabalho pretende compartilhar a experiência sobre o de-
senvolvimento de uma solução que pode auxiliar o professor a dinamizar o processo de
ensino-aprendizagem de disciplinas de programação. Pensando nessa problemática, uma
equipe de alunos do curso de Informática de um colégio técnico federal se dispôs a ela-
borar um aplicativo que pudesse trazer os conteúdos dessa matéria, porém de uma forma
mais didática e dinâmica.
Pensando nisso, a plataforma alvo escolhida para essa solução foi a mobile com
sistema Android. Aplicativos para dispositivos móveis apresentam a grande vantagem
036
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
de sua inerente ubiquidade. Aliado a esse fato, em uma abrangência regional, há a
acessibilidade maior ao sistema em apreço devido à sua natureza aberta e maior opção
de smartphones disponı́veis atualmente que adotam esse sistema. Consequentemente, a
relação custo-benefı́cio dessa plataforma torna-se mais favorável. Essa foi a primeira
etapa no desenvolvimento da solução proposta conforme a enumeração descrita na Seção
3.
Curiosamente o objetivo inicialmente proposto era utilizar a API (Application Pro-
gramming Interface) do Android para o desenvolvimento da solução. No entanto, após os
quatro meses iniciais de projeto, percebeu-se uma dificuldade por parte desses discentes
em dominar as tecnologias necessárias. É importante ressaltar que a construção do aplica-
tivo foi uma das atividades propostas em um projeto de iniciação cientı́fica júnior em que
os alunos de um curso técnico eram participantes. Portanto lidar com noções de pesquisa
e desenvolvimento antes de uma graduação foi algo novo e desafiador para esses jovens.
Um contraponto do desenvolvimento de aplicativos por meio do uso direito da
API do Android é justamente a complexidade de sua arquitetura de desenvolvimento e as
tecnologias envolvidas, o que exige em geral uma curva maior de aprendizagem para alu-
nos com pouca experiência em programação. Por esse motivo, optou-se pela utilização
do App Inventor como ferramenta de apoio para o desenvolvimento do aplicativo pro-
posto, possibilitando que os alunos envolvidos pudessem participar mais no processo de
desenvolvimento da solução. Concluiu-se assim a segunda etapa dessa experiência.
Na terceira etapa, ao idealizar o conteúdo da aplicação, optou-se pelo uso da
gamificação por ser uma prática que traz motivações mais lúdicas. Dessa forma foi con-
cebido o embrião do “Oxente, Quizz Lógica?”: um jogo de perguntas e respostas acerca
de conceitos e fundamentos de lógica de programação tendo como base a linguagem Por-
tugol (um pseudocódigo intuitivo em Português) e utilizando elementos visuais e sonoros
com aspectos regionalistas do sertão nordestino.
Através do uso do App Inventor foi possı́vel realizar a modelagem do aplicativo
dentro da própria ferramenta através de sua dinâmica de componentes em bloco. Desse
modo, facilmente foi possı́vel realizar o sequenciamento dos eventos, dispensando, nessa
versão inicial, o uso de métodos mais formais de engenharia de software. Findou-se então
a quarta etapa.
Na quinta e última etapa, finalmente o jogo foi implementado. A equipe trabalhou
junta por um mês e meio colocando em prática o que foi planejado. Após esse lapso
temporal, o jogo ficou pronto. Conforme é exibido na Figura 2, foi dado enfoque para a
questão do regionalismo para deixar o usuário mais familiarizado com a ferramenta. Ao
utilizar a solução, o nome do usuário é solicitado e então ele segue resolvendo a uma série
de perguntas sobre lógica de programação. O aspecto da gamificação fica mais evidente
ainda quando o usuário joga o quiz com o intuito de obter uma boa pontuação e ficar bem
colocado no ranking disponibilizado no aplicativo.
Enxerga-se nessa proposta um grande potencial para motivar alunos iniciantes
em programação, pois o jogo ao mesmo tempo que tenta obter o foco do aprendiz, traz
também termos e elementos visuais regionais que certamente tornam os temas, normal-
mente vistos como um tabu na sala de aula, como algo agradável e familiar de se abordar.
Pensando nisso, pretende-se aplicar a ferramenta em turmas iniciantes de programação
037
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Trabalhos Relacionados
A adoção de aplicativos para dispositivos móveis desenvolvidos como ferramentas
de apoio pedagógico é uma iniciativa que está sendo muito explorada no meio acadêmico.
O trabalho de [Freitas et al. 2016] descreve uma experiência sobre o desenvolvimento de
vinte e um aplicativos para o ensino da matemática em uma disciplina do mestrado profis-
sional em ensino de matemática da Universidade do Estado do Pará. Os apps contemplam
temas que vão desde problemas aritméticos simples até áreas como geometria, análise
combinatória e probabilidade.
O uso do App Inventor para estimular a aprendizagem da programação também foi
o objeto de estudo de [Duda et al. 2015] em um campus do Instituto Federal do Paraná.
É relatado, nessa pesquisa, o desenvolvimento de atividades e materiais que poderiam ser
adotados por docentes na área da matemática em suas aulas. Em um intervalo relativa-
mente curto (quatro meses), os alunos envolvidos no estudo evoluı́ram consideravelmente
em conceitos de desenvolvimento de aplicativos.
Aproximando-se mais do objetivo deste trabalho, coloca-se em pauta agora o en-
sino de programação. Tirar os alunos de uma dimensão simplesmente passiva, estática
e inseri-lo como condutor do seu próprio processo de aprendizagem, experimentando,
descobrindo, errando e depurando, é utilizar técnicas construcionistas em sala de aula.
Essa estratégia foi utilizada por [Gomes and Melo 2012] com alunos do 1o ano e 2o ano
do ensino médio de uma escola da rede pública estadual de Pernambuco. Os educadores
utilizaram o próprio ambiente da plataforma do App Inventor para incentivar os alunos a
desenvolverem seus aplicativos, aprendendo e explorando a linguagem de programação e
ferramentas do ambiente.
Para esse tipo de estratégia, julga-se importante o acompanhamento mais inten-
sivo de um orientador (professor, tutor ou monitor) para verificar também a adaptação
a ambientes que podem ser complexos para alunos presumivelmente inexperientes no
assunto. No caso do App Inventor, sua interface dinâmica somado ao seu modelo de
programação orientada a design [Finizola et al. 2014] torna-se um atrativo ao aprendiz,
sem expô-lo à complexidade inerente do desenvolvimento mobile em um nı́vel mais baixo
038
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Considerações Finais
Este trabalho teve como intenção descrever a experiência no desenvolvimento de
um quiz que pode servir de ferramenta de apoio ao professor nas aulas de programação,
pois vem sendo observado que é uma área em que os alunos vêm encontrando muitas difi-
culdades para assimilar o conhecimento necessário. O projeto foi desenvolvido por alunos
de iniciação cientı́fica júnior do curso técnico em Informática de um colégio técnico fe-
deral.
Essa iniciativa pretende inserir o pensamento computacional na sala de aula, to-
mando como exemplo a disciplina introdutória de Lógica de Programação, na qual vem
se observando um desempenho ruim e um alto ı́ndice de reprovações. Portanto é mister
que o professor utilize metodologias que dinamizem o processo de ensino-aprendizagem
da disciplina, tornando o aluno um agente mais ativo em busca do conhecimento e, con-
sequentemente, trazendo o motivação e melhores desempenhos desse estudante.
Nesse sentido, a solução desenvolvida neste projeto poderá ser futuramente apli-
cada como ferramenta de verificação em uma pesquisa qualitativa para se observar o im-
pacto prático do uso dessa abordagem pedagógica na sala de aula. Acredita-se que a
aplicação do pensamento computacional aliada aos aspectos interativos da gamificação
pode ajudar alunos iniciantes em programação a obter mais motivação e participação,
tornando a programação um conhecimento significativo em sua formação.
Referências
Baidowi, Z. M. P. A., Noh, N. M., and Noh, N. A. M. (2013). A study on the significance
of students’ thinking level to students’ performance. Procedia - Social and Behavioral
Sciences, 90(0):914 – 922. 6th InCULT.
Brito, A. and Madeira, C. (2015). Xp & skills: gamificando o processo de ensino de
introdução a programação. In Anais dos Workshops do Congresso Brasileiro de In-
formática na Educação, volume 4, pages 1124–1133.
Deitel, H. M., Deitel, A., and Morgano, M. (2013). Android para programadores: uma
abordagem baseada em aplicativos. Bookman Editora.
039
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Duda, R., da Silva, S. d. C. R., Zontini, D. D., and Grossi, L. (2015). Elaboração de
aplicativos para android com uso do app inventor: uma experiência no instituto federal
do paraná–câmpus irati. Revista Brasileira de Ensino de Ciência e Tecnologia, 8.
Finizola, A. B., Raposo, E. H. S., Pereira, M. B. P. N., Gomes, W. S., de Araújo, A. L.
S. O., and Souza, F. V. C. (2014). O ensino de programação para dispositivos móveis
utilizando o mit-app inventor com alunos do ensino médio. In Anais do Workshop de
Informática na Escola, volume 20, page 337.
França, R. and Tedesco, P. (2015). Desafios e oportunidades ao ensino do pensamento
computacional na educação básica no brasil. In Anais dos Workshops do Congresso
Brasileiro de Informática na Educação, volume 4, page 1464.
Freitas, R. S. d. S., Santos, R. V., Pereira, M. F. F., Silva, D. C. d., and Alves, F. J. d. C.
(2016). O uso de tecnologias de informação e comunicação no processo de ensino-
aprendizagem da matemática: Desenvolvimento de aplicativos com o app inventor 2.
In XII Encontro Nacional de Educação Matemática, pages 1–8, São Paulo. Sociedade
Brasileira de Educação Matemática.
Gomes, T. C. S. and Melo, J. C. B. d. (2012). App inventor for android: Uma pro-
posta contrucionista para experiências significativas de aprendizagem no ensino da
programação. In 4o Simpósio Hipertexto e Tecnologias na Educação, pages 1–9, Re-
cife. Universidade Federal de Pernambuco.
Mota, F. P., Ribeiro, N. F., Emmendorfer, L., Butzen, P., Machado, K. S., and Adamatti,
D. F. (2014). Desenvolvendo o raciocı́nio lógico no ensino médio: uma proposta uti-
lizando a ferramenta scratch. In Brazilian Symposium on Computers in Education
(Simpósio Brasileiro de Informática na Educação-SBIE), volume 25, page 377.
Oliveira, M. L. S. d., Souza, A. A. d., Barbosa, A. F., and Barreiros, E. F. S. (2014). Ensino
de lógica de programação no ensino fundamental utilizando o scratch: um relato de
experiência. In XXXIV Congresso da SBC-XXII Workshop de Ensino de Computação,
Brası́lia.
Rodriguez, C., Zem-Lopes, A. M., Marques, L., and Isotani, S. (2015). Pensamento
computacional: transformando ideias em jogos digitais usando o scratch. In Anais do
Workshop de Informática na Escola, volume 21, page 62.
Sarmento Neto, G. A., Castro, C. d. A., Camelo, J. H., and Rabelo, R. L. (2016a). A
memory game applied to reinforce programming learning in secondary schools. In
Escola Regional de Informática do Piauı́, pages 1–6, Teresina. ERIPI.
Sarmento Neto, G. A., Silva, F. H., Silva, V. S., and Fernandes, P. B. (2016b). Análise
preliminar sobre fatores que impactam sobre o desempenho discente em programação
utilizando técnicas de mineração de dados. In Escola Regional de Informática do
Piauı́, pages 1–6, Teresina. ERIPI.
Silva, L. and Carvalho, D. (2016). Saberes davó: Uma abordagem para o ensino de
programação no ensino médio. In Anais do Workshop de Informática na Escola, vo-
lume 22, pages 1–10.
Vahldick, A., Mendes, A. J., Marcelino, M. J., Hogenn, M., and Schoeffel, P. (2015).
Testando a diversão em um jogo sério para o aprendizado introdutório de programação.
23o WEI-WORKHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO.
040
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Teresina – PI – Brasil
{nayriane.nay,heavenwait08,laecio-silva}@hotmail.com
1.Introdução
2.Irrigação
A irrigação tem a função de repor a água consumida pelas plantas e garantir que elas
se desenvolvam, como a irrigação deve ser feita depende do tipo de solo, relevo, clima
e cultura que deseja-se cultivar.
041
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O projeto está focado no consumo de água, que acaba sendo grande pela falta
de controle. As condições climáticas da região afetam diretamente a irrigação como
a intensidade das chuvas, variações de temperatura, umidade do ar e ocorrência de
ventos ao longo do ano, o conhecimento desses assuntos irá contribuir na questão de
vezes que a horta vai ser irrigada ao longo do ano e a quantidade da mesma.
3.Arduino
O Arduino surgiu com a ideia de ser acessível para estudantes como meio para que
eles pudessem desenvolver interações e projetos com um baixo custo, por isso é uma
plataforma open source isto quer dizer que tudo relacionado ao Arduino está livre
para estudo e produção.
O Arduino é perfeito para o projeto de automação da horta por ser open source
assim estudando o método de irrigação adequado para a horta em conjunto com o
Arduino, os dois farão a harmonia necessária podendo expandir para outras hortas do
Colégio Técnico de Teresina ou para o quintal de um aluno. O ganho para a
agricultura familiar utilizando o Arduino é bastante eficaz para o desenvolvimento
sem um alto custo de água ou de dinheiro.
4.Dados da situação
042
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
ligar e desligar a irrigação para que as hortaliças sejam aguadas todos os dias
de segunda á segunda com uma duração de 2 a 3 horas.
5.Conclusão
Referências
Agrosmart, Vantagens e desvantagens dos principais tipos de irrigação. Disponível em
<https://www.agrosmart.com.br/blog/vantagens-tipos-de-irrigacao/>. Acesso em 11
de Julho.2017.
Batista, João.(2014) "Manual prático de irrigação". EMATER-RI, Niterói, p. 2-19.
Cunha, K. C. B. da; Rocha, R. V. (2015) "Automação no processo de irrigação na
agricultura familiar com plataforma Arduíno". RECoDAF – Revista Eletrônica
Competências Digitais para Agricultura Familiar, Tupã, v. 1, n. 2, p. 62-74.
InfoEscola, Agricultura Brasileira. Disponível
em<http://www.infoescola.com/agricultura/agricultura-brasileira/>. Acesso em 11 de
julho.2017.
Multilógicashop, Arduino guia iniciante. Disponível
em<https://multilogicashop.com/download_guia_arduino>. Acesso em 15 de
julho.2017.
043
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O câncer de mama é um dos mais frequentes em todo o mundo, é a doença mais temida
pelas mulheres devido sua gravidade, evolução imprevisı́vel e mutilação, que causa sig-
nificativas alterações na autoimagem, diminuindo a autoestima[Godoy et al. 2016].
De fato o câncer de mama é o mais frequente entre as mulheres, devido
o aumento da urbanização e da industrialização de produtos, sua incidência vem
aumentando[AICR 2008]. Sobre esse aspecto, esta pesquisa objetiva auxiliar os profissi-
onais de saúde no diagnóstico dos riscos de câncer de mama em mulheres, utilizando a
lógica fuzzy.
A lógica fuzzy começou a surgir na indústria na década de 80, principalmente
na Ásia e na Europa[Weber and Klein 2003]. Também conhecida como lógica Nebulosa,
é a lógica que suporta os modos de raciocı́nio que são aproximados, ao contrário dos
044
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
Esta seção apresenta uma revisão bibliográfica sobre a utilização da lógica de fuzzy como
instrumento auxiliador na busca por respostas a diferentes problemas pesquisados na
saúde. Dessa forma é apresentado um resumo das abordagens descritas com suas princi-
pais caracterı́sticas.
[Lopes et al. 2005], propõem um sistema fuzzy que simula a atuação de um profis-
sional da saúde no diagnóstico de pacientes que apresentam sinais e sintomas de doenças
das vias áereas superiores e inferiores. A partir da compensação das trocas gasosas como
antecedente de um outro sistema baseado em regras fuzzy, é determinado se a respiração
mecânica é fraca ou forte. Desta forma, a abordagem gera um indicativo para o especia-
lista, se o indivı́duo tem condições de respirar espontaneamente.
[Ortega 2001], apresenta uma abordagem de aplicação da teoria de conjuntos
fuzzy a problemas da biomedicina. É proposto maneiras, de realizar uma junção efetiva
dessa teoria com as áreas da biomedicina, principalmente a epidemiologia. Foram elabo-
radas diversas pesquisas envolvendo, um estimador de risco fuzzy em epidemiologia, as
probabilidades de eventos epidemiológicos fuzzy, é apresentado também um processo de
decisão fuzzy para escolher uma estratégia de vacinação para o sarampo no Estado de São
Paulo, entre outras.
[Kawamura et al. 2007], nesta abordagem é proposto a utilização de um sistema
de Fuzzy, nele concentrou-se na utilização dos conceitos. Nesses termos foram analisadas
as vantagens e desvantagens dos métodos Mamdani e método Sugeno. Assim a partir das
caracterı́sticas do câncer do esôfago e dos conceitos de sistemas fuzzy foi desenvolvido
um sistema Fuzzy para diagnósticos.
[Sacchetta et al. 2002], propõem uma generalização de uma modelo epide-
miológico clássico, considerando a heterogeneidade da população. Na abordagem são
utilizados os sinais (resultados de exames diagnósticos, conjunto de sintomas, sinais
clı́nicos, etc.), são incluı́dos na dinâmica da epidemia. Assim, na abordagem, cada in-
divı́duo apresenta indicadores clı́nicos, usados para classificá-lo como infectado ou não,
por um processo de decisão fuzzy.
045
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Câncer de Mama
O câncer de mama tem sua importância fundamentada por diversos fatores, dentre os
quais se destacam alta incidência, elevado ı́ndice de mortalidade, dificuldade para se es-
tabelecer o diagnóstico precoce e a escassez de informações quanto ao comportamento
biológico[Hegg 2000].
A doença vem acometendo progressivamente um número maior de mulheres,
em faixas etárias cada vez mais novas e com taxa de mortalidade também crescente no
Brasil[SILVA and ORTIGARA 2014].
De acordo com a análise das informações de 89 hospitais especializados no tra-
tamento de câncer e sete serviços isolados de quimioterapia ou radioterapia, referentes
a 43.442 casos de câncer de mama, mostrou que, entre 1995 e 2002, 87,7% das mulhe-
res diagnosticadas com câncer de mama encontravam-se em estágios avançados (estágio
II=42,8%, estágio III=32,6% e estágio IV=12,3%)[Thuler and Mendonça 2005].
Segundo uma outra pesquisa sobre a incidência de câncer no Brasil feita pelo
INCA, estimou-se que em 2014/2015 o Brasil teria 576 mil novos casos de câncer, a
neoplasia maligna de mama, também chamada de câncer de mama é o segundo tipo mais
frequente no mundo, respondendo por 22% dos casos novos a cada ano [INCA 2017].
Considerando as altas taxas de incidência no Brasil, existem muitas pesqui-
sas em relação aos fatores associados ao câncer de mama. Sabe-se que os mesmos
são variáveis que interferem diretamente no desenvolvimento da doenças em mulheres
[SILVA and ORTIGARA 2014].
4. Fuzzy
Considera-se que um sistema fuzzy é uma coleção de variáveis de entrada, uma coleção
de conjuntos para a variável de saı́da e uma coleção de regras que associam as entradas
para resultar em conjuntos para a saı́da. Considera-se que cada variável de entrada é uma
coleção de conjuntos [Weber and Klein 2003].
Nos sistemas lógicos binários o valor resultante pode assumir dois valores que são:
verdadeiro(1) ou falso(0). Já nos sistemas que utilizam a lógica fuzzy, os valores verdade
são expressos linguisticamente, em que cada termo linguı́stico é interpretado como um
046
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Metodologia
Para a construção do modelo foram consideradas três variáveis: a idade da paciente, os
fatores de risco e os sintomas(se houver). A variável ”idade”foi classificada como: muito
jovem, jovem, madura e avançada. Essa variável é de total relevância pois, quanto maior
a idade, maiores são as chances de desenvolvimento da doença.
Na variável “fatores de risco”, foram levantados os fatores de risco
exitentes na literatura em [Ramos 2010], [Thuler 2003], [INCA 2017] e
[PIRHARDT and TERRA 2008], e selecionados os onze mais relevantes. Os fato-
res selecionados foram: hiperplasia epitelial com e sem atipia, ausência de gestação
(nuliparidade), menarca precoce, histórico de câncer na famı́lia na pré e na pós-
menopausa, menopausa tardia, dieta rica em gordura, obesidade, sedentarismo, idade da
primeira gestação após os 34 anos de idade, terapia de reposição hormonal há mais de
cinco anos e alcoolismo.
Em relação à variável ”sintomas”, foram selecionados os mais citados na literatura
em [Stein 2009], [INCA 2017] e [Marinho et al. 2003], foram elencados: Alterações do
tamanho ou forma da mama, vermelhidão, inchaço, calor ou dor na pele da mama, nódulo
ou caroço na mama, inchaço e nódulos, assimetria entre as duas mamas, presença de um
sulco na mama como se fosse um afundamento de uma parte da mama, endurecimento
da pele da mama semelhante a casca de laranja, coceira frequente na mama, formação de
crostas ou feridas na pele, liberação de lı́quido pelo mamilo, inversão súbita do mamilo,
veia facilmente observada e crescente.
O sistema possui três variáveis de entrada e uma de saı́da, está representado grafi-
camente na Figura 2. As variáveis combinadas geram 45 regras, conforme Figura 3.
O método de inferência utilizado foi o Método Sugeno e para a geração da saı́da,
foram consideradas as variáveis linguı́sticas: muito elevado, elevado, medianamente ele-
vado e pouco elevado. Para a construção do modelo foi utilizado o Fuzzy Logic Toolbox
do MATLAB
, R versão 2.0.
Foram realizados os testes com 30 pacientes ficticı́as e dentre estes, foram esco-
lhidos dois casos aleatóriamente para demonstrar os resultados obtidos pelo sistema. Vale
salientar que, estes dados foram submetidos a avaliação de um especialista em oncologia
047
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
e os resultados do sistema Fuzzy foram validados com o diagnóstico feito pelo médico
sendo que, na maioria dos casos, os resultados foram equivalentes.
A Figura 4 representa a resposta do sistema fuzzy em relação a uma paciente com
50 anos de idade, que possui cinco fatores de risco e está com seis sintomas dos já citados
anteriormente, o sistema concluiu que a paciente possui risco muito elevado de câncer.
A Figura 5, demonstra a resposta do sistema fuzzy, de uma paciente com 30 anos
de idade, sem sintomas e que em seu histórico possui dois fatores de risco, em resposta a
situação o sistema gerou que o risco é pouco elevado.
6. Conclusão
Esse estudo foi desenvolvido com o intuito de auxiliar no processo de diagnóstico do
câncer de mama, onde as simulações foram realizadas com pacientes fictı́cias. Entretanto,
pode ser validado com dados reais e adaptado para produzir resultados confiáveis que
poderão ser utilizados por profissionais da sáude.
Como visto, o sistema poderá ser usado para auxı́lio na detecção precoce do câncer
de mama, pois quando a doença é descoberta no inı́cio as chances de cura é muito alta.
Dessa forma, o monitoramento das mulheres cuja chances de desenvolvimento de câncer
de mama for alta, permitirá o tratamento imediato em caso de aparecimento do carcinoma.
Para trabalhos futuros sugere-se o desenvolvimento de outro sistema Fuzzy, utilizando o
método Mamdani, para que possa ser comparado os resultados dos testes, podendo ser
incluı́dos outros tipos de problemáticas, como por exemplo, doenças cardı́acas, respi-
ratórias, alérgicas entre outras.
048
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
AICR (2008). World cancer research fund/american institute for cancer research. food,
nutrition, physical activity, and the prevention of cancer: A global perspective.
Godoy, M. K., Soares, M., Guth, A. K., and Rezer, J. F. P. (2016). Mastectomia e estética
corporal: Uma revisão. Salão do Conhecimento, 2(2).
Gomide, F., Gudwin, R. R., and Tanscheit, R. (1995). Conceitos fundamentais da teoria
de conjuntos fuzzy, lógica fuzzy e aplicações. In Proc. 6 th IFSA Congress-Tutorials,
pages 1–38.
Hegg, R. (2000). Câncer de mama. RBM, 57(5):463–74.
INCA (2017). -. INSTITUTO NACIONAL DO CANCER Rio de Janeiro– Brasil 2017.
Disponı́vel em:<www.site.com.br/index.html>, Acessado em:22 de junho
de 2017.
JÚNIOR, I. and NOVAKOWSKI, S. (2005). Lógica fuzzy sistemas de apoio a decisão.
Rio Grande do Sul, UNISINOS, Abr.
Kaufmann, A. and Gupta, M. (2003). Introduction to fuzzy arithmetic: theory and appli-
cations. 1985. Von nostrand Reinhold Company, New York.
Kawamura, J. et al. (2007). Aplicação de um sistema fuzzy para diagnostico de cancer do
esofago.
Lopes, W. A., Jafelice, R. S. d. M., and Barros, L. C. d. (2005). Modelagem fuzzy de
diagnóstico médico e monitoramento do tratamento da pneumonia. Revista Bioma-
temática, 15:77–96.
Marinho, L. A. B., Costa-Gurgel, M. S., Cecatti, J. G., and Osis, M. J. D. (2003). Conhe-
cimento, atitude e prática do auto-exame das mamas em centros de saúde. Revista de
Saúde Pública, 37(5):576–582.
049
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
050
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
051
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Fundamentos
Mineração de Dados
A metodologia para a proposta dos experimentos neste artigo consiste nas etapas
mostradas na Figura 1. A primeira etapa consiste na coleta e seleção de dados obtidos
através das medições do módulo da função de transferência |FT|, do módulo do parâmetro
de espalhamento S11 |PE| e da impedância de entrada |IE|, a partir das bases de dados de
medições do enlace local do assinante compostas por cabos reais e simuladores de linha.
(JUNIOR, 2008). Na segunda etapa, o pré-processamento dos dados, consiste de um
tratamento estatístico dos dados selecionados na etapa anterior, com a intenção de se
identificar os erros de natureza sistemáticas e/ou aleatórios cometidos nos processos de
medição. A terceira etapa consiste na transformação dos dados originais obtidos através da
052
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
primeira etapa, tais dados foram trabalhados de forma, que os mesmos possam facilmente
ser utilizados na construção dos classificadores.
4. Os Experimentos
(a) (b)
Figura 3. (a) RNA para o Classificador Binário com duas camadas intermediárias. (b) RNA
para o Classificador Binário com cinco camadas intermediárias.
053
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
054
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
No que diz respeito aos valores obtidos na Tabela 2, percebe-se que o melhor
resultado segundo o MSE de treinamento, validação e teste foi alcançado com os valores de
0.55 para o fator de confiança e 2 para o número mínimo de objetos por folha. Neste caso,
optou-se por esses valores de parâmetros para a construção do classificador binário J4.8.
Para validação e estimação da acurácia de testes, foi utilizado o método 10 fold Cross-
Validation, sendo gerada a árvore de decisão apresentada na Figura 5.
055
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
056
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
057
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6.Considerações Finais
Referências
BOSCARIOLI, CLODIS; TABUSADANI, F. YUKIO; BIDARRA, JORGE. O uso
Integrado de K-NN e Scatter Plots 2D na Mineração Visual de Dados. UNIOESTE
– Paraná, 2008.
1
Universidade Federal do Ceará (UFC)
Sobral – Ce – Brasil
[email protected], [email protected]
1. Introdução
O reconhecimento de caracteres manuscritos ou handwritten character recognition
(HCR) é uma desafiadora área de processamento digital de imagens (PDI) e de reco-
nhecimento de padrões [Pradeep et al. 2012],[Mori et al. 1995]. Os caracteres manuscri-
tos por apresentarem diversas variações de estilos e formas de escrita tornam o processo
de reconhecimento por parte das máquinas mais difı́cil. Devido isso, diversos trabalhos
na literatura abordam a utilização de diferentes técnicas de extração de caracterı́sticas e
métodos de inteligência computacional em busca de minimizar esse problema, reduzindo
o tempo de execução e elevando a precisão do HCR [Kumar et al. 2012].
O HCR pode ser dividido em duas categorias, online e offline
[Plamondon and Srihari 2000],[Kumar et al. 2012],[Pradeep et al. 2012]. No pri-
meiro, os caracteres gerados são processados no instante em que são criados, avaliando
as coordenadas bidimensionais de pontos sucessivos como uma função temporal e a
ordem dos traços gerados. No segundo, os documentos são digitalizados e armazenados
em um computador para que sejam processados posteriormente. E devido as inúmeras
aplicações utilizando técnicas de inteligência computacional, esses sistemas são mais
explorados cientificamente em busca de altos nı́veis de precisão para reconhecimento de
caracteres [Kumar et al. 2012].
Embora diferentes sistemas HCR possuam o mesmo objetivo, cada um trabalha
em determinado domı́nio, ou seja, não é possı́vel projetar um sistema genérico capaz de
059
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
processar todos os scripts e idiomas [Rao et al. 2016]. Neste trabalho é utilizado a base de
dados gratuita MNIST [LeCun et al. 1998], na qual disponibiliza cerca de 70000 (setenta
mil) dı́gitos manuscritos dispostos de 0 a 9.
Assim, motivado pelas aplicações interessantes dos sistemas HCR offline, como
processamento de documentos manuscritos digitalizados, reconhecimento de endereços
postais e entre outros, o foco deste trabalho está em torno dos processos que envol-
vem um sistema HCR offline, com o objetivo de alcançar altas taxas de precisão no
HCR. Esses processos estão relacionados com a manipulação da base de dados MNIST,
como a aplicação de técnicas de pré-processamento nas imagens, utilização das técnicas
de extração de caracterı́sticas e de Support Vector Machine (SVM) com a estratégia de
classificação para múltiplas classes Um Contra Um (ou do inglês, One Against One ou
OAO). para reconhecimento de padrões.
Este trabalho é apresentado por seções. Na seção 2 é apresentado uma revisão
bibliográfica sobre a área de HCR. Na seção 3 são descritos os principais processos e
técnicas utilizadas. A seção 4 apresenta os resultados alcançados neste trabalho e na
seção 5, é apresentada uma visão geral dos resultados obtidos baseados na metodologia
proposta.
2. Trabalhos Relacionados
Em [Trier et al. 1996], diversas técnicas para extração de caracterı́sticas em caracteres
manuscritos são abordadas e podem ser utilizadas em imagens com várias tonalidades de
cinza, binarizadas e com contornos de caracteres.
Em [Kumar et al. 2012], são apresentados resultados comparativos entre as
técnicas Redes Neurais Artificiais (RNA) e SVM utilizando uma metodologia especı́fica
para cada classificador. Ao final os resultados obtidos indicam que SVM obtiveram de-
sempenho superior, alcançando uma acurácia de máxima de 94,8%.
Em [Yerra et al. 2017], o HCR é realizado por uma SVM, sendo utilizado apenas
a técnica de Histogramas de Gradientes Orientados (HOG). Ao final, são apresentados os
resultados obtidos, assim como uma comparação com outros trabalhos na literatura que
utilizaram técnicas semelhantes.
Em [Rodrigues et al. 2001], são utilizados técnicas de projeção de contorno utili-
zando polı́gonos regulares como quadrado e hexǵono para extração de caracterı́sticas de
dı́gitos manuscritos. Uma RNA é utilizada para o processo de classificação dos dı́gitos
manuscritos, alcançando uma acurácia máxima de 94,64%.
3. Metodologia
Nesta seção, os processos que envolvem o sistema de reconhecimento proposto são des-
critos. A Figura 1 apresenta a estrutura do sistema usando SVM para o reconhecimento
de padrões. No primeiro processo, é realizada a obtenção da base de dados MNIST, para
em seguida técnicas de pré-processamento serem aplicadas as imagens adquiridas. Após
esses processos, técnicas de extração de caracterı́sticas são aplicadas para determinar o
conjunto de caracterı́sticas de cada caractere manuscrito presente e em seguida sepa-
rar os conjuntos de dados de treinamento e de teste. Então uma SVM é utilizada para
classificar e reconhecer as caracterı́sticas apresentadas pelos conjuntos de treinamento
060
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
e teste, usando a estratégia de classificação para múltiplas classes OAO com variações
nos parâmetros do classificador SVM. Ao final, uma matriz de confusão é utilizada para
avaliar o desempenho do processo de classificação para cada conjunto de parâmetros abor-
dado.
3.2. Pré-Processamento
As imagens da base de dados MNIST por padrão, encontram-se com diversos tons de
cinza, onde os pixels que representam os dı́gitos, encontram-se com tons brancos ou quase
brancos. Então, para que o sistema proposto seja capaz de trabalhar apenas com imagens
binarizadas e com caracteres de tonalidade preta, as técnicas de pré-processamento utili-
zadas são transformação de negativo e binarização das imagens aplicando um threshold
de 150, ambas as técnicas referenciadas em [Gonzalez and Woods 2006]. A Figura 3
apresenta graficamente a aplicação dessas técnicas em uma imagem da base de dados.
061
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Além disso, essas técnicas possuem o objetivo de reduzir a dimensionalidade desses ve-
tores e consequentemente ampliar a eficiência do classificador no reconhecimento dos
padrões.
Dessa forma, este trabalho aborda as técnicas de projeção dos histogramas ho-
rizontal e vertical, e projeção de contorno de cada dı́gito utilizando um quadrado como
referência, avaliando as distâncias entre borda e contorno nos quatro lados.
062
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
063
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
o grau com que determinados valores se confundem com outros durante a classificação.
Cada linha da matriz representa as classes utilizadas, enquanto as colunas representam
os valores que o classificador julgou pertencer aquela classe e sua diagonal representa o
número de classificações corretas. Além disso, outras informações podem ser extraı́das a
partir de uma matriz de confusão como acurácia, precisão e sensibilidade da classificação
por exemplo.
064
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Os resultados obtidos pelo sistema HCR proposto, configurado para a base de dados
MNIST, mostraram-se satisfatórios com a utilização das técnicas de extração de carac-
terı́sticas citadas na seção 3.3, em conjunto com a estratégia de classificação multi-classes
065
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
OAO para uma SVM com kernel RBF. Além disso, a configuração dos parâmetros do ker-
nel que maximizaram o percentual de reconhecimento foi quando C=10 e γ=0.1, conse-
guindo identificar corretamente 9768 de 10000 dı́gitos manuscritos, ou seja, uma acurácia
de 97,68%. Além disso, os resultados obtidos neste trabalho são superiores em relação
aos trabalhos de [Kumar et al. 2012], que alcançou uma acurácia máxima de 94,8% utili-
zando metodologia semelhante, porém com outras técnicas de extração de caracterı́sticas,
e [Rodrigues et al. 2001], que alcançou 94,64% utilizando a técnica de projeção de con-
tornos e Redes Neurais.
Com o objetivo de elevar a taxa de precisão no HCR, outras técnicas de extração
de caracterı́sticas serão incorporadas ao sistema, assim como a utilização de uma técnica
computacional para estimação de parâmetros do kernel de uma SVM, em busca de uma
combinação automática e ideal capaz de ampliar a discriminação entre os conjuntos de
amostras de cada classe.
Referências
Gonzalez, R. C. and Woods, R. E. (2006). Digital Image Processing (3rd Edition).
Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
Kumar, P., Sharma, N., and Rana, A. (2012). Handwritten character recognition using
different kernel based svm classifier and mlp neural network (a comparison). Interna-
tional Journal of Computer Applications, 53(11).
LeCun, Y., Cortes, C., and Burges, C. J. (1998). The mnist database of handwritten digits.
Disponı́vel em: <https://goo.gl/LU1HuQ>. Acesso em: 20 de abril de 2017.
Mori, S., Suen, C. Y., and Yamamoto, K. (1995). Document image analysis. chapter His-
torical Review of OCR Research and Development, pages 244–273. IEEE Computer
Society Press, Los Alamitos, CA, USA.
Plamondon, R. and Srihari, S. N. (2000). On-line and off-line handwriting recognition:
A comprehensive survey. IEEE Trans. Pattern Anal. Mach. Intell., 22(1):63–84.
Pradeep, J., Srinivasan, E., and Himavathi, S. (2012). Neural network based recognition
system integrating feature extraction and classification for english handwritten. Inter-
national journal of Engineering, 25(2):99–106.
Rao, N. V., Sastry, D. A., Chakravarthy, A., and P, K. (2016). Optical character recogni-
tion technique algorithms. Journal of Theoretical and Applied Information Technology,
83(2).
Rodrigues, R. J., Silva, E., and Thomé, A. C. G. (2001). Feature extraction using contour
projection. Disponv́el em: <https://goo.gl/M3YjoM>. Acesso em: 25 de abril de
2017.
Trier, Ø. D., Jain, A. K., and Taxt, T. (1996). Feature extraction methods for character
recognition - a survey. Pattern Recognition (PR), 29(4):641–662.
Yerra, N., Varanasi, R., Adapaka, H., Surumalla, H., and Dantha, J. (2017). Recognition
of handwritten characters using svm. International Journal of Innovate Research in
Science and Engineering, 4(3).
066
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Grenda Juara Alves Costa¹, Eduílson Lívio Neves da Costa Carneiro¹, Franciéric
Alves de Araújo¹
1. INTRODUÇÃO
Atualmente, observa-se um crescimento elevado na utilização de computadores como
dispositivos auxiliares na execução de tarefas que eram feitas pelo homem. Esses
avanços são notórios em atividades que antes pareciam ser impossíveis, como
reconhecimento e processamento de imagens. O constante desenvolvimento dessa área
só é possível pelo fato de que nos últimos anos surgiram novas técnicas que propiciam o
reconhecimento e refinamento nos modos de aquisição e edição de imagens.
Essas novas tecnologias auxiliam em diversas áreas, tal como o uso de imagens de
satélites que através das técnicas de processamento digital de imagens (PDI) permitem
uma melhor interpretação e identificação de objetos e outras características existentes
nas imagens. Com isto, elas são capturadas, processadas e reconhecidas, possibilitando
a execução de tarefas repetitivas, na qual, sem a utilização de dispositivos e softwares
de processamento seria difícil viabilizar o beneficio do uso dos satélites, radares dentre
067
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
068
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. METODOLOGIA
Para o desenvolvimento deste trabalho foi necessário a configuração do ambiente de
desenvolvimento, onde foi preferível o uso da plataforma Windows 7, pela maior
rapidez na instalação das ferramentas necessárias. Na iniciação dos algoritmos foi
utilizado o Python 2.7 e o Liclipse, onde foi feita a implementação dos testes nas
imagens. A área de estudo corresponde a alguns bairros do município de Teresina- PI,
as imagens usadas foram disponibilizadas pela PRODATER (Empresa Teresinense de
Processamento de Dados). A Orthofoto aérea tem resolução espacial de 0,10 metros, no
formato Geotiff, ou seja georreferenciadas.
Para a elaboração de mapas foi usado o Quantun GIS 2.18.3, a definição dos
algoritmos foi feita através do estudo das ferramentas de pré-processamento, edição das
imagens e uma análise das funções com alguns testes para facilitar a extração das
informações contidas nas imagens. Foram usadas em especial a biblioteca do Opencv e
o pacote Numpy. As imagens disponibilizadas pela PRODATER são de alta resolução
obtidas nos anos de 2005, 2007 e 2013. Com elas foram feitos vários testes com filtros e
funções que se aplicam as imagens utilizadas em geoprocessamento.
069
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. RESULTADOS E DISCUSSÕES
070
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Com a aplicação do HSV nas imagens foi possível vericar algumas diferenças
ocorridas na paisagem nesta área específica de Teresina, como diminuição de vegetação
em alguns locais, aumento do solo exposto, dentre outras características.
Os detectores de bordas (figura 3) são de extrema importância na vetorização de
imagens, pois na maioria das vezes este processo é feito de forma manual, o que
dificulta e pode demorar bastante tempo.
Essa detecção de borda foi bem mais eficiente na detecção de recursos hídricos,
ela pode fornecer características como largura, distâncias de uma borda a outra de rios,
dentre outros, pois ela leva em consideração os tons mais próximos de cores o que
facilita na detecção das bordas destes locais. A detecção de bordas para estas imagens
da área de estudo teve a intenção de evidenciar uma parte do rio Poty na área urbana de
Teresina, ela mostrou a diferença em alguns pontos do mesmo, como aumento da coroa
do rio, dentre outros.
4. CONCLUSÃO
A utilização dessa técnica na rotina de PDI, supri de certo modo a carência na área
de geoprocessamento, pois é de rápida aprendizagem, simples de executar e
multiplataforma. Foi obtido um ambiente de desenvolvimento e utilização das técnicas
de PDI. Em todas as técnicas implementadas se teve sucesso como: ajustes de contraste,
manipulação de histograma, detecção de bordas, dentre outras.
Este trabalho foi realizado durante uma bolsa apoiada pelo Programa de Iniciação
Científica do IFPI (PIBIC-IFPI) através do Edital Nº 57-2015, de 04/09/2015.
5. AGRADECIMENTOS
Ao programa do PIBIC pelo financiamento do projeto de pesquisa, ao IFPI-
Instituto Federal de Educação Ciência e Tecnologia do Piauí pela concessão da bolsa de
Iniciação Científica e aos meu orientadores Eduílson Lívio Neves da Costa Carneiro e
Franciéric Alves de Araújo pelo apoio durante a execução do trabalho.
6. REFERENCIAS E FONTES
071
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
072
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
073
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
[email protected], [email protected]
Abstract. From the opinions generated in the twitter social network it is pos-
sible to create a database and on it to apply techniques for the extraction of
information. This work is based on three main analyzes: the first one is the
analysis and mapping of the followers of the possible candidates for the presi-
dential elections of 2018. The second case is the analysis of sentiments of tweets
using hashtags and classifying them according to the polarity. The third case
explored is the analysis of sentiments in tweets with direct quotations. From the
analysis of these data it was possible to determine in which region there is a
greater number of followers of a given candidate. It was also observed what
was the polarity of the words that are directed to a certain candidate.
Resumo. A partir das opiniões geradas na rede social twitter é possı́vel criar
uma base de dados e sobre ela aplicar técnicas para a extração de informações.
Esse trabalho é baseado em três análises principais: a primeira é a análise e o
mapeamento dos seguidores dos possı́veis candidatos às eleições presidenciais
de 2018. O segundo caso é a análise de sentimentos de tweets utilizando-se
hashtags e classificando-as de acordo com a polaridade. O terceiro caso ex-
plorado é a análise de sentimentos em tweets com citações diretas. A partir
da análise desses dados foi possı́vel determinar em qual região há um maior
número de seguidores de determinado candidato. Observou-se também qual foi
a polaridade das palavras que são direcionadas a determinado candidato.
Introdução
Nos últimos anos houve um intenso aumento no número de dados gerados. Esse fator se
deve principalmente às mı́dias sociais que surgiram ao longo desses anos. Uma das mı́dias
socias que vem chamando atenção nos últimos anos é o Twitter, que tem se tornado uma
plataforma bastante importante no quesito influência no meio digital. O microblog possui
hoje cerca de 284 milhões de usuários ativos e mais de 500 milhões de tweets por dia
[Jianqiang 2016].
Atualmente, o Brasil vive uma das suas piores crises polı́ticas da sua história. Nos
últimos meses, com a operação Lava Jato, que investiga casos de corrupção e lavagem
de dinheiro, e que acabou comprovando o envolvimento de empresários, governadores e
chegando até mesmo à alta cúpula do governo, a presidência da república.
Esse trabalho terá como objetivo principal, utilizando-se a rede social Twitter,
identificar o que as pessoas escrevem, como se sentem a respeito dos possı́veis candidatos,
atualmente destacados, para a corrida presidencial nas eleições de 2018.
074
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Materiais e métodos
Data Science
Data Science pode ser descrito como a extração de conhecimento a partir de dados em
determinado campo de trabalho [Shamsuddin and Hasan 2015]. Esse termo já é con-
hecido há um bom tempo, entretanto, só ganhou mais notoriedade com o surgimento
de outro termo, Big Data, que se trata de um grande volume de dados estruturados
e não estruturados difı́cil de armazenar, analisar, processar, compartilhar e visualizar
[Vaishali and Kalaivani 2016].
Nos dias atuais, com Big Data, Data Science está se tornando um campo altamente
promissor tanto para a exploração quanto para o processamento de grandes volumes de
dados que possam ser extraı́dos de várias fontes e em diferentes velocidades.
Análise de Sentimentos
A análise de sentimentos tem como objetivo principal a identificação de qual sentimento
está sendo expresso sobre um determinado objeto, pessoa ou algum tópico especı́fico
[Liu et al. 2009]. Nesse trabalho foram usados dois algoritmos para determinar o tipo de
sentimento expresso nos tweets coletados.
O primeiro algoritmo, utilizado no Estudo de Caso 02 e também no Es-
tudo de Caso 03 (para efeitos de comparação), classifica os sentimentos de -6 até
+6. Essa classificação foi gerada graças a utilização de um Dicionário Léxico
[Souza and Vieira 2012] que inclui cerca de 32.000 palavras polarizadas e classificadas
gramaticalmente. O procedimento é simples: o algoritmo compara cada palavra presente
em determinado tweet com as palavras presentes no Dicionário. Ao final é realizado uma
soma aritmética e o tweet é classificado.
O segundo algoritmo, utilizado no Estudo de Caso 03, funciona da seguinte forma:
há duas listas de arquivos, uma contendo palavras de cunho positivo e outra contendo
palavras de caráter negativo. O algoritmo irá simplesmente verificar se o tweet possui
mais palavras positivas ou mais palavras negativas. Caso possua mais palavras positivas,
ele é classificado como positivo, se o tweet conter mais palavras negativas então ele é
classificado como negativo. Se a palavra não existir em nenhuma das listas, então aquele
tweet é classificado como neutro.
Linguagem R
A linguagem R é utilizada para fins de computação estatı́stica e para propósitos de análise.
Trata-se de uma plataforma open source, ou seja, seu código fonte é disponibilizado e
pode ser modificado e distribuı́do de graça, possuindo versões para Windows, Linux e
MAC OS.
R é uma plataforma estatı́stica que provê aproximadamente 5000 pacotes e oferece
técnicas para análise e exploração de dados [Kumar et al. 2016]. Essa linguagem será a
base de todo o trabalho. Todos os scripts foram criados utilizando-a.
A linguagem R possui uma ampla biblioteca de pacotes que podem ser utilizadas
de forma livre. Um desses pacotes é o twitterR, que foi utilizado para fazer tanto para
estabelecer a conexão com a API do Twitter quanto para realizar a captura de dados tweets.
Outro pacote importante utilizado foi o ROAuth, que fez a conexão do usuário ao servidor
escolhido [CRAN 2016].
075
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
AWS Amazon
O alto processamento de dados nesse projeto necessitou de uma alta infraestrutura de
hardware. Por essa razão, foram utilizados os serviços de cloud da Amazon, o Amazon
Web Services ou AWS Amazon.
A máquina virtual criada ficou com a seguinte configuração: 8 CPUs, 2.4 GHz,
32 GB de memória e 20 GB de armazenamento.
Power BI Microsoft
Em Data Science a apresentação dos resultados geralmente é feita de forma que o público
alvo possa entender o que está sendo dito, o que os dados representam, e isso é feito
através de Dashboards. O Dashboard seria a apresentação visual das informações obti-
das com o fim de transmitir os dados de forma clara e dinâmica. Nesse trabalho a ferra-
menta Power BI, da Microsoft, foi utilizada como opção para transformar os dados em
informação visual.
Procedimentos para a coleta dos tweets
Será utilizada a rede social Twitter como única fonte de informações. A coleta dos dados
será feita através de scripts escritos em R agregado ao uso da API da rede social. Os prin-
cipais dados a serem considerados nessa coleta serão os tweets postados pelos usuários. A
partir disso, os dados serão armazenados em dataframes, estruturas capazes de armazenar
dados de forma tabular, é composta de linhas e colunas, para análise e exploração.
A API do Twitter permite que tweets sejam coletados baseados em citações diretas
ou em #hashtags.
No fluxograma metodológico da Figura 1 são exibidos os passos que foram toma-
dos para a execução do presente projeto, desde a criação da conta até a geração dos resul-
tados.
076
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Resultados
Essa seção apresenta os experimentos que foram feitos utilizando análise de sentimentos
através da rede social twitter. Os resultados e a análise dos mesmos são apresentados
nesta seção.
077
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Após a extração dos dados e a limpeza dos mesmos, o próximo passo foi o mapea-
mento desses usuários por região. A Tabela 2 mostra os resultados obtidos para o possı́vel
candidato Aécio Neves. A Tabela 3 apresenta os números para o possı́vel candidato Jair
Bolsonaro. A Tabela 4 exibe as regiões e suas respectivas porcentagens para o possı́vel
candidado Lula da Silva.
078
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Para comparar os resultados obtidos, a Figura 4 mostra dois gráficos que com-
param os tipos de sentimentos extraı́dos dos tweets com a hashtag #LulaEuConfio e dos
tweets com a hashtag #MoroOrgulhoBrasileiro.
É possı́vel notar que o algoritmo identificou vários tweets como sendo neutros.
A hashtag LulaEuConfio obteve pouco mais de 12.000 em tweets de cunho positivo en-
quanto a hashtag MoroOrgulhoBrasileiro obteve um número um pouco acima de 10.000.
No quesito palavras negativas, a hashtag LulaEuConfio obteve um número considerável,
na casa dos 8.000 enquanto MoroOrgulhoBrasileiro obteve 8.400 tweets negativos. Já
quando se trata de palavras neutras, a segunda hashtag se mostra um pouco mais a frente
no número de tweets, LulaEuConfio com 29.000 e MoroOrgulhoBrasileiro com 31.000.
Estudo de caso 3 - Análise de sentimentos em tweets com citações diretas aos
candidatos
O estudo do caso 3 utiliza como base de dados os tweets com citações diretas. Uma citação
direta seria simplesmente um determinado tweet mencionando o nome de determinada
pessoa.
079
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
080
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Conclusão
Este trabalho mostrou o estudo de 3 casos relacionados à polı́tica brasileira. O primeiro
caso analisado foi tentar descobrir onde se concentravam os seguidores de cada candidato,
dividido em regiões. Em todos os casos foi possı́vel notar uma dominação da região
sudeste, com mais de 50% em cada caso.
No estudo do caso 2, duas hashtags foram analisadas a partir de um Dicionário
Léxico, contendo palavras previamente classificadas. A primeira hashtag #LulaEuConfio,
gerada por apoiadores do ex-presidente, mostrou um número alto de palavras neutras. O
número de palavras positivas, em torno de 12.000, foi maior em comparação as palavras
positivas da hashtag #MoroOrgulhoBrasileiro.
No caso 3 foi utilizado um outro algoritmo, além do já utilizado no caso 2, para
classificar os sentimentos dos tweets obtidos em positivo, negativo ou neutro. Esse algo-
ritmo utiilizou duas listas de palavras, divididas em positivas e negativas. Cada palavra
de tweet é analisada, então é realizada a soma aritmética e o texto é classificado. Difer-
entemente do caso 2, os dados obtidos no caso 3 foram retirados de tweets que continham
citações diretas aos possı́veis candidatos.
Para um futuro melhoramento desse trabalho, já foi colocado em prática a
construção de um novo algoritmo que supera o tempo de rate limit, imposto pela API
do Twitter. Esse novo algoritmo vai permitir que o mapeamento de seguidores seja feito
de forma mais completa, utilizando 100% de todos os seguidores como base de dados
além de permitir que um maior número de tweets seja capturado, permitindo uma melhor
análise de dados.
Referências
CRAN (2016). Roauth package.
Jianqiang, Z. (2016). Combing semantic and prior polarity features for boosting twitter
sentiment analysis using ensemble learning. In First International Conference on Data
Science in Cyberspace. Xi’an, Shaanxi Province, China-.
Kumar, S., Singh, P., and Rani, S. (2016). Sentimental analysis of social media using r
language and hadoop: Rhadoop. In 5th International Conference on Reliability, Info-
com Technologies and Optimization (Trends and Future Directions) (ICRITO). Noida,
India.
Liu, B., Naraynan, R., and Choudhary, A. (2009). Sentiment analysis of conditional
sen- tences. In Conference on Empirical Methods in Natural Language Processing.
Singapore.
Shamsuddin, S. and Hasan, S. (2015). Data science vs big data. In International Confer-
ence on Science in Information Technology (ICSITech). Yogyakarta, Indonesia.
Souza, M. and Vieira, R. (2012). Sentiment analysis on twitter data for portuguese lan-
guage. In 10th International Conference Computational Processing of the Portuguese
Language. Coimbra,Portugal.
Vaishali, G. and Kalaivani, V. (2016). Big data analysis for heart disease detection system
using map reduce technique. In International Conference on Computing Technologies
and Intelligent Data Engineering.
081
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O crescente uso da Inteligência Artificial aplicada à área da medicina é algo cada vez
mais presente, pois há uma necessidade imprescindı́vel de soluções para diagnósticos de
doenças que possuam sintomas relativamente parecidos, ou seja, doenças com diagnóstico
difı́ceis. Nesse contexto foi utilizada a lógica de Fuzzy como método de auxı́lio no di-
agnóstico da retocolite Ulcerativa. Para a realização do trabalho fez-se necessária a mode-
lagem de um sistema utilizando-se o MatLab (do inglês Matrix Laboratory) um programa
computacional conhecido em todo o mundo como uma ferramenta para a resolução de
problemas matemáticos, cientı́ficos e tecnológicos.
082
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
Esta seção apresenta uma revisão bibliográfica sobre a utilização da Lógica de Fuzzy,
como mecanismo de apoio ou simulação nos mais diferentes tipos de diagnósticos, com
diferentes abordagens e perspectivas. A análise dos trabalhos relacionados cobre algumas
abordagens propostas para a realização da utilização da Lógica de Fuzzy na Informática
Médica.
Para [Marques et al. 2005] as ferramentas computacionais construı́das para uma
área de domı́nio especı́fico podem apoiar ou facilitar o processo de tomada de decisão em
situações clı́nicas de enfermagem. Nesta abordagem a Lógica Fuzzy foi utilizada como
apoio à decisões clı́nicas de enfermagem, com o objetivo de apresentar noções gerais
sobre esta técnica e por meio dela desenvolver uma formulação teórica, em forma de
guia prático, para o apoio à decisão nos casos de amniotomia em gestantes pimı́paras em
trabalho de parto normal.
[Kawamura et al. 2007] nessa abordagem concentrou-se na utilização dos concei-
tos de sistemas fuzzy, através do emprego de sistemas difusos para a área de saúde. Os
modelos de inferência utilizados foram o método de Mamdani e o método Sugeno, fo-
ram analisadas as vantagens e desvantagens de cada método. Dessa forma a partir das
caracterı́sticas do câncer do esôfago e dos conceitos de sistemas fuzzy foi modelado um
sistema para o diagnóstico.
[Silva 2014] propõem uma nova metodologia de desenvolvimento na área de me-
dicina, no diagnóstico de hérnia inguinal utilizando a Lógica Fuzzy. Dessa forma foi
083
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Fuzzy
O termo lógico foi criado por Aristóteles, que fez um conjunto de leis que regem o pen-
samento. Entre os maiores filósofo que viveram na Grécia, Sócrates, Platão e Aristóteles
deram uma grande contribuição para o avanço significativo para a futura sistematização
destes princı́pios [Weber and Klein 2003].
Para [Bilobrovec 2005] a Lógica Fuzzy mostra-se como uma forma inovadora no
processo com informações imprecisas, de forma diferente da teoria de probabilidades, ou
seja, a Lógica Fuzzy usa método para traduzir expressões verbais, vagas, imprecisas e
qualitativas, comuns na comunicação humana em valores numéricos para o mundo real.
Para [Marro et al. 2010], o principal objetivo da Lógica de Fuzzy é a modelagem
computacional do raciocı́nio humano, impreciso, ambı́guo e vago. Os softwares que utili-
zam a Lógica de Fuzzy são grandes aliados na criação de sistemas de controle, na prática
propicia a incorporação de certa imprecisão de um problema, através de variáveis reais, do
tipo: velocidade, temperatura, pressão, e outras, que são associadas a termos linguı́sticos
do tipo alto, baixo, pouco baixo, entre outros [Bilobrovec et al. 2004].
Na atualidade a Lógica Fuzzy é aplicada em softwares de controle e de suporte à
decisão, onde a descrição do problema (regras de produção) não pode ser feita de forma
precisa. Esta metodologia tem sido aplicada em análises de dados, construção de sistemas
especialistas, controle e otimização, reconhecimento de padrões, entre outras; portanto,
desde controle de aeronaves a máquinas de lavar roupas, análise de estoques de vendas a
modelos genéticos, de reconhecimento de escritas a ajustes de focos de câmeras de vı́deo.
Segundo [Bilobrovec et al. 2004], a teoria fuzzy já foi usada com perfeição nas
mais diversas áreas, ressaltando-se o uso em controladores de usinas nucleares, refina-
rias, processos biológicos e quı́micos, sistemas de ventilação, na área médica, econômica,
então, são usadas nas mais diversas áreas, onde é capaz de trabalhar com incertezas.
Os fatos citados serviram como base na criação da Lógica Fuzzy, baseando-se na
lógica clássica, com acréscimo de novos operadores. Nos conjuntos nebulosos as leis do
terceiro excluı́do e da contradição não são complacentes [Kaufmann and Gupta 2003].
Segundo [Júnior and Novakowski 2005], os conjuntos fuzzy foram desenvolvidos
para determinar o quanto um elemento pertence ou não a um determinado conjunto, com
o uso de graus de pertinência, que são valores no intervalo [0;1]. Assim é possı́vel deter-
minar os elementos que pertencem a um grupo e seu respectivo grau de pertinência.
4. Retocolite Ulcerativa
A retocolite ulcerativa (RCU) é identificada como doença intestinal inflamatória, de
causa desconhecida, podendo ser uma doença limitada ao reto ou se expandir até in-
testino grosso (cólon). A doença pode acontecer em qualquer idade, porém, a faixa
084
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4.1. Sintomas
Os sintomas apresentados com maior frequência na RCU são a dor abdominal, diarréia
com ou sem sangue, cólica e urgência para evacuar [Barbieri 2000]. Para [Silva 2015],
dependo da gravidade em que a doença se encontra os sintomas apresentam sinais dife-
rentes, sendo que os mais comuns são diarréia seguido de dor abdominal, urgência para
evacuar, muco nas fezes, hematoquezia, anorexia e sinal clı́nico de anemia.
Segundo [Torres et al. 2011], os sintomas não estão restritos apenas aos intesti-
nais como diarréia, sangue e muco nas fezes, tenesmo retal, mas também a uma série de
manifestações extra intestinais que em alguns casos não são notados, como dores articu-
lares, feridas e inflamações no corpo, no olho, vindo a ocasionar o surgimento de algumas
doença como a uveı́te, que é uma doença que deixa o olho vermelho, também proble-
mas urinários fazem parte dos sintomas da doença, podendo citar também problemas
pulmonares, insuficiência renal, etc. O diagnóstico é fundamentado no quadro clı́nico,
endoscópico e histológico, que inicialmente tem o propósito de excluir as infecções e
parasitoses. [Torres et al. 2011]
Nos últimos tempos a RCU vêm sendo diagnosticada de forma rápida e precisa,
devido o aumento dos conhecimentos obtidos quanto aos aspectos, epidemiológicos, fi-
siológicos e clı́nicos, assim proporcionando diferenciá-la de outras doenças que afetam o
cólon, como a doença de Crohn que tem sintomas similares [Houli and Netto 1984].
4.2. Fases
A retocolite ulcerativa é subdividida por fases que são caracterizadas de acordo a intensi-
dade das manifestações clı́nicas e das modificações endoscopia [Houli and Netto 1984].
Essas fases são subdivida em três, que se caracteriza na fase leve, fase moderada e na
fase grave. Fase leve é definida pelo número de evacuações que não ultrapassam de três
a quatro vezes no perı́odo de 24 horas, não apresentando febre, emagrecimento e ane-
mia, diarréia com ou sem sangue, e em alguns casos com a presença de muco nas fazes
[Houli and Netto 1984].
Segundo [Barbieri 2000], a fase moderada é definida por quatro a seis evacuações
085
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
diárias com a presença de diarréia com sangue, muco, também dor abdominal, perda de
peso, podendo acometer o paciente a se ausentar de algumas atividades rotineiras.
A fase grave é apresentada com uma intensa diarréia, tendo evacuações superio-
res a seis vezes por dia, com muita perda de sangue, muco, forte dor abdominal, febre,
indisposição, anemia, hipotensão arterial, desidratação que acomete ao paciente ficar so-
bre cuidados extensivos [Barbieri 2000].
O objetivo principal do tratamento é melhorar a qualidade de vida do paciente,
reduzir a inflamação, curar as lesões e melhorar o status nutricional. Por outro lado a
interação medicamentosa tem a finalidade de conter os sintomas, provocar a remissão,
restaurar lesões, cicatrizar a mucosa e evitar complicações [Silva 2015].
5. Abordagem Proposta
Com o auxı́lio da plataforma MatLab, modelou-se-se um sistema com a utilização da
Lógica de Fuzzy para a realização de simulações de diagnóstico, onde foi utilizado como
dados de entrada: diarréia com ou sem sangue, diarréia com sangue ou muco, dor abdo-
minal, febre e emagrecimento, todos esses sintomas apresentam as seguintes fases: leve,
moderada e grave. Os sintomas estudados estão classificados em uma escala de 0 a 1,
onde 0 é a menor atribuição e 1 é a maior atribuição.
A Figura 1 apresenta a declaração das variáveis na ferramenta MatLab. No caso, a
aplicação realizada nesse trabalho possui cinco variáveis de entrada e uma de saı́da, sendo
que, as variáveis de entrada correspondem aos sintomas necessários para a identificação
da doença retocolite ulcerativa
A figura 2 demonstra a definição das regras, onde se faz necessário para obter o
diagnóstico da retocolite ulcerativa, no qual, a partir destas regras é possı́vel identificar
se o paciente tem ou não a doença e em que gravidade ela se encontra, ou seja, leve,
moderada ou grave.
Nesse enfoque, foram realizados trinta simulações com pacientes fictı́cios, dentre
estas, foram escolhidas aleatoriamente duas para serem apresentados os resultados. Para
fins de identificação, as simulações foram nomeadas como PacienteX e PacienteY. Vale
destacar que, estes dados foram submetidos a avaliação de um especialista e os resultados
do sistema Fuzzy foram validados com o diagnóstico feito pelo médico sendo que, na
maioria dos casos, os resultados foram equivalentes.
086
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
087
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
A Tabela 2, exibe os resultados obtidos com o PacienteY, onde foi analisado que os
sintomas apresentam os seguintes resultados: Diarréia com ou sem sangue apresenta 0.50
como resultado, onde pode ser percebido que os sintomas se encontram na fase moderada;
Diarréia com sangue e muco teve 0.30, sendo considerado leve e com aproximação da fase
moderada; Dor abdominal foi obtida o resultado 0.10, que é considerada leve, também é
percebido que não há a existência de febre e com o grau de Emagrecimento leve, tendo
0.12 como resultado. O Diagnóstico com o resultado 0.32 mostra que existe a presença da
retocolite ulcerativa, encontrando-se na fase leve da doença e com aproximação da fase
moderada.
Referências
Barbieri, D. (2000). Doenças inflamatórias intestinais. Jornal de Pediatria, 76(Suppl
1):173–180.
Bilobrovec, M. (2005). Sistema especialista em lógica fuzzy para o controle, gerencia-
mento e manutenção da qualidade em processo de aeração de grãos. 2005. 74 f. PhD
thesis, Dissertação (Mestre em Engenharia de Produção)–Universidade Tecnológica
do Paraná, Ponta Grossa, PR.
Bilobrovec, M., Marçal, R. F. M., and Kovaleski, J. L. (2004). Implementação de um
sistema de controle inteligente utilizando a lógica fuzzy. XI SIMPEP, Bauru/Brasil.
Gomes, R. d. S. (2008). Fisiopatologia e tratamento por acupuntura da retocolite ulcera-
tiva.
Gomide, F., Gudwin, R. R., and Tanscheit, R. (1995). Conceitos fundamentais da teoria
de conjuntos fuzzy, lógica fuzzy e aplicações. In Proc. 6 th IFSA Congress-Tutorials,
pages 1–38.
Houli, J. and Netto, G. M. (1984). Retocolite ulcerativa inespecı́fica. Revista Brasileira
de Colo-Proctologia Outubro-Dezembro, 4(4).
Júnior, I. and Novakowski, S. (2005). Lógica fuzzy sistemas de apoio a decisão. Rio
Grande do Sul, UNISINOS, Abr.
Kaufmann, A. and Gupta, M. (2003). Introduction to fuzzy arithmetic: theory and appli-
cations. 1985. Von nostrand Reinhold Company, New York.
088
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
089
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A análise e correção dos distúrbios da qualidade da energia elétrica são essenciais
para o fornecimento adequado de eletricidade a diferentes tipos de consumidores do Sis-
tema Elétrico de Potência (SEP). A crescente inserção de cargas sensı́veis aos surtos de
tensão elétrica, por exemplo, demanda melhorias significativas nos ı́ndices de qualidade
do suprimento energético de modo a resguardar a integridade dos equipamentos e não
comprometer a vida útil do sistema [Dugan et al. 2002]. Os fenômenos de interrupção,
afundamento e elevação de tensão são relativamente comuns em redes de distribuição de
energia elétrica e estão intimamente ligados à natureza das cargas usadas por consumido-
res residenciais, comerciais e industriais. Perfis de tensão inadequados são responsáveis
por perdas de potência ativa nas malhas de transmissão ou distribuição de energia elétrica
e podem comprometer a correta atuação dos equipamentos de proteção e medição.
O algoritmo evolutivo proposto neste artigo pretende alocar reguladores de tensão
para corrigir quaisquer desvios de potencial observados nos trechos do Sistema Elétrico,
090
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
091
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
092
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Metodologia
A metodologia deste trabalho baseia-se em determinar quais setores das linhas da
rede de distribuição devem receber reguladores de tensão de 32 degraus, especificando os
nı́veis de tensão a serem ajustados nas saı́das dos mesmos, através de um código simulado
em ambiente MATLAB [Szuvovivski 2008][Robinson 2009]. Na figura 05 é mostrado o
fluxograma do algoritmo desenvolvido.
093
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
094
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
095
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Resultados e Discussão
No sistema utilizado para simulação temos uma linha de 115 kV que liga as barras
1 e 24, uma linha de 64 kV que está entre a barra 24 e 23, e todas as demais linhas são
de 14 kV. Definido o sistema a ser otimizado, foi inserido os dados no algoritmo genético
criado em ambiente MATLAB. Após executado dez vezes, os resultados de fitness do AG
foram, respectivamente: 0.3224, 0.3224, 0.3224, 0.3224, 0.3228, 0.3224, 0.3224, 0.3224,
0.3224, 0.3224. Os resultados provam que o valor ”0.3224”, é o valor de fitness mais
indicado, pois foi encontrado em 90 por cento das vezes que o programa foi executado.
Através deste valor de aptidão, o sistema é readequado com a inserção de reguladores
nas seguintes linhas: Linha 1-24, Linha 24-23, Linha 13-3 e Linha 9-10. Na figura 09 é
ilustrado o mapa do sistema com os locais para inserção dos reguladores de tensão.
Com a inclusão dos reguladores de tensão no sistema, as tensões nas barras foram
reajustadas para o valor mais próximo do ideal de 1 p.u, ou para ı́ndices que respeitam
a margem de tolerância de -5% a +5% do valor de tensão nominal. Na figura 10 está
ilustrado um gráfico com as tensões em cada uma das 24 barras do sistema, antes e depois
da implementação dos reguladores de tensão de 32 degraus.
096
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Conclusão
Enfim, este artigo apresentou uma metodologia baseada no Algoritmo Genético
Simples para a alocação de Reguladores de Tensão no Sistema Elétrico de Potência e
obteve resultados satisfatórios. O ajuste da tensão elétrica das barras do sistema para
valores próximo de 1 p.u (valor nominal) contribui para a redução da perda de potência
ativa. Manter os nı́veis de tensão adequados nos barramentos do SEP é importante tanto
para a concessionária de energia elétrica, que precisa garantir o fornecimento energético
de qualidade, quanto para o consumidor que busca tarifas mais baixas.
Analisando os resultados obtidos por meio da simulação percebe-se a eficiência
do Algoritmo Genético no processo de alocação dos reguladores de tensão, sendo possı́vel
manter os nı́veis de tensão dos alimentadores compatı́veis com as normas previstas pela
ANEEL. Estabelecer a quantidade máxima de reguladores que devem ser alocados na
rede elétrica, serve como uma medida para redução dos custos advindos da instalação
dos equipamentos, fazendo o algoritmo buscar as melhores localizações dos RTs segundo
uma adequada viabilidade econômica de projeto.
Como trabalhos futuros pode-se utilizar uma abordagem multiobjetivo através dos
algoritmos SPEA2 (Strength Pareto Evolutionary Algorithm) e NSGA2 (Non-dominated
Sorting Genetic Algorithm) para lidar com mais metas de projeto. É possı́vel ainda incluir
restrições que devam ser respeitadas quando da execução do mecanismo de busca por
soluções em uma fronteira Pareto-Ótima.
Referências
Alves, R. P. (2012). Alocação Ótima de Reguladores de Tensão em Sistemas de
Distribuição de Energia Elétrica Radiais Usando Uma Fórmula Linear Inteira Mista.
Ilha Solteira, SP, first edition.
Dugan, R. C., McGranaghan, M., and Beaty, S. S. . H. (2002). Electrical Power Systems
Quality. McGraw-Hill, second edition.
Hamida, I. B., Salah, S. B., Mshali, F., and Mimouni, M. F. (2016). Optimal integration of
solar distributed generations in distribution network using spea2. In 2016 17th Inter-
national Conference on Sciences and Techniques of Automatic Control and Computer
Engineering (STA), pages 368–373.
Holland, J. (1975). Adaptation in Natural and Artificial System. Complex Adaptive Sys-
tems. The MIT Press, first edition.
Resener, M. (2008). Alocação e Ajuste Ótimo de Reguladores de Tensão em Sistemas de
Distribuição. Worcester polytechnic institute, porto alegre edition.
Robinson, P. (2009). Analysis of Distributed Resources Potential Impacts on Electric
System Efficacy. Worcester polytechnic institute, master of science edition.
Szuvovivski, I. (2008). Alocação Simultânea de Bancos de Capacitores e Reguladores de
Tensão em Sistemas de Distribuição Usando Algoritmos Genéticos e Fluxo de Potência
Ótimo. UFPR, curitiba edition.
Zimmerman, R. D., Murillo-Sanchez, C. E., and Thomas, R. J. (2011). Matpower:
Steady-state operations, planning, and analysis tools for power systems research and
education. IEEE Transactions on Power Systems, 26(1):12–19.
097
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A escolha de uma área acadêmica é um dos principais desafios para a maior parte dos
jovens, dado que, além da indecisão que alguns possuem, eles também se sentem influ-
enciados por familiares, amigos e até mesmo por questões financeiras, motivando-os a
tomar uma decisão que pode não ser adequada para sua carreira [Gonçalves 2008].
[Andrade et al. 2002] afirmam que a Orientação Vocacional (OV) é uma forma de
ajuda para os adolescentes e que não resulta somente na escolha de uma profissão, assim
como também no auxı́lio do seu autoconhecimento, envolvendo-os e incluindo-os em um
contexto social, econômico e cultural.
098
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. VocaTeen
• Aplicação de Questionário;
• Simulação de Rotina Profissional.
099
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
100
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O jogo VocaTeen possui disponibilidade para execução online, em que pode ser
acessada através de um endereço eletrônico ou com um aplicativo disponı́vel para siste-
mas Android, ou ainda offline para execução desktops com sistema operacional Windows
ou Linux. A adequação dos elementos da tela e configurações do jogo foram adaptadas
para cada plataforma atendida. A Figura 7 apresenta a ferramenta VocaTeen executada
em dispositivos móveis.
O acesso também é possı́vel para estudantes e concludentes que estejam sem co-
nexão à Internet. A Figura 9 apresenta o uso do aplicativo VocaTeen no sistema operaci-
onal Windows 7. O sistema pode também ser executado em outras versões do Windows,
ou de softwares livres como versões do Linux.
101
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Trabalhos Relacionados
Nesta seção, discute-se sobre pesquisas e trabalhos que propuseram ferramentas para
auxı́lio de OV. A Tabela 1 apresenta os trabalhos relacionados descritos em corres-
pondência com critérios confrontados. Logo em seguida, os critérios são discutidos para
cada um dos trabalhos pesquisados.
102
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Experimento e Resultados
A seção discute sobre a eficácia da ferramenta para estudantes de nı́vel médio discutindo
sobre um experimento para verificação do acerto da ferramenta em identificação profis-
sional, e também sobre a usabilidade do sistema. O número de alunos da investigação
foram cinquenta estudantes de nı́vel médio, dentre estes, trinta e sete defenderam que se
identificaram com algumas das carreiras listadas no fim do questionário.
A Figura 10 apresenta o Gráfico de Setores buscando representar a predominância
das opiniões sobre a ferramenta VocaTeen. O Gráfico de Setores permite a realização
de comparações entre uma informação com o total, o que possibilita uma interpretação
instantânea dos dados agrupados.
Gráfico de Setores de Afinidade Com Alguma Área
26,0%
Categoria
Não
74,0% Sim
103
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
80,00%
Satisfação
60,00%
40,00%
20,00%
0,00%
1 2 3 4 5 6 7 8 9 10 11 12 13
Pergunta
104
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
a satisfação com a Simulação de Rotinas Profissionais foi expressiva dado que todos os
entrevistados avaliaram como uma funcionalidade agregadora na Orientação Vocacional.
A Usabilidade do VocaTeen apresentou avaliações acima de 90% em dez dos treze
quesitos. Como trabalho futuro, pretende-se fazer uma maior avaliação sobre a acurácia
na Orientação Vocacional. Ressalta-se que o uso da ferramenta é auxiliar para instituições
e escolas, não substituindo o papel dos profissionais especializados nesta tarefa.
Referências
Abade, F. L. (2005). Orientação profissional no brasil: uma revisão histórica da produção
cientı́fica. In Revista Brasileira de Orientação Profissional, pages 15–24. Belo Hori-
zonte.
Andrade, J. M., Meira, G. R., and Vasconcelos, Z. B. (2002). O processo de orientação
vocacional frente ao século xxi: perspectivas e desafios. In Psicologia: ciência e
profissão, volume 22, pages 46–53. Brası́lia, 3rd edition.
Arreguy, M. E. (2014). Violência e ausência de psicólogos nas escolas. In Physis: Revista
de Saúde Coletiva, volume 24, page 230. Rio de Janeiro.
Barreto, M. d. A., Calafangel, P. Â. F. R. D., and Zilanda, P. d. L. (2009). Estudo com
psicólogos escolares: Ações e desafios. Psicol. argum, 27(58):261–269.
Bertelli, S. B. (2007). Jogo das profissões: uma forma divertida de conhecer as profissões
e o perfil correspondente. 1d edition.
Dias, E. C. M., TheÓphilo, C. R., and Lopes, M. A. S. (2010). Evasão no ensino superior:
estudo dos fatores causadores da evasão no curso de ciências contábeis da universidade
estadual de montes claros–unimontes–mg. Congresso USP De Iniciação Cientı́fica Em
Contabilidade.
Gonçalves, Á. d. (2008). Proposta de Orientação Vocacional Profissional – Ensino
Médio. UnB.
Mahl, A. C., Soares, D. H. P., and Oliveira Neto, E. (2005). POPI: Programa de
Orientação Profissional Intensivo: Outra forma de fazer orientação profissional. São
Paulo.
Martins, C. (2017). Teste vocacional: Qual a profissão que combina com você.
Oliveira, C. M. R. d. and Neiva, K. M. C. (2013). Orientação vocacional/profissional:
avaliação de um projeto piloto para estudantes da educação profissional. Revista Bra-
sileira de Orientação Profissional, 14(1):133–143.
Oliveira, F. Z. (2014). Simulador de cirurgia de catarata aplicando realidade virtual. Mo-
nografia (Bacharel em Análise e Tecnologia da Informação), FATEC Ourinhos (Facul-
dade de Tecnologia de Ourinhos), São Paulo, Brasil.
Sommerville, I. et al. (2003). Engenharia de software, volume 6. Addison Wesley São
Paulo.
Sousa, P. L. P. (2016). Vocação do estudante: protótipo de um aplicativo android para
a realização de teste vocacional. Monografia (Bacharel em Sistemas de Informação),
UFPI (Universidade Federal do Piauı́), Picos, Brasil.
105
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. This paper aims to study and develop a mobile application with the
purpose of assisting the visually impaired to walk in a certain environment avoi-
ding collision with obstacles. This paper analyzed some computer vision algo-
rithms in order to find a solution with a viable cost to do obstacle detection on
mobile devices.
1. Introdução
O Instituto Brasileiro de Geografia e Estatı́stica (IBGE) mostra que no Brasil existem
6,5 milhões de pessoas com deficiência visual [IBGE 2010] e, no mundo, de acordo a
Organização Mundial da Saúde (OMS), cerca de 39 milhões de pessoas são cegas e outros
246 milhões sofrem limitações severas de visão [OMS 2013].
Especialistas em orientação e mobilidade – profissionais treinados especifica-
mente para ensinar pessoas com deficiência visual como se locomover – afirmam que
deficientes visuais são capazes de se movimentar com segurança, confiança, de forma
independente, em casa e na comunidade, usando uma ampla gama de ferramentas e
técnicas [Bruno 2006]. Bengala branca com ponta vermelha (sı́mbolo internacional da
cegueira), cães-guia, piso tátil, semáforos com autofalantes e até mesmo softwares que
usam informações de GPS são exemplos de ferramentas/técnicas/softwares que auxiliam
os portadores de deficiência visual. O desenvolvimento da autonomia de locomoção acon-
tece de forma dificultosa para pessoas que não nasceram cegas, pois estas não apresentam
muita afinidade com os métodos de deslocamento para deficientes.
[Gonçalves et al. 2004] comentam que para o ano de 2004 as estimativas sobre o
número de deficientes visuais no Brasil chegou a mais de 1,2 milhões, onde essa quanti-
dade obedece a seguinte distribuição: 765 mil - população em regiões de pobre economia
e com pobres serviços de saúde; 414 mil - população em regiões de razoável economia e
com pobres serviços de saúde e 48 mil - população em regiões de boa economia e com
bons serviços de saúde.
106
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
107
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 1. Exemplos de projetos que usam câmeras como sensores para auxı́lio
a deficientes visuais.
3. Ferramentas Computacionais
As ferramentas básicas utilizadas na criação de um sistema de detecção de obstáculos em
smartphones consistem em bibliotecas de visão computacional e o dispositivo móvel com
sistema operacional. Das ferramentas de visão computacional, destacam-se as bibliotecas
Open Source Computer Vision (OpenCV), Lehrstuhl fuer Technische Informatik (LTI) e
Vision Something Libraries (VXS), e dos dispositivos móveis com sistema operacional,
cita-se os sistemas iOS da Apple, Windows Phone da Microsoft e Android da Google.
Para este trabalho foi selecionado a biblioteca OpenCV e dispositivos com sistema An-
droid.
3.1. OpenCV
O OpenCV foi originalmente desenvolvido na Intel, como uma iniciativa para avançar
a pesquisa em visão e promover o desenvolvimento de aplicativos com uso intensivo da
CPU baseados em visão. Após uma série de versões beta, a versão 1.0 foi lançada em
2006. Um segundo grande lançamento ocorreu em 2009 com o lançamento do OpenCV
2 que propôs importantes mudanças, especialmente a nova interface em C++.
OpenCV é uma biblioteca de código aberto, que atualmente se encontra na versão
3.2, com mais de 2500 algoritmos otimizados para processamento e análise de imagem
e vı́deo [OpenCV 2017]. Desde a sua introdução, tem sido amplamente adotado como
ferramenta de desenvolvimento pela comunidade de pesquisadores e desenvolvedores em
visão computacional.
Um dos objetivos da OpenCV é fornecer uma infra-estrutura de visão de compu-
tador simples de usar e que ajude as pessoas a construirem aplicações de visão sofistica-
dos rapidamente. A biblioteca OpenCV contém funções que abrangem muitas áreas, in-
cluindo inspeção de produtos em fábrica, processamento de imagens médicas, segurança,
interface de usuário, calibração da câmera, visão estéreo e robótica. Como Visão Com-
putacional e Aprendizado de Máquina, muitas vezes andam de mãos dadas, o OpenCV
também contém uma biblioteca completa, para uso de propósito geral, de Aprendizado
de Maquina (Machine Learning). Esta sub-biblioteca é focado em reconhecimento de
padrões estatı́sticos e clustering. A biblioteca de ML é muito útil para as tarefas de Visão
Computacional que estão no núcleo da OpenCV, mas também é geral o suficiente para
ser usado para qualquer problema de Aprendizagem de Máquina. Dentre os algoritmos
presentes no OpenCV, se destacam os algoritmos de segmentação de imagem, tais como
108
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
o Limiar de Média RGB, Blob Detection e Mean Shift, aos quais são utilizados nesse
trabalho.
4. Proposta
O objetivo geral deste trabalho consiste em desenvolver um aplicativo para smartphone
baseado em Android e OpenCV com o intuito de auxiliar a locomoção de deficientes
visuais através da detecção de obstáculos em imagens capturadas pelo dispositivo.
O método proposto para o desvio de obstáculos será da seguinte forma. Primei-
ramente o dispositivo ficara acoplado à pessoa na altura da cintura e com inclinação de
aproximadamente 45o , de forma que a câmera consiga capturar a região próxima aos pés
do usuário como visto na Figura 2. Então, a heurı́stica irá considerar a área próxima
aos pés do usuário como região base (uma área sem obstáculos) e realizará um proces-
samento no resto da imagem procurando regiões que possuem uma textura diferente da
região sem obstáculo. As regiões com textura diferente serão consideradas como regiões
de obstáculo, ver Figura 3.
Foram escolhidos três algoritmos clássicos da biblioteca OpenCV para serem im-
plementados e analisados na detecção de obstáculos, o Limiar de Média RGB, Blob De-
tection de Cor e Mean Shift.
O Algoritmo por Limiar de média RGB se trata de um método para detectar
regiões que pertençam a uma mesma textura. Inicialmente a imagem é dividida em sub-
regiões e uma região base é definida, calculam-se as médias RGB de todas as sub-regiões
109
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 3. (a) Imagem original, (b) região base, próxima aos pés do usuário, (c)
imagem segmentada, a área quadriculada corresponde ao obstáculo.
e é feito um comparativo com a média RGB da região base. As sub-regiões que estiverem
dentro de um limiar r com relação à média da região base, então são classificadas como
pertencentes à mesma textura da região base, ver Figuras 4(a) e 4(d).
O Blob Detection é um algoritmo destinado a detectar as regiões em uma imagem,
que diferem nas propriedades como o brilho ou cor em relação às zonas ao redor dessa
região [Rosenfeld 1978]. Neste algoritmo, blob é uma região de uma imagem digital, em
que algumas propriedades são constantes ou que variam dentro de uma gama de valores
descritos previamente, ver Figuras 4(b) e 4(e). Há dois principais tipos de Blob Detection:
um por meio de métodos diferenciais, que é feito por meio da derivada da função com
relação à posição, e outro por meio de métodos de localização dos extremos, que são
pontos de máxima e mı́nimo de uma função. Todos os pontos pertencentes a uma região
blob podem ser considerados, de alguma forma, como semelhantes um ao outro. Para a
analise, foi utilizado o Blob Detection de Cor com localização de extremos.
O Mean Shift é um algoritmo iterativo para localizar a máxima de uma função de
densidade dado um exemplo discreto dessa função [Comaniciu and Meer 2002]. O Mean
Shift é uma técnica de homogeneização local que é muito útil para amortecimento de
sombreamento ou diferenças de tonalidade em objetos localizados, ou seja, ele substitui
cada pixel de uma vizinhança de até uma distancia d pelo valor da média da vizinhança se
o valor do pixel estiver dentro de um alcance r. Um exemplo está nas Figuras 4(c) e 4(f).
5. Resultados
Para os resultados, os três algoritmos foram implementados utilizando a versão 2.4.8 da
biblioteca OpenCV para Android, IDE eclipse versão 3.7.2, Android SDK versão 22.3.0
e executados em três dispositivos Android diferentes. Foram coletados dados quanto
ao tempo de execução dos algoritmos em relação a diferentes resoluções de imagem na
entrada, além de comparar o poder de processamento de cada dispositivo em cada teste.
É importante destacar a falta de controle da luminosidade que pode afetar os resultados.
E por fim, fez-se a análise do custo computacional por algoritmo.
Foram considerados 4 artefatos diferentes para a avaliação da execução dos algo-
ritmos com as seguintes configurações:
• Artefato 1 - Android 2.3.7 - S5P6422 ARM @ 667 MHz - 192 MB RAM;
• Artefato 2 - Android 4.4 - Dual-core Exynos Cortex-A9 ARM @ 1.2 GHz - 1GB
RAM;
• Artefato 3 - Android 4.4 - Quad-core Snapdragon S4Pro Krait ARM @ 1.5 GHz -
2GB RAM;
110
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 4. (a), (b) e (c) Imagens de originais, (d) Imagem ‘a’ após aplicação de
média RGB, (e) Imagem ‘b’ após aplicação de Blob Detection, (f) Imagem ‘c’ após
aplicação de Mean Shift.
111
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 5. Resultado da execução dos algoritmos. (a) Limiar de Média RGB, (b)
Blob Detection, (c) Mean Shift.
Referências
Brancante, G. (2011). Boné equipado com sensores ajuda cegos
a desviar de objetos. http://www.lerparaver.com/lpv/
bone-equipado-sensores-ajuda-cegos-desviar-objetos. [On-
line; Acessado em 31/07/2017].
Bruno, M. M. G. (2006). Educação infantil: saberes e práticas da inclusão: dificuldades
de comunicação sinalização: deficiência visual. Brası́lia: Ministério da Educação.
Comaniciu, D. and Meer, P. (2002). Mean shift: A robust approach toward feature space
analysis. IEEE Transactions on pattern analysis and machine intelligence, 24(5):603–
619.
Eye-21 (2011). Project eye-21. http://newatlas.com/
eye-21-sound-system-for-blind/19138/. [Online; Acessado em
31/07/2017].
Ferreira, A. L. S., dos Santos, S. R., and de Miranda, L. C. (2012). Truesight a pedestrian
navigation system based in automatic landmark detection and extraction on android
smartphone. In Virtual and Augmented Reality (SVR), 2012 14th Symposium on, pages
91–99. IEEE.
Gonçalves, E., Avila, M., and Lousada, N. (2004). Projeto pequenos olhares. Conselho
Brasileiro de Oftalmologia.
112
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
113
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. This paper aims to show the Versu application that is a resource for
inclusion and encouragement to the understanding of Portuguese by the deaf
person. The purpose of the application is to provide the deaf access to media
information and audiovisual leisure that usually have no subtitles, with
adapted subtitles and in Portuguese, serving as a bridge to a better
understanding and encouragement to use the appropiate Portuguese; since they
will have access to the two types of subtitles: one that will facilitate their
understanding and another that will be allied in the writing and reading of
formal Portuguese, used and understood more easily by listeners.
1. Introdução
Pessoas com limitações auditivas ainda sofrem diversos preconceitos no meio em que
vivem, seja na escola, ambiente de trabalho e até mesmo no meio familiar. Termos
como “mudinho” ou “surdo-mudo” geram bullying por parte de pessoas ouvintes que
acreditam que os surdos possuem algum tipo de deficiência mental ou que são incapazes
de fazer algumas atividades. Infelizmente, esses preconceitos ainda são praticados e
presenciados em relação às minorias.
114
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Relembrando que o surdo não é uma pessoa com deficiência intelectual e, por
vezes, há algum tempo, empregava-se o termo “surdo-mudo” que traz uma carga
depreciativa e de desconhecimento em relação ao surdo. Atualmente, esse termo é
malvisto pela própria comunidade surda.
(...) as comunidades de surdos de todo o mundo passaram a ser comunidades
culturais (...) "falantes" de uma língua própria. Assim, mesmo quando não vocaliza,
um surdo pode perfeitamente "falar" em sua Língua de Sinais, não cabendo a
denominação SURDOMUDO. Por outro lado, a mudez é um tipo de patologia
causado por questões ligadas às cordas vocais, à língua, à laringe ou ainda em
função de problemas psicológicos ou neurológicos. A surdez não está absolutamente
vinculada à mudez (...). Dizer que alguém que fala com dificuldades é MUDO é
preconceituoso, não acham? (RAMOS apud STROBEL, 2008)
115
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Tecnologia Assistiva
Tecnologia é uma palavra de origem grega, que significa técnica, arte, ciência.
Tecnologias são meios, ferramentas e instrumentos que visam facilitar a vida em seus
diversos aspectos.
Dentro da área de recursos digitais e dentre vários outros recursos que objetivam
proporcionar ao surdo uma vida com maior inclusão, na era dos smartphones e
supercomputadores temos:
116
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. O projeto Versu
117
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
118
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O projeto Versu, para ser utilizado, necessita que o usuário crie um perfil, no
qual irá preencher um cadastro com informações. Criado este perfil, poderá acessar e
escolher os filmes disponíveis na plataforma que estão separados por categorias. O
usuário também pode editar suas informações e recuperar e/ou trocar a senha de
acesso.
É um aplicativo de fácil uso e provê, inclusive, uma opção para dicas e sugestões
por parte do usuário, tornando o app bem mais interativo.
4. Conclusão
A tecnologia viabiliza a evolução da sociedade e permite que sejam alcançadas
melhorias em vários setores, como saúde, educação, meio ambiente; usando os recursos
e ampliando-os com aspectos que promovem a inclusão em variadas formas. Uma
dessas, em relação ao surdo, oportuniza a ampliação de sua cidadania, uma vez que é
uma ferramenta que o propicia certa autonomia por permitir a ele a comunicação com
ouvintes, mesmo que estes não dominem ou conheçam a Libras. O cenário de ações
para essa inclusão é muito desnivelado, visto que muitos estados brasileiros sofrem pelo
precário acesso à internet. Isso dificulta o alcance às tecnologias já existentes que dão
apoio aos surdos, familiares e amigos.
5. Referências
Brasil. (2002) “Lei nº 10.436, de 24 de abril de 2002. Dispõe sobre a Língua Brasileira
de Sinais - LIBRAS e dá outras providências.” Diário Oficial da União.
http://www.planalto.gov.br/ccivil_03/Leis/2002/L10436.htm, Julho.
Brasil. (2005) “Decreto nº 5.626, de 22 de dezembro de 2005. Regulamenta a Lei nº
119
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
10.436, de 24 de abril de 2002, que dispõe sobre a Língua Brasileira de Sinais - Libras,
e o art. 18 da Lei no 10.098, de 19 de dezembro de 2000.”
http://www.planalto.gov.br/ccivil_03/_ato2004-2006/2005/decreto/d5626.htm, Julho.
Brasil. (2009) “Tecnologia Assistiva.” Subsecretaria Nacional de Promoção dos
Direitos da Pessoa com Deficiência. Comitê de Ajudas Técnicas – Brasília: CORDE,
138 p.
http://www.pessoacomdeficiencia.gov.br/app/sites/default/files/publicacoes/livro-
tecnologia-assistiva.pdf, Julho.
IBGE. (2010) “Censo Demográfico 2010 – Características gerais da população, religião
e pessoas com deficiência”.
http://biblioteca.ibge.gov.br/visualizacao/periodicos/94/cd_2010_religiao_deficiencia.p
df, Julho.
STROBEL, Karin Lilian. (2007) “História dos Surdos: representações ‘mascaradas’ das
identidades surdas”. In: Estudos Surdos II. Petrópolis, RJ: Arara Azul. http://editora-
arara-azul.com.br/estudos2.pdf, Julho
STROBEL, Karin Lilian. (2008) “Surdos: vestígios culturais não registrados na
história.”. Tese (Doutorado em Educação) - Universidade Federal de Santa Catarina:
UFSC, Santa Catarina.
https://repositorio.ufsc.br/xmlui/bitstream/handle/123456789/91978/261339.pdf?sequen
ce=1&isAllowed=y, Julho.
120
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1 Introdução
Com o avanço da tecnologia, o homem sempre pensa em seu bem estar, conforto,
comodidade e segurança. Diante disso, ele tem buscado desenvolver ferramentas para
lhe proporcionar melhorias na qualidade de vida no seu ambiente residencial.
A automação residencial integra as diversas tecnologias do ambiente doméstico,
tais como: os eletrodomésticos, aparelhos de áudio, vídeo, persianas, portões
automáticos, iluminação, etc. Esse tipo de tecnologia também pode ser chamado de
domótica, que é representação da utilização de processos automatizados em residências
[TEZA 2002].
A automação residencial, além de trazer segurança, conforto e comodidade,
proporciona acessibilidade para pessoas idosas e/ou para pessoas com deficiência (com
dificuldades de locomoção). Um exemplo disso dá-se ao fato do (a) deficiente ou o (a)
idoso (a) não precisar ir até o interruptor para acender ou apagar a lâmpada, ou acionar
outra funcionalidade de sua residência, pois tal ação pode ser feita via celular, ou
computador, ou pelo comando de voz de forma simples.
Nesse trabalho, foi proposto o desenvolvimento de uma aplicação para a
plataforma Android, com o intuito de gerenciar os dispositivos de uma residência
conectando-os a um Arduino. Essa aplicação permite a conexão de um smartphone com
um microcontrolador, através do bluetooth, ativando e desativando alguns equipamentos
121
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
e sensores. Além disso, foi elaborado um sistema de automação residencial com uso dos
seguintes hardwares: Arduino, sensor de gás, sensor de presença, sensor de chamas e
sensor de luminosidade. Dessa forma, construiu-se uma maquete para integrar todos os
hardwares e demonstrar seu funcionamento em uma casa em miniatura.
2 Trabalhos relacionados
Na metodologia de Alves (2014) foi apresentado um sistema de automação residencial
utilizando um smartphone com sistema operacional Android e a placa Arduino com
ethernet shield para conectar-se com a rede. A comunicação entre o smartphone e o
Arduino é obtida por meio de um aplicativo desenvolvido para esta finalidade. Neste
projeto, controla-se a iluminação interna e externa da residência, usando um
smartphone, proporcionando assim o acionamento da iluminação de qualquer lugar
onde esteja.
Alvarez e Antunes (2015) construíram um sistema de automação para controlar
a iluminação de 6 cômodos e abertura/fechamento de 2 portões. O sistema é controlado
por uma página web que pode ser acessada de qualquer lugar do mundo ou por um
aplicativo através do bluetooth, que funciona apenas localmente. Desenvolveram este
aplicativo para a plataforma Android. Por intermédio da página ou do aplicativo, o
usuário escolhe a opção que desejar, e será enviado ao microcontrolador Arduino uma
mensagem e este executará a ação solicitada na mensagem.
No contexto dos trabalhos citados, a metodologia desse trabalho deu-se por
desenvolver um sistema de automação residencial fazendo integração do Arduino com
um celular Android. Para tanto, desenvolveu-se um aplicativo para a plataforma
Android, para gerenciar os dispositivos de uma residência que estão conectados ao
Arduino através do bluetooth, afim de automatizar o acionamento (ligar/deligar) de
lâmpadas e/ou de um ar condicionado. Além disso, consolidar um sistema de alarme,
caso a residência seja invadida ou se houver vazamento de gás ou focos de incêndio.
O diferencial deste projeto com relação aos trabalhos mencionados é o
acréscimo de alguns sensores, tais como: aplicação de um sensor MQ-2 para detecção
de vazamento gás, utilização do sensor de chamas para a percepção de focos de
incêndio e uso de um sensor de presença para detectar intrusões. Assim, quando esses
sensores detectam essas alterações no ambiente, automaticamente é acionada uma sirene
para alarmar sobre essas ações.
3 Material e Método
Nesta seção são citados todos os principais componentes de hardware usados para a
elaboração do protótipo de automação residencial. Estes foram divididos em módulos.
A Tabela 1 mostra todos os módulos com seus respectivos componentes de hardware.
Tabela 1: Módulos do protótipo
Módulos Materiais
Ligação de equipamentos Relé, cooler, interruptor three Way, e sensor LDR.
Alarme Relé, sensor de presença, sensor de chama e sensor de gás MQ-2.
Central Microcontrolador ArduinoUNO R3, e módulo Bluetooth HC-05.
122
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
123
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 3: Sensor
LDR
Figura 2: Módulo relé Figura 4: Cooler
Figura 5:
Figura 6: Sensor de
Sensor Figura 7:
chamas
movimento Sensor de gás
presença PIR MQ-2
124
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5 Maquete
O protótipo do AutoHome foi desenvolvido em uma maquete (Figura 16). Nessa
maquete estão integrados todos os componentes de hardware que, a partir do aplicativo
SmartControl, é realizado um sequência de testes para comprovar o funcionamento dos
módulos e dos equipamentos de hardware conectados nessa maquete.
Para validar o funcionamento do AutoHome, inicialmente foi feito um teste de
pareamento, onde foi realizado uma conexão via bluetooth do SmartControl com o
125
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6 Resultados
Nesta seção são descritos os resultados dos testes do aplicativo SmartControl, com os
submenus Conexão, Quarto, Sala e Alarme, interagindo com o AutoHome.
O aplicativo desenvolvido mostra-se eficiente na comunicação com o módulo
bluetooth do Arduino e no envio das mensagens. Nos testes realizados para
acionamento das lâmpadas e do cooler com o aplicativo, obteve-se uma resposta em
1segundo entre o clique no botão do aplicativo e o ligar ou desligar das lâmpadas. Nos
testes realizados com os interruptores three way as lâmpadas são acionadas
instantaneamente.
Na detecção de gás, o sensor MQ-2 teve um desempenho favorável,
conseguindo detectar a presença de gás quando o sensor atinge o valor especificado no
código, e disparando, automaticamente, o alarme. O sensor de chamas de fogo detecta
um foco de incêndio e também dispara um alarme. Neste caso, o alarme de incêndio.
O sistema de segurança usa um sensor de movimento presença, que, igualmente
aos sensores anteriores, apresentou um bom desempenho e dispara o alarme sempre que
percebe uma invasão.
126
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
8 Conclusão
Neste trabalho, apresentou-se uma prototipação de automação residencial para controle
de iluminação interna e climatização da residência, incluindo ainda um sistema de
segurança com sensores de detecção de intrusão, vazamento de gás e incêndio, e
automatização da iluminação externa, permitindo que as lâmpadas acendam ao
anoitecer e apaguem ao amanhecer, tudo isso, com uso da plataforma Arduino. E
através do aplicativo SmartControl é possível conectar-se ao AutoHome, via bluetooth,
para controlar o acionamento e desligamento da iluminação, do ar condicionado e do
sistema de segurança. O sistema denominado AutoHome traz diversos benefícios para
uma residência, pois automatiza algumas atividades cotidianas.
Além disso, este protótipo de automação residencial diminui os custos, garante
confiabilidade e eficiência. Outros benefícios deste projeto para o usuário são:
comodidade, acessibilidade para pessoas idosas e/ou deficientes com dificuldades de
locomoção, e proporciona, ainda, segurança para os residentes da casa.
Como perspectiva, pretende-se aprimorar o protótipo, acrescentando 1) um
Shield GSM para que o sistema possa mandar mensagens para o proprietário da
127
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
128
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Durante a aprendizagem de uma nova língua, manifesta-se um processo chamado de
fonologia da interlíngua. Esse processo caracteriza-se como a criação de um sistema
linguístico diferente da língua estrangeira aprendida (L2), por conta das características
da língua nativa (L1), que ainda exerce influência sobre tal sistema [ROCHA, 2012].
Assim, um estudante não muito experiente de uma língua estrangeira, por força da
língua materna, acaba transferindo seus conhecimentos para a nova língua, prejudicando
a sua compreensão. Tal fenômeno, que pode se manifestar durante a fala ou leitura oral,
denomina-se transferência de conhecimento grafo-fônico-fonológico de L1 para L2
129
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
130
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Fundamentação Teórica
Como a produção desses fenômenos de transferência leva em consideração tantos
aspectos do processo de aprendizagem, é interessante verificar o nível de proficiência
dos aprendizes através da sua habilidade de reconhecimento e produção de sons em
outras línguas. Zimmer e Bittencourt (2008) utilizaram-se disso para promover um
estudo que relaciona a ocorrência de fenômenos de transferência e a nota dos aprendizes
nos testes de Listening do TOEIC (Test of English for International Communication),
demonstrando que há correlação inversa entre a ocorrência de fenômenos e a nota no
teste. Dessa forma, há a possibilidade de se desenvolver um método de avaliação do
nível de aprendizado dos alunos baseado na identificação desses fenômenos. Uma forma
automatizada de realizar esse teste seria de grande valia para escolas de línguas e
sistema de ensino à distância, por exemplo.
Quanto à utilização de frequências formantes como descritor é possível
encontrar trabalhos como de Huang e Lippmann (1988) onde foi utilizado um banco de
dados de frequências formantes de vogais de palavras com estrutura [hVd]. Na Figura 1
é possível observar as fronteiras de decisão de uma rede neural de duas camadas
treinada com o algoritmo backpropagation. Na figura é mostrado como os aspectos
fonológicos podem ser classificados por até mesmo redes de arquitetura simples. Os
131
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Metodologia de Pesquisa
O corpus desta pesquisa foi construído a partir da literatura pesquisada. Foram retiradas
palavras já presentes nos trabalhos de Zimmer (2003), Rocha (2012) e Cabañero e Alves
(2008) que possibilitam os seguintes processos de transferência: a) simplificação de
encontros consonantais resultando em epêntese (SCE), b) mudança consonantal (MC) e
c) schwa paragógico (SP). As palavras foram selecionadas de acordo com várias
categorias: alta frequência (palavra de muito uso na língua), baixa frequência (palavra
de baixo uso na língua), cognatas, não-cognatas e logatomas (itens destituídos de
significado, mas que seguem a fonotática da língua em questão. Neste estudo, os
logatomas foram gerados a partir da modificação de palavras da língua inglesa). Na
Tabela 2 é mostrada a distribuição das palavras de cada categoria para cada processo.
Tabela 2. Distribuição do número de palavras-teste por categoria.
132
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
133
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
processos SCE (a) e SP (b). Na plotagem, foram incluídas todas as amostras coletadas,
tanto produzidas na opção de idioma PB como INA. É possível observar uma clara
aglomeração dos fenômenos no processo SCE. Para o processo SP há também uma
aglomeração, embora mais próxima das outras amostras.
(a) (b)
Com os resultados para o classificador kNN, foi possível perceber que o mesmo
teve um desempenho satisfatório na classificação dos processos de transferência SCE e
SP. Já para o processo MC, a porcentagem de acertos foi consideravelmente inferior em
relação aos outros processos. Isso ocorreu por conta da dispersão das frequências
formantes já demonstrada na Figura 3. Na Tabela 4 são exibidos os resultados
encontrados pela classificação com três diferentes porcentagens de testes. O valor de K
foi escolhido como 9 através de testes de tentativa e erro.
134
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Mesmo testando com técnicas mais simples, como kNN, e com técnicas mais
elaboradas, como a RNA, os algoritmos foram capazes de classificar com eficiência
somente os casos onde os desvios estão relacionados a vogais. Portanto, por serem
descritores leves e de fácil obtenção, é vantajoso utilizá-los para identificar fenômenos
específicos, os quais apresentem alteração, surgimento ou apagamento de vogais. Dessa
forma, é possível utilizar as frequências formantes concomitantes com outros
descritores. Por serem leves, estes tornam-se mais atrativos para situações onde se tem
espaço ou processamento limitado, como em dispositivos móveis ou embarcados.
Outras pesquisas devem ser desenvolvidas no futuro para obtenção de mais
informações sobre a classificação desses e de outros processos de transferência. Outros
descritores mais gerais devem ser testados, como LPC (Linear Predictive Coding) ou
135
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Cabañero, M. B. e Alvez, U. K. (2008) “A transferência grafo-fônico-fonológica na
produção de seqüências ortográficas ‘ng’ do inglês (L2): uma abordagem
conexionista”, In: ReVEL. Vol. 6, n. 11, agosto de 2008. ISSN 1678-8931.
Frutuoso, R. L. et al. (2013) “Reconhecimento de câncer de pele do tipo melanoma”, In:
SBIC. Anais do 11º Congresso Brasileiro de Inteligência Computacional. Brasil.
Gonzalvo, X. e Podsiadlo, M. (2014) “Text-To-Speech with cross-lingual Neural
Network-based grapheme-to-phoneme models”, Proceedings of Interspeech, ISCA.
Huang, W. e Lippmann, R. (1988) “Neural Net and Traditional Classifiers”, In: Neural
Information Processing Systems, Anderson, D. (ed.), 387-396. New York: American
Institute of Physics.
Nobre-Oliveira, D. (2007) “The Effect of Perceptual training on the learning of English
vowels by Brazilian Portuguese speakers”, 211f. Tese (Doutorado), Pós-Graduação
em Letras/Inglês e Literatura Correspondente, Universidade Federal de Santa
Catarina, Florianópolis.
Rocha, A. R. S. (2012) “Os efeitos da instrução explícita em fonologia na produção e
percepção de consoantes da língua inglesa”, Dissertação (Mestrado) – Programa de
Pós-Graduação em Linguística Aplicada, Universidade Estadual do Ceará, Fortaleza.
Silva, A. C. C. (2010) “O uso de redes neurais auto-organizáveis para a análise do
conhecimento acentual em aprendizes brasileiros de língua inglesa”, Tese
(Doutorado)-Programa de Pós-Graduação em Linguística, Universidade Federal do
Ceará, Fortaleza.
Silva, A. H. P. (1996) “Para a descrição fonético-acústica das líquidas no português
brasileiro: dados de um informante paulistano”, 230p. Dissertação (mestrado) -
Universidade Estadual de Campinas, Instituto de Estudos da Linguagem, Campinas.
Van den Oord, A. et al. (2016) “WaveNet: A Generative Model for Raw Audio”,
Disponível em: https://arxiv.org/abs/1609.03499. Acesso em: 23/02/2017.
Zimmer, M. C. (2003) “A transferência do conhecimento fonético-fonológico do
português brasileiro (L1) para o inglês (L2) na recodificação leitora: uma abordagem
conexionista”, Tese (Doutorado). Faculdade de Letras, Pontifícia Universidade
Católica do Rio Grande do Sul, Porto Alegre.
Zimmer, M. C. e Alves, U. K. (2006) “A produção de aspectos fonético-fonológicos da
segunda língua: instrução explícita e conexionismo”, In: Revista Linguagem &
Ensino, Pelotas,v. 9, n. 2, p. 101-143.
Zimmer, M. C. e Bittencourt, H. R. (2008) “Produção e Percepção Oral em L2: Os
Processos de Transferência do Conhecimento Grafo-fônico-fonológico do Português
Brasileiro (L1) Para o Inglês (L2) e o Desempenho em Listening (L2)”, In: Cadernos
de Estudos Lingüísticos, v. 50, p. 1. 2008.
136
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Segundo [Giles 2010], a Internet teve início durante a Guerra Fria na década de 1960, a
partir de um projeto do exército americano. Os principais objetivos eram: desenvolver
um sistema de informação e comunicação em rede, que resistisse a um ataque nuclear, e
impulsionar a troca de informações entre os centros de produção científica. Os militares
consideravam que um único centro de computação, concentrando toda a informação, era
mais vulnerável a um ataque do que pontos conectados em rede. O embrião, do que
atualmente denominamos de Internet, foi então elaborado e chamado de Arparnet.
A popularização aconteceu em 1990, crescendo velozmente como uma rede global
de redes de computadores. Em 2000, havia aproximadamente 361 milhões de usuários de
Internet em todo mundo [Pingdom 2015]. No Brasil, a democratização aconteceu a partir
de 1995, segundo o Comitê Gestor de Internet no Brasil – [CGI 2010]. O acesso a rede
cresceu significativamente no país. Conforme o [CGI 2016], em 2014, 50% dos domicí-
lios, em áreas urbanas e rurais, possuía acesso à Internet. Em 2005, esse número era bem
menor: 17% dos domicílios urbanos possuíam computador e 13% estavam conectados.
137
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Segundo [Duquennoy et al. 2009], atualmente cada vez mais dispositivos estão
funcionando a nossa volta. Os usuários necessitam acessar facilmente dispositivos, in-
dependentemente de suas escolhas de implementação. Na literatura, essa interconexão
de dispositivos globais é denominada Internet das Coisas (em inglês Internet of Things -
IoT).
De acordo com [Bartleson 2014], IoT anuncia ser uma das maiores revoluções
tecnológicas que a humanidade já observou. É um fenômeno em evolução. Para facilitar
a nossa compreensão, podemos dividi-la em quatro partes: dispositivos portáteis, casas e
aparelhos inteligentes, veículos conectados e cidades inteligentes. Pouco a pouco, a IoT
vai se tornando realidade e invadindo sutilmente o nosso cotidiano.
Em 2012, de acordo com especialista da área, a IoT foi classificada como uma
tecnologia emergente. Foi previsto que levaria entre cinco e dez anos para ser adotada
pelo mercado [Gartner 2015]. As aplicações possíveis com esse tipo de tecnologia são
diversas, produzindo impactos em todas áreas, incluindo eletrônica de consumo, saúde,
indústria, segurança, e de forma colateral, na maneira como a sociedade consome infor-
mação [Almeida 2015].
O presente trabalho propõe contextualizar o conceito de Internet das coisas, cida-
des inteligentes, bem como apresentar um panorama sobre smart cities, no cenário atual
do nosso país, com foco principal no Nordeste. O artigo também apresenta uma visão
atual e aceita na literatura sobre as definições de IoT e suas aplicações. A metodologia
empregada foi baseada em revisão bibliográfica de artigos, publicações em congressos
nacionais e internacionais, e livros.
2. Fundamentação teórica
2.1. Internet das Coisas
A Internet das coisas surgiu por meio dos avanços de várias áreas como microeletrônica,
sistemas embarcados, sensoriamento e comunicação. Em 1990, John Romkey desen-
volveu uma torradeira que poderia ser ligada e desligada pela Internet, considerado o
primeiro dispositivo de IoT [Mancini 2015]. O artigo Computer for the 21st Century,
publicado por Weiser em 1991, é considerado um marco na pesquisa sobre a IoT, sendo
citado em grande parte da literatura sobre o assunto [Singer 2012].
O termo Internet das Coisas foi utilizado pela primeira vez pelo britânico Ashton
e seus colegas de laboratório, no trabalho “I made at Procter & Gamble” publicado em
1999 [Ashton 2009]. Definir IoT não é uma tarefa simples, principalmente se pensar na
quantidade de áreas possíveis de envolver.
De acordo com a visão de [Singer 2012], IoT é um paradigma computacional com
grandes consequências na relação entre homem e objetos. Ela possibilita aos objetos do
cotidiano, que possuem capacidade computacional e de comunicação, conectarem-se à
Internet. Através dessa conexão, é possível controlar remotamente os objetos, acessá-los
como provedores de serviços, tornando-os inteligentes. Os objetos inteligentes apresen-
tam capacidade de processamento e comunicação aliados a sensores [Mancini 2015].
Conforme [Almeida 2015], IoT pode ser entendida como uma integração de ob-
jetos, tanto físicos como virtuais, conectados à Internet, permitindo que estes coletem,
138
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
139
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
140
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
141
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
142
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
A constante expansão das Tecnologias da Informação e Comunicação elevam o mundo
a um estado melhor. Os impactos da sua presença são notáveis no cotidiano, não seria
diferente para as cidades. A tecnologia é um caminho sem volta para os municípios,
cidades e estados.
De fato, no Brasil ainda não existem cidades completamente smart city. Porém,
diversos projetos em desenvolvimento e execução, parcerias da iniciativa privada, pública
e acadêmica, vão mudando o cenário atual das nossas cidades.
O presente artigo teve como objetivo fomentar a discussão no campo científico
de cidades inteligentes no contexto brasileiro, apresentando características, definições e
projetos implementados. O estudo possui restrições por ser um artigo teórico, mas sugere-
se a realização em trabalhos futuros de pesquisas empíricas neste campo, realizadas em
âmbito nacional.
Agradecimentos
A todas as pessoas, que direta ou indiretamente, contribuíram com atenção e carinho
durante o desenvolvimento desse trabalho.
Referências
(2010). CGI.br: uma história de sucesso. Comitê Gestor de Internet no Brasil (CGI.br),
3(2):12–14.
(2016). Acesso à internet no Brasil: Desafios para conectar toda a população. Comitê
Gestor de Internet no Brasil (CGI.br), 10(7):27.
ABINC (2016). Disponível em: http://abinc.org.br/www/abinc/. Acesso
em: 19 de julho de 2017.
Alisson, E. (2016). Universidades podem contribuir para tornar são paulo uma cidade
inteligente. Disponível em: https://goo.gl/PWsxr6. Acesso em: 29 de julho
de 2017.
Almeida, H. (2015). Tudo conectado. Computação Brasil, 29(4):7.
Ashton, K. (2009). In the real world, things matter more than ideas. RFID Journal.
Bartleson, K. (2014). The internet of things is a standards thing. Electronic Design.
Batimarchi, S. (2017). O futuro industrial da internet das coisas no mercado brasileiro.
Disponível em: https://goo.gl/uahPxW. Acesso em: 24 de julho de 2017.
Computer World (2017). São Paulo lidera ranking de 2017 das cidades mais inteligentes
do brasil. Disponível em: https://goo.gl/sUUy5m. Acesso em: 25 de julho de
2017.
143
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Connected Smart Cities (2016). São paulo: primeiro lugar no ranking. Catálogo Connec-
ted Smart Cities 2016.
Duquennoy, S., Grimaud, G., e Vandewalle, J.-J. (2009). The web of things: interconnec-
ting devices with high usability and performance. In Embedded Software and Systems,
2009. ICESS’09. International Conference on, pages 323–330. IEEE.
Finguerut, S. e Fernandes, J. (2015). Planejanto as cidades no século xxi. Cadernos FGV
Projetos, 24:56.
Fórum Brasileiro de IoT (2017). Disponível em: http://iotbrasil.org.br/
home/o-forum/. Acesso em: 19 de julho de 2017.
Galdino, A. (2017). Habitações sociais: redefinindo o conceito. Disponível em: https:
//goo.gl/4GVQQv. Acesso em: 21 de julho de 2017.
Gartner, I. (2015). Gartner’s 2015 hype cycle for emerging technologies identifies the
computing innovations that organizations should monitor. Gartner Web site.. Published
http://www. gartner. com/newsroom/id/3114217. Updated.
Giles, D. (2010). Psychology of the media. Palgrave Macmillan.
Instituto Smart City Business America (2016). Empresa italiana cria smart city para
famílias de baixa renda no brasil. Disponível em: https://goo.gl/WxWmtA.
Acesso em: 25 de julho de 2017.
IoT Latin America (2017). Disponível em: http://iotlatinamerica.com.br/.
Acesso em: 19 de julho de 2017.
Komninos, N. (2008). Cidades inteligentes-sistemas de inovação e tecnologias da in-
formação ao serviço do desenvolvimento das cidades. Unidade de pesquisas Urenio.
Universidade Aristoteliciana de Salônica. Acesso em 24 de julho de 2017, 15.
Lemos, A. (2013). Cidades inteligentes. GV-executivo, 12(2):46–49.
Mancini, M. (2015). Internet das coisas: História, conceitos, aplicações e desafios. Pro-
ject Design Management, 73.
Marques, J. (2015). As cidades inteligentes, nosso futuro? Estudo de caso de cinco
projetos de cidades inteligentes. Congresso Internacional Interdisciplinar em Sociais
e Humanidade, page 103.
Participa.br (2016). Disponível em: http://www.participa.br/cpiot/.
Acesso em: 19 de julho de 2017.
Pingdom, R. (2015). The incredible growth of the internet since 2000. Royal Pingdom.
PlayTown Recife (2016). Disponível em: http://www.playtownrec.com.br/
playtown/. Acesso em: 23 de julho de 2017.
Porto Social (2016). Sobre nós - o que é o porto social. Disponível em: http://www.
portosocial.com.br/sobre-nos/. Acesso em: 25 de julho de 2017.
Singer, T. (2012). Tudo conectado: conceitos e representações da internet das coisas.
Simpósio em tecnologias digitais e sociabilidade, 2:1–15.
Steventon, A. e Wright, S. (2010). Intelligent spaces: The application of pervasive ICT.
Springer Science & Business Media.
144
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. Along with the advent of information technology and the increase in
networked devices, the number of attacks that cause disruption to business
processes has increased. The main objective of this work is to identify low or
high potential vulnerabilities in the network of an academic environment
through Pentest (Penetration Test) techniques. For this, a set of specific
machines of a teaching institution is explored, using a computer with the Kali
Linux system in conjunction with tools like Nessus and Metasploit Framework.
The aim is to discover flaws where possible attackers can exploit. The results
found point to vulnerable services, security holes in several computers on the
network and still shows a percentage of the number of vulnerabilities found in
the network. Finally, solutions are proposed that allow the mitigation of
vulnerabilities, in order to improve security in this environment.
Resumo. Juntamente com o advento da tecnologia da informação e com o
aumento dos dispositivos conectados nas redes, o número de ataques que
causam interrupção nos processos de negócios tem consequentemente
aumentado. O objetivo principal deste trabalho é identificar vulnerabilidades
de baixo ou alto potencial existentes na rede de um ambiente acadêmico por
meio de técnicas de PenTest (Penetration Test). Para isso, é explorado um
conjunto de máquinas específicas de uma instituição de ensino, utilizando-se de
um computador com o sistema Kali Linux em conjunto com ferramentas como
Nessus e Metasploit Framework. O intuito é descobrir falhas onde possíveis
invasores possam explorar. Os resultados encontrados, apontam para serviços
vulneráveis, falhas de segurança em diversos computadores da rede e ainda
mostra uma porcentagem do quantitativo de vulnerabilidades encontradas na
rede. Por fim são propostas soluções que possibilitem a mitigação das
vulnerabilidades, de forma a melhorar a segurança neste ambiente.
1. Introdução
Na mesma proporção que novas tecnologias são criadas, novas vulnerabilidades
aparecem e com isso a informação fica ainda mais fácil de ser roubada. Moraes (2010),
afirma que são muitos benefícios que as empresas têm quando fazem uso dos recursos
tecnológicos, por outro lado ficam suscetíveis a riscos que podem acarretar em danos
como por exemplo, o tempo que a rede fica indisponível ou por ameaças aos dados
importantes através do acesso à Internet.
Nesse contexto, com o rápido desenvolvimento das diversas tecnologias em todas
as áreas do conhecimento, a sociedade e as organizações de um mode em geral ficam
mais expostas se tornando alvos fáceis para pessoas mal intencionadas.
Devido a grande importância da segurança da informação, é imprescindível
certificar-se de que as informações que trafegam nas redes de computadores estão sendo
acessadas somente por pessoas autorizadas. Existem muitos métodos para analisar essa
145
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
situação e neste trabalho será utilizado o Pentest, acrônimo de teste de intrusão, que
segundo Menezes, Cardoso e Rocha (2015, p. 4) nada mais é do que “uma penetração que
faz no sistema, onde se descobre as falhas do sistema.”
Diante deste contexto, o presente trabalho propõe um estudo da segurança da rede
utilizando a técnica Pentest em um ambiente acadêmico. Para isso, explora-se um
conjunto de máquinas específicas da instituição onde a pesquisa foi conduzida. O
objetivo consiste em descobrir falhas que possíveis invasores poderiam encontrar e
consequentemente danificar ou roubar informações relevantes, como dados de alunos ou
funcionários.
2. Fundamentação Teórica
2.3. Pentest
Existem definições similares nas bibliografias, como exemplo, temos à de Bozhinovski et
al. (2013, p. 1), Pentest “é um tipo de teste de segurança que serve para avaliar uma rede
e os sistemas de uma organização simulando ataques de hackers maliciosos”. É realizado
para encontrar os riscos de segurança que podem estar presentes na organização que será
avaliada.
No entendimento de Bertoglio e Zorzo (2017, p. 1), compreende Pentest como
sendo uma “tentativa controlada de penetrar em um sistema ou rede, a fim de identificar
146
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Metodologia
Nesta seção, serão expostas as ferramentas utilizadas durante a avaliação de
segurança de alguns hosts da rede da instituição. Uma destas, é o Nmap, programa que
mostra informações sobre portas, serviços e hosts. Com essas informações é possível
criar um mapa de rede.
O programa utilizado para mostrar as vulnerabilidades detalhadas de cada host ou
da rede foi o Nessus, que com sua linguagem de script, consegue obter a versão do
sistema operacional e nome da máquina, rota de rastreamento, hosts de teste para
determinada vulnerabilidade. Sendo capaz de analisar os hosts ativos e encontrar
potenciais falhas, dentre outras funcionalidades.
Outra ferramenta de muita importância nos testes foi o Metasploit Framework
(MSF), que desenvolve, executa e explora códigos em máquinas remotas, fornecendo
opções para verificar as vulnerabilidades dos sistemas de computadores com o intuito de
protegê-los.
147
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Estudo de Caso
O estudo foi conduzido no laboratório de redes de computadores do Instituto Federal de
Educação, Ciência e Tecnologia do Ceará (IFCE), no campus Jaguaribe. A Figura 3,
mostra o cenário utilizado durante os testes. O cenário está dividido em dois ambiente,
onde o primeiro é a rede administrativa e o segundo a partir do switch é a rede do
laboratório. O laptop está com o Kali Linux instalado, e com ele foram realizados os
procedimentos práticos. A fase da Descoberta foi realizada em todos os dispositivos
ativos da rede e a do Ataque foram realizadas nos dispositivos do laboratório. Os tipos de
ataques são do tipo interno e de caixa branca.
A ferramenta de análise de vulnerabilidade Nessus identifica o nível de
vulnerabilidade em cada nó da rede e classifica-o de acordo com o sistema comum de
pontuação de vulnerabilidade (CVSS) nos níveis crítico, alto, médio e baixo.
148
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
149
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
150
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Análises e Resultados
Após serem exploradas as vulnerabilidades detectadas no ambiente educacional alvo
observou-se a existências de um ponto crítico como causa principal, que foi o protocolo
de compartilhamento de arquivos (smb), o mesmo encontrou-se frágil ocasionando uma
grande falha de segurança em quase todos os hosts. Também foi verificado que o
Protocolo de Exibição Remota da Microsoft (MSRDP), possuía brechas a serem
exploradas. Após a investigação dessas falhas foi possível criar a Quadro 3, onde são
identificados protocolos, serviços e portas mais críticas encontradas na rede.
Quadro 3. Protocolos e serviços Críticos encontrados na rede.
Por meio do Active Directory presente nos sistemas Windows Server é possível a
estruturação de políticas de grupo de forma que sejam liberados, rigorosamente, somente
151
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Conclusão
Este trabalho apresentou uma das principais metodologias utilizadas na atualidade para
conseguir identificar Vulnerabilidades nas redes de ambientes corporativos que é a
utilização do Pentest. Foram realizadas avaliações do desempenho da rede através de
simulações de ataques e por meio de scanners realizados no ambiente de teste. Os
resultados apontam que com a utilização de algumas ferramentas pode-se conseguir a
descoberta de muitas falhas para uma análise efetiva da situação da rede, que antes
poderiam ser explorada por hackers/crackers, e assim tomar medidas preventivas para
correção das mesmas.
Algumas limitações foram encontradas durante as etapas da pesquisa, tendo como
e exemplo, explorar recursos específicos de algumas ferramentas, que não foi possível
porque as licenças são proprietárias, por outro lado com a utilização delas consegue-se
um alto desempenho na análise das vulnerabilidades. Para trabalhos futuros pode-se
aplicar essas sugestões de melhoria no ambiente real da instituição e logo em seguida
monitorar o desempenho da rede por meio dos scanners e comparar os resultados.
Referências
Bertoglio, D. D., & Zorzo, A. F. (2017). Overview and open issues on penetration test.
Journal of the Brazilian Computer Society, 23(1), 2.
Bishop, M. (2007). About penetration testing. IEEE Security & Privacy, 5(6).
Hamisi, N. Y., Mvungi, N. H., Mfinanga, D. A., & Mwinyiwiwa, B. M. M. (2009,
January). Intrussion detection by penetration test in an organization network. In
Adaptive Science & Technology, 2009. ICAST 2009. 2nd International Conference on
(pp. 226-231). IEEE.
Moraes, A. F. D. (2010). Segurança em Redes: Fundamentos. Primeira Edição, São
Paulo, Editora Érica.
Pavan, P. V. A., & Guardia, H. C. (2016). Pentest para auditoria de segurança de rede
em ambientes corporativos. Revista TIS, 4(2).
Potter, B; Mcgraw, G. Software security testing. Revista IEEE SECURITY & PRIVACY,
2/5, 2004. p.81-85.
Scarfone, K., Souppaya, M., Cody, A., & Orebaugh, A. (2008). Technical guide to
information security testing and assessment. NIST Special Publication, 800, 115.
152
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. On the Internet, large amounts of data travel, many of which are in
secure environments, and managed only by authorized people who have creden-
tials that allow them to be manipulated correctly. The present work addresses
a study on security and information management with a focus on web applica-
tions. The overall objective of this study is to perform intrusion testing using
a virtual machine together with the Kali Linux operating system through some
tools to show vulnerabilities that exist in the administrative panel of a site.
1. Introdução
Este trabalho está direcionado a gestão da segurança da informação voltado ao painel
administrativo de um site, onde apenas pessoas autorizadas devem ter acesso ao geren-
ciamento das informações administrativas do site e terá o controle dos dados que serão
expostos ao público em geral. A motivação para investigar tal temática, foi a participação
como membro da equipe de desenvolvimento do site, tendo a percepção e vivência do
quanto se faz necessário preocupar-se com a segurança e a integridade das informações
na web. Dentro dessa perspectiva a segurança da informação é algo importante, pelo fato
153
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
154
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
necessário. Já para [Silva et al. 2003] , disponibilidade é vital ao acesso a informação,
de modo que ter a informação necessária, mas não ter disponı́vel no momento desejado,
equivale a não possuir qualquer informação. É destacado também o atributo de autenti-
cidade, onde o mesmo pode garantir a identidade de quem está enviando algum tipo de
informação.
Uma ameaça pode ser considerada fı́sica ou virtual, podendo comprometer toda a
segurança da informação, esse acontecimento pode ser causado por um fenômeno natural
ou por uma simples ação humana. Entre as ameaças possı́veis, pode-se citar criminosos
virtuais e vı́rus. Segundo [Dias 2000] uma ameaça é um evento ou atitude indesejável, ou
seja, roubo, incêndio ou vı́rus, que tem um potencial de remover, desabilitar, danificar ou
destruir um recurso.
Na rede mundial de computadores atualmente existem milhares de aplicações dis-
ponibilizando algum tipo de informação e todas as informações consequentemente estão
em um ambiente inseguro, onde qualquer tipo de vulnerabilidade na aplicação pode possi-
bilitar explorações por atacantes virtuais, com possibilidades de gerar grandes prejuı́zos.
Sistemas web (online) são os alvos preferidos dos usuários mal intencionados, pois es-
tando diretamente ligado a Internet viabiliza ao criminoso virtual se aproveitar do ambi-
ente de forma camuflada para estar explorando as vulnerabilidades em busca de falhas de
segurança.
Os ataques são resultados de ações realizadas por invasores que utilizam de fer-
ramentas como vı́rus, com a finalidade de roubar informações das vı́timas. Essas ações
são realizadas geralmente em ambientes virtuais, devido o rápido alcance as informações,
altos ganhos e o baixo risco que os criminosos podem estar expostos. Ele se trata de um
acesso não autorizado que pode fazer modificações nas informações. Um ataque corres-
ponde a concretização de uma ameaça, podendo ser bem sucedida ou não, mediante uma
ação deliberada e por vezes meticulosamente planejada [Marciano 2009]
Já o risco é a possibilidade de que aconteça alguma ação prejudicial, é a pos-
sibilidade de um perigo iminente, onde se materializa a chance de se executar alguma
ação perigosa. Para [Sêmola 2014] o risco é a probabilidade de que agentes, que são as
ameaças, explorem vulnerabilidades, mostrando os ativos a perdas de confidencialidade,
integridade e disponibilidade, e causando impactos.
O termo criptografia vem das palavras kryptos (oculto) e graphein (escrita), co-
nhecida por ser a ciência que estuda maneiras para codificar as mensagens deixando seu
conteúdo de forma secreta. O termo criptografia não é ocultar a existência da mensagem,
e sim deixar escondido o seu significado, esse processo é conhecido como encriptação
[SINGH 2008].
Através do método de codificação da informação, torna-se mais seguro o envio
de mensagens através da Internet, como e-mails ou transações bancárias e comerciais,
levando em consideração que os dados trafegam por um ambiente público e vulnerável. A
cada dia técnicas criptográficas são aperfeiçoadas, com o objetivo de buscar altos nı́veis
de segurança e impedir que informações mesmo que interceptadas por criminosos, não
poderão decifrar a informação contida na mensagem.
A criptografia é uma ferramenta extremamente importante para a sociedade, ela
tem o objetivo de manter as informações confidenciais, proporciona integridade, auten-
155
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
ticidade e maior segurança. Atualmente existem vários sistemas criptográficos que são
baseados em algoritmos, onde os mesmos são responsáveis em deixar os dados cripto-
grafados usando transformações complexas em sua execução, transformando um texto
simples em um texto cifrado ou criptografado. Pode-se destacar alguns algoritmos im-
portantes nesse processo criptográfico, como o DES (Data Encryption Standard), AES
(Advanced Encryption Standard), RSA (Devido aos seus desenvolvedores Rivest, Sha-
mir, e Adleman) e MD5 (Message-Digest algorithm 5).
156
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4.1. Nessus
Após a preparação do ambiente, foi utilizado o software Nessus, um dos mais popu-
lares para realização de testes de análises de vulnerabilidades, com o objetivo de de-
tectar os pontos considerados fracos em seus serviços de execução. [Pauli 2014] e
[Weidman 2014], apontam que o Nessus é um dos scanners de vulnerabilidades dis-
ponı́veis mais populares para realizar o passo de scanning de vulnerabilidades onde seu
banco de dados inclui vulnerabilidades em plataformas e protocolos, e o seu scanner re-
aliza uma série de verificações para detecção de problemas conhecidos. Na Figura 5 é
mostrado os resultados realizado pelo Nessus no módulo de testes para aplicações web.
157
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4.2. Nmap
O Nmap tem como finalidade fazer varreduras no alvo a procura de portas abertas,
serviços ativos, versões de sistemas operacionais e vários outros tipos de scan. Segundo
[Pauli 2014], o Nmap é o scanner de porta popularmente mais utilizado e continua a
ganhar destaque como o melhor scanner de portas do mundo, com funcionalidades adici-
onais para exploração de falhas e scanning de vulnerabilidades. Na Figura 6, mostra os
resultados obtidos pela Nmap.
Como mostra a Figura 6, o comando executado ”nmap -sV -sS -O
186.202.153.147”realiza as seguintes ações: I- sV: designa o scan como um scan de
versão, que mostrará como resultado as versões especı́ficas dos serviços em execução.
II- sS: inicia um scan camuflado, ou seja, ele descobre se uma porta está aberta sem
se conectar totalmente com o alvo. III -O retorna informações referentes ao sistema
operacional. o IP (Protocolo de Internet) 186.202.153.147 é equivalente ao domı́nio
158
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4.3. Nikto
O Nikto é uma ferramenta que tem o objetivo de constatar diversos tipos de arquivos,
configurações de programas padrões e inseguros nos servidores web que podem ser passi-
vos a algum tipo de ataque. [Pauli 2014], relata que o Nikto realiza verificações relativas a
6.400 arquivos e scripts potencialmente perigosos, 1200 versões desatualizadas de servi-
dores e cerca de 300 problemas especı́ficos de versões de servidores web, é um scanning
de vulnerabilidades de código aberto. De acordo com [Weidman 2014], o Nikto é um
scanner de vulnerabilidades de aplicações web, que procura problemas como arquivos
perigosos, versões desatualizadas e erros de configuração. Na Figura 7, mostra os resul-
tados obtidos pela ferramenta Nikto.
5. Considerações Finais
O presente trabalho apresentou conceitos sobre a segurança da informação além da
realização de analises de vulnerabilidades ao painel do site. Nesse contexto sabe-se que
159
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
todas as aplicações web na Internet, estão suscetı́veis a serem alvos fáceis para os crimino-
sos virtuais, onde buscam por vulnerabilidades para a efetivação de seus ataques. Diante
de tal fato, fica evidente a necessidade de buscar métodos de segurança que colaborem e
contribuam contra a inibição de qualquer tipo de ataques contra aplicações web.
A realização de testes em aplicações web é de fundamental importância, pois é
nesse processo onde se pode mensurar e precaver os riscos, evitando graves problemas de
invasões. Durante a elaboração deste trabalho foram utilizadas de várias ferramentas para
auxiliar na composição de ataques ao painel administrativo do site, com a finalidade de
identificar suas vulnerabilidades.
Como sugestão de trabalhos futuros, serão analisados e testados novos métodos de
ataques, com a finalidade de focar nos nı́veis de segurança da aplicação, de maneira a apri-
morar mecanismos de autenticação, criação de usuários, senhas, métodos de criptografia,
validação de formulários, dentre outros. Buscando sempre proporcionar a segurança da
informação na aplicação, evitando qualquer tipo de ataques realizados por criminosos
virtuais que venham a comprometer a segurança das informações.
Referências
Azevedo, M. S. S. (2006). Protocolo Hı́brido para Autenticação Quântica de Mensagens
Clássicas com uso do Gerador de Seqüências Pseudo-aleatórias Blum-Blum-Shub.
PhD thesis, Universidade Federal de Campina Grande.
Carneiro, A. (2002). Introdução à segurança dos sistemas de informação.
Dias, C. (2000). Segurança e auditoria da tecnologia da informação. Axcel Books.
Ferreira, M. (2003). Propaganda eleitoral na internet.
Marciano, J. L. P. (2009). Segurança da informação: uma abordagem social.
Pauli, J. (2014). Introdução ao Web Hacking: Ferramentas e técnicas para invasão de
aplicações web. Novatec Editora.
RAMOS, A. (2008). Security officer–1: Guia oficial para formação de gestores em
segurança. Segunda Edição. Porto Alegre–RS: Editora Zouk.
Santos, D. L. R. and Silva, R. M. S. (2012). Segurança da informação: a norma iso/iec
27000 e iso/iec.
Sêmola, M. (2014). Gestão da segurança da informação, volume 2. Elsevier Brasil.
Silva, P. T., Carvalho, H., and Torres, C. B. (2003). Segurança dos sistemas de
informação: gestão estratégica da segurança empresarial.
SINGH, S. (2008). O livro dos códigos. a ciência do sigilo-do antigo egitoa criptografia
quântica. Sétima ediçao.
Weidman, G. (2014). Testes de invasão: Uma introdução pratica ao hacking. Novatec
Editora.
160
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Há diversos algoritmos utilizados e descritos na literatura solucionando problemas de
otimização como o Genetic Algorithm (GA) por Holland (1975), Artificial Bee Colony (ABC)
por Karaboga (2005), entre outros, o Duelist Algorithm (AD), desenvolvido por Biyanto et al.
(2016). É mais uma técnica plausível a ser utilizada para soluções de tais problemáticas onde o
objetivo é atingir o valor máximo ou mínimo de uma função, o foco deste artigo é expor a
eficiência da adaptação realizada na técnica de crossover concebido por Yasojima et al. (2016),
aplicado ao AD.
O trabalho está organizado da seguinte forma: a seção 2 explica o embasamento teórico
sobre o AD, bem como são modeladas matematicamente; seção 3 explana a adaptação realizada
ao modelo original; a seção 4 descreve as configurações e testes; na seção 5 têm-se os resultados
obtidos; por fim, conclui-se o trabalho na seção 6.
161
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Algoritmo do Duelista
Proposta por Biyanto et al. (2016), o AD é uma técnica para otimização inspirado em um duelo
entre indivíduos. Este pode ser considerado uma competição esportiva como: uma luta de boxe,
duelo entre dois lutadores, ou uma partida de futebol, duelo entre duas equipes [Reilly, 2003.
Woodward, 2006.].
O modelo original é semelhante ao AG proposto por Holland (1975), que define
indivíduos portadores de um cromossomo, e.g. vetor de elementos, e um valor de adaptação
baseado em seu cromossomo. Entretanto, o AD trata o arranjo de elementos como um skillset
(e.g. conjunto de habilidades), uma capacidade de luta como valor de fitness e um fator de sorte
para cada duelista da população. O algoritmo é composto de seis etapas principais, em que com
exceção da primeira etapa, outras estão inseridas em um ciclo finito de iterações, sendo estas:
Registro e Pré-qualificação: Esta etapa corresponde ao processo de inicialização,
encontrado em outros algoritmos apresentados por Binitha e Sathya (2012). O registro
e pré-qualificação correspondem respectivamente a: 1) gerar aleatoriamente novos
conjuntos de habilidade para cada duelista; 2) avaliar cada conjunto de habilidade e
determinar sua capacidade de luta.
Determinar o quadro de campeões: O quadro é gerado por uma série de treinamento
entre o melhor duelista encontrado e outro duelista aleatório. O melhor duelista tende a
passar experiência para seu treinando, este novo duelista substituiria a posição de
melhor duelista no jogo e se juntaria ao próximo duelo. [Biyanto et al., 2016. Biyanto
et al. 2017]
Definir a tabela de duelos e Premiação: Dois duelistas, A e B, são selecionados
aleatoriamente para, posteriormente, entrarem em um duelo baseado em sua capacidade
de luta e sorte. Se a sorte do duelista A mais a sua capacidade de luta for maior que a do
duelista B, A é dado como vencedor do duelo e B como perdedor. Caso contrário, B é o
vencedor e A é o perdedor. A sorte para cada duelista é definida por (1),
𝑠𝑜𝑟𝑡𝑒 = 𝐷𝑓 ∗ (𝐶𝑆 + (rand(0,1) ∗ 𝐶𝑆)) (1)
em que, 𝐷𝑓 é a capacidade de luta do duelista e 𝐶𝑆 é coeficiente de sorte composto por
um valor real. O vencedor do duelo continua seu treinamento para tornar-se um melhor
duelista, enquanto que, o perdedor tem chances de adquirir determinada habilidade do
vencedor através da experiência. [Byanto et al. 2016]
Eliminação: Por fim, a cada competição, conjunto de duelos, o pior duelista é eliminado
da competição, que abre uma oportunidade para outro duelista. [Biyanto et al., 2016.
Biyanto et al. 2017]
162
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Configurações e testes
No seguinte experimento, a Tabela 1 apresenta as funções de benchmark utilizadas para validar
a eficiência do algoritmo, ambas com o objetivo de maximização. Estas funções são
consideradas representativas pela comunidade cientifica a fim de testar a eficiência de qualquer
algoritmo com proposito de otimização numérica.
No que diz a respeito dos parâmetros do algoritmo, as configurações propostas por
Byanto et al. (2016), foram utilizadas para o ADA, sendo estas: 1) 100 duelistas; 2) o valor
163
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
designado a constante α é igual a 0.05; 3) 200 gerações; 4) coeficiente de sorte 0.1. Por fim, os
parâmetros do Algoritmo Genético adotado foram: 1) 100 indivíduos; 2) 200 gerações; 3)
probabilidade de mutação 0.5; 4) probabilidade de crossover 0.8.
Tabela 1. Funções de benchmark utilizadas.
5. Resultados
A Tabela 2 apresenta os resultados estatísticos associados às funções. Estes resultados foram
obtidos por intermédio dos valores encontrados em 30 execuções distintas e seeds aleatórias
diferentes, sendo assim, garantindo que nenhuma técnica fora influenciada pela máquina.
Tabela 2. Resultados estatísticos para as funções de benchmark.
DA GA
Função Resultados ADA Biyanto et al. Biyanto et al.
(2016) (2016)
Fitness 18.5495 18.5285 -
F1 Média 18,1099
DP 0,32955
Fitness 30.3248 30.3060 30.3017
F2 Média 30,2277
DP 0,4960
F1 F2
164
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Após a análise de resultados, constatou-se que o algoritmo aqui proposto obteve melhor
desempenho quando comparado à versão canônica, encontrando valores mais aproximados do
máximo global. Portanto, as modificações inseridas permitiram uma ampla busca no espaço,
encontrando duelistas mais aptos para estes problemas.
6. Conclusão
O objetivo deste estudo foi analisar o desempenho do ADA em comparativo com a versão
canônica do mesmo para funções de benchmark, onde por meio destes testes efeituados obteve
resultados superiores ao GA e o AD desenvolvido por Biyanto et al. (2016). A modificação
realizada no AD provou-se efetiva, por meio da adaptação da técnica de crossover concebida
por Yasojima et al. (2016), onde pela qual conseguiu aproveitar de forma mais ampla o espaço
de busca deparando-se com soluções melhores.
Como trabalhos futuros, pretende-se ampliar os testes do algoritmo proposto com o
intuito de encontrar suas limitações, para talvez aplicar uma próxima modificação no mesmo
assim buscando conseguir resultados melhores.
Referências
Binitha, S., and S. Siva Sathya. "A survey of bio inspired optimization algorithms."
International Journal of Soft Computing and Engineering 2.2 (2012): pp 137-151.
Biyanto, Totok R., Henokh Yernias Fibrianto, and Hari H. Santoso. "Duelist Algorithm: An
Algorithm in Stochastic Optimization Method." Advances in Swarm Intelligence, The Seventh
International Conference on Swarm Intelligence, Junho. 2016.
Biyanto, Totok R., et al. "Techno Economic Optimization of Petlyuk Distillation Column
Design Using Duelist Algorithm." Procedia Engineering 170 (2017): pp 520-527.
J. Holland. Adaptation in Natural and Artificial Systems. University of Michigan Press, 1975.
K. Woodward, Boxing, Masculinity and Identity. The" I" of the Tiger: Routledge, 2006.
Karaboga D. “An idea based on honey bee swarm for numerical optimization”. Vol. 200.
Technical report-tr06, Erciyes university, engineering faculty, computer engineering
department, 2005.
T. Reilly, Science and soccer: Routledge, 2003.
Yasojima, Edson Koiti Kudo, et al. "Analyzing Genetic Algorithm with Game Theory and
Adjusted Crossover Approach on Engineering Problems." International Conference on Hybrid
Intelligent Systems. Springer, Cham, 2016.
165
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. With the increase use of computer systems, rational agent emerges as a
promising technology in solution from relatively simple problems, as well as
complex problems. Due to its autonomy, agent testing has become a major
challenge because these agents can present different results in the same test
entry. This work presents the proposal of a tester that performs local search in
the state space of utility-oriented test cases and uses multiobjective evolutionary
algorithms, NSGAII, SPEA2, PAES and MOCell with the objective of identifying
which ones are more efficient in the generation of test cases for rational agents.
1. Introdução
Os softwares estão cada vez mais complexos e não dependem, em última análise, do
aumento do poder computacional. Desse modo, o objetivo central da Inteligência Artificial
(IA) é procurar incorporar nos programas e sistemas, conhecimentos e capacidades
normalmente associadas ao ser humano, a fim de encontrar soluções viáveis [Costa e
Simões 2015].
Agentes racionais surgem, então, como uma tecnologia promissora. Um agente
racional deve possuir atributos capazes de distingui-lo dos demais programas, tais como:
operação sob controle autônomo; percepção do ambiente; persistência por tempo
prolongado; adaptação às mudanças e capacidade de criação e perseguição de metas. Sua
racionalidade pode ser definida quando o agente atua para alcançar o melhor resultado
[Russel e Norvig 2013].
Entretanto, a autonomia por um lado, ajuda os agentes de software a lidarem com
ambientes complexos e abertos. Por outro lado, faz com que testes de agentes se tornem
uma tarefa desafiadora. Em uma mesma entrada de teste, os resultados podem ser
diferentes em diferentes execuções. Por esta razão, os testes de agentes requerem um
procedimento que sirva para uma grande variedade de contextos de casos de testes e devem
ser aplicados nos casos de testes mais exigentes [Nguyen et al. 2012].
166
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Visto que testar esses sistemas tornou-se uma premissa fundamental, este trabalho
apresenta a proposta de um agente testador que realiza busca local1, baseado em população
e orientado por uma função utilidade2 para encontrar conjuntos de casos de teste satisfatórios,
ou seja, encontrar casos que levem os agentes testados a um maior índice de falhas. Dessa
forma, serão realizadas comparações entre quatro estratégias de busca local de algoritmos
evolucionários multiobjetivos (MOEAs - Multiobjective Evolutionary Algorithms)
utilizados pelo agente testador, primeiramente na geração inicial de um conjunto de casos
de testes e em seguida, entre os conjuntos avaliados pela função utilidade associado ao
desempenho dos agentes testados, a geração de um novo conjunto de casos de testes mais
útil que o anterior.
Os algoritmos Non-dominated Sorting Genetic Algorithm (NSGA-II), Strength
Pareto Evolutionary Algorithm (SPEA2), Pareto Archived Evolution Strategy (PAES) e
MultiObjective Cellular (MOCell) foram escolhidos por serem largamente utilizados e
representam diferentes estratégias de evolução para lidar com problemas de otimização.
Para avaliar a acurácia desses algoritmos a serem comparados, foram desenvolvidos quatro
tipos diferentes de programas de agentes que foram testados com os casos de teste gerados
por cada MOEA. Dessa forma, ao final do ciclo de testes, as comparações entre as
aplicações de cada algoritmo têm o objetivo de identificar quais deles possuem os melhores
desempenhos para que possam ser utilizados por um agente testador na geração de casos de
teste que sejam capazes de apresentar informações relevantes sobre o desempenho dos
agentes testados.
2. Fundamental Teórica
2.1. Agentes Racionais
Agente Racional é toda entidade capaz de interagir com o ambiente guiada, em geral (mas
não necessariamente) por objetivos. Um agente possui um mecanismo que permite recolher
informações do ambiente (percepção), mecanismos que lhe permitem atuar sobre o
ambiente (ação) e processos que definem qual a melhor ação a realizar (decisão) [Costa e
Simões 2015].
Cinco tipos básicos de programas de agentes que incorporam os princípios
subjacentes a quase todos os sistemas inteligentes são enumerados em [Russel e Norvig
2013]: (i) agente reativo simples (seleciona suas ações com base na sua percepção atual,
ignorando o restante do histórico de percepções); (ii) agente reativo baseado em modelo
(que seleciona ações com base no seu histórico de percepções e assim reflete sobre alguns
dos aspectos não observados do estado atual); (ii) agente baseado em objetivos (que possui
como característica, selecionar ações com base nos objetivos que descreve situações
desejáveis); (iv) agente baseado em utilidades (seleciona suas ações que maximizam a
utilidade esperada dos resultados da ação) e (v) agente com aprendizagem (converte todos
os agentes básicos citados anteriormente e pode melhorar o desempenho de seus
componentes de modo a gerar melhores ações).
2.3. Algoritmos Evolucionários Multiobjetivos
Inicialmente, problemas de grande importância tinham suas soluções baseadas nos métodos
matemáticos. Porém, a complexidade desses modelos levou os pesquisadores a concentrar
1
Os algoritmos de busca local são úteis para resolver problemas de otimização, nos quais o objetivo é
encontrar o melhor estado de acordo com uma função objetivo (RUSSELL; NORVIG, 2013).
2
A função utilidade é essencialmente uma internalização de uma medida de desempenho para o agente.
167
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
168
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
envolvidos na seleção e testes: (i) o programa agente a ser testado, denominado Agente,
concebido pelo projetista; (ii) o programa ambiente de tarefa, Ambiente; (iii) um programa
agente para a geração e seleção de casos de testes, Agente Testador, foco principal desta
abordagem.
A Figura 1 ilustra as interações entre os agentes. Primeiramente, o Projetista é o
responsável pelo desenvolvimento do Agente, pela definição da medida de avaliação de
desempenho e por outras informações necessárias para o Agente Testador executar o
processo de teste do Agente em Ambiente e um programa agente monitorador, Monitor.
O processo do Agente Testador inicia com a geração inicial de casos de testes, uma
população formada por um conjunto de indivíduos (casos de testes), gerada de maneira
aleatória por um algoritmo evolucionário. No próximo passo, todos os casos de testes da
geração inicial são executados, o que significa submeter o Agente a cada um dos cenários
de teste. Na avaliação das histórias, o Agente Testador calcula o valor de cada medida de
avaliação de desempenho. As histórias avaliadas são submetidas ao um algoritmo
evolucionário multiobjetivo, que selecionam os melhores casos de testes e geram novas
populações ou modificam as populações existentes. Nesta fase é possível selecionar
indivíduos mais capazes que possuem maior probabilidade de gerar mais descendentes,
enquanto que os menos capazes poderão ainda gerar descendentes, porém em uma escala
menor. O Agente Testador, após os ciclos de testes, envia para o agente Monitor os casos
de teste em que Agente obteve o comportamento mais inadequado, um conjunto de
histórias correspondentes e seus valores de utilidade contendo os objetivos não satisfeitos
adequadamente pelo Agente e as falhas cometidas por ele em Ambiente.
4.2. Agente Testados
O ambiente considerado para os experimentos desses agentes possui 25 salas, dispostas em
forma de uma matriz 5 x 5, em que cada eixo (x,y) representa uma sala que pode conter ou
não sujeira. Em cada iteração com o ambiente, independentemente da sala, a função do
agente pode escolher uma das seguintes Ações: aspirar (Asp), não operar (N-op), ou mover-
se para outra sala vizinha (Acima, Esquerda, Direita, Abaixo). Como o ambiente é estático,
cada caso de teste é instanciado em um programa ambiente (Ambiente) que obedece ao
modelo determinístico.
O primeiro agente desenvolvido foi denominado de RS_Parcial do tipo reativo
simples, no qual a seleção da ação a ser executada baseia-se apenas na percepção atual do
ambiente parcialmente observável, de forma que o agente consegue identificar apenas a sua
169
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
170
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
171
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
SPEA2, o melhor valor da função é obtido na 27ª geração com utilidade = 23,4. Já para o
algoritmo PAES, o melhor valor é obtido na 28ª geração com utilidade = 21,8 e para o
último algoritmo, MOCell, o melhor valor é obtido na 8ª geração com utilidade = 20,6,
entretanto, o algoritmo não conseguiu mais gerar casos de testes com utilidade superior a
partir dessa geração.
A Figura 2(c) apresenta os experimentos do terceiro experimento. O valor de
inadequação do agente reativo simples em um ambiente totalmente observável é bem
menor que os valores dos outros dois agentes em um ambiente parcialmente observável.
RS_Total percebe todo o ambiente e isso permite a concepção de um subsistema de tomada
de decisão capaz de selecionar as ações que sejam realmente racionais em cada interação
com o ambiente. Na utilização do NSGA-II, o algoritmo obteve o seu melhor valor da
função Utilidade na 23ª geração com utilidade = 6,5. Na utilização do algoritmo SPEA2, o
melhor valor da função é obtido também na 28ª geração com utilidade = 7,5. Na utilização
do PAES, o algoritmo não conseguiu gerar casos de testes mais eficientes, tendo o mesmo
valor de utilidade em todas as gerações. Para o algoritmo MOCell, o melhor valor é obtido
apenas na 30ª geração com utilidade = 6,5.
A Figura 2(d) apresenta os experimentos do agente RM_Parcial. Na utilização do
algoritmo NSGA-II, o melhor valor da função é obtido na 26ª geração com utilidade =
13,1. Na utilização do algoritmo SPEA2, o melhor valor da função é obtido na 8ª geração
com utilidade = 11,9. Na utilização do PAES, o melhor valor é obtido na 12ª geração com
utilidade = 9,9. Para o algoritmo MOCell, o melhor valor é obtido na 30ª geração com
utilidade = 12,3. Nesse experimento, o NSGA-II foi o algoritmo que obteve o melhor
resultado, seguido pelos algoritmos MOCell e SPEA2 e com o pior desempenho, o
algoritmo PAES.
6. Conclusões
Esta pesquisa apresentou a aplicação de um agente testador orientado por uma
função utilidade e pelas estratégias de busca local dos algoritmos evolucionários
multiobjetivos (MOEAs) baseadas em populações para encontrar conjuntos de casos de
teste satisfatórios para o problema de otimização de seleção de casos de teste.
Com os resultados obtidos por meio dos quatro experimentos para cada algoritmo, a
viabilidade da utilização da estratégia NSGA-II que identificou, em média, maiores
situações de casos de teste em que o agente obteve um maior valor da função Utilidade, ou
seja, piores desempenhos. Em segundo lugar ficou o algoritmo SPEA2 que conseguiu
atingir um desempenho acima das demais técnicas implementadas, o que a credenciou
como uma boa técnica de otimização para o problema estudado juntamente com NSGA-II.
O algoritmo evolutivo MOCell obteve o terceiro melhor desempenho e o algoritmo PAES
foi o algoritmo com o pior desempenho que obteve em média, o menor valor da função, se
mostrando uma opção ineficiente na geração de casos de testes para essa problemática.
Assim, o agente testador selecionou um conjunto de casos de teste satisfatório em
termos dos resultados gerados sobre o desempenho irregular do agente, principalmente com
a utilização dos algoritmos NSGA-II e SPA2. Dessa forma, a utilização do elitismo pelos
algoritmos NSGA-II e SPA2, tem como objetivo, prevenir a perda do melhor caso de teste
encontrado em uma geração anterior. Com base nesses resultados, a abordagem possibilita
informações que possam realizar mudanças objetivas na estrutura interna do agente de
forma a melhorar seu desempenho, ressaltando a importância dessa pesquisa, tanto na área
de Inteligência Artificial (IA) como de Engenharia de Software (ES).
172
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
173
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Campus Maracanaú – Instituto Federal de Educação, Ciência e Tecnologia do Estado do
Ceará (IFCE)
CEP: 61.939-140 – Maracanaú – CE – Brasil
{leonardo.costa, mateus.moura, hericson.araujo}@ppgcc.ifce.edu.br,
{zyhazz, manuel.ifce, dcastro.infor, raullmello, sandro.juca}@gmail.com
Abstract. Air conditioning equipment are widely used in homes and public
offices. Its use contributes considerably to the value of the energy bill, which
can represent half of the total electricity consumption. In this sense, an IoT
platform was developed consisting of AutoCast - low-cost equipment to control
air conditioners in an automated and non-invasive way through infrared - and
SystemCast - Web application responsible for managing via internet or
intranet air conditioners . The HTTP and MQTT communication protocols
were used for communication between SystemCast and AutoCast. The
proposed platform was tested and validated in a computer lab. An AutoCast
was used to simultaneously control two air conditioners.
Resumo. Equipamentos condicionadores de ar são amplamentes utilizados em
residências e repartições públicas. Sua utilização contribui consideravelmente
no valor da conta de energia, podendo representar metade do consumo total
de energia elétrica. Nesse sentido, foi desenvolvida uma plataforma IoT
constituída por AutoCast – equipamento de baixo custo para controlar
aparelhos de ares-condicionados de forma automatizada e não invasiva por
meio de infravermelho – e pelo SystemCast – aplicação Web responsável por
gerenciar via internet ou intranet condicionadores de ar. Os protocolos de
comunicação HTTP e MQTT foram utilizados para comunicação entre o
SystemCast e o AutoCast. A plataforma proposta foi testada e validada em um
laboratório de informática. Um AutoCast foi utilizado para controlar
simultaneamente dois ares-condicionados.
1. Introdução
Aparelhos ares-condicionados split system são amplamente utilizados em residências,
edificações comerciais e repartições públicas. Buscando melhorar a qualidade de vida
[Pontes et al. 2017] ou atender à legislação [BRASIL 2007], muitos recorrem à sua
utilização a fim de possibilitar um melhor controle da climatização dos ambientes.
Seu uso pode representar um valor significativo no consumo de energia de uma
residência: segundo Almeida (2016), o consumo médio mensal em residências pode
alcançar até 21% na conta de energia, que equivale a 200 reais considerando um
ar-condicionado de 10.000 BTU ligado diariamente por um intervalo de 8 horas. Já em
174
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
prédios públicos, é estimado que o uso de sistemas de refrigeração contribua com cerca
de 48% [Magalhães 2002].
Um fator agravante é o desperdício decorrente do controle manual e individual
dos condicionadores de ar. Repartições em que convivem uma grande quantidade de
pessoas são propensos a possuírem aparelhos ligados desnecessariamente. Além do
aumento da conta de energia, problemas de suprimento da demanda de energia elétrica
pode se tornar uma realidade quando se tem um consumo excessivo proveniente dos
ares-condicionados [Pires 2005].
Um dos caminhos buscados para a redução de desperdícios é através de
automação e monitoramento [Urzêda 2010]. Aplicações na automação industrial
oferecem formas de controle através de Sistema Digital de Controle Distribuído
(SDCD). Mais recentemente, o advento da Internet das Coisas (IoT) trouxe a automação
para ambientes residenciais (domótica) e comerciais, buscando trazer comodidade
[Morales 2011].
Entretanto, ainda de forma comum, tais alternativas necessitam que
equipamentos possuam o suporte à tecnologia empregada [Ribeiro 2016], são
economicamente proibitivas para residências e entidades, ou são invasivas –
necessitando adaptações na infraestrutura do ambiente para que seja possível o controle.
Buscando oferecer uma alternativa viável, é proposto neste artigo o AutoCast,
um sistema embarcado de baixo custo – composto por hardware e software – para
controle não invasivo de ares-condicionados através de infravermelho (IR). Além disso,
foi desenvolvido o SystemCast, um sistema Web para o acompanhamento e controle
remoto via MQTT de ambientes que utilizam AutoCasts.
O desenvolvimento deste trabalho foi composto pelas seguintes etapas: (i)
análise bibliográfica de trabalhos relacionados; (ii) seleção de equipamentos, estudo do
protocolo e construção do hardware para controle dos ares-condicionados (iii);
desenvolvimento do sistema para gerenciamento remoto; e, (iv) testes para
comprovação da funcionalidade e da usabilidade.
2. Trabalhos relacionados
Esforços aplicados em automação residencial (domótica) buscam oferecer novas formas
de interação em equipamentos já presentes no lares bem como proporcionar conforto ao
manipulá-los remotamente [Lima 2015]. Aplicar conceitos de domótica, além de poder
trazer conforto, segurança e praticidade, pode tornar-se um aliado na redução de gastos
desnecessários em recursos como água e energia [Bolzani 2007].
Sob uma perspectiva de automação em repartições públicas, a fácil interação
entre dispositivos como sensores, atuadores, displays, câmeras de vigilância, veículos,
possibilita a obtenção de uma grande variedade de dados para análise, monitoramento e
segurança [Kulkarni 2017].
Nesse sentido, vários projetos têm sido desenvolvidos nos últimos anos. Piyare
(2013) propôs um sistema de controle e monitoramento de luzes, sensores de
temperatura e de corrente utilizando um Web service baseado em RESTful sobre um
Arduino Uno conectado à rede utilizando shield ethernet. Para o gerenciamento dos
sensores e equipamentos eletroeletrônicos, foi desenvolvido um aplicativo na
plataforma Android.
175
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Desenvolvimento
A partir do estudo bibliográfico orientado pela problemática de desperdício de energia,
o objetivo do projeto foi definido: desenvolver um sistema não intrusivo que permita
controle remoto centralizado, de forma que promova comodidade aos que utilizam-se da
plataforma e auxilie no gerenciamento para economizar energia,.
Para alcançá-lo, foi desenvolvido um sistema para controle de
ares-condicionados remotamente de fácil instalação (Figura 1). Este é dividido em duas
partes: AutoCast (aparelho para controle de equipamentos de ar de forma não intrusiva)
e SystemCast (sistema Web para gerência remota de AutoCasts).
Figura 1. Elementos participantes do projeto: (a) dispositivos clientes para
controle remoto, (b) servidor SystemCast, (c) AutoCast e (d) equipamentos
controlados.
3.1. AutoCast
AutoCast é um sistema embarcado gerenciado remotamente para controle de
condicionadores de ar através da transmissão de comandos IR. O equipamento é
composto por três partes: microcontrolador com acesso à rede Wi-Fi, módulo de
transmissão e módulo de captura.
Dentre as alternativas de sistemas embarcados para a construção do projeto, foi
escolhido o ESP8266, um microprocessador de 32 bits com pinos de entrada e saída
digitais e analógicas e suporte a conexão Wi-Fi (Figura 2 - B) [Molloy 2016]. O
176
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 2. Esquema interno de controle infravermelho do AutoCast.
Figura 3. LEDs dos Módulos de Transmissão e de Captura do AutoCast em
destaque. Versão protótipo do AutoCast.
177
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3.2. SystemCast
Figura 4. Esboço de telas do SystemCast.
O sistema proposto pode ser utilizado como plataforma online, onde clientes
cadastram os equipamentos na internet. E modo intranet, onde um servidor é
configurado para controlar equipamentos da rede interna.
178
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
devem ser de mesma marca e, preferencialmente, de mesmo modelo para que não haja
incompatibilidade de protocolos.
179
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
180
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Mercier, A. (2015). Universal infrared adapter for air conditioners. PhD thesis. Upp-
sala University, Disciplinary Domain of Science and Technology, Mathematics and
Computer Science, Department of Information Technology.
Molloy, D. (2016). Wireless communication and control. Exploring Raspberry Pi, pages
535–575.
Morales, G. (2011). La domótica como herramienta para un mejor confort, seguridad y
ahorro energético. Ciencia e Ingeniería, pages 39–42.
Mozilla. (2017). Web Thing API. W3C Member Submission 24 July 2017. Disponível
em: http://iot.mozilla.org/wot/. Acesso em: 01 de agosto de 2017.
Pires, L., Silva, P. D., and Castro Gomes, J. (2005). A importância do consumo
energético dos edifícios na europa: soluções propostas para a sua redução.
Universidade da Beira Interior, Covilhã, Portugal.
Piyare, R. (2013). Internet of things: ubiquitous home control and monitoring system
using android based smart phone. International Journal of Internet of Things,
2(1):5–11.
Pontes, V. V., Silva, A. M. H. L. D., Ramos, A. C. P., de Oliveira, M. B., and Jardim,
M. R. (2017). Qualidade de vida no trabalho: O caso de uma indústria gráfica em juiz
de fora-mg. Anais-CAT, 2(1).
Ribeiro, T. J. de A., O. S. C. (2016). Projeto de um gateway para automação residencial.
Revista de Engenharia e Pesquisa Aplicada, 1(1).
Souza, M. V. d. (2016). Domótica de baixo custo usando princıṕ ios de iot. Master’s
thesis, Brasil. Mestrado Profissional em Engenharia de Software) - Instituto
Metrópole Digital, Universidade Federal do Rio Grande do Norte, Natal.
Urzêda, C. C. d. (2010). Software scada como plataforma para a racionalização
inteligente de energia elétrica em automação predial. Master’s thesis, Universidade
de Brasília, Brasília. Mestrado em Engenharia Elétrica.
Vicenzi, A. (2015). Bustracker: Sistema de rastreamento para transporte coletivo.
Monografia de Centro de Ciências Exatas e Naturais - Curso de Ciência da
Computação – Bacharelado.
181
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1
Colégio Técnico de Floriano – CTF/UFPI
Rodovia BR 343, Km 3,5, S/n - Meladão, Floriano - PI, 64808-605
[email protected], [email protected],
[email protected], {bernanr7, otavioguimaraes999,
[email protected]}
1. Introdução
A cada dia fica mais difícil encontrar hardwares e softwares livres de baixo
custo e fácil acesso, que sejam rápidos e confiáveis. Os sistemas de automação ou
domótica como também é conhecido, estão em constante crescimento e atuam em várias
áreas.
Uma preocupação recorrente desta tecnologia tem sido o desenvolvimento de
sistemas inteligentes e automatizados com o intuito de facilitar a vida das pessoas. Mas
nem todo usuário pode possuir esse sistema, por não ter condições relativamente
182
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
financeiras para mantê-lo (CARDOSO, 2014). Existe um interesse por domótica pela
sociedade com vistas a melhorar a qualidade de vida, tornando-a mais prática. Porém,
devido aos custos relativamente altos, a sua popularização ainda não é uma realidade
(STOPPA, et al. 2013).
STOPPA et al. (2013) complementa que, usuários tem interesse pela tecnologia,
mas os custos relativamente altos ainda atrapalha a sua utilização. A automação não
deve ser vista sob a concepção de luxo, mas sim como uma melhoria na vida de seus
usuários e maior rendimento no ambiente de trabalho.
Visando automatizar o acionamento da sirene de um Colégio Técnico vinculado
a Universidade Federal do Piauí - UFPI, sirene esta responsável por sinalizar o começo e
o fim das aulas, a plataforma Arduino foi adotada por ser uma solução tecnológica de
baixo custo e de fácil acesso, que possui hardware livre e vários componentes
eletrônicos que podem ser adicionados a ela. O que motivou o trabalho foi a busca por
um sistema de automação de sirene escolar de baixo custo e de fácil acesso, que pudesse
ser implantado nas escolas técnicas vinculadas à UFPI, haja visto que, não foram
encontradas sirenes automatizadas nas referidas escolas.
2. Plataforma Arduino
A plataforma Arduino é uma tecnologia open hardware e utiliza um
microcontrolador da família AVR, e um dos seus objetivos é tornar as aplicações
técnicas de eletrônica e programação mais simples e intuitivas. Com ela, podem-se
monitorar sensores, comunicar com computadores e celulares e, inclusive, pode-se
controlar algumas funções como ligar e desligar lâmpadas, abertura de fechaduras
elétricas, leitura de sensores, etc (NOGUEIRA, et al. 2013).
Existem vários modelos de Arduino no mercado e o escolhido para o
desenvolvimento do protótipo foi o modelo uno R3, ver Figura 1.
183
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
184
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
185
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Considerações finais
Durante a fase de teste o protótipo apresentou um bom funcionamento mesmo
com falta de energia elétrica, a hora e a data não foram atrasadas ou adiantadas. Todos
os horários das aulas foram sinalizados normalmente sem atrasos conforme foram
definidos na programação. Por tanto, pode-se concluir que o protótipo apresenta uma
solução viável e de baixo custo para automação das sirenes dos colégios técnicos
vinculados à UFPI.
186
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
STOPPA, Marcelo Henrique et al. Domótica: Uma Solução Para A Vida Moderna -
Automação Residencial Com Controle Via Web. Revista Ceppg, Catalão-, v. 28, p.71-
84, 2013.
187
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
{junior sousa95,patymedy}@hotmail.com
Abstract. Glaucoma is a disease developed in the region of the optic disc by the
increase of the intraocular pressure that causes the loss of the vision of progres-
sive form. It is of the utmost importance that glaucoma be identified early to
facilitate treatment. Computer vision through digital image processing techni-
ques has been developing methods for automatic detection of glaucoma. In this
research a method was applied applying the extraction of red, green and blue
channels into retinal images using the k-means algorithm for the segmentation
of the optical disc and then the extraction of characteristics addressing index
descriptors of phylogenetic diversity indexes and finally the attributes with mul-
tiple classifiers were classified. The results were significant with highlight to the
classifier textit Random Forest, presenting a Sensitivity of 75.4 %, Specificity of
86.6 % and Accuracy of 77.5 %.
1. Introdução
O glaucoma é uma doença silenciosa caracterizada quando a pressão intraocular é ele-
vada devido o canal de circulação do lı́quido Humor Aquoso ser subitamente obs-
truı́do. A patologia é a segunda maior causa de cegueira irreversı́vel no mundo, es-
tudos revelam que em 2020 mais de 79 milhões de pessoas poderão ser portadores do
glaucoma[Ayub et al. 2016]
188
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
Esta seção é voltada para abordagens de alguns trabalhos da literatura desenvolvidos com
outros métodos para detecção automática do glaucoma, de forma a analisar cada metodo-
logia utilizadas.
No trabalho de Firdausy e Oktoeberza (2016), os algoritmos de Asghari e Jalali
foram usados para detectar o DO. O projeto é dividido em três etapas, a primeira trata-
se do pré-processamento, onde é feito a extração dos canais Red, Green e Blue (RGB).
Em seguida o canal Red é escolhido para outros processamentos, logo após efetuada a
segmentação utilizando as imagens da base Drishti no canal Red, para separar o DO do
restante da imagem e por ultimo a avaliação e classificação onde o valor preditivo positivo
resultou em 97.74%.
Em Santos et al (2015) a metodologia foi desenvolvida apenas com canal ver-
melho para melhorar a qualidade da segmentação. No estudo foram usadas três bases
públicas: RIM-ONE, Drishti e DRIONS-DB. Na segmentação foi necessário encontrar o
centro do DO para que pudesse traçar uma circunferência ao redor DO onde acontece o
glaucoma. Quando comparada a segmentação das três bases a que apresentou os resulta-
dos mais satisfatórios foi a RIM-ONE obtendo uma acurácia de 83%.
Em Salam et al (2017), a metodologia de estudo teve como objetivo a detecção au-
189
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
tomática do glaucoma. Durante o projeto foram aproveitadas imagens das bases STARE,
DRIVE, HRF e MESSIDOR disponı́veis publicamente. A principio as imagens foram
cortadas para reduzir processamento, logo após feita a segmentação para detecção do
DO e determinado um valor do Hue Saturation Value (HSV), novamente foi aplicada
outra segmentação para encontrar o copo óptico em busca de avaliar a progressão do
glaucoma, que quando avaliada a técnica, resultou em 25 imagens glaucomatosas e 72
imagens saudáveis classificadas corretamente, obtendo uma especificidade de 0,98, sen-
sibilidade em 0,92 e acurácia de 97,0% de precisão.
A metodologia aplicada por Pinheiro et al. (2015), foi segmentar a região de
interesse utilizando os canais Red, Green e Blue (RGB), em conjunto com algoritmo K-
means separando em 5 clusters para definir a área do DO e melhorar a segmentação. Na
validação dos resultados foi utilizado o classificador F-scores chegando a uma porcenta-
gem de acurácia em 91,75%.
Em relação aos trabalhos, observa-se a necessidade de melhorar os resultados em
Pinheiro et al. (2015), pois as manchas em volta dos pixels do DO não foram removidas,
visto que ocorreu uma má segmentação de forma a alterar os resultados. Já em Santos e
Veras (2012) a utilização de poucas imagens atrapalha na fidedignidade dos métodos. A
proposta da metodologia é desenvolver um método automático para a detecção do glau-
coma usando o algoritmo k-means em as duas bases RIM-ONE e Drishti, afim de obter
maior veracidade nos resultados, em relação aos encontrados na literatura, com finalidade
de auxiliar os especialista com resultados significativos, facilitando o diagnóstico precoce
do glaucoma.
3. Materiais e Métodos
A metodologia proposta tem como objetivo aplicar os canais red, green e blue para seg-
mentar a região do DO com o algoritmo k-means e extrair as caracterı́sticas usando des-
critores de textura baseados em Índices de Diversidade Filogenética para avaliar que canal
obteve melhor desempenho na detecção automática do glaucoma.O projeto desenvolvido
foi separado em 4 fase, como ilustra o fluxograma da Figura 1.
190
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Aquisição de Imagens
O método desenvolvido utilizou as bases RIM-ONE e Drishti, onde foram aproveitadas
245 imagens da retina, sendo 149 são de olhos saudáveis e 96 de glaucomatosos, são
bases publica fornecida por três hospitais: Hospital Universitário de Canarias, Hospital
Clı́nico San Carlos e Hospital Universitário Miguel Servet. Para diminuir o tempo de
processamento as imagens da base Drishti foram cortadas em forma de um retângulo,
como mostra na Figura 2.
5. Segmentação
Devido ao glaucoma surgir na região do DO, é essencial a segmentação da área do DO,
afim de, não influenciar na extração das caracterı́sticas [Firdausy and Oktoeberza 2016].
Com a necessidade em separar o DO do restante da imagem, foi aplicado o algoritmo
k-means, por operar dividindo uma imagem em múltiplos clusters.
A técnica de agrupamento tem sido amplamente utilizada em visão computaci-
onal, por meio da segmentação de imagens. O objetivo e agrupar conjuntos de amos-
tras de imagens cujas caracterı́sticas são semelhantes, bem como separar as imagens
diferentes. K-means é um dos mais utilizados e simples dos algoritmos de agrupa-
mento, é o método mais adequado para agrupamentos em reconhecimento de padrões
[Kulshreshtha et al. 2017].
O k-means é um algoritmo de aprendizado não-supervisionado que busca orga-
nizar grupos com base nos valores médios da distância euclidiana entre os atributos das
diversas áreas contidas em uma imagem [Andrade et al. 2016].
Durante o processo de segmentação as imagens foram divididas em dois clusters,
sendo uma classe com a região de interesse e a outra com o fundo do olho e os vasos
sanguı́neos. O objetivo é isolar a região do DO para extrair as caracterı́sticas a fim de não
interferir nos resultados obtidos, por influencia de pixels externos. Como mostra a Figura
3 usando a base RIM-ONE e a Figura 4 utilizando base Drishti.
191
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Extração de Caracterı́sticas
Tradicionalmente, os ı́ndices baseados na riqueza e abundância de espécies foram usados
para quantificar a biodiversidade de um ecossistema, onde esses ı́ndices são baseados na
contagem e não são responsáveis pela diversidade genética [Hickey et al. 2011]
Os Índices de Diversidade Filogenética (IDF) são utilizado na ecologia para cal-
cular a biodiversidade em um ecossistema, onde são usadas métricas de grupamento em
setores de uma área, para estimar a diversidade de uma população na qual cada elemento
pertence a uma única comunidade.
Nos IDFs Phylogenetic Diversity (PD) é calculado o somatório dos comprimentos
dos ramos de cada classe e B é o número de ramificação da árvore, Li é comprimento do
ramo e Ai é a abundância média de classes que compartilham ramos, como mostrada na
Equação 1.
PB
Li Ai
BX Pi B (1)
i Ai
192
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
S
X
mi n (dmn ) am (3)
m
ntrC − Σc
P SV = = 1 − 0c (4)
n (n − 1)
P SR = nP SV (5)
7. Classificação e Resultados
Após extrair as caracterı́sticas de textura, realizou-se a etapa de classificação dos atribu-
tos. Como o framework WEKA contém um conjunto de algoritmos para aprendizado de
máquina, foram utilizados os classificadores Random Forest, Random Commitee, Random
Tree e J48 . A classificação foi especificada manuseando os parâmetros com os valores
padrões utilizando a validação cruzada k-folds, onde k = 10, sendo 9 grupos para treino e
um grupo de teste, para no final ser gerado uma média.
As métricas de avaliação dos resultados foram, a Sensibilidade, que é a capaci-
dade de um teste diagnóstico identificar os verdadeiros positivos nos indivı́duos verdadei-
ramente doentes, Especificidade, que calcula capacidade de um teste de diagnóstico iden-
tificar os verdadeiros negativos nos indivı́duos verdadeiramente saudáveis e Acurácia, que
determina a proporção de acertos, os olhos verdadeiros positivos e verdadeiros negativos
[Araújo et al. 2017].
Os resultados obtidos na classificação aplicando apenas o canal blue para a
detecção automática do glaucoma são exibidos na Tabela 1. Apresentando o melhor re-
sultado com o Random Forest com Sensibilidade de 70,8%, Especificidade em 83,5% e
Acurácia de 51,5%.
193
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
os mais expressivos foram obtidos com o Random Forest, onde conseguiu uma Sensibili-
dade de 75,4%, Especificidade em 86,6% e Acurácia de 77,5%.
8. Conclusão
Este trabalho apresentou uma metodologia para detecção automática do glaucoma em
imagens da retina de fundo do olho segmentando região do DO onde o glaucoma se
manifesta, em seguida foi extraı́da as caracterı́sticas de textura baseados nos IDF, que
194
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
usa métricas de agrupamento para calcular a diversidade em uma imagem onde cada pixel
pertence a uma única classe. Os testes de detecção do DO foram realizados em duas bases
de imagens distintas. A segmentação trouxe bons resultados, satisfazendo as expectativas,
onde destaca-se o canal green com o melhor resultado apresentando uma Sensibilidade
de 75,4%, Especificidade em 86,6% e Acurácia de 77,5%.
Para trabalhos futuros pretende-se aplicar um pre-processamento para melhoras
aquisição das imagens e a aplicação de outros descritores e implantar abordagem baseadas
em Deep Learning, com finalidade em melhorar os resultados.
Referências
Andrade, E. d. O., Sampaio, I. G., Viterbo, J., da Silva, J. M., and Boscarioli, C. (2016).
Identificação de perfis de consumo domiciliar de energia elétrica a partir de algoritmos
de agrupamento.
Araújo, J. D. L., de Paiva, A. C., De Almeida, J. D., Neto, O. P. S., de Sousa, J. A., Silva,
A. C., and Júnior, G. B. (2017). Diagnóstico de glaucoma em imagens de fundo de
olho utilizando osı́ndices de diversidade de shannon e mcintosh.
Ayub, J., Ahmad, J., Muhammad, J., Aziz, L., Ayub, S., Akram, U., and Basit, I. (2016).
Glaucoma detection through optic disc and cup segmentation using k-mean clustering.
In Computing, Electronic and Electrical Engineering (ICE Cube), 2016 International
Conference on, pages 143–147. IEEE.
de Oliveira, W. E. B. and Fernandes, S. R. (2016). Classificação de padrões em ima-
gens utilizando descritores de textura-pattern classification in images using descriptors
of texture. Multiverso: Revista Eletrônica do Campus Juiz de Fora-IF Sudeste MG,
1(1):17–24.
Firdausy, K. and Oktoeberza, K. W. (2016). Segmentation of optic disc using dispersive
phase stretch transform. In Engineering Seminar (InAES), International Annual, pages
154–158. IEEE.
Hickey, G., Blanchette, M., Carmi, P., Maheshwari, A., and Zeh, N. (2011). An appro-
ximation algorithm for the noah’s ark problem with random feature loss. IEEE/ACM
Transactions on Computational Biology and Bioinformatics, 8(2):551–556.
Kulshreshtha, D., Singh, V. P., Shrivastava, A., Chaudhary, A., and Srivastava, R. (2017).
Content-based mammogram retrieval using k-means clustering and local binary pat-
tern. In Image, Vision and Computing (ICIVC), 2017 2nd International Conference
on, pages 634–638. IEEE.
Maheshwari, S., Pachori, R. B., and Acharya, U. R. (2017). Automated diagnosis of
glaucoma using empirical wavelet transform and correntropy features extracted from
fundus images. IEEE journal of biomedical and health informatics, 21(3):803–813.
Pinheiro, A. F., Almeida, J. D., Júnior, G. B., and Silva, A. C. (2015). Metodologia
computacional para detecç ao automática do glaucoma em imagens de fundo de olho.
195
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
{edsondamasceno11,ferreiraviniciussdi,rocaleal98,francsilva10}@gmail.com
1. Introdução
As doenças dos olhos e do sistema visual podem deixar sequelas que variam desde
uma discreta diminuição da acuidade visual até a perda total da visão [WHO 2012].
Segundo dados do World Health Organization (WHO) (2012) e do Vision 20201 , a cada
cinco segundos, uma pessoa se torna cega no mundo. Além disso, do total de casos de
cegueira, 90% ocorrem nos países emergentes e subdesenvolvidos. Estima-se que, até
2020, o número de pessoas com deficiência visual poderá dobrar no mundo.
1
Vision 2020: www.iapb.org/vision-2020/
196
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
197
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Background
Esta seção é voltada para a apresentação de conceitos necessários ao entendimento
do trabalho. A segmentação envolve a divisão dnotepade imagens em subseções que
são de particular interesse [Ballard and Brown 1982]. Os algoritmos de segmentação
de imagens podem ser várias, dentre elas, destacam-se o Threshold (algoritmo Otsu) e
Clustering (algoritmo K-means). Ambos algoritmos são descritos a seguir.
Figura 1. (A) Imagem normal, em (B) limiarização de Otsu e em (C) imagem so-
breposta
3. Experimento
Nesta seção, descrevem-se as informações e configurações do experimento investiga-
tivo realizado. A intenção é conseguir estipular o impacto de cada fator (Algoritmo de
Segmentação, Tamanho da Imagem e Tonalidade da Imagem) à fim de reportar a con-
figuração com superior eficiência de tempo na segmentação de imagens da retina. A
Tabela 1 apresenta os fatores e níveis para combinação e análise.
198
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 2. (A) Imagem normal, em (B) com limiarização K-means e em (C) imagem
sobreposta.
A base de imagens utilizada foi a RIM-ONE [Trucco et al. 2013], que é formada
por 169 imagens (com diversas resoluções) de retina dos hospitais: Hospital Univer-
sitário de Canarias, Hospital Clínico San Carlos e Hospital Universitário Miguel Servet
[Fumero et al. 2011]. Para a pesquisa proposta, utilizou-se 30 imagens com resoluções
400 × 400, e 800 × 800 em tons de Cinza e RGB. O Design of Experiments (DoE) foi apli-
cado para conhecimento dos efeitos de variações dos fatores estudados sobre o Tempo
de Execução.
3
Biblioteca Timeit: https://docs.python.org/3/library/timeit.html
199
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
200
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Trabalhos Relacionados
Esta seção apresenta os trabalhos relacionados ao presente estudo. Para melhor visu-
alização a Tabela 3 elenca dois fatores comparativos: DoE e Fator de Análise. A seguir
estes fatores são comentados.
201
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Fator de Análise: Este fator refere-se à variável dependente do estudo. O nosso tra-
balho focou em tempo de execução, ou seja, o tempo de resposta do sistema.
Alguns trabalhos relacionados focaram em precisão [Estrada and Jepson 2009,
Estrada and Jepson 2005]; outros focaram em coeficientes diferenciados como
o coeficiente Jaccard [Ge et al. 2007, McGuinness and O’connor 2010]. Ao con-
trário da nossa proposta os estudos relacionados não exploraram o tempo
de execução como um todo em um sistema distribuído; apenas estudaram o
tempo de computação [Diyana et al. 2003] ou exploraram a complexidade do
tempo em um módulo específico do sistema [Kajla and Bansal 2016].
Este artigo apresentou uma Análise de Sensibilidade utilizando DoE sobre fatores que
impactam na segmentação de imagens da retina. Os resultados do DoE demonstra-
ram, matematicamente, que os fatores Algoritmo e Tamanho das imagens possuem
maior impacto sobre o Tempo de Execução do processamento. O fator Tonalidade
(Cinza ou RGB) teve uma discreta influência estatística. A ordem de precedência para
impacto no Tempo de Execução foi: 1º) Algoritmo, 2º) Tamanho da Imagem e 3º) To-
nalidade da Imagem. O nível do fator Algoritmo que teve maior influência no Tempo
de execução foi o Otsu. A utilização de imagens com dimensões 400×400 representou
o tamanho ideal para experimentos de segmentação, em comparação com 800×800. A
Tonalidade RGB apresentou menores tempos de segmentação. Portanto, combinando
os três fatores os níveis com melhor performance foi Algoritmo Otsu + Imagens com
dimensão 400×400 + Tonalidade RGB. Essa combinação representa a melhor configu-
ração para execução de segmentação de imagens. Como trabalho futuro, pretende-se
avaliar a execução de segmentação de imagens em uma Nuvem composta por dis-
positivos móveis com outros servidores disponíveis de forma paralela. É interessante
também abranger outros algoritmos de segmentação de imagens.
Referências
202
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Barbosa Filho, J., Batista, L., Schiabel, H., and Verçosa, L. (2011). Segmentação do
músculo peitoral em imagens mamográficas através do recorte automático de roi e
da binarização de otsu. In VII Workshop de Visão Computacional, pages 190–195.
Diyana, W. M., Larcher, J., and Besar, R. (2003). A comparison of clustered microcalcifi-
cations automated detection methods in digital mammogram. In Acoustics, Speech,
and Signal Processing, 2003. Proceedings.(ICASSP’03). 2003 IEEE International Con-
ference on, volume 2, pages II–385. IEEE.
Estrada, F. J. and Jepson, A. D. (2005). Quantitative evaluation of a novel image segmen-
tation algorithm. In Computer Vision and Pattern Recognition, 2005. CVPR 2005.
IEEE Computer Society Conference on, volume 2, pages 1132–1139. IEEE.
Estrada, F. J. and Jepson, A. D. (2009). Benchmarking image segmentation algorithms.
International Journal of Computer Vision, 85(2):167–181.
Fumero, F., Alayon, S., Sanchez, J. L., Sigut, J., and Gonzalez-Hernandez, M. (2011).
Rim-one: An open retinal image database for optic nerve evaluation. In 2011 24th
International Symposium on Computer-Based Medical Systems (CBMS), pages 1–6.
Ge, F., Wang, S., and Liu, T. (2007). New benchmark for image segmentation evaluation.
Journal of Electronic Imaging, 16(3):033011–033011.
Kajla, S. and Bansal, R. (2016). Efficient improved k means clustering for image seg-
mentation. International Journal of Innovative Research in Computer and Commu-
nication Engineering, 4:10625–10629. DOI: 10.15680/IJIRCCE.2016. 0406057.
MacQueen, J. et al. (1967). Some methods for classification and analysis of multiva-
riate observations. In Proceedings of the fifth Berkeley symposium on mathematical
statistics and probability, volume 1, pages 281–297. Oakland, CA, USA.
McGuinness, K. and O’connor, N. E. (2010). A comparative evaluation of interactive
segmentation algorithms. Pattern Recognition, 43(2):434–444.
Minitab (2017). Designing an experiment. Disponível em: support.minitab.com/en-
us/minitab/17/getting-started/designing-an-experiment. Acesso em: 14/06/2017.
Neves, S. C. M., Pelaes, E. G., and de Sinais, L. d. P. (2008). Estudo e implementação
de técnicas de segmentação de imagens. Revista Virtual de Iniciação Acadêmica
da UFPA-Universidade Federal do Pará–Departamento de Engenharia Elétrica e de
Computação, 1(2).
Nunes, F. L. (2006). Introdução ao processamento de imagens médicas para auxílio a
diagnóstico–uma visão prática. Livro das Jornadas de Atualizações em Informática,
pages 73–126.
Otsu, N. (1979). A threshold selection method from gray-level histograms. IEEE tran-
sactions on systems, man, and cybernetics, 9(1):62–66.
Trucco, E., Ruggeri, A., Karnowski, T., Giancardo, L., Chaum, E., Hubschman, J. P., Al-
Diri, B., Cheung, C. Y., Wong, D., Abramoff, M., Lin, G., Kumar, D., Burlina, P., Bress-
ler, N. M., Jelinek, H. F., Meriaudeau, F., Quellec, G., Macgillivray, T. E., and Dhillon,
B. (2013). “validating retinal fundus image analysis algorithms: Issues and a propo-
sal”. Invest. Ophthalmol. Vis. Sci.
WHO, W. H. O. (2012). Relatório mundial sobre a deficiência. São Paulo: SEDPcD.
203
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A essência da abordagem atual de ensino fundamenta-se no processo tradicional, no qual
o professor age como sujeito ativo, que transmite conhecimentos curricularmente pré-
-estabelecidos, e o aluno torna-se um receptor passivo cujo papel se reserva à ar-
mazenagem das informações a ele apresentadas [Mizukami 1986]. Tal metodolo-
gia tem se mostrado ineficaz, visto que o crescimento da produção de informação
intrı́nseco a ela conduz ao aumento dos currı́culos pedagógicos e do tempo de per-
manência em sala de aula, porém com reduzido compromisso com a didática aplicada
[Donoso-Garcia and Torres 2007].
No âmbito da Engenharia, a questionabilidade desse método se torna mais evi-
dente, em razão da necessidade da absorção de conceitos e integração de conhecimentos,
204
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Portanto, atenta-se ao fato de que, dada a devida observância aos pontos ante-
riormente elencados, o desenvolvimento de projetos torna o ensino mais envolvente e
dinâmico para o aluno, visto que a ele é incumbida uma participação ativa no processo
de aprendizado, que sedimenta os conhecimentos adquiridos e valoriza as habilidades de
trabalho em equipe, criatividade, análise crı́tica e engajamento pessoal.
Neste artigo, retrata-se um estudo de caso referente a disciplina de Eletrônica Digi-
tal, ministrada para o curso de graduação em Engenharia de Computação da Universidade
Federal do Ceará no Campus de Sobral. Aos alunos, no decorrer do perı́odo letivo, foi
imputada a construção de projetos de sistemas eletrônicos, a partir da utilização de lógica
digital, a fim de otimizar a experiência dos mesmos na condução prática da disciplina.
205
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
isto é, após percorrer toda a base teórica daquelas disciplinas iniciais, o estudante é inse-
rido em um ambiente integralmente novo, na qual se supõe a capacidade de manipulação
de componentes e equipamentos não tão intuitivos.
Nessa circunstância, é natural que haja certa dificuldade no manejo de determina-
dos dispositivos eletrônicos por parte do aluno, em virtude da pouca, ou nenhuma, fami-
liaridade com tais instrumentos. Desse modo, é cada vez mais indispensável a adoção de
estratégias pedagógicas que auxiliem na condução prática da disciplina, a fim de atenuar
as dificuldades enfrentadas pelos estudantes e, portanto, otimizar a experiência de apren-
dizado do conteúdo, pois, apesar da simulação de circuitos digitais ser inserida como fer-
ramenta de apoio ao ensino, ela sozinha não é eficaz [Amaral and da Silva Martins 2012].
O programa curricular da disciplina é bastante vasto, compreendendo diversos
conceitos de circuitos eletrônicos importantes para as aplicações cotidianas, de modo
a possibilitar a utilização dos sistemas digitais de forma ampla. Nesse sentido, a pro-
posta da disciplina é introduzir tais conceitos ao estudante, de maneira que lhe seja
possı́vel cumprir os requisitos de projeto, concepção, análise e construção desses circuitos
[Pró-Reitoria do Curso de Engenharia de Computação 2006].
206
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
a cada projeto. Para o primeiro, realiza-se uma avaliação simples, que consta de
apresentação oral acerca do funcionamento do sistema construı́do, com enfoque nos
componentes eletrônicos utilizados. Já com relação ao segundo projeto, utiliza-se uma
avaliação mais rigorosa, baseada nos seguintes quesitos:
3. Projetos Eletrônicos
Nesta seção, são listados três projetos desenvolvidos durante a disciplina de eletrônica
digital nos anos de 2016 e 2017.
207
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Impacto Didático
Conforme definido pelas Diretrizes Curriculares Nacionais para o ensino de graduação
em Engenharia, alguns princı́pios fundamentais são essenciais para a formação de um
engenheiro, entre os quais ressalva-se a necessidade de estı́mulo a atuação crı́tica e criativa
na identificação e resolução de problemas [Brasil 2002]. Nesse sentido, os métodos de
ensino atualmente empregados não conseguem suprir tais necessidades.
A abordagem apresentada neste trabalho se propõe a derrubar a barreira alicerçada
sobre o método tradicionalista, que imputa ao aluno um papel passivo no processo de
ensino. Dessa forma, torna-se possı́vel uma formação acadêmica na qual o indivı́duo é
capaz de produzir seu próprio conhecimento a partir de experiências que simulam o real
ambiente de atuação em que o futuro profissional estará envolvido.
208
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Resultados
A abordagem do ensino orientado a projetos somente passou a ser adotada a partir das tur-
mas do segundo semestre de 2015, após a realização de uma pesquisa sobre a metodologia
de ensino da disciplina de eletrônica digital. Os resultados desta pesquisa mostraram o in-
teresse dos alunos na parte de desenvolvimento de projetos como um método mais eficaz
de ensino e aprendizagem de eletrônica.
A pesquisa foi destinada, exclusivamente, a alunos que cursaram (75,8%) ou es-
tavam cursando (24,2%) a disciplina de Eletrônica Digital até encerramento da pesquisa,
com um total de 91 alunos entrevistados. Os resultados dessa pesquisa podem ser anali-
sados nas Figuras 4 e 5.
3,3%
13,2%
25,3% Nenhuma
Pouco/Baixo
Médio/Regular
27,5%
Muito/Alto
Muitíssimo/Altíssimo
30,7%
209
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2,2%
16,5%
Nenhuma
Pouco/Baixo
Médio/Regular
Muito/Alto
81,3% Muitíssimo/Altíssimo
0 10 20 30 40 50 60
Número de Alunos
Na pesquisa realizada também foi perguntado aos alunos quais as principais difi-
culdades durante as aulas práticas de eletrônica digital. As principais dificuldades listadas
pelos alunos podem ser verificadas na Figura 6. Cada aluno poderia identificar até três
principais dificuldades. Pela análise da Figura 6, percebe-se que as três principais maiores
dificuldades dos alunos são Montagem dos Circuitos, Ausência de contato anterior com
eletrônica e Dificuldade de reconhecer componentes danificados.
Desta forma, nota-se que o desenvolvimento de projetos durante a disciplina de
eletrônica digital é uma maneira satisfatória de solucionar as três principais dificuldades
listadas pelos alunos. O estudante passa a ter maior contato com montagem de circuitos,
entender com maior excelência o funcionamento dos CIs e identificar mais facilmente os
210
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Conclusões
A abordagem do ensino orientado a projetos busca equilibrar teoria e prática por meio
do desenvolvimento de protótipos de sistemas eletrônicos reais. Portanto, por meio desse
método, pretende-se conferir ao estudante a carga teórica necessária para o desenvolvi-
mento desses projetos, de tal forma que não seja preciso memorização de conceitos, mas
sim a compreensão dos mesmos.
A disciplina de Eletrônica Digital é essencial na formação acadêmica de um enge-
nheiro, visto que é, frequentemente, o primeiro contado que o aluno tem com atividades
práticas. Por ser de caráter fundamentalmente tecnológico, tal disciplina possui conteúdo
curricular extenso, que compreende conceitos que permeiam desde a criação de tabelas-
-verdade até a implementação de circuitos.
Nesse contexto, a implementação da abordagem descrita foi executada de tal
forma que semelhante metodologia pode ser aplicada em diferentes áreas do conheci-
mento, especialmente nas de cunho teórico-prático, de forma que seja possı́vel envolver
intensamente os discentes na jornada da Engenharia.
Referências
Amaral, A. M. and da Silva Martins, C. A. (2012). Método de aprendizado de eletrônica
digital baseado em projeto e implementação de sistemas dedicados em hardware.
Brasil (2002). Resolução cne/ces 11/2002, de 11 de março de 2002. Institui
as diretrizes curriculares do curso de graduação em engenharia. Diário Oficial
[da] República Federativa do Brasil, Brası́lia, DF, 11 mar. 2002. Disponı́vel em:
http://portal.mec.gov.br/cne/arquivos/pdf/CES112002.pdf. Acesso em: 21 jul. 2017.
Cavin, R., Joyner, W. H., and Wiggins, V. C. (2003). A semiconductor industry perspec-
tive on future directions in ece education. IEEE Transactions on Education, 46(4):463–
466.
Donoso-Garcia, P. F. and Torres, L. (2007). Ensino orientado ao projeto desafio: uma
experiência para o ensino de controle, instrumentação e eletrônica. In CONGRESSO
BRASILEIRO DE EDUCAÇÃO EM ENGENHARIA–COBENGE, volume 35.
Fink, F. K. (2002). Problem-based learning in engineering education: a catalyst for re-
gional industrial development. World Transactions on Engineering and Technology
Education, 1(1):29–32.
Hoed, R. M. (2017). Análise da evasão em cursos superiores: o caso da evasão em cursos
superiores da área de computação.
LabCenter (2017). Proteus pcb design and simulation software. Disponı́vel em:
https://www.labcenter.com/. Acesso em: 21 jul. 2017.
Mizukami, M. d. G. N. (1986). Ensino: as abordagens do processo. Editora Pedagógica
e Universitária.
Pró-Reitoria do Curso de Engenharia de Computação, C. (2006). Programa da disciplina
de eletrônica digital. Universidade Federal do Ceará - Campus Sobral.
211
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A Internet das Coisas (IoT) é um tema que está se tornando cada vez mais popular em
todo o mundo. Trata-se de um conceito que não só tem o potencial de influenciar nossas
vidas, como também nossa forma de trabalhar [Morgan 2014]. A IoT é um assunto muito
abrangente, mas que de forma simplificada significa conectar dispositivos (ou até mesmo
parte de dispositivos) à Internet e permitir a comunicação entre eles.
Nos últimos anos tem-se visto um crescente desenvolvimento de sistemas de
aquisição e tratamento digital de sinais [SMAR 2017], e estimativas indicam que até
2020 teremos cerca de 50 bilhões de dispositivos conectados à internet [Cisco 2011]. O
monitoramento de sensores é essencial em inúmeras áreas, pois ele é o que possibilita a
automatização de processos delicados que precisam de monitoramento constante. Con-
tudo, os sistemas de monitoramento atuais geralmente lidam com poucos sensores, um
problema que este projeto visa tratar.
O presente trabalho tem como objetivo demonstrar o desenvolvimento de um sis-
tema versátil de aquisição de dados para persistência em nuvem e monitoramento remoto.
212
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Para isso, serão utilizados uma placa microcontrolada SanUSB (com o microcontrolador
PIC18F2550) e um Raspberry Pi. Os dados serão persistidos na plataforma ThingSpeak
e o monitoramento será realizado através de um sistema desenvolvido em PHP, onde as
informações estarão disponı́veis na forma de gráficos. Por se tratar de um sistema uni-
versal para sensores AD, o projeto pode ser facilmente estendido para outras linhas de
pesquisa relacionadas.
Nas próximas seções serão abordados os trabalhos relacionados, os recursos uti-
lizados para o desenvolvimento do sistema e seu funcionamento. Por fim, serão discutido
os resultados, as considerações finais, sugestões e melhorias para trabalhos futuros.
2. Trabalhos relacionados
Foram encontrados outros trabalhos com objetivos similares, envolvendo a aquisição e
monitoramento de dados de sensores para propósitos especı́ficos ou genéricos.
[Andreola et al. 2016] trata da aquisição de dados de sensores para o estudo da
viabilidade de instalação de turbinas eólicas em um determinado local. É utilizado um
microcontrolador da famı́lia PIC, que armazena estes dados em um cartão SD durante o
perı́odo de um ano.
[GALANTE and GARCIA 2014] trata de um sistema para aquisição e
visualização de dados provenientes de um sensor substituı́vel . É baseado em Arduino, e
também armazena os dados em um cartão SD.
[Khera et al. 2016] construiu um sistema de aquisição de dados para monitora-
mento em tempo real de módulos fotovoltaicos e reposicionamento dos mesmos, baseado
na luz solar captada. O sistema é baseado em Arduino e grava os dados obtidos tanto
em uma unidade de armazenamento local como também na plataforma ThingSpeak, por
meio de um modem GSM.
[Mutha et al. 2016] propôs um sistema para a aquisição de dados de diversos sen-
sores relacionados ao ambiente (temperatura, umidade, etc), baseado em Arduino. Os
dados coletados foram armazenados na nuvem, no servidor de IoT Carriots.
Os trabalhos acima apresentam limitações tanto na quantidade de sensores (com
o máximo de 4 em [Mutha et al. 2016]) e na forma de armazenamento (dados na nuvem
são mais acessı́veis que dados salvos localmente, e a plataforma Carriots não é totalmente
gratuita). Este documento propõe um protótipo mais versátil, que além de aceitar mais
sensores pode utilizar locais de armazenamento alternativos e ter seus sensores alterados
com mudanças mı́nimas no código.
3. Recursos utilizados
Esta seção aborda os recursos utilizados no desenvolvimento do sistema: a placa mi-
crocontrolada SanUSB, o Raspberry Pi, os sensores, a ferramenta SanUSB, a biblioteca
WiringPi para utilização do RPi, a ferramenta curl para envio dos dados, a biblioteca
FusionCharts para geração dos gráficos PHP/JavaScript e a plataforma ThingSpeak, uti-
lizada para o armazenamento dos dados.
3.1. Placa microcontrolada SanUSB, Raspberry Pi, e sensores utilizados
O Raspberry Pi (RPi) é um computador de tamanho e custo reduzidos fabricado pela
Fundação Raspberry Pi, que apesar de seu tamanho reduzido possui recursos e funcional-
213
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
214
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
tanto via interface gráfica, como via linhas de comando (o que possibilita a gravação
do microcontrolador diretamente pelo Raspberry Pi, forma utilizada neste projeto). A
eficácia da utilização conjunta do microcontrolador com o RPi está demonstrada em di-
versos artigos, como [Queiroz et al. 2016].
215
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
No projeto é utilizada a conta de um dos autores para os testes, mas qualquer usuário pode
utilizar a sua própria. No momento da criação do canal são geradas duas chaves de API
(leitura e escrita) que podem ser utilizadas em requisições do usuário. Requisições de
leitura retornam os dados do canal em um JSON de fácil compreensão. Uma vantagem
de se utilizar o ThingSpeak ao invés de outra plataforma (como o Carriots) é que todos os
seus serviços são gratuitos. Ainda assim, o uso do ThingSpeak não é obrigatório. Ele pode
ser substituı́do por outra plataforma, ou até mesmo por um servidor local (removendo a
dependência de uma empresa), com mudanças mı́nimas ao código.
4. Funcionamento do Sistema
O projeto é dividido em duas partes (Figura 1): o sistema embarcado Linux para a
aquisição dos dados dos sensores e um sistema PHP para o monitoramento online. O
sistema embarcado é composto pelo PIC (b, lado esquerdo), pelo RPi (b, lado direito) e
pelos sensores utilizados (a), conectados com o auxı́lio de um protoboard e um conjunto
de fios. O sistema online de monitoramento (d) possui uma interface amigável para a con-
sulta dos dados armazenados, além de uma funcionalidade de controle de acesso, onde os
usuários autorizados são armazenados em um banco de dados local.
A alimentação dos circuitos dos sensores é provida pelo RPi. A entrada de leitura
é conectada à uma porta analógica da placa microcontrolada. A Figura 2 mostra o sistema
em funcionamento: placa microcontrolada (A), Raspberry Pi (B), sensores — temperatura
e luminosidade — (C) e LEDs (D).
216
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
lido. Ele está conectado ao RPi via cabo USB para alimentação e gravação, e via serial
(TX e RX) para transferência de dados.
O PIC realiza leituras de cada sensor conectado durante o intervalo de um minuto,
e calcula uma média para cada um deles para eliminar ruı́do e dar estabilidade às leituras.
Após cada leitura, ele usa a conexão serial estabelecida para enviar os dados das leituras
de cada sensor delimitadas por um caractere especial predefinido no código.
Ao receber todas as leituras do minuto, o RPi utiliza funções da biblioteca curl
para enviá-las para um canal do ThingSpeak por meio de uma requisição do tipo POST.
Caso o envio seja feito com sucesso o LED verde é aceso. Caso o envio falhe, o LED
vermelho é aceso e os dados cujo envio falhou são salvos na unidade de armazenamento
do RPi. Estes dados não podem ser automaticamente enviados após a recuperação da
conexão, mas podem ser inseridos em requisições novas e enviados manualmente ao
canal. As Figuras 3 e 4 mostram fluxogramas de ambas as etapas da aplicação.
O sistema PHP desenvolvido tem como finalidade principal a visualização dos
dados adquiridos em forma de gráficos. Além disso, ele possui um controle de acesso às
informações. Os dados podem ser consultados por meio de filtros, onde o usuário pode
informar quais os dias e os horários que ele pretende verificar, e o sistema dá uma opção
de resumir esses dados, calculando uma média dos dados de determinados perı́odos de
tempo.
217
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Resultados
Um dos grandes diferenciais do projeto descrito neste artigo em comparação à outros tra-
balhos encontrados é a quantidade de sensores utilizados (até seis com poucas adições ao
código, podendo se estender até dez — quantidade de portas analógicas na placa micro-
controlada — com adaptações mais extensas). Além disso, o trabalho em conjunto com
o Raspberry Pi possibilita a adição de funcionalidades extras por parte do usuário, além
de uma divisão de responsabilidades entre o PIC e o RPi, tornando mais simples o código
gravado no microcontrolador.
Os sistemas operam da forma esperada, e capturas de tela do sis-
tema de monitoramento estão disponı́veis em uma pasta compartilhada no Drop-
box [Silva and Costa 2017a]. Além disso, foi adicionado um vı́deo no youtube
[Silva and Costa 2017b] do sistema de aquisição em funcionamento, e os códigos de-
senvolvidos estão disponı́veis no GitHub [Silva and Costa 2017c].
6. Considerações finais
Por meio do estudo dos conceitos e de trabalhos similares o objetivo deste projeto foi
atingido com êxito, com todas as partes do sistema funcionando da maneira esperada.
O projeto possui grande potencial de extensão para utilização com uma gama
de sensores, pois uma boa quantidade deles pode ser lida por meio do PIC e seus da-
dos analógicos convertidos para valores digitais, com necessidade de adições mı́nimas ao
código.
E é justamente este potencial de extensão que traz ideias para projetos futuros,
como um sistema que utilize os dados coletados para tomada de decisões, ou um sistema
que automatize o processo de adição/remoção de sensores do sistema de aquisição por
meio de geração de código, tornando as adaptações mais dinâmicas.
218
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Andreola, A. T., Senter, M. J. D., Todero, E. L., and Cardoso, G. (2016). Low cost data
acquisition system for wind prospecting. In 2016 12th IEEE International Conference
on Industry Applications (INDUSCON), pages 1–6.
Cisco (2011). The Internet of Things. http://www.cisco.com/c/dam/en -
us/about/ac79/docs/innov/IoT IBSG 0411FINAL.pdf. Acesso em: 23/07/2017.
GALANTE, A. C. and GARCIA, R. F. (2014). Sistema de aquisição de dados de sen-
sores de baixo custo baseado no Arduı́no. In Congresso Brasileiro de Agricultura de
Precisão, volume 6.
Jucá, S. C., Carvalho, P. C., and Brito, F. (2009). SANUSB: software educacional para o
ensino da tecnologia de microcontroladores. Ciências & Cognição, 14(3).
Jucá, S. C. S. and Pereira, R. I. S. (2017). Aplicações Práticas de Microcontroladores
utilizando Software Livre. Imprima, 1 edition.
Khera, N., Singh, S., Sharma, A., and Kumar, S. (2016). Development of photovoltaic
module tracking and web based data acquisition system. In 2016 2nd International
Conference on Applied and Theoretical Computing and Communication Technology
(iCATccT), pages 100–103.
Microchip (2006). PIC18F2455/2550/4455/4550 Data Sheet.
http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf. Acesso em:
23/07/2017.
Morgan, J. (2014). A Simple Explanation Of ’The Internet Of Things’.
http://www.forbes.com/sites/jacobmorgan/2014/05/13/simple-explanation-internet-
things-that-anyone-can-understand/. Acesso em: 23/07/2017.
Mutha, V. R., Kumar, N., and Pareek, P. (2016). Real time standalone data acquisition
system for environmental data. In 2016 IEEE 1st International Conference on Power
Electronics, Intelligent Control and Energy Systems (ICPEICES), pages 1–4.
Queiroz, T. A. F., Dias, D. L., Araújo, P. H. M., Figueiredo, R. P., and Jucá, S. C. S.
(2016). Sistema Embarcado Linux para Análise de Sensores de Temperatura DHT11
e LM35. ERIPI 2016.
Silva, A. A. M. and Costa, L. S. (2017a). Disponı́vel em:
https://www.dropbox.com/sh/zrkpg4tmwsapd93/AABvs7gp9UqKC0dinsTIWUXLa.
Acesso em: 28/07/2017.
Silva, A. A. M. and Costa, L. S. (2017b). Disponı́vel em:
https://www.youtube.com/watch?v=j68Pd2bpm3M. Acesso em: 28/07/2017.
Silva, A. A. M. and Costa, L. S. (2017c). Disponı́vel em:
https://github.com/Ayrtonms/sistema-de-aquisicao-e-monitoramento. Acesso em:
28/07/2017.
SMAR (2017). Sistemas de Supervisão e Aquisição de Dados.
http://www.smar.com/brasil/artigo-tecnico/sistemas-de-supervisao-e-aquisicao-
de-dados. Acesso em: 23/07/2017.
219
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O glaucoma é uma doença crônica assintomática que devido ao aumento da Pressão Intra-
Ocular (PIO) elevada, causa dano ao nervo óptico e perda periférica irreversı́vel ou total
da visão . Com o nervo óptico lesionado, causa um maior alargamento da escavação ou
Copo Óptico-(CO) se comparado ao alargamento do Disco Óptico-(DO). Apesar de não
possuir cura, o glaucoma pode ser controlado com tratamento adequado e contı́nuo se
detectada a tempo, geralmente no estágio inicial da doença em que raramente apresentam
sintomas e que a lesão do nervo óptico não esteja agravada. O glaucoma está entre as
principais causas de cegueira, atingindo mais de 67 milhões de pessoas, estimando que 6.6
220
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
milhões sejam cegos, sendo um grande problema na saúde mundial ficando atrás apenas
para catarata [Yin et al. 2012].
Para diagnosticar o glaucoma podem ser realizados exames periódicos como: me-
dida PIO, exame de campo visual e exame de fundo de olho. Embora o exame clı́nico seja
o método mais indicado para avaliação do nervo óptico e da camada das fibras nervosas
da retina, existem aparelhos para auxiliar o diagnóstico do glaucoma, dentre eles a Op-
tical Coherence Tomography (OCT), e a oftalmoscopia Heidelberg Retinal Tomography
(HRC). A OCT é um exame complementar utilizado no diagnóstico das doenças da re-
tina, e o HRT é um procedimento utilizado para a observação precisa da cabeça do nervo
óptico. Estes exames apresentam bons resultados no diagnóstico do glaucoma, porém
possuem um custo elevado.
Uma alternativa viável a esses exames são os Computer-Aided Detection
(CAD)/Computer-Aided Diagnostic (CADx). Esses sistemas são ferramentas computa-
cionais para auxiliar e melhorar os diagnósticos médicos através de imagens, propor-
cionando ao especialista uma segunda opinião para apoio a um diagnóstico mais pre-
ciso [Oliveira et al. 2015]. Visando trazer uma solução para o diagnóstico automático
do glaucoma, esse trabalho apresenta um CAD/CADx utilizando a Convolutional Neu-
ral Network (CNN) para localização precisa ROI (Region Of Interest), e descritores de
textura para extração de caracterı́sticas dessa região, trazendo melhorias na quantificação
da patologia. Este trabalho traz contribuições diretas para alguns campos. No campo
da medicina, a contribuição é o desenvolvimento de um sistema automático para di-
agnóstico do glaucoma através de CNN e análise da textura do DO. No campo da ciência
da computação, contribui-se nos seguintes aspectos: a) no uso de CNN para reconheci-
mento preciso do DO, e b) no uso de árvores filogenéticas para caracterização de lesões
no nervo óptico.
2. Trabalhos Relacionados
Nesta seção são apresentados trabalhos que tratam da segmentação automática de imagens
de retina para detecção automática do glaucoma.
Em Chen et al. (2015) os autores desenvolvem uma arquitetura de CNN para ser
capaz de capturar as caracterı́sticas discriminativas que melhor caracterizam os padrões
ocultos relacionados ao glaucoma. A estrutura da CNN adotada contém seis camadas:
quatro camadas convolucionais e duas camadas totalmente conectadas. A saı́da da última
camada totalmente conectada é alimentada para um classificador soft-max para a previsão
do glaucoma. Os resultados mostram a área sob curva ROC de 0.831 e 0.887. No trabalho
de Sevastopolsky (2017) é apresentado uma abordagem para a segmentação automática
do DO e CO que se baseia em Deep Learning utilizando uma modificação da arquitetura
de CNN U-Net. O método atinge qualidade comparável aos atuais métodos de última
geração para a segmentação do DO e CO, superando-os em termos de tempo de previsão.
Os resultados mostram que a segmentação automática do DO pode ser feita com qualidade
comparativa com o humano, entretanto o CO é mais complexo para reconhecer.
Yadav et al. (2014) apresentam um estudo e análise dos recursos de textura em
imagens no fundo de olho e suas variações quando a imagem apresenta incidência do
glaucoma. As caracterı́sticas de textura são localizadas em torno do DO e extraı́das com
a matriz de concorrência. O método de classificação proposto é o uso do classificador de
221
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Metodologia
Esta seção aborda a metodologia proposta neste trabalho para detecção, extração, e
classificação de caracterı́sticas do DO, para diagnóstico automático do glaucoma. A
primeira etapa foi a aquisição de imagens, utilizando três bases de imagens públicas
de fundo de olho. Em seguida, foi utilizada a CNN baseada na arquitetura U-Net
[Ronneberger et al. 2015] para o treinamento com imagens da retina selecionadas para
treino. Após o treinamento, é realizado a segmentação com a CNN sobre as imagens
de teste para localização da ROI. Com a ROI definida, foi realizado a sobreposição da
imagem testada com a máscara que a CNN localizou, para ter somente a região do DO
a fim de facilitar a análise sobre as caracteı́sticas da patologia e diminuir a região a ser
processada. Em seguida foi realizada a extração dos vasos sanguı́neos através de uma
segmentação por limiar. Após essa etapa, foi feita a extração de caracterı́sticas, utilizando
descritores de textura baseados em ı́ndices de diversidade filogenético. E por fim, foi
realizada a classificação usando quatro classificadores, para verificar qual classificador
apresentaria melhor eficácia do método ao diagnosticar o glaucoma.
3.1 Base de Imagens
Neste trabalho são utilizadas três bases de imagens da retina, a RIM-ONE
[Trucco et al. 2013], a DRIONS-DB [Carmona et al. 2008] e DRISHTI-GS
[Drishti-Gs 2014]. Essas são bases de imagens públicas que foram dispostas para
pesquisa, teste e desenvolvimento de soluções computacionais para auxı́lio ao di-
agnóstico do glaucoma. A base RIM-ONE possui 169 imagens sendo 119 de retinas
222
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3.2.1 Arquitetura
223
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
por processador Intel Core I5 64 bits, e 4GB de memória RAM DDR3. Para o treinamento
da CNN, o próximo passo e muito importante é selecionar os dados de entrada para o
treino da rede, pois eles determinam se a taxa de aprendizado foi eficiente ou não. Para
isso, foram selecionadas 235 imagens das três bases, sendo 130 da RIM-ONE, 50 da
DRISHTI-GS, e 55 da DRIONS-DB, deixando as demais para testes.
[Dosovitskiy et al. 2014] relata que as redes neurais convolucionais são eficien-
tes no aprendizado com uma grande quantidade de dados de entrada, presumiu-se que
235 imagens eram poucas para o treinamento. Para aumentar o número de amostras uma
solução encontrada foi rotacionar cada imagem em 45, 90, 135, 225, 270, e 315 graus jun-
tamente com suas máscaras, produzindo assim mais seis novos pares de amostras. Para
a CNN aprender as caracterı́sticas do DO e segmentar imagens da retina para detectar
a ROI, foram passados como parâmetros de entrada para o treinamento as imagens da
retina e suas devidas máscaras, sendo o papel da máscara apontar a classe que deve ser
aprendida, que no caso é toda a estrutura do DO. No treinamento, os pesos dos filtros con-
volucionais foram iniciados aleatóriamente, o número de épocas foi de 20, e o treinamento
foi a partir do zero, ou seja, não foi utilizado nenhum modelo de rede pré-treinado.
3.5 Classificação
Para a classificação foi utilizada a suı́te de algoritmos de mineração de dados e aprendi-
zado de máquina WEKA, usando os classificadores: J48Consolidated, J48, AdaBoostM1
e BayesNet. Esses classificadores foram utilizados por serem robustos no processo de
classificação, apresentando um bom resultado na categorização de padrões do DO.
224
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados e Discussões
Nesta seção são apresentados os resultados obtidos com base na metodologia proposta
neste trabalho em quantificar as imagens em glaucomatosas ou normais com base no
conjunto de imagens selecionadas para teste.
Um teste realizado com 50 imagens da base RIM-ONE, dentre elas, contém ima-
gens da retina normais e com diferentes nı́veis de glaucoma, sendo que essas imagens
não foram utilizadas para treinamento, somente para teste. Com isso desejava-se saber se
após o treino, a segmentação da CNN conseguiria identificar o DO em novas imagens da
retina para garantir que a CNN detectaria a localização correta do DO. Na Figura 1, apre-
senta os resultados sobre as etapas para processamento da ROI. Na Figura 1(a) tem-se a
imagem utilizada para teste. Na Figura 1(b) tem-se a predição feita pela CNN, realizando
a segmentação sobre essa a imagem 1(a), retornando a máscara apontando o DO. Na Fi-
gura 1(c) é ilustrado a sobreposição feita entre 1(a) e 1(b) para ter a ROI isolada em tons
de cinza. Por fim, na Figura 1(d) ilustra a imagem resultante após a extração dos vasos
sanguı́neos, estando apta a ser extraı́das as caracterı́sticas para posterior classificação.
225
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Com o uso de técnicas de PDI e Deep Learning, este trabalho apresentou uma meto-
dologia para detecção automática do DO em imagens da retina, utilizando CNN para
segmentação, descritores baseados em textura para discriminação, e distintos classifi-
cadores para classificação de regiões em imagens da retina em glaucomatosas ou nor-
mais. A análise de imagens da retina utilizando a ROI apresentou resultados eficientes
na categorização de padrões de lesões glaucomatosas, atingindo uma taxa de acerto de
98% de acurácia, sensibilidade de 98%, e especificidade de 95%, na quantificação do
glaucoma. Assim, o referente trabalho tem uma maior relevância na área médica e com-
putacional, pois com o uso dessas novas tecnologias, possibilitam ao profissional da área
recursos para diagnosticar a doença em seu estágio precoce, tornando um meio viável ao
diagnóstico do glaucoma. A partir dos resultados obtidos, pode-se inferir que a utilização
da CNN para detecção da ROI, e descritores baseados na textura das regiões, apresentam
resultados eficazes na classificação do quantificação do glaucoma. O uso de descrito-
res de textura para descrever padrões em regiões de imagens mostrou-se eficiente para a
metodologia proposta.
Referências
Carmona, E. J., Rincón, M., Feijoo, G. J., and Martı́nez, J. M. (2008). “Identification of
the ptic nerve head with genetic algorithms”. artificial intelligence in medicine, Vol.
43(3), pp.243-259.
Chen, X., Xu, Y., Wong, D. W. K., Wong, T. Y., and Liu, J. (2015). Glaucoma detection
based on deep convolutional neural network. In Engineering in Medicine and Biology
226
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Society (EMBC), 2015 37th Annual International Conference of the IEEE, pages 715–
718. IEEE.
Claro, M. L., de Araújo, F. H. D., de Lima e Silva, W., de Moura Santos, L., e Silva,
R. R. V., and Santana, A. M. (2015). Detecção automática do glaucoma por extraçãs
de caracterı́sticas e classificação. XII Simpósio Brasileiro de Automação Inteligente
(SBAI).
de Carvalho Filho, A. O., Silva, A. C., de Paiva, A. C., Nunes, R. A., and Gattass, M.
(2017). Computer-aided diagnosis of lung nodules in computed tomography by using
phylogenetic diversity, genetic algorithm, and svm. Journal of Digital Imaging, pages
1–11.
Dosovitskiy, A., Springenberg, J. T., Riedmiller, M., and Brox, T. (2014). Discriminative
unsupervised feature learning with convolutional neural networks. In Advances in
Neural Information Processing Systems, pages 766–774.
Drishti-Gs (2014). “provided by medical image processing (mip) group, iiit
hyderabad”. Disponı́vel: http://cvit.iiit.ac.in/projects/mip/
drishtigs/mip-dataset2.
Fondón, I., Valverde, J. F., Sarmiento, A., Abbas, Q., Jiménez, S., and Alemany, P. (2015).
Automatic optic cup segmentation algorithm for retinal fundus images based on ran-
dom forest classifier. In EUROCON 2015-International Conference on Computer as a
Tool (EUROCON), IEEE, pages 1–6. IEEE.
Oliveira, F. S. S., de Carvalho Filho, A. O., Silva, A. C., de Paiva, A. C., and Gattass,
M. (2015). Classification of breast regions as mass and non-mass based on digital
mammograms using taxonomic indexes and svm. Computers in biology and medicine,
57:42–53.
Ronneberger, O., Fischer, P., and Brox, T. (2015). U-net: Convolutional networks for
biomedical image segmentation. In International Conference on Medical Image Com-
puting and Computer-Assisted Intervention, pages 234–241. Springer.
Sevastopolsky, A. (2017). Optic disc and cup segmentation methods for glaucoma de-
tection with modification of u-net convolutional neural network. arXiv preprint ar-
Xiv:1704.00979.
Trucco, E., Ruggeri, A., Karnowski, T., Giancardo, L., Chaum, E., Hubschman, J. P.,
Al-Diri, B., Cheung, C. Y., Wong, D., Abramoff, M., Lin, G., Kumar, D., Burlina, P.,
Bressler, N. M., Jelinek, H. F., Meriaudeau, F., Quellec, G., Macgillivray, T. E., and
Dhillon, B. (2013). “validating retinal fundus image analysis algorithms: Issues and a
proposal”. Invest. Ophthalmol. Vis. Sci.
Yadav, D., Sarathi, M. P., and Dutta, M. K. (2014). Classification of glaucoma based
on texture features using neural networks. In Contemporary Computing (IC3), 2014
Seventh International Conference on, pages 109–112. IEEE.
Yin, F., Liu, J., Wong, D. W. K., Tan, N. M., Cheung, C., Baskaran, M., Aung, T., and
Wong, T. Y. (2012). Automated segmentation of optic disc and optic cup in fundus
images for glaucoma diagnosis. In Computer-based medical systems (CBMS), 2012
25th international symposium on, pages 1–6. IEEE.
227
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
I. INTRODUÇÃO
O sistema elétrico de potência (SEP) é visto como grandes sistemas de energia que
englobam a geração, transmissão e distribuição de energia elétrica. Com o passar dos
anos, ele vem ficando cada vez mais essencial para a humanidade e juntamente com isso
cresce também a sua complexidade, devido a diversos fatores, como por exemplo, o
aumento da quantidade de cargas conectadas, a expansão do sistema, a incorporação de
novas tecnologias, aumento das exigências quanto aos índices de qualidade da energia, e
o emprego crescente de Geração Distribuída (GD) dentre outros [DUGAN,2003]. Por
outro lado, questões financeiras, limitadoras da capacidade de investimento das
empresas, estão cada vez mais presentes no contexto dos projetos de planejamento de
sistemas de energia. Como consequência, as empresas que apresentam uma crescente
necessidade de uso de sistemas computacionais para apoio às atividades de
planejamento e operação das suas redes [SANTOS et al, 2010].
Um dos procedimentos associados à operação dos SEPs é a reconfiguração das
redes, principalmente os Sistemas de distribuição (SD), que por serem radiais estão mais
sujeitos às interrupções. Os SDs representam a parte do sistema no qual ocorrem a
maioria das falhas, influenciando na qualidade do serviço, nele também ocorre a maior
228
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
II.DEFINIÇÃO DO PROBLEMA
O problema de reconfiguração de redes é combinatório, pois existindo um sistema de N
chaves, haverá 2𝑁 topologias possíveis. Muitas dessas configurações possíveis são
insatisfatórias, pois não cumprem as restrições de radialidade, ausência de sobrecarga
em equipamentos da rede e das subestações, manutenção dos níveis de tensão dentro
dos intervalos exigidos pela legislação em cada país, ou contém barras desconectadas,
tornando-se topologicamente infactíveis [SCHMDT et al, 2005], [MARQUES et al,
2014].
Para cada configuração deve ser verificada a factibilidade, para determinar se
essa soluções é usável ou não. Mesmo desconsiderando as soluções que não atendem às
restrições, para sistemas de grande porte, ainda assim a quantidade de soluções
possíveis é enorme, bem maior do que uma pessoa seria capaz de visualizar e analisar.O
problema de reconfiguração de redes trata-se de um problema de programação não-
linear inteiro misto, o que faz dos Algoritmos Evolutivos bastante atraente para sua
resolução dentre diversas outras técnicas.
As redes de distribuição são tradicionalmente redes radiais, logo todos os
equipamentos, dispositivos e procedimentos presentes na distribuição foram projetados
para funcionar segundo essa topologia. A Geração distribuída muda essa característica,
pois o fluxo de potência deixa de ter um único sentido, da subestação em direção as
cargas, e passa a ter também a contribuição do gerador conectado à rede, podendo
também reduzir ou aumentar as perdas em um sistema, dependendo do nível de geração,
da sua localização, da demanda de carga e da topologia da rede [AYRES, 2010]. Por
exemplo, caso a geração distribuída exceda os 25% da geração total haverá perdas na
qualidade da energia [ZHU et al, 2005]. Este estudo considerará a presença de geradores
distribuídos e a possibilidade da operação ilhada (isolada da subestação) dos geradores
desde que consigam suportar a carga presente na ilha.
229
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Sistema teste
O sistema de distribuição utilizado nesse trabalho possui 50 barras e opera com
tensão nominal 13,8 KV, frequência de 60 Hz, quatro transformadores, três geradores
distribuídos, carga total de 6,46MW de potência ativa e 3,24MVAr de potência reativa.
O sistema utilizado em [SGUAÇABIA, 2015] foi adaptado, sendo acrescentadas três
linhas, tornando a topologia radial com recurso.
A Figura 1 mostra o sistema após a adaptação, utilizado nos testes, com a
localização das chaves.
230
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
48 39 32 0,053819 0,077077 3 km
231
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Para garantir que todas as barras estivessem com o nível de tensão adequado,
adicionou-se à equação ( I ) um termo que realiza o somatório das barras com nível de
tensão inadequado e penalização (L) de valor 5. Esse valor pequeno foi escolhido pois
ao gerar a população, a grande maioria dos indivíduos deixavam barras fora da tensão
adequada, visto que grande parte dos bits dos indivíduos, inicialmente, possuíam valor
igual a zero, deixando assim barras desenergizadas.
Objetivando a desenergização da linha ou linhas onde a(s) falta(s), foi
adicionado à equação ( I ) um termo que faz a soma do estado da chave conectada a
linha em defeito, ou seja, se a chave da linha com defeito estiver fechada, o valor do
estado é 1 (um) e se a chave estiver aberta, o estado é 0 (zero). Após testes, verificou-se
que o valor de 500 para a penalidade (C) era suficiente para garantir que a linha em que
foi simulada a falta permanecesse desenergizada.
232
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Fonte: Do autor
Agora supõe-se uma outra situação, em que ocorre uma falta dupla, nas linhas 23 e 48.
Os resultados, quanto a queda de tensão, são apresentados a seguir:
TABELA III
CONFIGURAÇÕES ENCONTRADAS PARA AS FALTAS NAS LINHAS 23 E 48.
Para o terceiro caso, foi simulada uma falta na linha 40, que deixou o gerador 3
operando ilhado no sistema. Os resultados, quanto a queda de tensão, são apresentados
a seguir:
TABELA IV
CONFIGURAÇÕES ENCONTRADAS PARA A FALTA NA LINHA 40.
233
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Pode-se perceber que, quando a falta ocorreu na linha 18 (chave 16), em todas
as 5 execuções o algoritmo encontrou a configuração com as chaves 7, 16 e 44 abertas,
representando assim a melhor configuração encontrada para a situação do sistema, com
queda de tensão de 0,0687.
Considerando a falta dupla nas linhas 23 e 48 (chaves 21 e 44), as
configurações obtidas possuem quedas de tensão muito próximas, porém a que
economizará mais, em termos de chaves manobradas, será a configuração que deixará
as chaves 8, 21 e 44 abertas e queda de tensão de 0,0857, pois é necessário apenas abrir
a chave 8 quando as linhas das chaves 21 e 44 tiverem em contingência.
Já para a falta na linha 40 (chave 38), em que houve ocorrência de ilhamento do
gerador 3, a configuração com menor queda tensão foi a que deixou as chaves 5, 16, 22
e 38 abertas e a queda de tensão foi 0,07244876. Com tal configuração, o gerador
trabalhou em boas condições, ou seja, sem sobrecarga.
Para todos os casos a metodologia proposta funcionou adequadamente.
VI. CONCLUSÃO
REFERÊNCIAS
234
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
235
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Ricardo da Silva, Daniela Sena, Rodrigo Leal, Imperes Filho e Francisco Airton Silva
Sistemas de Informação
Universidade Federal do Piauı́ - UFPI
{ricardobrunof,d.c.senna61,rocaleal98,fcoimperes,francsilva10}@gmail.com
Abstract. The beekeeping is explored in many parts of the world with a wide
variety of techniques and technologies. There are computer systems that moni-
tor various health characteristics of hives. Such monitoring can be performed
by sensors that are part of what is called the ”Internet of Things”. In Brazil the
use of these technologies is still limited. the high temperatures in the Northeast
of Brazil causes constant losses in honey production. This work presents a sen-
sitivity analysis focusing on the accuracy of temperature records in hives at the
Piauı́ region. The study made it possible to identify factors that have a greater
impact on the temperature accuracy measured by the system called SISMAC.
Four factors were observed in the 480 experiments applying the Design of Ex-
periments method: (A) Day Period, (B) Sensor Position, (C) Sensor Type, and
(D) Presence of Propolis. The decreasing order of impact was: B, C, D, and A.
The results permit to conclude that the more accurate configuration is positio-
ning the sensor DS18B20 at the central region of the hive. This work certainly
collaborates with studies of IoT in beekeeping field.
236
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A apicultura tem se destacado como uma atividade importante do ponto de vista
econômico, social, ambiental, além de ter extrema importância para a produção agrı́cola,
já que as abelhas realizam a polinização [Freitas et al. 2004]. Segundo pesquisa da
Organização das Nações Unidas para Agricultura e Alimentação (FAO)1 , entre o ano
de 1999 e 2009, o crescimento médio da produção de mel foi de 22% no mundo, com
crescimento de 96% no Brasil.
Abelhas são insetos sensı́veis às mudanças em seu habitat. Seca, calor e frio
podem interferir diretamente na produção melı́fera. A regulação de temperatura (para
situações de calor) é feita pelas abelhas, entretanto, se o calor continuar, as abelhas aban-
donam as colmeias (processo chamado de enxameação). O apicultor deve ter mecanismos
e técnicas que reduzam ou tratem essas ameaças à sua produção [GloboRural 2016].
Na apicultura, tecnologias podem ser usadas para monitoramento de temperatura,
umidade e outras variáveis das colmeias. Com isso é possı́vel identificar problemas que
estejam ocorrendo na colônia e, assim, evitar prejuı́zos como pouca produtividade da
colmeia ou enxameação das abelhas [Murphy et al. 2015]. A Internet das Coisas (Inter-
net of Things - IoT) é um paradigma que interliga inteligência e monitoramento senso-
rial e que pode ser usada para esta problemática [Almeida 2008, Meitalovs et al. 2009,
Eskov e Toboev 2011, Sombra et al. 2013, Stalidzans e Berzonis 2013].
Este artigo procura mitigar a enxameação e perdas de produção usando uma ar-
quitetura IoT denominada SISMAC. Fazendo uso do método Design of Experiments
[Minitab 2017a] combinamos várias configurações de sensores e neste direcionamento
as principais contribuições deste trabalho são:
• Realizar uma Análise de Sensibilidade sobre o impacto de fatores na acurácia de
temperatura na apicultura;
• Identificar a melhor configuração de sensores para obter a temperatura mais ade-
quada em colmeias.
O restante do artigo está organizado em: a Seção 2 discute os conceitos ne-
cessários ao entendimento da proposta; Seção 3 descreve nosso sistema de monitora-
mento de temperatura; Seção 4 descreve o experimento realizado para investigação de
fatores com maior impacto na acurácia da temperatura; a Seção 5 apresenta os trabalhos
relacionados com esta pesquisa e a Seção 6 traça conclusões e trabalhos futuros.
2. Referencial Teórico
Esta seção contextualiza o gênero das abelhas observadas, e os malefı́cios da enxameação.
As abelhas do gênero Apis Mellifera são insetos de origem europeia e africana que se
adaptam com facilidade a diferentes ambientes No Brasil, as condições fizeram com que
essas abelhas tivessem uma ótima adaptação [Oliveira 2010].
As abelhas são importantes para a humanidade e meio ambiente, seja por seus
produtos ou pela polinização. O mel é o principal produto produzido, mas elas produ-
zem também cera, pólen e a própolis. Utilizados na produção de fármacos, cosméticos,
compostos de vitaminas, minerais, fibras e outros [Almeida 2008].
1
Sebrae: goo.gl/33CiP9
237
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
A enxameação por abandono (abandono de colmeias) pode ocorrer por vários mo-
tivos, dentre os quais, destaca-se o calor excessivo como principal influenciador. Quando
a temperatura interna atinge 41o C, as abelhas não conseguem controlar a temperatura in-
terna da colmeia causando, assim, o abandono. No Brasil, essas altas temperaturas têm
trazido grandes prejuı́zos aos apicultores, em especial, aos nordestinos. Portanto, para
obter melhor produção os apicultores devem evitar a enxameação [Almeida 2008].
3. SISMAC
Foi utilizado neste trabalho uma arquitetura IoT denominada SISMAC (Sistema de Mo-
nitoramento Automatizado de Colmeias). A arquitetura do SISMAC é dividida em dois
módulos: O Módulo de Coleta é responsável pela coleta e envio dos dados da colmeia; E
o Módulo de Apresentação que possui a função de processar, armazenar e exibir os dados
coletados.
A Figura 1 apresenta uma ilustração mais detalhada da arquitetura apresentada
anteriormente destacando a interação de sete componentes. Tudo se inicia dentro da col-
meia (1) onde um sensor de temperatura (2) recolhe os dados da colmeia e envia para o
Arduino e Shield Ethernet (3) que interpreta dados e envia informações através da Inter-
net (4) para armazenamento na plataforma Thinger IO (5) e análise na plataforma Keen
IO (6); por fim, os dados são disponibilizados ao cliente (7) em uma aplicação Web e
aplicativo Android.
Ar
dui
no+Shi
ldEt
her
net 5
3
4 Pl
ataf
ormaThi
ngerI
O
I
nter
net
6
SensordeTemper
atur
a
2
Pl
ataf
ormaKeenI
O
1 7
Col
mei
a Cl
ient
e
4. Experimento
Esta seção descreve os experimentos. Para avaliar o desempenho dos sensores do SIS-
MAC, foi realizado um Design of Experiments (DoE). O DoE (discutido na Subseção
4.1) é um planejamento de experimentos que permite estudar um produto ou processo e
seus fatores associados para identificar quais os fatores que mais influenciam em seu com-
portamento. Assim, é possı́vel obter a melhor configuração e ainda otimizar o produto ou
processo de interesse [Franco 2015].
238
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
é identificar o fator com maior impacto na acurácia dos sensores (LM35 e DS18B20) de
temperatura do SISMAC. O próximo passo é combinar os fatores e nı́veis à fim de de-
senhar as especificações de experimentação. Para combinar os fatores e nı́veis definidos
nesse trabalho foi utilizado a ferramenta estatı́stica Minitab 17. O Minitab 17 trata-se de
um software estatı́stico poderoso para analisar dados de forma eficaz [Minitab 2017b]. A
Tabela 2 apresenta as combinações possı́veis que resultou em 16.
Tabela 2. Combinações
No Combinações
1 Manhã - Centro - Parcial - DS18B20
2 Manhã - Centro - Total - DS18B20
3 Manhã - Lateral - Parcial - DS18B20
4 Manhã - Lateral - Total - DS18B20
Tabela 1. Fatores e Nı́veis 5 Manhã - Lateral - Parcial - LM35
Fator Nı́vel I Nı́vel II 6 Manhã - Lateral - Total - LM35
Perı́odo do Dia Manhã Tarde 7 Manhã - Centro - Parcial - LM35
Posição do Sensor Centro Lateral 8 Manhã - Centro - Total - LM35
Presença de Própolis Total Parcial 9 Tarde - Lateral - Parcial - DS18B20
Tipo de Sensor LM35 DS18B20 10 Tarde - Lateral - Total - DS18B20
11 Tarde - Centro - Parcial - DS18B20
12 Tarde - Centro - Total - DS18B20
13 Tarde - Centro - Parcial - LM35
14 Tarde - Centro - Total - LM35
15 Tarde - Lateral - Parcial - LM35
16 Tarde - Lateral - Total - LM35
239
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Quando o impacto de um fator é dito alto, quer dizer que alterando o nı́vel daquele
fator são obtidos valores bem distintos. Neste estudo foi observado que os fatores com
impactos mais elevados sobre a acurácia foram: Posição do Sensor e Tipo de Sensor. A
Posição do Sensor possui maior impacto dentre todos os fatores. Portanto, a localização
do sensor é determinante na confiabilidade da medição. Dado que se sabe os fatores com
maiores impactos, o próximo passo é saber quais nı́veis tiveram melhores resultados.
A Figura 4 apresenta os efeitos de cada fator na acurácia dos sensores, usando
o Gráfico de Efeitos Principais. O gráfico de Efeitos Principais é usado para demons-
trar, detalhadamente, como um ou mais fatores categóricos influenciam em uma resposta
contı́nua. Tal gráfico apresenta inclinações (coloridas em azul) entre as variáveis inde-
pendentes estudadas. Os valores decrescentes 8, 6, 4 e 2 representam a proximidade com
o valor de temperatura do termômetro (em Co ). Quanto mais inclinada for a linha, maior
o impacto sobre a variável dependente.
O sensor situado na posição central da colmeia apresenta aumento de acurácia
dos sensores por estar situado em um ponto sem dispersão de temperatura. As abelhas
se situam no centro buscando se defender contra o aumento de temperatura ocasionados
pelas bordas da colmeia. Nas bordas da colmeia, a temperatura sofre mais influência do
ambiente externo.
12
Instrumentos: goo.gl/4NK1x4
240
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Trabalhos Relacionados
Esta seção apresenta os trabalhos relacionados ao presente estudo. Para melhor
visualização, a Tabela 3 elenca três fatores comparativos: DoE, Propriedades Monito-
radas e Plataforma. A seguir estes fatores são comentados.
241
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Conclusão
Este artigo apresentou uma análise de sensibilidade sobre a acurácia de sensores de tempe-
ratura em colmeias. Para a análise de sensibilidade foi usado o método estatı́stico DoE. Os
experimentos mostraram que a Posição do Sensor e Tipo de Sensor tiveram maior impacto
na acurácia medida. A Posição do Sensor no nı́vel Central retornou maior acurácia por
conta de não sofrer interferência externa. Em termos de sensores, o sensor DS18B20 teve
melhor acurácia, por apresentar componentes fı́sicos com melhor adaptação ao meio de
medição. Combinando os dois fatores têm-se que o sensor DS18B20 sediado na posição
central da colmeia é a configuração estatisticamente mais adequada para monitoramento
de temperatura. A arquitetura SISMAC é montada com base nesta configuração obser-
vada nas experimentações. Como trabalho futuro, pretende-se testar outros sensores e
observar outras espécies de abelhas já que algumas são mais mais agressivas que outras.
Referências
Almeida, G. F. (2008). Fatores que interferem no comportamento enxameatório de
abelhas africanizadas. 2008. 120 f120. PhD thesis, Tese (Doutorado em Ciências)–
Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto, Ribeirão Preto.
Dutra, T. F. S. (2016). Beehiveior-sistema de monitoramento e controle de colmeias de
produção apı́cola. Master’s thesis, Brasil.
Edwards-Murphy, F., Magno, M., Whelan, P. M., O’Halloran, J., e Popovici, E. M. (2016).
b+ wsn: Smart beehive with preliminary decision tree analysis for agriculture and
honey bee health monitoring. Computers and Electronics in Agriculture, 124.
Eskov, E. e Toboev, V. (2011). Seasonal dynamics of thermal processes in aggregations
of wintering honey bees (apis mellifera, hymenoptera, apidae). Entomological review,
91(3):354–359.
Franco, G. (2015). Entenda o que é doe – design of experiments Disponı́vel em:
http://www.escolaedti.com.br/entenda-o-que-e-doe/. Acesso em: 13/08/2017.
242
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
243
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Rootsbot
1. Introdução
A robótica educacional como base de um ensino tecnológico tem se tornado um recurso
pedagógico bastante estimulante para professores e alunos, dentro de um novo cenário na
escola tradicional. Segundo (Piaget, 1972), é importante que o indivı́duo construa o seu
próprio conhecimento a partir da iteracão com o ambiente em que vive, proporcionando o
desenvolvimento e uma maior significação da aprendizagem. As diretrizes do ensino que
utiliza a robótica como suporte pedagógico estabelece esta possibilidade de construção e
aprendizagem.
A utilização da robótica educacional em sala de aula tem aumentado o interesse
dos estudantes nas atividades letivas promovendo um maior aprendizado dos conteúdos
escolares. O ensino da matemática, como integrante desta realidade, não fica de fora e
recebe propostas inovadoras como forma de motivar os jovens que fazem uso diário das
novas tecnologias. Mas, o grande desafio para os professores é associar boa parte dos
conteúdos com uma aplicação robótica.
Este artigo apresenta o Rootsbot, um pequeno robô móvel de baixo custo cons-
truı́do para aplicações educacionais com fins didáticos para ser utilizado nas escolas
públicas de Picos. Os movimentos do Rootsbot dependem basicamente da resolução cor-
reta de equações do segundo grau. Algumas considerações são apresentadas a partir de
uma oficina de experimentação realizada com alunos do curso de Matemática da UFPI.
244
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Trabalhos Relacionados
A utilização de robôs na área de ensino não é novidade. Alguns trabalhos apontam para
esta direção. Embora boa parte das referências, utilizem kits comerciais como o kit da
LEGO para utilização no ensino especı́fico da matemática. Neste tópico será apresentado
sem minúcias alguns trabalhos que foram desenvolvidos na tentativa de aliar a utilizacão
da robótica à uma determinada aplicacão na matemática.
(Silva, Silva e Silva, 2015) relataram a experiência de uma aula usando robôs, as-
sociando as áreas de matemática, robótica e educação no trânsito, que teve intuito de pri-
orizar a fixação do conteúdo de números inteiros e a formacão cidadã dos indivı́duos. (Ri-
beiro, Coutinho e Costa, 2011) realizaram uma oficina usando a Plataforma Lego Minds-
torms para ensinar conteúdos que envolviam multiplicação, divisão e proporcionalidade
entre medidas de tempo, distância, rotação e ângulo. (Almeida, 2007) desenvolveu um
projeto com professores da rede pública de ensino usando um robô de baixo custo, para
explorar conceitos de Matemática, como poliedros, polı́gonos, áreas, volumes, ângulos, e
outros.
(Araújo, Santos e Meireles, 2017) realizaram uma investigação no campo experi-
mental da educacão e matemática, utilizando o kit de robótica educacional LEGO Minds-
torms. Programaram os robôs para realizar algumas trajetórias, com intuito de observar os
movimentos e identificar padrões geométricos como, noções de ângulos, raio, diâmetro,
cálculo da distância percorrida e regra de três simples. (Fagundes, Pompermayer, Basso
e Jardim, 2005) ministraram um projeto com alunos envolvendo conceitos de matemática
e fı́sica usando o kit de robótica educacional LEGO Mindstorms. Os principais assun-
tos desenvolvidos foram aritmética, geometria, números positivos e negativos, frações,
razão, rigidez e lógica. Depararam-se com termos como movimentos e deslocamentos
que envolvem distâncias e amplitudes de rotacão.
4. O Rootsbot
Entrevistas preliminares com alunos do 9o Ano, apontam o tópico de equações do 2o grau
como um dos mais interessantes e difı́ceis do conteúdo de matemática visto durante o
245
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
ano. A ideia de inserir um robô neste contexto de aprendizado, traz à tona o conceito de
robótica educacional e ensino tecnológico. Apresentar este recurso como algo lúdico e
ao mesmo tempo, desafiador e que seja capaz de despertar a atenção dos alunos para a
aprendizagem deste tópico, está associada à observação do fascı́nio que a robótica exerce
em crianças e adolescentes. A figura 1 mostra o Rootsbot.
Figura 1. Rootsbot.
4.1. O Robô
Dentro da ideia de construir um dispositivo de baixo custo, o Rootsbot é um pequeno
robô móvel diferencial com três rodas, sendo duas tracionadas e uma roda cega. As rodas
tracionadas são movidas por motores DC e controladas por uma placa Arduino com o
auxı́lio de uma Ponte H. Na primeira versão a placa utilizada é um Arduino UNO, o
circuito driver Ponte H é o L-298 e o módulo de comunicação Bluetooth é um módulo
HC05. A figura 2 mostra o circuito do Rootsbot.
4.2. O Software
O software de controle do Rootsbot leva em consideração o propósito para o qual, o
mesmo foi projetado. Partindo do princı́pio que o ”combustı́vel”do robô são raı́zes e que
ele se alimenta das raı́zes de equações do segundo grau, a concepção do software primou
por oferecer um desafio para os estudantes, gerando de forma aleatória equações para
resolução. Uma vez gerada a equação, o sistema fornece um tempo para que as raı́zes
sejam fornecidas em local apropriado.
246
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
247
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
A figura 5 exibe uma equação proposta para resolução gerada pelo sistema. Ao
resolver a equação proposta, o aluno tem a oportunidade de checar o seu sucesso ativando
a opção de verificação disponibilizada na interface. Uma vez acolhida a sua resposta o
sistema emite uma caixa de mensagem parabenizando o aprendiz pelo o acerto e ativa o
modo de comunicação para que possa enviar as raı́zes para o dispositivo robótico. Nesse
momento, vai estar abastecendo o robõ para que o mesmo possa iniciar seu movimento.
248
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
249
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 7. Gráfico 2.
A pesquisa em andamento, projeta testes na Escola, logo após a volta às aulas
neste segundo semestre de 2017. Contatos prévios com professores de Escolas Públicas
já foram feitos e o projeto apresentado para diretores, coordenadores e professores de
Matemática. Espera-se que os alunos rendam-se ao fascı́nio da Robótica e demostrem
interesse em conhecer o dispositivo proposto.
O sistema do Rootsbot será refinado, a partir da realimentação com as impressões
inicialmente colhidas, durante os primeiros testes.
6. Agradecimentos
Um agradecimento especial ao aluno do curso de Sistemas de Informação, Natanael Mi-
randa e a professora Luzia Custódio do ensino fundamental 2 por ter cedido os livros
e o material do professor para nossa consulta e a todos alunos e professores da Escola
Estadual Landri Sales, pela consulta inicial do projeto. E agradecemos ainda aos alunos
do curso de Matemática da UFPI, do Campus de Picos pela disposição em participar das
primeiras avaliações com o Rootsbot.
Este trabalho foi desenvolvido no LIPPO - Laboratório de Investigação e Pesquisa
em Poéticas Digitais do Curso de Sistemas de Informação da UFPI, no Campus do Junco,
na cidade de Picos.
7. Referências
S. do Rocio, Zilii (2004). A robótica educacional no ensino fundamental: perspectivas e
prática. Dissertação de Mestrado, UFSC – Centro Tecnológico, PPGEP, 2004.
L. Tortelli et al (2012). Robótica como alternativa nos processos educativos da Educação
Infantil e dos Anos Iniciais do Ensino Fundamental. In XVIII Congresso Argentino de
Ciencias de la Computación. 2012.
250
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
251
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O uso de instrumentos musicais para diversão no dia a dia das pessoas é cada vez mais
comum, sendo um excelente hobby aprender a tocar um instrumento musical. Algumas
das vantagens deste hábito são: o alı́vio do estresse do dia a dia, o aumento de habilidades
fı́sicas, mentais e motoras, como é o exemplo da bateria musical.
A bateria musical convencional é um instrumento formado por um conjunto de
tambores e pratos de diferentes tamanhos e espessuras, no qual o usuario denominado
baterista, utiliza as baquetas para percutir o instrumento e produzir os sons, porém ela é
considerada um tanto inadequada em alguns ambientes devido ao seu tamanho e ao seu
alto volume sonoro.
Em contrapartida foi lançada em 1976, a primeira bateria eletrônica musical, a
Sydrum Pollard, formada por um módulo eletronico e tambores[Almeida and Fressatti ],
tornando-se o estopim para o desenvolvimento de versões cada vez melhores.
Hoje, as baterias musicais eletrônicas nas versões mais modernas, além de robus-
tas, possuem uma alta qualidade sonora, chegando a reproduzir sons quase idênticos a
252
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
versão convencional. Porém, o seu elevado custo, mesmo quando se trata de uma versão
mais simples, impossibilita que pessoas com baixa renda possuam um exemplar.
Por outro lado, com a grande facilidade de acesso a tecnologia nos dias atuais,
onde se destacam em grande maioria os celulares, e por estes dispositivos utilizarem o
sistema operacional Android[GOMES et al. 2012], plataforma conhecida por ser de uso
livre, o desenvolvimento de aplicativos que simulem instrumentos musicais ficou bastante
facilitado, inclusive para os celulares de baixo custo.
Nas baterias musicais eletrônicas é comum a utilização de vários fios para a trans-
missão do sinal de cada pad ao módulo de processamento central, que podem por ventura,
se romper ou sofrer danos caso não sejam manuseados de forma correta. Este problema
pode ser solucionado utilizando uma conexão wireless[Lee et al. 2007], na qual propor-
ciona uma redução no uso de fios total ou parcial.
A plataforma Arduino[McRoberts 2011],também conhecida por ser uma plata-
forma livre, é utilizada cada vez mais para prototipação dos mais diversos tipos de proje-
tos e disponibiliza uma vasta gama sensores e módulos disponı́veis, como por exemplo o
módulo bluetooth, dispositivo que permite a comunicação sem fio a outros equipamentos
compatı́veis como o celular, demonstrando assim ser bastante viável ao projeto.
O objetivo do nosso trabalho é demonstrar o protótipo de bateria musical
eletrônica de baixo custo, produzida a partir da utilização da plataforma Arduino, em
conexão com um aplicativo desenvolvido para plataforma Android por meio de conexão
bluetooth [Haartsen 2000].
2. Trabalhos Relacionados
No trabalho apresentado por [Chedid 2015], foi implementado um protótipo expe-
rimental de bateria eletrônica musical sem fio. O autor utilizou sensores piezos
elétricos[Nadalin et al. 2007] para captação das batidas dos usuários, um microcontrola-
dor PIC[Martins 2005] para o tratamento e conversão dos sinais analógicos para digitais,
um Arduino[McRoberts 2011] como módulo central de processamento e por fim utilizou
módulos XBee[Faludi 2010] para transmissão por meio de radio frequência.
Porém nesta abordagem do autor, foi utilizado para cada pad da bateria como
um pequeno sistema sem fio separado, desse modo, para cada tom temos em conexão um
circuito com um sensor piezo elétrico, um microcontrolador PIC e mais um módulo XBee,
além do mais, é necessário o uso de um arduino com um outro módulo XBee para receber
os dados de todos os módulos presentes nos tons, e daı́ em diante passar a reproduzir o
som armazenado em um cartão SD em baixa qualidade.
Apesar de ser uma tecnologia de boa eficiencia, a tecnologia Xbee ainda possui
um preço elevado no brasil, e utilizar um exemplar para cada pad no projeto se mostra
inviável devido ao seu alto orçamento final.
Já [Almeida and Fressatti ], demonstra em sua abordagem uma maneira mais sim-
ples, o autor utilizou sensores piezos elétricos em cada pad, em seguida, diferente do
método citado anteriormente, ele conectou cada pad diretamente ao Arduino, para con-
versão dos sinais, mas, por outro lado é necessário a conexão do arduino com um com-
putador por meio de conexão serial, para que os dados sejam convertidos e reproduzidos
através de softwares instalados no computador.
253
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Neste trabalho o autor mostra uma solução de baixo custo para o circuito de cada
pad se utilizando apenas de fios de conexão ao Arduino, mas, ao utilizar softwares de
computador para executar seus sons, demonstrando assim a sua dependencia de conexão
fı́sica, o que dificulta a sua mobilidade, algo diferente do projeto proposto.
Na abordagem de [Hsiao and Huang 2013] é descrito um método semelhante com
piezo elétrico e um Arduino conectado a um computador, porém neste caso, é demons-
trado a sua aplicação em dois tipos de casos. No primeiro caso foi demonstrado a sua
aplicação na construção de um pad de bateria musical eletrônica levando em consideração
a velocidade com que o usuário utilize sua baqueta, já no outro caso, o autor mostra a
aplicação do mesmo, desta vez como captador de contato para um violão acústico, de-
monstrando neste sentido que há uma vasta utilidade para esse tipo de sistema.
O projeto citado no paragrafo acima tanbém demonstra um certo nı́vel de depen-
dencia fı́sica dos equipamentos, mas, em especial um fator interessante ao projeto pro-
posto é o reconhecimento da velocidade da batida do usuário, mostrando-se bem usual,
por outro lado na abordagem do trabalho proposto neste artigo é mais viável especiali-
zar o sistema apenas como instrumento, para assim evitar um custo maior de poder de
processamento.
3. Materiais e Métodos
Dada a tarefa de protótipar uma bateria musical eletrônica, foi iniciado uma pesquisa
de viabilidade de componentes eletrônicos de fácil utilização, precisão e baixo consumo
de energia, que atendessem as necessidades do projeto. Como alicerce, foi escolhido a
plataforma open source Arduino, que além de ser de baixo custo, é livre e proporciona
a facilidade de utilização de seus vários tipos de sensores, shields e comunicação com
outros dispositivos.
O Arduino escolhido é mais especificamente o Arduino Mega
2560[Arduino and Mega 2016]. A placa possui o microcontrolador ATMEL ATmega
2560, no qual dentre suas vantagens, destacam-se: o maior espaço de memória, maior
capacidade de processamento e baixo consumo energético, o ideal para o processamento
dos pulsos elétricos dos sensores exigido para tarefa.
Os sensores utilizados para captação das batidas do musico em cada tom durante a
performance, são chamados sensores piezo elétricos, que são discos capazes de gerar uma
corrente elétrica quando recebem uma pressão mecânica sobre eles, possibilitando medir
a intensidade da força aplicada com a batida sobre ele, fator importante por exemplo, para
controlar o volume de cada toque.
O Arduino com suas limitações não permite a reprodução de sons simultâneos em
alta qualidade, devido à sua arquitetura de baixo processamento. Para que a necessidade
de um alto processamento fosse atendida, foi desenvolvido um aplicativo para um celular
com sistema operacional Android, visando sanar a necessidade de processamento. A
escolha se deu pelas suas vantagens como: ser uma plataforma de código aberto, fácil de
desenvolver e os softwares gerados disponı́veis na internet podem ser facilmente baixados.
Para que as duas plataformas se comuniquem em tempo real, é usado
como intermediário a conexão bluetooth, uma tecnologia capaz de enviar e rece-
ber mensagens a curta distância e sem custos bastante presente nos artefatos móveis
254
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
digitais[Medeiros 2011]. Em especial, para este projeto foi escolhido o módulo HC-06
para determinada tarefa, este dispositivo cobre uma área de até 10 metros, funciona com
tensão de 3,6 a 6v além de possuir baixo custo.
O software desenvolvido para o arduino, avalia constantemente o sensor piezo
elétrico, no qual seus valores provenientes de cada batida são os principais ativadores de
cada som. Quando o software verifica a cada iteração se o valor do piezo está diferente
de zero, caso esteja, o software então envia um sinal via bluetooth com a informação de
qual piezo ativado e volta ao inicio da iteração.
Os dados do arduino são recebidos e processados em tempo real pelo aplicativo
instalado em um dispositivo Android, o aplicativo tem como vantagem uma base de dados
com sons de alta qualidade captados de uma bateria acústica convencional.
Ao abrir o aplicativo o usuário será solicitado a permissão para ativar o blueto-
oth, logo após ativado o usuário poderá ter acesso a lista de dispositivos disponı́veis, em
seguida ao selecionar nesta lista o bluetooth do arduino o aplicativo esta pronto para uso.
O aplicativo no celular é pronto para receber constantemente os dados na conexão
com o arduino, quando os dados sçao recebidos, o aplicativo decide a partir do comando
qual som deverá ser executado e de maneira simultanea a reprodução do som, continua a
espera de novos comandos do bluetooth, possibilitando desta forma a reprodução de sons
simultâneos, assim um ou mais de dois tons poderão ser ouvidos quando percutidos ao
mesmo tempo.
Terminado toda esta etapa iniciou-se o teste principal, para utilização neste teste
foi montado apenas um tom, produzido com matérias baratos e fáceis de encontrar, os
materiais escolhidos foram, Dvd’s e E.V.A.
Para montagem do tom utilizou-se dois dvd’s, foi colocado acima e entre eles
E.V.A para que ficasse uma espaço para ser adicionado o sensor piezo elétrico e para
que melhore a captação deste sensor. Com este espaço, ao receber uma batida sobre sua
superfı́cie o dvd tem a capacidade de vibrar, possibilitando uma noção básica da força
durante cada batida pela captação do sensor.
Os componentes eletrônicos foram montados conforme conhecimento adquirido
em fóruns especializados no assunto, todos os equipamentos podem ser adquiridos em
uma loja de componentes local ou mais facilmente encontrados em lojas online e tem
um extenso material sobre a utilização e os cuidados que se deve tomar para proteger o
circuito. abaixo é demonstrado o diagrama de circuito do protótipo.
255
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados
Como resultado foi possı́vel verificar que o protótipo de instrumento musical atende ao
requisito principal de ser um protótipo de baixo custo e teve resultado bastante satisfatório.
O pad criado é básico de construir, o material necessário é de baixo custo e pode
ser encontrado facilmente, além disso, o sensor piezo elétrico instalado entre as camadas
do pad foi capaz de captar o impacto da batida do usuario, assim como a sua intensidade
conforme a sua localização no pad, e a quantidade de camadas amortecedoras(E.V.A) do
impacto das baquetas, deixando em aberto a possibilidade de estudos mais aprofundados
de uma captação mais realista do sistema. Abaixo (figura 2) é demonstrado a imagem do
pad construı́do.
256
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Um protótipo de instrumento musical viável economicamente foi projetado e usado para
transmitir os parâmetros através de uma ligação bluetooth para um aplicativo simulador no
dispositivo android. A partir dos resultados obtidos nos testes realizados pode se concluir
257
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
que ele é funcional, e atende ao objetivo de ser uma inovação tecnológica de baixo custo,
pois a maioria dos matériais podem ser encontrados a preços acessı́veis.
Como trabalhos futuros planeja-se implementar o projeto com uma comunicação
melhor para, assim, resolver o atraso, montar a bateria completa, desenvolver pads com
qualidade mais realista, desenvolver versões para outros sistemas operacionais como IOS
e Windows Phone, e implementar o aplicativo com mais funcionalidades como, a troca
dos timbre de cada pad pelo usuário.
Referências
Almeida, W. B. and Fressatti, W. Bateria eletrônica com arduıno.
Arduino, M. and Mega, A. (2016). 2560. URL: https://www. arduino.
cc/en/Main/ArduinoBoardMega2560#, consultado, 1.
Chedid, R. (2015). Protótipo de uma bateria eletrônica musical sem fio.
Faludi, R. (2010). Building wireless sensor networks: with ZigBee, XBee, arduino, and
processing. ”O’Reilly Media, Inc.”.
GOMES, R. C., FERNANDES, J. A. R., FERREIRA, V. C., and FERNANDES, N. C.
(2012). Sistema operacional android. Universidade Federal Fluminense.
Haartsen, J. C. (2000). The bluetooth radio system. IEEE personal communications,
7(1):28–36.
Hsiao, C.-Y. and Huang, C.-F. (2013). Piezo-based interactive music system.
Lee, J.-S., Su, Y.-W., and Shen, C.-C. (2007). A comparative study of wireless protocols:
Bluetooth, uwb, zigbee, and wi-fi. In Industrial Electronics Society, 2007. IECON
2007. 33rd Annual Conference of the IEEE, pages 46–51. Ieee.
Martins, N. A. (2005). Sistemas microcontrolados. Uma abordagem com o Microcontro-
lador PIC 16F84. Editora Novatec Ltda, 1a edição.
McRoberts, M. (2011). Arduino básico. São Paulo: Novatec.
Medeiros, M. (2011). O lugar na comunicação: um estudo sobre a comunicação locativa
em zonas bluetooth.
Nadalin, E. Z. et al. (2007). Determinação da força peso, a partir dos impactos de pisadas,
utilizando um sensor piezoeletrico.
258
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
{lealclaram,rayamerio2016,sfernandasm,ralfdrewpereira,jainakersi}
@gmail.com,{natalia.louzeiro,gianpinheiro1}@hotmail.com,
[email protected]
259
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
As diligências em saúde mental sofreram grandes transformações nas últimas décadas.
Anteriormente, não havia proposta terapêutica à pessoas acometidas por problemas
mentais. A modalidade de tratamento era reservada aos hospícios e asilos, a cura era
postulada pelo isolamento da sociedade [Ministério da Saúde 2005].
260
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Fundamentação Teórica
Segundo Vam Bemmel (1997) apud Manzella (2014), os prontuários em papéis já
existem há muitos anos. Durante o século V a.C., Hipócrates incentivou os médicos a
realizarem os registros sobre os pacientes por escrito, tendo como objetivos o
conhecimento do estágio em que a doença se encontrava e a análise das possíveis
causas. Estes registros eram feitos por meio de fichas de identificação amarrados ao
punho dos enfermos e fichas únicas com informações da situação do paciente. Até o
começo do século XIX, estes dados dos indivíduos eram gerados através do que os
médicos viam, sentiam e ouviam [Patrício et al 2011].
261
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Para tal implementação, o PEP forneceu um modelo a ser seguido pela área
básica de saúde em municípios brasileiros no ano de 2016, segundo a Comissão
Intergestores Tripartite/Ministério da Saúde, sobre regência da Resolução CIT/MS Nº 7,
de 24 de novembro de 2016:
Art. 1º Definir que o registro das informações relativas às ações da atenção básica
deverá ser realizado por meio de prontuários eletrônicos do paciente.
§ 1º Entende-se como prontuário eletrônico um repositório de informação
mantida de forma eletrônica, onde todas as informações de saúde, clínicas e
administrativas, ao longo da vida de um indivíduo estão armazenadas, e suas
características principais são: acesso rápido aos problemas de saúde e
intervenções atuais; recuperação de informações clínicas; sistemas de apoio à
decisão e outros recursos.
3. Metodologia
262
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
263
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Análises e Resultados
Com a aplicação dos procedimentos metodológicos, gerou-se como resultado uma
plataforma computacional que permitiu aos profissionais do CAPS II otimizar as etapas
de cadastro e acesso às informações de cada paciente.
264
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusões
O trabalho apresentado mostra os resultados da implementação de uma solução
computacional desenvolvida para ajudar no desempenho dos especialistas do CAPS II,
facilitando o registro e o acesso às informações. O reflexo gerado pelo uso dessa
ferramenta poderá ser sentido à medida que os profissionais da instituição dispõem de
mais tempo para atenção dedicada ao problema do paciente, com a consequente redução
do tempo nas atividades burocráticas necessárias à realização da consulta e ao registro
das informações, permitindo que sejam realizados mais atendimentos por dia, ou ainda,
na melhoria da qualidade de vida do profissional, contribuindo nas obrigações
cotidianas.
A partir dos resultados obtidos neste trabalho, conclui-se que a ferramenta traz
importante aporte, uma vez que havia um mau gerenciamento dos documentos da
instituição, gerando problemas como: perda de fichas, muito tempo gasto nas tarefas
repetitivas e burocráticas, entre outros.
Tal estudo pode ser ampliado por meio de novas adaptações, visando trazer
maior mobilidade aos usuários com o objetivo de dar suporte em atendimento
domiciliar dos pacientes, podendo oferecer facilidade de uso e simplicidade que são
condições importantes para obtenção de maior sucesso da aplicação.
Referências
265
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Brito, Mychelangela de Assis; Sousa, Flávia Regina. Perfil Sócio demográfico dos
Usuários de Procedimento Assistidos no CAPS II Adulto de Floriano-PI que
Tentaram Suicídio –Floriano-PI -2009.
266
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A marcha, para um padrão bípede, é a movimentação dos membros inferiores, à frente e
de corpo ereto, que pode ser descrito em um ciclo compreendendo desde o contato de um
pé ao solo até o contato seguinte desse mesmo pé, como pode ser visto na Figura 1. Esse
ciclo se repete indefinidamente a cada passo [Viel 2001]. De acordo com o [IBGE 2010],
5,7% da população brasileira sofre de deficiência motora. Com esse paradigma, a análise
de marcha compara o movimento saudável a movimentos realizados por pacientes em fase
de recuperação de danos motores nos membros inferiores, para que, dessa forma, haja um
acompanhamento mais preciso do desenvolvimento dos pacientes.
A análise do processo de movimentação biológica definida como marcha humana
tem sido utilizada, nos últimos tempos, como um meio mais preciso de diagnóstico em
terapias ou etapas de recuperação de sujeitos com distúrbios, deficiências, anomalias ou
limitações. De acordo com [Tanaka et al. 2007] um alto número de artigos na literatura
ainda apresenta a análise de marcha por método observacional não tão fidedigno quanto
o computacional, entretanto ainda se é feito por conta do alto custo do sistema e não
praticidade devido necessidade de um técnico para monitorar o sistema.
267
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Este trabalho busca propor uma alternativa, portátil e prática, para analise de mar-
cha. Essa alternativa tem como base a utilização de um smartphone com marcadores
ativos para gerar a posição do pé, joelho e quadril, juntamente com o ângulo formado
pelo joelho do sujeito analisado.
2. Trabalhos Relacionados
A análise de marcha computadorizada se apoia em diferentes tipos de sistemas de captura
de movimento, como sistemas com acelerômetro, giroscópio, sensores magnéticos, e sen-
sores com eletromiograma (EMG). Dentre os citados os mais cotados, recentemente, são:
dispositivos baseados em eletromiografia (EMG), dispositivos de acelerômetros e por fim
os sistemas que usufruem da tecnologia de captura de movimento baseada em câmeras,
com e sem marcadores.
Um sinal eletromiográfico (EMG) consiste em um potencial elétrico produzido
pela contração de determinado músculo, sendo medido na superfície da pele (não inva-
sivo) ou internamente à pele (invasivo) nas camadas mais superficiais do músculo. A
partir desta captura de sinal, é possível traçar parâmetros para a condução de uma inter-
face como as descritas em [Kunju et al. 2009, Sasayama and Murakami 2013].
Os acelerômetros são instrumentos que medem a aceleração aplicada em um
ou mais eixos. O mecanismo se faz a partir da movimentação do segmento ou local
onde o sensor foi fixado, que com sua inércia em relação a uma base fixa no interior
é detectada e transformada em um sinal elétrico. Trabalhos como [Barbieri et al. 2004,
Martins et al. 2014] mostram algumas formas de interpretar estes sinais.
Sistema de captura de movimento óptico (SCMO) é o processo de identificar ca-
racterísticas em uma streaming de vídeo usando técnicas de processamento de imagem.
Um dos principais problemas encontrados pelos sistemas óticos é o alto processamento
necessário para extrair as características chaves. De forma a amenizar este problema é uti-
lizado marcos e câmeras preposicionadas tanto em soluções comerciais como na pesquisa
[Bailey 2007]. A Figura 2 mostra um SCMO sendo utilizado para reabilitação.
Há três tipos de câmeras sendo usadas pelas SCMO: IRLED câmeras, RGB câ-
meras, e câmeras normais. O primeiro tipo trabalha diretamente com marcos passivos,
marcos com substancias retro refletivas, emitindo luz infravermelha que é refletida pelo
marco discriminando a posição do mesmo. O segundo tipo utiliza cores primarias para
segmentar a imagem, e para melhor eficácia é utilizada uma roupa colorida para segmentar
as partes do corpo [Lindequist 2004]. O ultimo é geralmente utilizado com marcos ativos,
leds emissores de infravermelho ou RGB fixadas no corpo, estes marcos são capturados
através da emissão vinda de cada led. Exemplos de trabalhos com marcos ativos, passivos
268
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
e sem marco são respectivamente [IVO Stanic 2010], [Tanie et al. 2005, Yang et al. 2016]
e [Sridhar et al. 2013].
3. Sistema Proposto
269
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados
No experimento 1 foi posicionado um sujeito vestindo as fitas de led a dois metros do
smartphone em ambiente fechado com iluminação artificial, este procedimento visa ave-
riguar os tempos de processamento e os procedimentos realizados para cada etapa. A cap-
tura da imagem é realizada por uma função da OpenCV em Java, e obtemos em média:
41,48 a 179,9ms. As demais etapas foram implementadas em C++ utilizando Android
NDK [AndroidNDK 2016].A calibração da imagem é realizada apenas uma vez para ar-
mazenar a matriz de calibração. Após este procedimento cada frame precisa ser multi-
plicado pela matriz de calibração para corrigir a distorção causada pela lente da câmera.
Este procedimento leva em média: 38,67 a 611,13ms.
Após experimentação, foram obtidos os mesmos resultados de discriminação de
imagem tanto pela conversão para o HSV (hue, saturation and value) quanto para o HLS
(hue, lightness and saturation), pois as duas transformações de imagem possuem uma
variável que representa a luminosidade. Porém o tempo médio de processamento do
HSV foi significativamente mais rápido comparado ao HLS, dependendo da resolução
em média 5 vezes mais rápido. O resultado pode ser visto na Figura 5(b).
O processo de segmentação da imagem, como pode ser visto na Figura 5(c), foi
obtido em média entre 7,27 e 123,67ms. E, por fim, a Figura 5(d) mostra a detecção
utilizando o algoritmo findContours obteve em média entre 1,79 e 20,97ms. As médias de
menor tempo e maior tempo foram feitas utilizando as resoluções 320x240 e 1024x768,
respectivamente, como pode ser visto na Figura 4, quanto maior a resolução maiores são
os tempos de processamento para cada etapa.
Foi observado também que quanto menor a resolução mais é perdida informação
dos marcos, tanto com relação a luminosidade quanto em relação a possíveis partículas
que podem ser visualizadas como marcos. Por este motivo, a resolução de 640x480 é
ideal para ambientes com luminosidade pelo custo benefício. Já para ambientes escuros
270
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
(c) (d)
Figura 5. (a): Imagem Capturada (b): Imagem Calibrada (c): Imagem Segmentada
(d): Imagem após Detecção
271
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
(c) (d)
5. Conclusão
Os experimentos realizados com o protótipo mostraram que é possível implementar um
sistema de captura de movimento utilizando um smartphone com marcos ativos. Obser-
vamos que, para uma análise mais consistente dos dados, será necessário uma diminuição
do tempo de captura e distorção da imagem.
Como trabalhos futuros, visamos implementar a própria classe de captura de ima-
gem para diminuição do tempo de captura obtido pela OpenCV, e um estudo mais apurado
para viabilidade da distorção da imagem em uma câmera de celular. Além disso, uma in-
terface para comunicar os resultados mostrando a classificação de cada fase do ciclo de
marcha.
272
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
(c) (d)
Figura 8. (a): Posição em coordenadas x/y sem correção de distorção (b): Ân-
gulo do joelho sem correção de distorção (c): Posição em coordenadas x/y com
correção de distorção (d): Ângulo do joelho com correção de distorção
Referências
AndroidNDK (2016). Android native development kit. http://developer.
android.com/intl/pt-br/tools/sdk/ndk/index.html. [Online; aces-
sado 1-Fevereiro-2016].
Bailey, B. (2007). Real time 3d motion tracking for interactive computer simulations.
Master’s thesis.
Barbieri, R., Farella, E., Benini, L., Riccó, B., and Acquaviva, A. (2004). A low-power
motion capture system with integrated accelerometers. Consumer Communications
and Networking Conference.
Green, G. (1828). An Essay on the Application of Mathematical Analysis to the Theories
of Electricity and Magnetism. Harvard University.
IBGE (2010). Características gerais da população, religião e pessoas com defi-
ciência. ftp://ftp.ibge.gov.br/Censos/Censo_Demografico_
2010/Caracteristicas_Gerais_Religiao_Deficiencia/
caracteristicas_religiao_deficiencia.pdf. [Online; acessado
1-Fevereiro-2016].
IVO Stanic, DANIELA Borojevic, V. Z. (2010). Human kinematics measuring using
a high speed camera and active markers. International Conference on Simulation,
Modelling and Optimization.
Kunju, N., Kumar, N., Pankaj, D., Dhawan, A., and Kumar, A. (2009). Emg signal
analysis for identifying walking patterns of normal healthy individuals. Indian Journal
of Biomechanics.
273
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
274
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Sistemas de Informação
Universidade Federal do Piauı́ - UFPI
{ds417042,paulohenriquegrocha,rocaleal98,francsilva10}@gmail.com
Abstract. The Internet has enabled to access remote computing resources from
anywhere. Due to this accessibility, some computational resources, previously
wasted, have became of constant and scalable use. This paradigm known as
Cloud Computing has brought the potential of solving complex computational
problems. In practice, Cloud Computing is formed by server machines wor-
king together. These servers — said traditional — often have high price and
high energy expenditure. Unlike traditional servers, microcontrollers (“small
computers”) have very limited resources, but with low price. One question that
rises is: Is it possible to replace traditional servers with microcontrollers? This
paper presents a systematic performance evaluation comparing traditional ser-
vers and microcontrollers Raspberry Pi (named Minicloud). The experiments
suggest that a Minicloud can be both, cheap and low energy consumer atten-
ding certain Service Level Agreements (SLAs).
1. Introdução
O avanço dos meios de comunicação facilitaram o acesso a recursos computacionais po-
derosos. Uma das tecnologias que foi impulsionada com esse avanço, foi a Computação
em Nuvem (do inglês Cloud Computing). A Cloud Computing é um modelo de negócios
que disponibiliza o acesso a uma gama de recursos computacionais de maneira ubı́qua,
conveniente e sob demanda [Mell e Grance 2016].
275
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Este trabalho mostra uma estudo sistemático de uma Microcloud buscando evitar
276
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
ociosidade e obter economia energética. Foi montada uma Microcloud com três Raspber-
ries Pi Model B. O desempenho desta Microcloud foi comparada com servidores tradici-
onais. Para comparação justa, esses servidores também têm baixo poder computacional.
A análise de desempenho foi realizada com o método estatı́stico Design of Experi-
ments (DoE). O DoE é aplicado sobre a influência de fatores em uma variável dependente
de forma concomitante [Minitab 2017]. No presente estudo foram analisados os fatores
Consumo Energético, Tempo de Processamento e Custos de Aquisição. Os resultados
dos experimentos apontam que o baixo custo, menor espaço fı́sico para posicionamento e
reduzido gasto energético podem compensar o uso de Microclouds.
O restante do artigo está organizado da seguinte forma: a Seção 2 apresenta o
passo a passo da avaliação de desempenho realizada; a Seção 3 apresenta os trabalhos
relacionados; e a Seção 4 traça algumas conclusões e trabalhos futuros.
2. Avaliação de Desempenho
Esta seção apresenta os resultados dos experimentos conduzidos.
7
RabbitMQ: https://www.rabbitmq.com/
8
Manual do Wanf WF-D02A: solarlab.se/solpanel/datablad/WF-D02A-energy-meter.pdf
277
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
278
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
279
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
cada servidor.
(c) 12 Imagens
3. Trabalhos Relacionados
Esta seção apresenta os trabalhos relacionados. Sendo que, estes trabalhos utilizam
métricas e cargas de trabalhos diferentes desta Microcloud. Os atuais trabalhos relaci-
onados apresentados neste estudo estão ordenados por ano (de 2013 a 2016). Para melhor
visualização, a Tabela 4 elenca quatro fatores comparativos: Métricas de Monitoramento,
Comparação com Servidores e DoE. A seguir, estes fatores são comentados.
9
Preço de Servidor 1: http://tinyurl.com/y7yw59lk
10
Preço de Servidor 2: http://tinyurl.com/yah3bnp6
11
Preço de Servidor 3: http://tinyurl.com/y9knd8nv
280
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
281
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Abrahamsson, P., Helmer, S., Phaphoom, N., Nicolodi, L., Preda, N., Miori, L., Angri-
man, M., Rikkila, J., Wang, X., Hamily, K., et al. (2013). Affordable and energy-
efficient cloud computing clusters: the bolzano raspberry pi cloud cluster experiment.
In Cloud Computing Technology and Science (CloudCom), 2013 IEEE 5th Internatio-
nal Conference on, volume 2, pages 170–175. IEEE.
Anwaar, W. e Shah, M. A. (2015). Energy efficient computing: A comparison of raspberry
pi with modern devices. Energy, 4(02).
Bonomi, F., Milito, R., Zhu, J., e Addepalli, S. (2012). Fog computing and its role in the
internet of things. In Proceedings of the first edition of the MCC workshop on Mobile
cloud computing, pages 13–16. ACM.
Chang, B. R., Tsai, H.-F., e Chen, C.-M. (2013). Evaluation of virtual machine per-
formance and virtualized consolidation ratio in cloud computing system. Journal of
Information Hiding and Multimedia Signal Processing, 4(3):192–200.
Cloutier, M. F., Paradis, C., e Weaver, V. M. (2014). Design and analysis of a 32-bit
embedded high-performance cluster optimized for energy and performance. In Proce-
edings of the 1st International Workshop on Hardware-Software Co-Design for High
Performance Computing, pages 1–8. IEEE Press.
Felter, W., Ferreira, A., Rajamony, R., e Rubio, J. (2015). An updated performance
comparison of virtual machines and linux containers. In Performance Analysis of Sys-
tems and Software (ISPASS), 2015 IEEE International Symposium On, pages 171–172.
IEEE.
Hajji, W. e Tso, F. P. (2016). Understanding the performance of low power raspberry pi
cloud for big data. Electronics, 5(2):29.
Mappuji, A., Effendy, N., Mustaghfirin, M., Sondok, F., Yuniar, R. P., e Pangesti, S. P.
(2016). Study of raspberry pi 2 quad-core cortex-a7 cpu cluster as a mini supercom-
puter. In Information Technology and Electrical Engineering (ICITEE), 2016 8th In-
ternational Conference on, pages 1–4. IEEE.
Mell, P. e Grance, T. (2016). The nist definition of cloud computing. recommendations of
the national institute of standards and technology (september 2011).
Minitab (2017). Designing an experiment. In Designing an Experiment.
Morabito, R. (2016). A performance evaluation of container technologies on internet
of things devices. In Computer Communications Workshops (INFOCOM WKSHPS),
2016 IEEE Conference on, pages 999–1000. IEEE.
Sadooghi, I., Martin, J. H., Li, T., Brandstatter, K., Zhao, Y., Maheshwari, K., de La-
cerda Ruivo, T. P. P., Timm, S., Garzoglio, G., e Raicu, I. (2015). Understanding
the performance and potential of cloud computing for scientific applications. IEEE
Transactions on Cloud Computing.
Tso, F. P., White, D. R., Jouet, S., Singer, J., e Pezaros, D. P. (2013). The glasgow
raspberry pi cloud: A scale model for cloud computing infrastructures. In Distributed
Computing Systems Workshops (ICDCSW), 2013 IEEE 33rd International Conference
on, pages 108–112. IEEE.
282
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Wilcox, E., Jhunjhunwala, P., Gopavaram, K., e Herrera, J. (2015). Pi-crust: a raspberry
pi cluster implementation. Technical report, Technical report, Texas A&M University.
283
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
No fim do século XX, o câncer de pulmão se tornou umas das principais causas de mortes
evitáveis. Em 90% dos casos diagnosticados, o câncer de pulmão está associado ao con-
sumo de derivados de tabaco. Além disso, o câncer pulmonar é o mais comum de todos
os tumores malignos, apresentando aumento de 2% por ano na sua incidência mundial
[Inc 2016].
O nódulo é uma aglomeração de células que difere em densidade e textura
do tecido circundante, quanto a seu comportamento pode ser maligno ou benigno
[Sousa 2007]. Com o intuito de diagnosticar a existência de nódulos pulmonares é feita
a Tomografia Computadorizada (TC) desenvolvida por Godfrey Houndsfiels e Allan Cor-
mack em 1972, exame de imagem fundamentado na aplicação de raios X de baixa inten-
sidade no corpo do paciente. A análise da TC permite ao especialista detectar nódulos
284
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
A literatura apresenta alguns trabalhos com o mesmo objetivo da metodologia apresen-
tada, ou seja, diagnóstico de nódulos pulmonares em maligno e benigno.
Hua et al. (2015) introduz técnicas de deep learning, especificamente baseada
em uma rede de aprendizado profundo e uma rede neural convolucional no contexto da
classificação de nódulos em imagens de TC. A base de imagens utilizada foi a LIDC, com
um total de 2.545 nódulos, a metodologia alcançou uma taxa de sensibilidade de 73,3% e
especificidade 78,7%.
Foi proposto por Kumar et al. (2015) um sistema CADx que usa caracterı́sticas
extraı́das de um autoencoder para classificar nódulos pulmonares como maligno ou be-
nigno. Foram usados 4.303 casos contendo 4.323 nódulos do conjunto de dados do Na-
tional Cancer Institute (NCI) e LIDC. O trabalho alcançou uma acurácia de 75,01% e
sensibilidade de 83,35%.
No CADx desenvolvido por Orozco et al. (2015), tem base na extração, contando
com uma seleção dos descritores mais significativos. Por fim, é usado o classificador
Máquina de Vetor de Suporte. O trabalho foi validado em 45 TCs das bases ELCAP e
LIDC. A acurácia total do método foi de 82% a sensibilidade de 90,9% e a especificidade
de 73,91%.
Na metodologia CADx desenvolvida por Firmino et al. (2016), tem-se um método
de diagnóstico de nódulo pulmonar baseada na probabilidade do mesmo ser maligno. Para
isso, usou-se uma classificação baseada em MVS. O banco de imagens usado para testes
foi a LIDC-IDRI. Os resultados da metodologia alcançaram uma sensibilidade de 93,1%
com uma área sob a curva ROC de 0,91.
No CADx proposto em Dhara et al. (2016), os nódulos pulmonares são segmen-
tados usando uma técnica semiautomática. Medidas de forma e textura são usadas para
representar os nódulos pulmonares. O esquema de classificação proposto é validado no
285
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
conjunto de nódulos com 891 nódulos pulmonares extraı́dos da base LIDC-IRI. Os re-
sultados obtidos pelo método proposto com o classificador MVS alcançaram uma curva
ROC de 0,882.
Os trabalhos relatados acima são modelos de metodologias baseadas em carac-
terı́sticas de textura e forma, com reconhecimento de padrões para auxı́lio ao diagnóstico
de câncer pulmonar a partir de TC. No intuito de diminuir a disparidade observada em
valores de sensibilidade e especificidade, problemas comuns em sistemas CADx, este tra-
balho pretende explorar um potencial referente a medidas de descrição de textura baseada
em Índices de Diversidade Funcional com a classificação baseada em MVS e CNN.
3. Métodos
A metodologia proposta consiste em quatro etapas: aquisição de imagens; extração de
caracterı́sticas de textura; classificação; e métricas de validação dos resultados obtidos.
3.1. Base
As imagens utilizadas para os experimentos são provenientes da base de imagens LIDC-
IDRI. É uma base pública de exames de TC de nódulos pulmonares disponibilizada na In-
ternet pelo National Cancer Institute (NCI) [Clark et al. 2013]. Sete centros acadêmicos
e oito empresas de imagiologia médica colaboraram para criar este conjunto de dados
que contém 1018 casos. Cada tema inclui imagens de uma tomografia computadorizada
torácica clı́nica e um arquivo XML associado que registra os resultados de um processo
de imagem que contêm as anotações de duas fases realizadas por quatro radiologistas
torácicos experientes [van Ginneken et al. 2010].
A base LIDC-IDRI dispõe de 1.018 exames de TC, entretanto, alguns exames
apresentaram dois fatores que inviabilizaram seu uso no método, mais precisamente 185
exames. O primeiro fator está associado aos exames que não possuem nódulos maiores
que 3 mm. O segundo fator está relacionado a um erro de divergência de informações
encontradas no arquivo de marcação dos exames [de Carvalho Filho et al. 2014]. Assim,
foram usados 833 exames para aplicação do método proposto.
286
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
287
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3.3. Classificação
A classificação foi realizada com o uso do software WEKA, que contém ferramentas para
pré-processamento de dados, classificação, regressão, clustering, regras de associação
e visualização [Hall et al. 2009]. Foram utilizados dois softwares: LIBSVM e Neural-
Network.
O LIBSVM [Chang and Lin 2011] que possui a implementação MVS, com o in-
tuito de minimizar o erro com relação ao conjunto de treinamento (risco empı́rico), assim
como o erro com relação ao conjunto de teste. A MVS trata-se de um grupo de métodos
de aprendizado supervisionado que podem ser utilizados para classificação ou regressão.
O algoritmo é baseado na teoria de aprendizado estatı́stico e na dimensão de Vapnik-
Chervonenkis [Ivanciuc 2005]. No classificador dois parâmetros importantes foram ajus-
tados: parâmetro γ para 0.4353 e o parâmetro de custo C para 64.0.
O NeuralNetwork, baseado na arquitetura CNN [LeCun et al. 1998], modelos de
deep learning (redes neurais com multicamadas ocultas) biologicamente inspirados em
conceitos de campos receptivos, que apresentam benefı́cios recentes no que diz respeito
ao aumento do poder de processamento. Uma rede completamente conectada realiza a
classificação de padrões a partir das caracterı́sticas extraı́das pelas camadas de convolução
e subamostragem [Silva 2015].
O diagnóstico é feito a partir dos conjuntos de caracterı́sticas previamente ex-
traı́das das imagens, e posteriormente submetidas à avaliação de um classificador que
informa se o nódulo é maligno ou benigno, a partir de treino prévio. Nos dois classifica-
dores foram utilizado método k-fold cross validation para a obtenção dos resultados. Os
dados foram divididos em 10 conjuntos, sendo 9 deles para treinamento e 1 para testes.
Este processo é repetido 10 vezes, de maneira que o conjunto escolhido para o teste será
diferente do anterior e no final é gerada uma média dos resultados.
288
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
realmente não ocorrem. Enquanto que a acurácia (A) é a proporção de predições corretas,
sem levar em consideração o que é positivo e o que é negativo.
A avaliação do desempenho quantitativo de uma determinada técnica ou modelo
proposto pela comunidade cientı́fica são as curvas Receiver Operationg Characteristic
(ROC) [Van Erkel and Peter 1998]. Desenvolvida em bases estatı́sticas onde a principal
caracterı́stica é a relação percentual de acertos. O ideal para um sistema é que a quan-
tidade de acertos no diagnóstico tanto em fatores VP quanto em VN sejam máximas,
conceitos definidos como sensibilidade e especificidade.
4. Resultados e Discussões
O classificador baseado em CNN obteve melhor equilı́brio entre as três métricas de
avaliação com acurácia de 86,7%, sensibilidade de 85,4% e especificidade de 87,1% e
uma curva ROC de 0,91 que o classificador MVS que obteve acurácia de 82,3%, sensibi-
lidade de 62,6% e especificidade de 95,9% e curva ROC de 0,85.
A comparação dos trabalhos relacionados é uma tarefa complexa, já que grande
parte dos autores não disponibilizam os códigos ou bases de imagens utilizadas. Além
disso, algumas bases são diferentes da usada no método proposto. Portanto, os dados
apresentados na Tabela 2, são apenas para ilustrar/comparar os resultados obtidos com os
trabalhos da área.
Um bom método deve ser capaz de classificar com sucesso, tantos os casos de po-
sitivos (que possuem a doença) como os casos de negativos (que não possuem a doença).
Ao analisar a Tabela 2 pode-se destacar Hua et al. (2015) que utiliza modelos baseado
em deep learning, ou seja, uma abordagem similar a utilizada neste trabalho com o clas-
sificador baseado em CNN que sobressai em relação aos resultados. Conclui-se que o
equilı́brio entre as três métricas de desempenho para a solução de diagnóstico pulmonar
proposta neste trabalho baseado em CNN mostra-se mais eficiente que Hua et al. (2015),
Kumar et al. (2015), Orozco et al. (2015) e Dhara et al. (2016), com resultados acima
de 85% para os valores de acurácia, sensibilidade e especificidade, aduzindo que este
trabalho traz contribuições relevantes para o estudo do tema.
289
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Neste trabalho foi proposto um CADx de nódulo pulmonar para classificar com MVS e
CNN, a partir de caracterı́sticas extraı́das por Índices de Diversidade Funcional adaptados
da biologia. Os resultados obtidos foram promissores com acurácia de 86,7%, sensibili-
dade de 85,4% e especificidade de 87,1% e uma curva ROC de 0,91 com o classificador
CNN. A diversidade de nódulos benignos e malignos presentes na base de imagens LIDC-
IDRI utilizada agrega confiabilidade a metodologia, garantida pelos 1.403 nódulos, destes
1.009 benignos e 394 malignos.
Dificilmente o câncer pulmonar é dignosticado em estágio inicial, devido a
ausência de sintomas. O diagnóstico precoce representa um aumento na probabilidade
de sobrevida dos pacientes. A automatização da classificação de nódulos pulmonares pre-
sente neste trabalho, poderá integrar uma ferramenta CADx para ser aplicada em casos
atuais no diagnóstico e acompanhamento de câncer de pulmão, com intuito de identificar
a natureza dos nódulos pulmonares em maligno ou benigno, fornecendo ao especialista
uma segunda opinião.
Referências
(2016). Inca.
Chang, C.-C. and Lin, C.-J. (2011). Libsvm: a library for support vector machines. ACM
Transactions on Intelligent Systems and Technology (TIST), 2(3):27.
Cianciaruso, M. V., Silva, I. A., and Batalha, M. A. (2009). Diversidades filogenética
e funcional: novas abordagens para a ecologia de comunidades. Biota Neotropica,
9(3):93–103.
Clark, K., Vendt, B., Smith, K., Freymann, J., Kirby, J., Koppel, P., Moore, S., Phillips, S.,
Maffitt, D., Pringle, M., et al. (2013). The cancer imaging archive (tcia): maintaining
and operating a public information repository. Journal of digital imaging, 26(6):1045–
1057.
Damasceno, M. d. S. (2016). Classificaccão automática de massas em imagens ma-
mográficas usando ı́ndices de diversidade funcional.
de Carvalho Filho, A. O. (2016). Métodos para sistemas cad e cadx de nódulo pulmonar
baseada em tomografia computadorizada usando análise de forma e textura.
de Carvalho Filho, A. O., de Sampaio, W. B., Silva, A. C., de Paiva, A. C., Nunes, R. A.,
and Gattass, M. (2014). Automatic detection of solitary lung nodules using quality
threshold clustering, genetic algorithm and diversity index. Artificial intelligence in
medicine, 60(3):165–177.
290
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Dhara, A. K., Mukhopadhyay, S., Dutta, A., Garg, M., and Khandelwal, N. (2016). A
combination of shape and texture features for classification of pulmonary nodules in
lung ct images. Journal of digital imaging, 29(4):466–475.
Firmino, M., Angelo, G., Morais, H., Dantas, M. R., and Valentim, R. (2016). Computer-
aided detection (cade) and diagnosis (cadx) system for lung cancer with likelihood of
malignancy. Biomedical engineering online, 15(1):2.
Gonzalez, R. C. and Woods, R. E. (2007). Image processing. Digital image processing,
2.
Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., and Witten, I. H. (2009).
The weka data mining software: an update. ACM SIGKDD explorations newsletter,
11(1):10–18.
Haralick, R. M., Shanmugam, K., et al. (1973). Textural features for image classification.
IEEE Transactions on systems, man, and cybernetics, 3(6):610–621.
Hua, K.-L., Hsu, C.-H., Hidayati, S. C., Cheng, W.-H., and Chen, Y.-J. (2015). Computer-
aided classification of lung nodules on computed tomography images via deep learning
technique. OncoTargets and therapy, 8.
Ivanciuc, O. (2005). Svm-support vector machines. Retrieved April, 10:2012.
Kumar, D., Wong, A., and Clausi, D. A. (2015). Lung nodule classification using deep
features in ct images. In Computer and Robot Vision (CRV), 2015 12th Conference on,
pages 133–138. IEEE.
LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P. (1998). Gradient-based learning applied
to document recognition. Proceedings of the IEEE, 86(11):2278–2324.
Orozco, H. M., Villegas, O. O. V., Sánchez, V. G. C., Domı́nguez, H. d. J. O., and Alfaro,
M. d. J. N. (2015). Automated system for lung nodules classification based on wavelet
feature descriptor and support vector machine. Biomedical engineering online, 14(1):9.
Petchey, O. L. and Gaston, K. J. (2002). Functional diversity (fd), species richness and
community composition. Ecology Letters, 5(3):402–411.
Silva, G. L. F. d. (2015). Detecção de lesões mamográficas usandon redes neurais com-
pletamente convolucionais.
Sousa, J. R. F. (2007). Metodologia para detecção automáticas de nódulos pulmonares.
Tilman, D. (2001). Functional diversity. Encyclopedia of biodiversity, 3(1):109–120.
Van Erkel, A. R. and Peter, M. (1998). Receiver operating characteristic (roc) analy-
sis: basic principles and applications in radiology. European Journal of radiology,
27(2):88–94.
van Ginneken, B., Armato, S. G., de Hoop, B., Van Amelsvoort Van de Vorst, S., Duin-
dam, T., Niemeijer, M., Murphy, K., Schilham, A., Retico, A., Fantacci, M. E., et al.
(2010). Comparing and combining algorithms for computer-aided detection of pul-
monary nodules in computed tomography scans: the anode09 study. Medical image
analysis, 14(6):707–722.
291
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. The use of Wireless Sensor Networks has been diffused in several
areas of research and application, such as in environments where people move
with common characteristics of movement. The proposal of this work is a study
on how to use these sensors to monitor the displacement of people and predict
the formation of groups. Using the Ptolemy II simulator with ZigBee protocol,
sensors identified by Cartesian coordinates, people with RFID tags and with
specific characteristics, it was possible to mathematically formalize the move-
ment of the crowd. The data collection was interpreted by an algorithm that
estimates the formation of multitude in a certain region.
Resumo. O uso das Redes de Sensores sem Fio tem sido difundido em diversas
áreas de pesquisa e aplicação, como em ambientes em que pessoas se deslocam
com caracterı́sticas comuns de movimento. A proposta deste trabalho é um
estudo sobre como utilizar esses sensores para monitorar o deslocamento de
pessoas e prever a formação de grupos. Utilizando o simulador Ptolemy II, com
protocolo ZigBee, sensores identificados por coordenadas cartesianas, pessoas
com etiquetas RFID e com caracterı́sticas especı́ficas, foi possı́vel formalizar
matematicamente o movimento da multidão. A coleta dos dados foi interpretada
por um algoritmo que estima a formação de multidão em determinada região.
1. Introdução
Ambientes com grandes aglomerados de pessoas têm sido alvo de importan-
tes pesquisas, com resultados significantes para a humanidade. Exemplos
como: um sistema de bloqueio veicular contra acidentes envolvendo pedestres
[Saito and Raksincharoensak 2016], a simulação do movimento de multidão durante
inundação [Vijitpornkul and Marurngsith 2015], o monitoramento ambiental e detecção
biológica [Das and Roy 2014], bem como tecnologias utilizadas no cotidiano das cidades
[Iscaro and Nakamiti 2013] demonstram o avanço nessa área e a necessidade de controlar
ambientes com fluxo maior de pessoas.
292
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Atualmente, vários projetos para Cidades Inteligentes utilizam RFID (Radio Fre-
quency Identification), IoT (Internet of Things) e VANTs (Veı́culos Aéreos Não Tripu-
lados) que podem ser utilizados como um nó móvel, recolhendo e entregando dados em
uma RSSF (Rede de Sensores sem Fio), cuja comunicação pode ser realizada pela rede
de celular ou por um rádio dedicado de longa distância [Giyenko and Cho 2016].
O avanço da microeletrônica e das RSSF tornaram possı́vel o uso de sensores
de baixo custo que coletam informações e beneficiam o uso do RFID. A proposta de
[Yu and Chan 2014] é usar etiquetas inteligentes e leitores RFID para localizar coordena-
das de um objeto, auxiliado por GPS (Global Positioning System). Porém, [Fahmy 2016]
apresenta um Smartphone Android, usado como uma IMU (Inertial Measurement Unit),
para rastrear uma pessoa deslocando-se no interior de um ambiente, baseando-se no fato
de que a navegação por satélite não é capaz de funcionar em lugares fechados.
A proposta deste artigo é apresentar uma técnica que realize a estimativa do mo-
vimento de multidões baseada na troca de mensagens entre sensores, desenvolvido em
ambiente simulado e aplicado às RSSF. O ponto forte deste trabalho está no uso da tec-
nologia para gerenciar multidões e evitar transtornos com públicos maiores, usando mo-
delagem e simulação do deslocamento de pessoas, além de uma solução baseada na troca
de mensagens para estimar, antecipadamente, a formação de grupos de pessoas.
293
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
RSSF com protocolo [ZigBee 2012], resultando num retângulo com dimensões 160,06
por 88,86 metros.
294
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Alert é o sensor vizinho que está na mesma direção e em sentido contrário à origem da
movimentação das pessoas. Por exemplo, se um sensor recebe um Notify do seu vizinho
do oeste e percebe uma variação de pessoas no instante seguinte em sua própria região,
ele assume que há, possivelmente, um fluxo de pessoas vindo do oeste para o leste. Em
seguida, cada sensor envia um Alert para seu vizinho do leste, propagando-se a mensagem
pela rede.
A quantidade de pessoas “n” será dada pela variação de pessoas na sua área (e
não no que determina a mensagem Notify armazenada). O tempo “tp ” será definido pelo
tempo atual (ta ), mais a diferença entre “ta ” e o tempo indicado na mensagem Notify (tn ),
ou seja: “tp ” = ta + (ta - tn ).
A mensagem Alarm é utilizada para indicar que, num determinado instante, haverá
uma aglomeração de pessoas numa determinada região. Isso ocorrerá em um instante “t”,
se a soma de todas as quantidades de pessoas previstas nas mensagens Alert recebidas por
um sensor for maior ou igual ao limite aceitável, previamente configurado.
3. Experimentos
Um cenário foi configurado no Ptolemy II para simular torcedores acessando um estádio
de futebol. O experimento realizado foi repetido várias vezes, porém, todos eles foram
feitos em janelas de tempo, cuja variação foi de 5 em 5 unidades de tempo (ut), por
critério de validação do algoritmo. Antes disto, foi feita uma adequação de escalas entre
o ambiente simulado e o ambiente real.
4. Resultados
4.1. Cenário - Estádio
Simulando 50 pessoas chegando ao estádio de diversas direções e tipos de movimentos
diferentes, em busca do Portão de entrada (alvo), elas percorrem a área da RSSF em 70
unidades de tempo, correspondentes a 1 minuto e 10 segundos reais.
A Figura 2 apresenta um gráfico com a quantidade de pessoas detectadas em três
regiões simuladas. A Região 15 é a primeira do canto superior esquerdo (conforme Figura
1), a Região 8 fica no centro e a Região 1 está no canto inferior direito, próximo ao alvo,
e que registra aumento na quantidade de pessoas ao longo do tempo.
295
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
296
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
A partir dos dados coletados pelo algoritmo, de acordo com os três grupos de
testes, foram calculados, para cada grupo, a Média da Exatidão (em porcentagem), o
Desvio Padrão, o Erro e o cálculo da (UM (I)). O grau de liberdade para a repetição dos
testes é de 19 (pois, n – 1 = 20 – 1).
As Figuras 3, 4 e 5 apresentam gráficos, de acordo com os GA’s aplicados (15ut,
20ut e 25ut, respectivamente), relativos às variações na Exatidão (em porcentagem) regis-
tradas em cada um dos grupos de 20 testes.
Para encontrar a Incerteza Expandida, foi multiplicado o valor da (UM (I)) pelo
valor do Coeficiente de Student [Albertazzi and Sousa 2008], correspondente ao número
de Graus de Liberdade, conforme a Tabela 1.
6. Conclusões
A simulação proposta usou um algoritmo que apresentou uma técnica de previsão de
formação de aglomeração de pessoas, tendo emitido vários alarmes corretamente nos
cenários apresentados.
Observando os cálculos realizados com a ajuda da Equação 1, foi encontrada a In-
certeza Padrão aplicada à Exatidão (em porcentagem) da previsão de formação de grupos
de pessoas, baseado nos três GA’s simulados. A análise mostrou que a menor Incerteza
Padrão encontrada foi aquela em que o GA aplicado era igual a 15 ut. Fazendo a devida
aproximação das casas decimais, foi encontrado o seu (UM (I)) = 0,694, bem como o seu
RM E (Resultado da Medição da Exatidão): RM E = 84,97 + ou - 0,694.
297
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
ABNT-NBR-9050 (2004). In Guia prático de acessibilidade.
http://ptolemy.eecs.berkeley.edu/papers/05/visualsense/visualsense.pdf.
Albertazzi, A. and Sousa, A. R. (2008). Fundamentos de metrologia cientı́fica e industrial.
Ed. Manole.
Baldwin, P. (2013). In VisualSense: Visual Modeling for Wireless and Sensor Network
Systems. http://ptolemy.eecs.berkeley.edu/papers/05/visualsense/visualsense.pdf.
Das, T. and Roy, S. (2014). Coordination based motion control in mobile wireless sen-
sor network. International Conference on Electronic Systems, Signal Processing and
Computing Technologies - IEEE.
DNIT (2014). Departamento nacional de infraestrutura de transportes. In Manual de
projeto geométrico de travessias urbanas, page 740. http://ipr.dnit.gov.br/normas-e-
manuais/manuais/publicacoes.
Fahmy, Y. (2016). Android smartphone usage as a pedestrian tracking system. Cairo
University, ICM-IEEE.
Giyenko, A. and Cho, Y. I. (2016). Intelligent unmanned aerial vehicle platform for smart
cities. Department of Computer Engineering, SCIS-IEEE, Graduate School, Gachon
University, Korea.
Google-Earth (2014). http://earth.google.com.
Iscaro, G. and Nakamiti, G. (2013). A supervisor agent for urban traffic monitoring. Inter-
national Multi-Disciplinary Conference on Cognitive Methods in Situation Awareness
and Decision Support, CogSIMA-IEEE.
Saito, Y. and Raksincharoensak, P. (2016). A shared control in risk predictive braking
manoeuvre for preventing collision with pedestrian. Tokyo University of Agriculture
and Technology, SMC-IEEE.
Vijitpornkul, S. and Marurngsith, W. (2015). Simulation crowd movement in agent-based
model of large-scale flood. In Department of Computer Science. Thammasat Univer-
sity, Thailand, ICAICTA-IEEE.
Yu, H. and Chan, J. (2014). An intelligent space location identification system based on
passive rfid tags. International Conference on Machine Learning and Cybernetics -
IEEE, Department of Electrical Engineering, National Taiwan University of Science
Technology.
ZigBee (2012). http://zigbee.org.
298
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Abstract. In the initial school phase, some students face too much difficulty in
developing and understanding language. This problem may be associated with
a learning disorder called dyslexia. In this work a web platform was developed
with educational games for dyslexic children, aiming to improve their language
learning abilities. During the research, data were collected through question-
naires related to the performance of the developed system and the Human Com-
puter Interaction of the platform. The results presented a low percentage of
game error messages, making the environment useful for the area in question.
1. Introdução
Atualmente, um dos grandes desafios das escolas é fornecer uma educação de qualidade
para crianças que possuem Necessidades Educacionais Especiais(NEE). Estas podem es-
tar associadas a problemas temporários que com o passar do tempo e tratamento adequado
o problema pode ser sanado, porém em alguns casos, estes alunos podem apresentar Difi-
culdades de Aprendizagem(DA).
DA refere-se a um distúrbio em um ou mais processos psicológicos básicos envol-
vidos no entendimento ou no uso da linguagem, podendo se manifestar em uma aptidão
imperfeita para ouvir, pensar, falar, ler, escrever, soletrar ou realizar cálculos matemáti-
cos [Grigorenko and Stenrnberg 2003]. Geralmente, são caracterizadas pela desordem ou
disfunção no processo de aprendizado [Barbosa 2015].
299
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
É necessário que fornecer maior atenção aos alunos que manifestem tais dificul-
dades, pois sem o devido acompanhamento, a situação pode agravar-se. Estas atitudes
trazem benefícios no desenvolvimento educacional dos alunos e no seu desempenho es-
colar.
Dentre os diversos tipos de DA, a Dislexia pode ser notada na fase de alfabetiza-
ção, sendo caracterizada pela falta de maturidade cognitiva e intelectual. No entanto, em
grande parte dos casos ela não é detectada, dificultando ainda mais o desenvolvimento
das habilidades de leitura e escrita da criança [Guckert and Faveri 2008].
Este trabalho tem o objetivo de apresentar uma plataforma web, desenvolvida para
permitir que uma equipe multidisciplinar possa indicar jogos, presentes na plataforma,
para crianças disléxicas de acordo com suas habilidades afetadas, a fim de utilizar estes
jogos como forma de execitação.
2. Revisão Bibliográfica
As dificuldades de aprendizado estão presentes no âmbito escolar há um tempo conside-
rável. Até parte século XIX, todas as DAs apresentadas pelas crianças eram atribuídas a
um déficit intelectual [Pinheiro 2009]. Somente, mais tarde elas foram estudadas e com-
preendidas, amenizando os problemas dos indivíduos portadores desta condição.
2.1. A Dislexia
A dislexia caracteriza-se por uma deficiência na habilidade de leitura e escrita, que va-
riam de pessoa para pessoa, podendo apresentar desde graus mais leves aos mais graves
[Santos et al. 2014].
Os sintomas tornam-se mais notórios na escola, onde é preciso buscar a ajuda
especializada para o tratamento desta disfunção [Santos et al. 2014]. E é na sala de aula
que a dislexia é mais incidente [ABD 2016].
A Dislexia é uma desordem genética que de acordo com o Misnistério da Educa-
ção [MEC 2017] afeta cerca de 5% da população brasileira e 17% da população mundial,
nos casos diagnosticados, e embora não seja um assunto tão abordado atualmente, é consi-
derada uma das causas mais frequentes de baixo rendimento, fracasso e abandono escolar.
São três os tipos de dislexia [IPODINE 2014] : a) Visual - onde o indivíduo con-
funde letras e palavras parecidas, podendo revertê-las; b) Auditiva - dificuldade para dis-
tinguir unidades de sons da linguagem, dividir palavras por sílabas, relacionar o som com
a escrita, soletrar; e c) Mista - considerado o mais grave tipo, pois possui tendência de
apresentar ambos os problemas visual e auditiva.
No entanto, há alguns sinais que requerem a atenção . A Associação Brasielira de
Dislexia [ABD 2016] aponta vários destes sinais na pré-escola (como o atraso no desen-
volvimento da fala e da linguagem) e na idade escolar (como a dificuldade na aquisição
e automação da leitura e da escrita) e que devem ser analisados de forma cuidadosa, para
garantir que a criança obtenha um acompanhamento adequado e eficiente.
300
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
utilizam de instrumentos para avaliar a linguagem oral e escrita, bem como as funções
cognitivas e perceptivas do indivíduo [ABD 2016].
No tratamento, métodos de intervenção pedagógicos, como o Multissensorial
(olhar letras impressas e subvocalizar sons, realizar movimentos e utilizar conhecimen-
tos linguísticos para aceder ao sentido das palavras) e o Fônico (privilegia o uso da vi-
são, audição e tato), auxiliam no desenvolvimento das habilidades afetadas pela Dislexia
[Prado and Alioto 2012].
No entanto, a Tecnologia da Informação (TI), combinada com métodos pedagógi-
cos de ensino, diminuem essa dificuldade que os alunos têm em aprender na sala de aula
[Souza and Souza 2010] e tem se tornado uma ferramenta bastante eficaz para se trabalhar
com o disléxico.
3. Trabalhos Relacionados
Existem trabalhos que também buscam oferecer formas de intervir na Dislexia. Dentre
estes softwares estão: a) o Aprendendo com as sílabas, desenvolvido por alunos da Es-
cola Superior de Criciúma (ESUCRI); b) o Aramumo; e c) Mimosa e o Reino das Cores,
os dois últimos foram desenvolvidos por alunos do Instituto Tecnológico de Aeronáutica
(ITA) em parceria com o Instituto ABCD (organização social que atua no apoio a crianças
com dificuldades de aprendizagem) [Stolk et al. 2013]. As principais semelhanças e di-
ferenças destes softwares e da Plataforma Educacional, podem ser visualizados na Tabela
1.
4. Desenvolvimento do software
Para desenvolvimento desta plataforma foram utilizadas as linguagens Ruby on Rails,
HTML, CSS e Java Script. A primeira é um framework que utiliza a linguagem orientada
a objetos, chamada Ruby e as demais, são utilizadas para construção de páginas web.
301
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
302
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
(a) (b)
5. Resultados
Para avaliação dos resultados destes experimento, é importante ressaltar que o sistema
não pode ser validado com crianças dislexas, pois ainda não houve tal oportunidade, con-
siderando que este tipo de experimento requer bastante tempo, sendo necessário uma ava-
liação com uma amostra de dislexicos que devem utilizar o sistema por um determinado
período de tempo e comparar os resultados com os métodos tradicionais.
303
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
304
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
De acordo com as respostas obtidas, observa-se que em aspectos como por exem-
plo, a disponibilidade de informações (questão 1), feedback(2) e denominações de menu
(12), Tabela 3,os alunos consideraram que estes são bastante positivos, pois implica em
305
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Conclusão
Sabemos que é um grande desafio tanto para pais, professores e profissionais, fornece-
rem atenção de qualidade a crianças que possuem distúrbios ou algum tipo de limitação.
Porém, atualmente, graças a tecnologia, podemos encontrar diversas que ferramentas que
podem auxiliar neste tipo de situação. A Plataforma Educacional para Disléxicos surgiu
com o intuito de ajudar neste tipo de caso e contribuir para que dislexos possam aprender
e progredir de séries na escola, adquirindo aprendizado de maneira lúdica.
Para isso realizamos experimentos para avaliar a utilidade de nosso sistema e ob-
tivemos respostas que nos alegraram, como a aprovação de profissionais que lidam diari-
amente com crianças que possuem estas limitações. Para eles o nosso sistema foi classifi-
cado com um bom potencial para desenvolver as habilidades para o qual foi desenvolvido.
Para comprovar isso, será necessário a realização de exprimentos com dislexos, que futu-
ramente o faremos.
Referências
ABD, A. B. d. D. (2016). O que é dislexia?
Barbosa, P. d. S. (2015). Dificuldades de aprendizagem. In Luís:UemaNet, S., editor,
Department of Computer Science, page 18.
Grigorenko, E. L. and Stenrnberg, R. J. (2003). Crianças rotuladas - o que é necessário
saber sobre as dificuldades de aprendizagem.
306
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
307
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O agricultor de modo geral está exposto a variações espaciais, temporais que afetam
diretamente sua produção e podem elevar os custos, o uso da agricultura de precisão
(AP) em conjunto com técnicas agrı́colas aumenta a produtividade e qualidade ambiental
[Pierce and Nowak 1999] .
Haja vista que as necessidades hı́dricas estejam na quantidade e na qualidade cor-
reta, a evapotranspiração máxima está relacionada diretamente a variações meteorológicas
[Dalmago et al. 2006], o entendimento dessas relações é importante para agregar quali-
dade ao produto final [Dalmago et al. 2006]. Além do mais as produções agrı́colas ge-
ralmente se localizam distantes das cidades, necessitando que o agricultor esteja presente
para ter acesso a informações de interesse, gerando a necessidade de uma ferramenta que
esteja sempre disponı́vel para consulta de dados de maneira remota.
Hoje em dia, a tecnologia móvel está cada vez mais popular e o seu
uso para acesso a informação mais comum. Junto a isso tem-se o paradigma
Internet das Coisas (IoT), a tecnologia de intercâmbio de informações, onde é
possı́vel comunicação pessoas-para-máquina[Santaella et al. 2013] ou máquina-para-
máquina[Namiot and Sneps-Sneppe 2014], deste modo possibilitando a aquisição de
informações, execução de comandos de maneira remota a hardware de diferentes re-
cursos e propósitos [Namiot and Sneps-Sneppe 2014], permitindo assim ser usada para
automação em situações diárias [Santaella et al. 2013].
308
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Relacionados
A utilização de bots em sistemas embarcados já se mostra bastante usual, como exempli-
ficado em [de Oliveira et al. 2016]. Neste trabalho, o autor demonstra todo o processo da
implementação de bots com Telegram conectado a um Arduino, é relatado em seus testes
a possibilidade de aquisição de dados de sensores assim como o controle de ativação de
suas portas.
Já em [oshizaki and Lopes 2016] é mostrado a utilização de bot com Telegram
para controle de computadores por meio de acesso ao seu terminal. De acordo com os
seus testes o autor demonstra que a média de tempo de acesso nas principais funções são
executadas por meio de SSH, normalmente delongam mais tempo. Quando realizadas
pelo bot ganha-se tempo e praticidade, mostrando-se assim a sua otimização na usabili-
dade.
No trabalho de [Karrei et al. 2016] é apresentado uma técnica de detecção de mo-
lhamento foliar por meio de análise de imagens. O autor destaca o uso de dois métodos na
tentativa de detecção da água, no primeiro método foi utilizado o filtro Canny Edge De-
tector, com objetivo de identificar as gotı́culas de água a partir da detecção de suas bordas,
porém os resultados obtidos não foram satisfatórios. No segundo método, o autor decidiu
utilizar a técnica de filtragem de cores, para segmentar as partes do local fotografado,
molhado ou não molhado dividindo-as entre preto ou branco.
[Giandoni and Gambarato 2011] utilizou técnicas de processamento de imagens
para a detecção de oı́dio em folhas de seringueira. Utilizou-se a segmentação através da
manipulação da intensidade dos pixels e aplicou-se várias faixas de frequências diferentes
de modo a modificar a intensidade de cores encontrados em cada pixel. Deste modo,
descobriu-se o valor exato de cada pixel que determina a folha com e sem fungo.
[Pecoraro et al. 2010] por sua vez fez o uso de visão computacional e redes neu-
rais para detecção e classificação de fungos em laranjas após a colheita. Utilizou-se uma
câmera digital para a aquisição de imagens de frutos contaminados, para serem usadas
como treinamento da rede. Posteriormente foi utilizado a técnica de binarização para
fornecer uma primeira imagem de segmentação ao usuário. Posteriormente utilizou-se
a rede neural mais especificamente a perceptron para identificar o fungo em qualquer
imagem desconhecida.
309
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Agricultura de Precisão
[BERNARDI and Inamasu 2008] demostra que AP pode ser decisiva ao traçar estratégias
para o agronegócio brasileiro. [SOUZA FILHO et al. 2004] mostra que existe uma
distinção entre os produtores que se enquadram na agricultura familiar, que variam desde
produtores cuja produção é de subsistência até produtores com dotação de grandes recur-
sos como terra, capacitação e conhecimento, demostra ainda que produtores mais jovens
tendem a adotar a AP em suas produções.
O conhecimento agrı́cola e de mercado são cruciais para o bom desenvolvimento
e a sustentabilidade da agricultura familiar [SOUZA FILHO et al. 2004], tornando assim
a adoção de tecnologias de manejo agrı́colas junto ao AP fundamentais para o bom de-
senvolvimento do agronegócio no ambiente familiar [SOUZA FILHO et al. 2004]
4. Materiais e Métodos
Na tabela 1 é demostrado os módulos utilizados na produção do protótipo, nos módulos
de controle foram utilizados a placa de prototipagem Arduino Uno e o Orange Pi PC. O
Arduino recebe e trata dados do módulo de sensoriamento que são umidade e temperatura
e enviar para o Orange Pi PC, onde está o módulo de atuação que é responsável por
direcionar os dados quando solicitados ou armazenar para consultas futuras.
No módulo de interface (figura 3) é utilizado o aplicativo Telegram que faz o
interação do produtor com o sistema AGROTBOT, que ao utilizar comandos especı́ficos
irá conseguir dados de sua propriedade.
310
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Resultados
O protótipo do sistema AGROTBOT foi montado em laboratório para facilitar as etapas
de testes, como pode ser visto na figura 2 onde o mesmo se encontra operante, ainda
311
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
Figura 2. Protótipo
(a) (b)
312
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
(a) (b)
6. Conclusão
O sistema de gerenciamento agrı́cola através de bots Telegram (AGROTBOT) efetivou
êxito na sua proposta, obtendo e tratando dados de umidade e temperatura, armazenando
para consultas futuras, capturando fotos, aplicando filtros, gerando gráficos e enviando
para o usuário quando solicitado.
Há um leque de possibilidades de acesso remoto a funções do bot desde as citadas
até controle de máquinas agrı́colas, sistemas de irrigação, controle e prevenção de pragas
e doenças.
A inovação está cercada de incertezas que influenciam a adoção de novas tecno-
logias. O risco torna-se uma variável potencial para a inclusão da AP em uma produção
agrı́cola, nesse sentido o uso do AGROTBOT para monitoramento reduz o risco e aumenta
as informações para tomada de decisões.
Referências
BERNARDI, A. d. C. and Inamasu, R. Y. (2008). Adoção da agricultura de precisão no
brasil. Embrapa Instrumentação-Capı́tulo em livro técnico-cientı́fico (ALICE).
da Fonseca, E. G. and Alexandre, S. (2011). Tutorial sobre introdução a projetos utili-
zando o kit de desenvolvimento arduino.
Dalmago, G. A., Heldwein, A. B., Nied, A. H., Grimm, E. L., and Pivetta, C. R. (2006).
Evapotranspiração máxima da cultura de pimentão em estufa plástica em função da
313
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
314
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introduction
Plug-and-Play is a specification that facilitates the attachment of USB keyboards, mice
and other devices to a computer. When a plug-and-play human interface device (HID) is
connected to a machine, it is automatically configured to perform input/output operations
[Microsoft 2017]. This flexibility helped USB to become very popular. Nowadays, USB
ports can be found on every consumer laptop, desktop and a large number of other devices.
From the user perspective, plug-and-play makes device connection a straightforward task,
however, this can be seen by an adversary as an attack vector. One is able to design a
hardware apparatus capable of disguising itself as a different device, such as a keyboard,
and then issue commands to a target computer by entering keystrokes in a shell terminal
[Kang and Saiedian 2015]. This attack is known as keystroke injection.
In this paper, we analyze how an adversary is able to perform a fast keystroke
injection and compromise the security of a computer system, given a limited amount
of access time to a plug-and-play enabled machine. This is important, because such an
exploit is a powerful tool for an adversary to obtain unauthorized access to data or gain
control over a system. Also, in order to design protective mechanisms, it is essential to
understand what an adversary can do by exploiting a vulnerability [Anderson 2008].
We analyze the dangers of fully automatic USB device configuration and propose
ideas to alleviate the threats. In our scenario, the adversary has a cheap microcontroller,
such as an ATMEGA32U4, that is programmed to emulate a keyboard and input a set
of predefined keystrokes when connected to a computer. These keystrokes are specially
crafted to open a shell terminal and enter an exploit command. We measure the effec-
tiveness of exploits that compromise confidentiality, integrity and availability (CIA) of a
computer system and how much access time is required for them to be performed. The
315
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
experiments encompass two kinds of operating systems, GNU/Linux and Windows, and
five different exploits. The main contribution of our work is a time analysis of attacks to
USB plug-and-play by HID emulation and keystroke injection.
2. Related Work
The dangers associated with USB plug-and-play are recurrent topics in computer security.
[Tetmeyer and Saiedian 2010] published a study about transient storage devices (TSD),
data storage peripherals that can be connected via USB port. The authors discuss the
risks of using TSDs, including theft of sensitive data, malware installation and data loss.
They also present mitigation techniques and strategies that apply to scenarios when an
adversary takes advantage of capabilities granted to peripherals.
Attacks that specifically exploit vulnerabilities in plug-and-play HIDs were pro-
posed by [Clark et al. 2011b]. The authors investigate the possibility of using hard-
ware trojans to exfiltrate data through unintended USB channels, the Keyboard LED
channel and the Audio channel. A proof-of-concept hardware trojan was presented by
[Clark et al. 2011a]. In [SRLabs 2014], the USB plug-and-play flaw was exploited with
the use of a microcontroller and a storage device coupled together. The authors demon-
strated attacks in which an adversary could gain administrative access to Windows and
Linux machines. These attacks were able to install a keylogger in the target computer,
gain root access and infect other USB devices. These vulnerabilities also acquired popu-
larity in the hacking community. A tool that exploits USB plug-and-play by HID emula-
tion, known as Rubber Ducky, is available online. The device, which includes a 60 MHz
32-bit CPU and Micro SD storage, is disguised as a regular flash drive and programmed
to perform keystroke injection attacks when connected to a computer.
A measure to mitigate the threat of a USB plug-and-play exploit by unwanted HID
emulation is to require user prompt before allowing the USB HID to interact with other
applications. G-Data, a computer security company, distributes a software that captures
all keystroke events of a newly connected HID and redirects them to a user prompt pop up.
The new keyboard is not allowed to send keystrokes to any other application before being
granted access by the computer’s owner [GData 2014]. A sophisticated approach to mit-
igate USB plug-and-play insecurities was shown by [Kang and Saiedian 2015]. The au-
thors propose and implement a hardware interface between the computer system and USB
peripherals. The interface enumerates newly connected devices and a software prompts
the user to verify whether the peripheral is trusted before allowing it to operate. This
measure adds a physical protection layer against granting resources to fake HIDs.
316
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
When a device is connected to a USB port, the host starts a process called enumeration.
This process is detailed in the Universal Serial Bus Specification [Compaq et al. 1998].
Enumeration consists of resetting the device, in order to bring it to a default state, and
then asking the device for its configuration descriptors. The descriptors are Read-Only
Memory (ROM) segments that represent information about the device. It contains device
manufacturer, id, class, subclass and USB version.
The host computer examines the received descriptors and loads the correct driver
for the device. There are different class codes for different applications. In this paper,
we focused on the HID class, which is used by keyboards, mice and joysticks. Because
the HID class is defined in the USB HID specification [Intel et al. 1998], nearly every
modern operating system has the drivers for HID devices. Therefore, most HID devices
don’t required any action or driver installation and can be fully operational seconds after
being connected to a computer. The USB initialization protocol is shown in figure 1.
There are plenty of inexpensive microcontrollers with USB support. With such
a microcontroller, one is able to craft a USB device with custom descriptors. This al-
lows the device to fake its class and function as another. For example, by presenting the
descriptor of an HID, a microcontroller can emulate a USB keyboard and is allowed to
inject arbitrary keystrokes in the system. Such an equipment has the capability to perform
keystroke injection attacks. In this study, we used an ATMEGA32U4 to emulate a USB
keyboard. This microcontroller is USB 2.0 compliant, has one 8-bit processor core, can
run up to 16 MIPS and has 32 kB of program flash memory, but an SD card may be used
to expand storage [Atmel 2015].
317
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
states that every access and every object should be checked every time. A secure system
should assume that the environment where it operates is hostile and be reluctant to trust
[McGraw 2013]. In the case of plug-and-play, the object is a new USB device that re-
quests access to the USB bus as an HID. The only verification step during configuration is
related to device class. Because the class information is provided by the device itself, it is
not reliable. After the drivers are loaded and the device is configured, there is no verifica-
tion concerning its behavior. This disobeys the principles of questioning all assumptions,
complete mediation and reluctance to trust, thereby creating a security flaw.
Attack Scenario
The target system is composed of a desktop or laptop. We assume that the target is on
and a user, Alice, is currently logged-in. The machine may be connected to the Internet.
A local attacker, Eve, as described in our adversary model, wants to break confidential-
ity, integrity and availability of Alice’s computer. Some methods to compromise these
properties are described below:
318
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. Experiments
Some tools, like the Rubber Ducky, were considered to perform the experiments. How-
ever, we decided to use the ATMEGA32U4 Mini Development Board. While it contains a
low end microcontroller, it is still capable of keyboard emulation, has much lower cost and
is compatible with Arduino. The test firmware was designed using Arduino language and
capable of injecting an average of 242 keystrokes per second. When the microcontroller
connected to a USB port, the firmware injected keyboard shortcuts to open a terminal and
entered the payload, a shell script to be run as a background process. Our purpose was to
measure how much access time would be required for an adversary to perform compro-
mising keystroke injection attacks. The payload size for each exploit is shown in table 1.
Each test attack was responsible for breaking at least one of the CIA properties:
• copy: copies and uploads a known directory and its contents to a remote server.
This could be used by an attacker to steal specific files with a known path;
• search/copy: searches for files that match a pattern and uploads them to a remote
server. In our tests, the matching pattern was a .pdf extension. This could be used
by an adversary to steal any file accessible to the user;
• delete: deletes a know directory and its contents. This is a manner to destroy
information on the target machine;
• encrypt: encrypts a know directory and its contents. An adversary could use this
exploit and force the user to pay a ransom to recover the encrypted files;
• forkbomb: run a fork bomb and provoke a system crash. This is a way for an
adversary to compromise the availability of the computer system.
In our tests, the interaction between the microcontroller and the target computer
has two phases. First, after the device is connected to a USB port, the device firmware
injects a set of keystrokes to open a terminal. It then must sleep for a predefined time in-
terval while the terminal program is loaded into main memory (RAM). The time between
the first keystroke injection and full loading of the terminal is dependent whether it is cur-
rently in RAM buffer/cache or it must loaded from the disk. Our experiments considered
both situations.
The second phase happens after the terminal is fully loaded. Now, the firmware
delivers the payload, a shell script, containing the exploit, that will be executed as a back-
ground process. After delivery, the firmware injects keystrokes to close the terminal and
319
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
the device can be disconnected. The total time of the attack is measured from the instant
the ATMEGA32U4 is connected to the USB port to the moment it is disconnected. We
performed ten measurements for each exploit, in which five of them loaded the terminal
from disk and the other five loaded it from RAM buffer/cache. The experiments were
done in GNU/Linux and Windows operating systems.
Table 1. Payload size, in bytes, for each exploit
Exploits GNU/Linux Windows 10
copy 77 313
search/copy 200 432
delete 14 112
encrypt 133 282
forkbomb 13 29
Figures 2 and 3 show the average times obtained for each test exploit in
GNU/Linux and Windows 10 systems, respectively. The GNU/Linux system of choice
was elementaryOS Loki, a Debian-based distribution. Both systems used an Intel Core i5
processor, 4GB 1600 MHz DDR3 RAM and a SATA HDD disk.
8
Loading from disk
Loading from RAM buffer/cache
7 6.71 6.60
6.33 6.44 6.33
6
5
Time (s)
4
3.12 3.18
3 2.57
2.42 2.31
2
1
0 copy search/copy delete encrypt forkbomb
We observe from figure 2 that the attack time on GNU/Linux had little depen-
dence on which exploit was being executed. However, a significant time variation is seen
between the attacks that use RAM buffer/cache and those that need to load the terminal
from disk. This variation was expected and only highlights that attacking a system that
already loaded a terminal application during its operation is faster, even if the application
is no more in use. This happens because application data is kept in RAM buffer/cache
after the process terminates, as a measure to improve overall system performance.
Figure 3 shows that, on Windows 10, the difference between attack times that
load the terminal from disk and RAM buffer/cache is is slightly lower. We observe that
320
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
the average time to perform different attacks shows a larger variation than the attacks
made on GNU/Linux.
8
Loading from disk
Loading from RAM buffer/cache
7.10
7
6.30
6
5.29
5 4.57
Time (s)
4 3.69 3.67
3.49
3.20
3
2.29 2.31
2
1
0 copy search/copy delete encrypt forkbomb
The experiments showed that the mean required attack time when the terminal
must be loaded from disk is 6.48 seconds on GNU/Linux and 5.21 seconds on Windows
10. This value is computed as the mean average attack time, considering each exploit.
This implies that an adversary, taking advantage of the plug-and-play vulnerability, needs
access for approximately 6 seconds or less to inject payloads that compromise confiden-
tiality, integrity and availability of a computer system. The situation is worse if a terminal
application has already been loaded since initialization, as it’s very likely that application
data is kept in RAM buffer/cache. In this case, the mean attack time drops to 2.26 seconds
on GNU/Linux and 3.17 seconds on Windows 10.
321
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
to work on the development of a reliable software layer that intercepts keystroke events,
recognizes keystroke injection attacks and blocks offending devices before redirecting
keystrokes to other processes.
References
Anderson, R. (2008). Security Engineering: A Guide to Building Dependable Distributed
Systems. Wiley.
Atmel (2015). Atmega32u4 datasheet. [Available] http://www.atmel.com/Images/Atmel-
7766-8-bit-AVR-ATmega16U4-32U4 Datasheet.pdf [Access 30-07-2017].
Beznosov, K. (2015). Computer security: Principles of designing secure systems. [Avail-
able] http://courses.ece.ubc.ca/cpen442/sessions/08-design principles.pdf [Access 30-
07-2017].
Clark, J., Leblanc, S., and Knight, S. (2011a). Compromise through usb-based hardware
trojan horse device. Future Gener. Comput. Syst., 27(5):555–563.
Clark, J., Leblanc, S., and Knight, S. (2011b). Risks associated with usb hardware trojan
devices used by insiders. In 2011 IEEE International Systems Conference, pages 201–
208.
Compaq, Intel, Microsoft, and NEC (1998). Universal serial bus specification. [Available]
http://esd.cs.ucr.edu/webres/usb11.pdf [Access 30-07-2017].
GData (2014). Usb keyboard guard: How to be sicher from usb attacks. [Available]
https://www.gdatasoftware.com/en-usb-keyboard-guard [Access 30-07-2017].
Intel, Microsoft, SunMicrosystems, Logitech, Alps, Cybernet, DEC, KeyTron-
icCorporation, LCS/Telegraphics, NCR, and ThrustMaster (1998). De-
vice class definition for human interface device (hid). [Available]
http://www.usb.org/developers/hidpage/HID1 11.pdf [Access 30-07-2017].
Kang, M. and Saiedian, H. (2015). Usbwall: A novel security mechanism to protect
against maliciously reprogrammed usb devices. Information Security Journal: A
Global Perspective.
McGraw, G. (2013). Thirteen principles to ensure enterprise system secu-
rity. [Available] http://searchsecurity.techtarget.com/opinion/Thirteen-principles-to-
ensure-enterprise-system-security [Access 30-07-2017].
Microsoft (2017). Hardware dev center – plug and play. https://msdn.microsoft.com/en-
us/library/windows/hardware/dn614609(v=vs.85).aspx [Access 30-07-2017].
Mouratidis, H., Giorgini, P., and Manson, G. (2004). Using security attack scenarios to
analyse security during information systems design. In Proceedings of the Interna-
tional Conference on Enterprise Information Systems, Porto-Portugal, pages 10–17.
SRLabs (2014). Badusb: On accessories that turn evil. [Availbale] https://srlabs.de/wp-
content/uploads/2014/11/SRLabs-BadUSB-Pacsec-v2.pdf [Access 30-07-2017].
Stallings, W. (2011). Cryptography and Network Security: Principles and Practice 5th
Edition. Prentice Hall.
Tetmeyer, A. and Saiedian, H. (2010). Security threats and mitigating risk for usb devices.
IEEE Technology and Society Magazine, 29(4):44–49.
322
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Tulio Vidal Rolim1, Débora Ferreira Angelim1, Marcos Alan Sousa Barbosa2,
Vânia Teixeira Lima3, Jorge Correia da Silva Neto4, Ronnie Edson Santos5
1
Faculdade Vale do Salgado (FVS), Icó-Ceará, Brasil.
2
Universidade Federal de Campina Grande (UFCG), Cajazeiras-Paraíba, Brasil,
3
Escola Estadual de Ensino Profissionalizante José Walfrido Monteiro (EEEPJWM),
Icó-Ceará, Brasil.
4
Universidade Federal Rural de Pernambuco (UFRPE), Recife–Pernambuco, Brasil,
5
Universidade Federal de Pernambuco (UFPE), Recife–Pernambuco, Brasil.
{tulio.xcrtf, deboraferreira001, jorgecorreianeto,
ronnie.gd }@gmail.com, {m.alanbarbosa, vania-jora}@hotmail.com
323
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A Matemática é uma ciência imprescindível na formação de um cidadão. Muitas áreas do
conhecimento se desenvolveram e tornaram-se úteis ao ser humano graças a
conhecimentos matemáticos. Entretanto, muitos estudantes da disciplina consideram-na
como “incompreensível”, “monótona” e “inaplicável”. Julgamento este que pode
influenciar em índices de insucesso da área em vestibulares, concursos e similares, além
de reprovação durante o Ensino Fundamental e Médio. Desta forma, o educando
apresenta uma defasagem não restritamente em Matemática, mas também em outras áreas
do conhecimento, uma vez que esta ciência é interdisciplinar. Papert (1988) define esta
defasagem no educando através de diversos fatores que, tanto diretamente quanto
indiretamente, criam um bloqueio mental no aluno chamado por ele de “matofobia”-
medo ou aversão à Matemática.
A matofobia se caracteriza como um impedimento no aprendizado de qualquer
coisa relacionada a matemática, mesmo não apresentando dificuldade quando não a
reconhecem. Esse sentimento pode ser justificado por meio de algumas metodologias
ineficazes de ensino, que não se adéquam a necessidade singular do educando,
dissociando a aprendizagem do afetivo, do social e ignorando a própria causa do
sentimento (BLOOM, 1971). Em uma visão contemporânea, Oliveira (2016) alega que o
modelo atual de transmissão dos conhecimentos presente no ambiente escolar reduz a
criatividade, tornando assim mais difícil o ensino-aprendizagem da Matemática.
Como uma proposta metodológica, os recursos tecnológicos podem se apresentar
como uma alternativa aos docentes em sala de aula, principalmente no que diz respeito
aos computadores. Perante os avanços tecnológicos do mundo atual, os alunos possuem
acesso à informação de uma forma cada vez mais rápida, cabendo ao professor tornar-se
um indivíduo ativo capaz de utilizar a tecnologia como instrumento de mediação à
aprendizagem (FIGUEIREDO, NOBRE e PASSOS, 2015). Diante disso, Carvalho et. al.
(2008) observa que por meio da utilização do computador, o processo de aprendizagem
ocorre de maneira tranquila e natural, expressando a presença da tecnologia e seus
recursos no processo de ensino-aprendizagem. Entretanto, na literatura não há trabalhos
aplicados até o presente momento que utilizem um software como ferramenta de auxílio
ao problema da matofobia.
A dificuldade em Matemática não acarreta restritamente a ciência enquanto
disciplina, mas todo um conjunto de ciências e a própria vida cotidiana do educando. Este
fato, consequentemente, tem refletido em nossa realidade escolar no município de Icó-
Ceará. Este trabalho possui como objetivo identificar e amenizar este sentimento de
aversão à Matemática através da aplicação de um software denominado Matofobia em
alunos do primeiro ano do ensino médio, gerando posteriormente, uma proposta de ação
que se adeque a necessidade individual de cada estudante.
Este artigo está organizado da seguinte forma: a Seção 2 apresenta o software
Matofobia e suas funcionalidades; a Seção 3 apresenta a metodologia adotada; a Seção 4
apresenta os resultados e discussões; e a Seção 5 apresenta as conclusões.
324
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Software Matofobia
O software constitui-se como uma ferramenta voltado ao diagnóstico e proposta de
intervenção à matofobia e suas causas, servindo como instrumento de apoio aos
professores para identificar e posteriormente reduzir os índices de aversão à matemática
durante as aulas. O software Matofobia é um software gratuito que foi desenvolvido
utilizando a linguagem de programação Java SE (Standard Edition), estando assim,
disponível para todos os sistemas operacionais que operam em computadores desktop e
notebooks. Como sistema de banco de dados foi adotado uma abordagem dinâmica em
sua definição, possibilitando a utilização por meio de um banco de dados local através do
SQLite ou em rede utilizando o Sistema de Gerenciamento de Banco de Dados (SGBD)
MySQL.
As funções contidas no software Matofobia, são respectivamente: Questionário
Matofóbico, Visualizar Questionários, Gerar Relatório Geral, Gerar Relatório Individual,
Visualizar Gráfico Geral e Visualizar Proposta de Intervenção.
A Figura 1 apresenta o questionário matofóbico composto por 9 questões objetivas e 1
aberta sendo questões de múltipla e simples escolha. Inicialmente, o estudante deve
informar seu nome e curso (em caso de escola profissionalizante), em seguida, é
necessário que todas as dez questões sejam respondidas sem exceção. Durante este
processo, há um personagem na tela chamado “Coruja Professor” que é encarregado de
dar orientações ao usuário quando clicado. A navegabilidade da tela é feita por meio dos
botões de avançar e voltar.
325
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 3. Gráficos
326
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Metodologia
A pesquisa adotada neste trabalho é de natureza aplicada, por ser uma pesquisa que
objetiva gerar conhecimentos para aplicação prática, dirigidos a solução de problemas
específicos (GERHARDT e SILVEIRA, 2009). Quantos aos objetivos, caracteriza-se
como descritiva no que tange a pesquisa de campo por meio de entrevistas, e exploratória
por meio da pesquisa bibliográfica, já que para sua execução fez-se necessário pesquisas
em diversas áreas do conhecimento, como a Pedagogia, Informática, Psicologia e a
Etnomatemática.
A partir do depoimento de alguns alunos, percebeu-se a necessidade de estudar a
realidade das turmas do 1° ano da Escola Estadual de Ensino Profissionalizante Deputado
José Walfrido Monteiro da cidade de Icó-CE, através de um software capaz de identificar
a presença e as causas da matofobia no aluno.
O software foi atestado por psicólogos, no qual comprovaram a sua eficácia em
identificar a matofobia. Através de mecanismos e combinações entre as questões é
possível gerar um relatório que discrimina a presença do sentimento no aluno e a sua
respectiva causa. Para efeitos de intervenção, o aplicativo gera uma proposta de ação para
a causa identificada, sugerindo uma maneira de amenizar o sentimento. Desta forma foi
possível ao professor obter o perfil individual de cada educando, adequando-os
posteriormente a metodologias específicas.
Através da aplicação do software com 178 educandos foram coletados os dados
que, estatisticamente, indicaram quantitativamente os alunos matofóbicos e suas
respectivas causas.
4. Resultados e Discussões
O software apresentou uma realidade até então desconhecida: 43% dos alunos
apresentaram a matofobia. A repulsa pela disciplina foi evidenciada através da resolução
do questionário contido no software, cujas causas foram diversas. Após a adequação
metodológica do professor e a reaplicação do software, houve uma melhora significativa
no rendimento dos alunos na disciplina de matemática, sendo constatado que 60% dos
discentes que anteriormente cultivavam antipatia à Matemática tiveram uma
transformação do seu sentimento com a disciplina.
327
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
328
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusões
A Matemática, apesar de ser uma disciplina tão próxima do nosso dia a dia, não é
enxergada como tal pelas pessoas. Este sentimento de intangibilidade associado a outros
aspectos criam no indivíduo um fenômeno chamado de matofobia, o que acarreta baixos
índices de aproveitamento na disciplina. Entretanto, através de intervenções individuais,
disponíveis no software da pesquisa, este sentimento pode ser amenizado, uma vez que
os educandos apresentam realidades distintas e, portanto, necessitam de métodos
distintos. Por conseguinte, através da aplicação do software e adoção metodológica por
parte do docente foi possível tornar uma disciplina tida por muitos como inaplicável,
monótona e antagônica em uma prática interessante, lúdica e factível, amenizando a
matofobia e aumentando consideravelmente o nível de aproveitamento na disciplina.
Referências
GIORDAN, A.; VECCHI, G. trad. Bruno Charles Magne. As Origens do Saber: das
concepções dos aprendentes aos conceitos científicos. Porto Alegre: Artes Médicas,
1996.
329
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
330
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A agropecuária é uma área onde crescentes aplicações de automação e mo-
nitoramento estão sendo desenvolvidas com as mais diversas funcionalidades bus-
cando a finalidade de facilitar o controle dos processos utilizados e otimizar a
produção [Bernardi et al. 2017]. As tendências atuais na aplicação de sistemas de
automação são em áreas como: máquinas e implementos agrı́colas, irrigação, criadouros,
processamento, armazenamento e transporte de produtos agrı́colas, construções rurais e
ambiência [Sousa et al. 2014].
No campo da piscicultura não é diferente; busca-se cada vez mais otimizar a
produção de peixes aliado a um menor custo para os seus produtores. Muitos são os
fatores que contribuem e são fundamentais para a manutenção de um criatório de peixes
como por exemplo manter a qualidade da água aferindo a sua temperatura, o seu potencial
Hidrogeniônico (pH), oxigênio dissolvido, assim como o controle da alimentação entre
outras, fatores esses que são passı́veis de automação contribuindo assim para uma maior
produtividade na criação de peixes.
331
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
332
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
exemplo da função setup(), para a inicialização das variáveis e loop() para repetir
indefinidamente as instruções principais do sketch.
3. Trabalhos Relacionados
Vem crescendo a utilização de plataformas de hardware livre como o Arduino
para a automação de tarefas na área da agropecuária. É possı́vel construir sistemas de
monitoramento com o uso de sensores de baixo custo permitindo obter os dados do am-
biente e enviá-los, por exemplo, via serviço de mensagens telefônicas SMS (Short Mes-
sage Service) [Siveira Júnior et al. 2015]. Esse tipo de comunicação facilita a obtenção
de informações por parte do produtor, necessárias para tomada de decisões que visam o
aumento de sua produção.
A integração de plataformas de hardware livre com outras tecnologias também
é uma solução que pode abrir caminho para muitas pesquisas. O trabalho de
[Baldi and Feuser 2015] aborda a aferição do nı́vel de umidade do solo, transmitindo
dados para dispositivos de Internet das Coisas e deles para computadores e celulares
conectados. O sistema utiliza componentes de baixo custo e têm a sua montagem e
programação facilmente modificáveis. Essa solução visa contribuir no desenvolvimento
agrı́cola através da economia de água.
Em áreas mais especı́ficas, a exemplo da piscicultura, o monitoramento da
água deve ser constante, pois alterações em indicadores como: temperatura, pH, tur-
bidez e presença de sólidos, podem trazer prejuı́zos à cultura. Quando essa tarefa
é feita de forma manual, pode estar sujeita a esquecimento ou impossibilidade por
parte do responsável, o que pode ocasionar em perdas significativas para a produção
[Sampaio et al. 2013] [Siveira Júnior et al. 2015].
O critério presença de sólidos é levado em conta no trabalho de
[Sabari Akilesh et al. 2017]. A pesquisa apresenta um alimentador automático para
um criatório de peixes que estima o nı́vel de sujeira nos tanques e utiliza um módulo
GMS (Global System for Mobile) para alertar aos produtores essa condição. O sistema
permite que sejam inseridos, por meio de um teclado acoplado, o número aproximado
333
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Materiais e Métodos
Este trabalho consiste basicamente em um estudo de caso envolvendo uma solução
de protótipo para o setor de piscicultura da fazenda do Colégio Técnico de Floriano, uma
instituição vinculada à Universidade Federal do Piauı́.
A pesquisa exploratória realizada demandou inicialmente um levantamento bi-
bliográfico em busca das melhores práticas para a montagem do protótipo da solução.
A seguir, visando uma melhor compreensão dos requisitos do projeto, foram realizadas
entrevistas com professores e técnicos do departamento de Agropecuária, bem como vi-
sitas realizadas na fazenda do Colégio para observações in loco das instalações atuais dos
criatórios.
Inicialmente foi verificado o ambiente onde o sistema de automação seria utili-
zado. Outra questão analisada foram as práticas da piscicultura abordadas, quais são os
parâmetros considerados como condições ideais da água e como são executadas as ativida-
des nos tanques de peixes. Após essa análise foram identificados vários fatores referentes
à qualidade da água que poderiam pôr em risco a vida e a reprodução dos peixes como,
por exemplo: a temperatura da água que não era monitorada.
As temperaturas acima ou abaixo do ótimo influenciam de forma a reduzir
seu crescimento. Em caso de temperaturas extremas, podem acontecer mortalida-
des [Silva et al. 2009] gerando prejuı́zos aos criadores.
Atualmente, a alimentação dos peixes é uma atividade realizada de forma manual
na fazenda do CTF. Caso ela não seja feita nos horários corretos, pode trazer sérios riscos
a saúde dos animais, segundo [Camargo et al. 2012], os animais necessitam se alimentar
com qualidade, não somente a qualidade do alimento em si, como os horários e quantidade
de alimentação fornecida. Em pouca quantidade inviabiliza o desenvolvimento e saúde do
334
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
peixe, e em excesso gera acúmulo de gordura no animal, o que reduz seu tempo de vida, e
ainda o que não é comido pelo peixe, suja a água podendo gerar problemas maiores como
doenças.
Tudo isso foi levado em consideração para o projeto de nosso protótipo. Visando
desenvolver um sistema com componentes eletrônicos viáveis que pudessem realizar mo-
nitoramento da temperatura da água e automação de um alimentador, foram realizados
estudos e foram levantados todos os componentes eletrônicos listados na Tabela 1.
5. Discussão da Solução
Como já justificado, a discussão das caracterı́sticas do protótipo proposto é reali-
zada neste trabalho através da distinção de duas fases importantes: montagem e teste da
335
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
336
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Arduino (2017). Arduino uno. <http://www.arduino.org/products/boards/arduino-uno>.
Acesso em: 28/06/2017.
Baldi, M. A. and Feuser, L. B. (2015). Protótipo open source de sensoriamento remoto
em ambiente agrı́cola. In Congresso Brasileiro de Agroinformática, pages 1–11, Ponta
Grossa. Universidade Estadual de Ponta Grossa.
Bernardi, A. d. C., Luchiari Junior, A., Perez, N., and Inamasu, R. (2017). Potencial
de uso das tecnologias de agricultura e pecuária de precisão e automação. Embrapa
Pecuária Sudeste-Documentos (INFOTECA-E).
337
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Camargo, C. B., Costa, L. F., and PARADISO3, S. R. (2012). Sistema de controle para
aquariofilia. Anais Eletrônico, pages 1–14.
Galante, A. C. and Garcia, R. F. (2014). Sistema de aquisição de dados de sensores de
baixo custo baseado no arduı́no. In Congresso Brasileiro de Agricultura de Precisão,
volume 6.
McRoberts, M. (2011). Arduino Básico. Novatec Editora, São Paulo, 1st edition.
Rosyid, A. et al. (2014). Prototype of Automatic Fish Feeder Using Timer Module RTC
DS1307 Based on Arduino Uno. PhD thesis, [Yogyakarta]: Universitas Gadjah Mada.
Sabari Akilesh, K., Savitha, V., Vinithra, N., and Dhansekar, J. (2017). Smart fish feeder.
Sampaio, F. G., Losekann, M. E., Luiz, A. J. B., Neves, M. C., Frascá-Scorvo, C. M. D.,
and Rodrigues, G. S. (2013). Monitoramento e gestão ambiental da piscicultura em
tanques-rede em reservatórios. Informe Agropecuário, 34(272):1–11.
Silva, V. K., Ferreira, M. W., and Logato, P. V. R. (2009). Qualidade dá água na psicul-
tura. Ufla, Lravas-mg, 1st edition.
Siveira Júnior, C. R. d., Alves, A. R., and Correia, L. H. (2015). O uso do celular no mo-
nitoramento do ambiente de piscicultura. In Congresso Brasileiro de Agroinformática,
pages 1–11, Ponta Grossa. Universidade Estadual de Ponta Grossa.
Sousa, R. V. d., Lopes, W. C., and Inamasu, R. Y. (2014). Automação de máquinas
e implementos agrı́colas: eletrônica embarcada, robótica e sistema de gestão de
informação. Embrapa Informática Agropecuária-Capı́tulo em livro cientı́fico (ALICE).
Uddin, M. N., Rashid, M., Mostafa, M., et al. (2016). Development of automatic fish
feeder. Global Journal of Research In Engineering.
338
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A continuidade no fornecimento de energia elétrica é fundamental para os consumidores,
o que justifica as exigências feitas pelas agências reguladoras em todo o mundo. Índices
de qualidade e confiabilidade ruins podem denegrir a imagem das empresas distribuidoras
e impactar negativamente o faturamento delas. Assim, é do interesse das distribuidoras
de energia elétrica implantar metodologias que resultem na melhoria dos seus
indicadores. [SAL 2016].
As perdas técnicas de potência são inerentes ao processo de geração, transmissão
e distribuição de energia elétrica e devem ser minimizadas para se garantir maior
eficiência do sistema. Na distribuição, em que as perdas técnicas se dão pelo efeito Joule,
as concessionárias adotam diversas ações para minimizá-las, dentre as quais, a
reconfiguração das redes tem se tornado bastante atrativa. (PEREIRA, 2014).
339
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Heurística proposta
Propõe-se neste trabalho uma abordagem do tratamento de configurações de um Sistema
de Distribuição Radial (SDR) utilizando-se a teoria dos grafos.
340
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
adjacente 𝑢 de modo que 𝑢 já foi visitado e 𝑢 não é pai de 𝑣 então existe um ciclo no
grafo, do contrário, não há ciclo.
341
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
342
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
343
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Nº de
Nº de Barras Nº de Linhas Tempo execução Nº de Ciclos Nº de Ilhas
Manobras
14 19 0,0009 6 6 0
30 39 0,002 10 10 0
57 78 0,0054 22 22 0
118 179 0,0296 62 62 0
300 409 0,1218 110 110 0
9 10 0,0006 3 4 1
12 14 0,0008 4 5 1
4. Conclusão
Os sistemas de distribuição geralmente devem operar de forma radial. Além disso, por
limitações legais, os sistemas de distribuição não podem operar com ilhamentos. Diante
disso, torna-se importante o desenvolvimento de metodologias capazes de gerar
configurações radiais em redes de distribuição e, além disso, detectar e corrigir possíveis
ilhamentos no sistema.
344
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Diante deste cenário, neste trabalho são propostos algoritmos em O(n) para
geração de configurações radiais, e para detecção e correção de ilhamentos no sistema de
distribuição. Testes foram realizados em diversos sistemas de distribuição, tanto com
ilhamentos como com ciclos. Em análises realizadas, pôde-se constar a eficiente e
robustez do algoritmo aqui proposto, mesmo diante de sistemas de grande porte: 300
barras e 409 linhas.
5. Referências
SAU, Rodrigo Ferreira Gonçalves. Alocação otimizada de indicadores de falta em redes
de distribuição de energia elétrica considerando a presença de geradores distribuídos.
Dissertação(Mestrado em Engenharia Elétrica) - FEEC/UNICAMP, Campinas - SP.
2016.
PEREIRA, Ezequiel Campos. Reconfiguração de redes de distribuição de energia elétrica
para minimização de perdas técnicas. Dissertação(Mestrado em Engenharia Elétrica)
- UNICAMP, Campinas - SP. 2014.
CAVELLUCCI, Celso. Buscas informadas baseadas em grafos para a minimização das
perdas em sistemas de distribuição de energia elétrica. Tese(Doutorado em Engenharia
Elétrica) - FEEC/UNICAMP, Campinas - SP. 1998.
LORENZETI, Jorge Fernando Canato. Reconfiguração de sistemas de distribuição de
energia elétrica para melhoria das condições de operação com relação à estabilidade
de tensão. Tese (Mestrado em Engenharia Elétrica). Faculdade de Engenharia de
Campinas - UNICAMP. Campinas - SP. 2004.
MAGALHÃES, Alana da Silva. Multi-Chaveamento para Restauração de Serviço e
Balanceamento de Carga em Sistemas de Distribuição de Energia Elétrica.
Dissertação(Mestrado em Engenharia Elétrica) - UNICAMP, Campinas - SP. 2007.
BUENO, Edilson Aparecido. Redução de Perdas Técnicas através de Reconfigurações de
Redes de Distribuição de Energia Elétrica sob Demandas Variáveis. Tese(Doutorado
em Engenharia Elétrica) - FEEC/UNICAMP, Campinas - SP. 2005.
JÚNIOR, Carlos Alberto de Castro. Reconfiguração automática de redes de distribuição
de energia elétrica.Tese (Mestrado em Engenharia Elétrica). Faculdade de Engenharia
de Campinas - UNICAMP. Campinas - SP. 1985.
PEREIRA, Marcelo Adorni. Conjuntos nebulosos e algoritmos genéticos aplicados à
restauração de distribuição de energia elétrica. Tese(Doutorada em Engenharia
Elétrica) - UNICAMP, Campinas - SP. 2000.
CORMEN, Thomas H. et al. Algoritmos: teoria e prática. Editora Campus, v. 2, 2002.
345
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1
Universidade Federal do Piauı́ (UFPI), PI – Brasil
2
Faculdade Maurı́cio de Nassau, PI – Brasil
3
Faculdade Estácio (CEUT), PI – Brasil
4
Faculdade FAETE, PI – Brasil
{thiago.engee, tami.gallas, daviluis323, arturfdasveloso,
junioraraujo03}@gmail.com
346
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
347
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Dos sensores de correntes existentes no mercado atual, o escolhido para ser utilizado no
projeto foi o sensor SCT-013-000, devido à possibilidade de se medir correntes de até 100
A e por ser não invasivo. Este sensor apresenta em sua saı́da uma variação de corrente,
sendo necessário um circuito para condicionar o sinal a fim de que possa ser conectado
ao Arduino. A tensão da rede é muita alta para ser medida diretamente pela entrada
analógica do Arduino fazendo-se necessária sua transformação em um nı́vel de tensão
seguro. Para isso é utilizado um transformador 220/9V e um circuito para se realizar o
condicionamento do sinal proveniente da saı́da do transformador, de forma que o sinal
resultante tenha um pico positivo menor que 5 V e um pico negativo maior que 0 V.
348
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O módulo medidor trabalha em conjunto com o ESP8266 tipo 01. Este microprocessador
é capaz de se conectar a internet por meio do WI-FI. A troca de dados é possı́vel através
da utilização do protocolo MQTT [Thatmann et al. 2015], que é um serviço na nuvem
fácil de se utilizar e possui uma comunicação em tempo real. A grande contribuição da
sua utilização é, a troca de dados através da internet, que permite seu monitoramento de
qualquer lugar em tempo real. O aplicativo Blynk, trabalha como um cliente MQTT, que
recebe os dados enviados pelo módulo implementado. O acesso do aplicativo também é
feito através da internet.
No módulo, foi utilizando um LCD 16x2 para apresentar os valores utilizados para a
formação da assinatura de carga. Seu objetivo é apresentar os dados localmente sem a
necessidade da internet e de um aplicativo.
349
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2.6.1. Geladeira
A Figura 3 exibe os gráficos dos diversos parâmetros elétricos para uma geladeira frost
free da marca Consul utilizada como uma das cargas no presente trabalho.
2.6.2. Micro-ondas
350
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
média, corrente média e fator de potência, foram eliminadas todas as leituras iguais à zero,
deixando somente os dados gravados em que o micro-ondas esteve em funcionamento 5.
351
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Resultados
Após formação das assinaturas das cargas utilizadas no presente trabalho é possı́vel uti-
lizá-las para identificar as mesmas quando medidas simultaneamente. A Figura 6 ex-
emplifica esta situação, sendo apresentada a curva de potência ativa. Como os dois
equipamentos analisados apresentam valores de potência ativa bem distintos é possı́vel
discriminá-los através deste parâmetro. Analisando-se a Figura 6 verifica-se que inicial-
mente nenhuma das cargas está em funcionamento. Em seguida percebe-se que o forno
micro-ondas foi ligado, pois a curva de potência é similar à apresentada anteriormente na
Figura 4. Depois de um momento ele torna a ser desligado e a potência medida igual a
zero. Na amostra de número 620, aproximadamente, nota-se um pico de potência ativa de-
vido ao acionamento do compressor da geladeira e em seguida a curva representado o fun-
cionamento da mesma durante 22 minutos até o momento em que o micro-ondas também
é acionado. Observa-se que a potência medida equivale à soma dos valores dos dois dis-
positivos em análise, durante 1 minuto e 30 segundos, confirmando-se a identificação das
cargas através da análise dos parâmetros elétricos medidos.
352
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
References
Bacurau, R. M. (2014). Medidor de energia inteligente para discriminação de consumo
por aparelho através de assinatura de cargas. In Dissertação (Mestrado em Engenharia
Elétrica) - Universidade Estadual de Campinas, pages 1–94.
Conde, G. A. B., dos Santos, F. C., de Santana, A. L., Silva, R. D., Frances, C. R. L., and
de Lima Tostes, M. E. (2013). New methodology for grouping electric power consum-
ing units to meet continuity indicators targets established by the brazilian regulatory
agency. In IET Generation, Transmission Distribution, pages 414–419. IEEE.
MATLAB (2017). MATLAB - The Language of Technical Computing. [Online; accesso
15-Julho-2017].
OEM (2016). Open Energy Monitor. www.openenergymonitor.org. [Online;
accesso 25-Julho-2017].
Poyrazoglu, G. and Oh, H. (2016). The impacts of electric power market simulation on
engineering education. In IEEE/PES Transmission and Distribution Conference and
Exposition (T&D), pages 1–5. IEEE.
Priyanka, N. and Vasisht, A. (2015). Smart cities. In International Journal of Engineering
Science Invention, pages 43–49. IJESI, 4th edition.
Thatmann, D., Zickau, S., Forster, A., and Kupper, A. (2015). Applying attribute-based
encryption on publish subscribe messaging patterns for the internet of things. In IEEE
International Conference on Data Science and Data Intensive Systems, pages 556–563.
IEEE.
Zanella, A., Bui, N., Castellani, A., Vangelista, L., and Zorzi, M. (2014). Internet of
things for smart cities. In IEEE Internet of things journal, pages 6–15. IEEE.
353
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introduction
Wireless Sensor Networks (WSN) consist of a large set of small electronic devices, called
sensor nodes, capable of sensing and transmit (usually by a wireless transceiver) envi-
ronmental variables, such as temperature, humidity, light and so on [Rawat et al. 2014].
Considering that sensor nodes are usually battery-powered, the energy consumption im-
poses severe restrictions on this kind of network. Since the transceiver requires more
energy than sensing activities, some researches on the literature have directed studies to
reduce the overall data traffic generated by the sensors nodes [Jiang et al. 2011].
As many applications are related to the periodic monitoring, and it is well known
that, in such scenarios, redundant data may be sent by sensor nodes [Carvalho et al. 2011],
most works in literature consider data aggregation to reduce the overall traffic
[Kridi et al. 2016], [Gielow et al. 2015] and [Kim et al. 2014]. In these works, aggrega-
tion occurs when nodes are close to each other, exploiting the spatial correlation between
them. The common assumption is that if a set of sensor nodes are physically close to each
other, they produce highly correlated data [Karasabun et al. 2013]. However, the fact that
nodes are close to each other does not guarantee data correlation in order to perform ag-
gregation. To exemplify that observation, consider the temperatures taken from the Intel
Lab project dataset1 . Figure 1 compares the correlation of temperature of one sensor node
1
http://db.csail.mit.edu/labdata/labdata.html
354
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1 with all others nodes. It is clear that even distant nodes have temperature correlated
with Node 1. In Figure 2, each circle of the grid means a group of sensor nodes put to-
gether based on the correlation of first 200 temperature measurements. The grid, created
by SOM algorithm [Kohonen 1998] gives the idea that nodes from different geographical
areas could fall in same clusters.
In fact, the authors in [Lemos et al. 2017] exploited that idea and presented
ACASIM, a clustering approach where the physical sensor nodes are clustered according
to their measurements similarity. And by selecting only a sub-set of sensor nodes from
each cluster, ACASIM could reduce energy consumption, while attending the applications
requirements. The clustering process is controlled by a error threshold, i.e., whenever the
measurements from a sensor nodes does not not fit its clusters anymore, ACASIM reorga-
nize all the clusters again. However, we argue that the reduction of energy consumption
could be improved if the algorithm first tries to reconstruct only the clusters whose mea-
surements are deviating from the pattern. Hence, we propose Akasen, Adaptive K-Means
Algorithm for Sensor Networks, for clustering sensor nodes in a WSN. Akasen uses K-
Means algorithm to group the nodes according the similarity of their measurements. The
value of K is find automatically according to a threshold parameter defined by the appli-
cation. And differently from ACASIM, Akasen tries first to reallocate the sensor nodes
whose measurements diviate from their clusters, before construct all clusters again.
The article is structured as follows: Section 2 discusses in more detail the oper-
ation of Akasen. Section 3 presents the performance evaluation of the proposed, while
Section 4 discusses the results. Finally, in Section 5, the conclusions are presented along
with some future research directions.
355
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
of the following modes: configuration, training, and maintaining (Figure 4), which are
described next.
2.0.1. Configuration
2.0.2. Training
This step represents the main core of Akasen, since it is responsible for executing K-
Means to clusters sensor nodes. First, sink node must receive measurements sent from all
sensor nodes during a specific time-window, represented by training window. Whether
more than one measurements from each node arrives, sink node aggregates them using a
average operation. The measurements are stored in a matrix Xnm , where n > 0 represents
the values monitored by each sensor node and m ≥ 1 corresponds to the sensors nodes in
the network. In sequence, K-Means algorithm is executed. Usually, the value of K, which
corresponds to the number of desired clusters, must be given a priori. However, is not
always easy to determine the best value. A traditional strategy to select K is to execute
K-Means repeated times and increment the value of K in each execution. The goal of
this procedure, named Elbow method [Jain 2010], is to find the K value that makes the
variance of the clusters falls below 0.2. The value 0.2 usually means an ”elbow” in a scree
plot, as pointed out by Figure 3.
Figure 3. Scree plot. The ”elbow” (pointed out by the green arrow) represents
the point where adding another cluster does not produce better models.
The intuition is that below the ”elbow”, the variance of the generated model slowly
decreases, i.e., adding another cluster does not produce better models. However, Akasen
does not use variance to control the value of K. Instead, it refines the clustering models
until a criterion is reached. Algorithm 1 shows how K-Means works.
356
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Initially, the K variable is configured with the initialk value (Line 1) and, in
sequence, the algorithm enters a loop (Line 2). Each loop iteration executes k-means with
the last K value and stores the model in kmodell variable (Line 3). Then Akasen executes
a function, named exists clusters over threshold, which checks if some of the clusters (in
kmodel) contain at least one node whose euclidian distance between its measurements
and the center of the clusters is over threshold. In the case of T rue, K is incremented,
and the process is repeated. Otherwise, Akasen has just found the best K value, and
the loop is broken down (after storing K and kmodel values). Then, Akasen selects
only one sensor node from each cluster and broadcast a special message, warning all
other sensor nodes to enter a low power state, along with the coefficients of a linear
model which represents the measurements of each node, according to the strategy used
in [Lemos et al. 2017]. These linear models will be used during Maintaining mode. All
these procedures are depicted in 4b. Then, it begins the maintaining mode.
2.0.3. Maintaining
As each cluster contains only node whose measurements are close to each other (based
on threshold value), it does no matter if the distance between the sensor nodes is small
or not; the selected nodes can represent all other nodes from their clusters. Moreover,
as only one node is selected, the overall energy consumption of the WSN is reduced.
However, it can happen that the measurements from some sensors nodes start to deviate
from the pattern of their clusters. In that case, Akasen should reconstruct the clusters.
Therefore, in maintaining mode, each sensor node not transmitting checks the status of
its measurements. Whether the absolute error between the new measurements and the
measurement predicted by the linear model is bigger than threshold, the sensor nodes
send a message to sink node, along with its new measurements. Before executing K-
Means again, sink node verifies if that sensor node can be reallocated to another cluster.
In the case of success, sink node generates a new linear model and send back to the sensor
node. However, if the reallocation process fails, K-Means is executed again (4c).
357
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figure 4. Akasen
3. Performance Evaluation
Akasen have been evaluated based on real data obtained from the Intel project, Berke-
ley Lab Data2 , as it is publicly available and used by several works on literature
[Gielow et al. 2015, Carvalho et al. 2011, Jiang et al. 2011]. The dataset consists of the
measurements of 54 sensor nodes measured every 31 seconds between 28 February and 4
April 2004. However, the nodes do not have the same number of measurements (possibly
due to errors or failures in the sensor-reading process). Therefore, to properly evaluate
the performance of the simulations, the first 5,000 measurements were taken (correspond-
ing approximately to the measurements of the first day). The original dataset contains
missing values, which were interpolated with the average of the values from the previ-
ous and subsequent measurements. The results described here have been produced by
simulations performed with R3 language. Akasen was compared with LEACH protocol
[Heinzelman et al. 2000]. In the LEACH protocol, only cluster heads communicate with
the sink node, and each sensor node has probability P of being elected cluster head. The
cluster heads receive all measurements from nodes in their clusters and generate an aggre-
gate value from them. In this work, the mean is considered as the aggregation function.
The single-hop (direct) communication [Meghji 2011] was used as a benchmark case. In
the single-hop communication, each node transmits its measurements directly to the sink
node.
The mean squared error (MSE) and energy consumption were chosen to evaluate
2
http://db.csail.mit.edu/labdata/labdata.html
3
http://www.r-project.org/
358
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Akasen properly. As the created clusters may include sensor nodes not physically close to
each other, MSE helps to investigate how reliable is the measurements sent by the selected
sensors, i.e., how they can be representative of multiple regions. The energy consumptions
measures how well Akasen selects the sensor nodes in order to save energy. The models
(from both metrics) defined in [Lemos et al. 2017] were used.
359
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
360
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
simulations in more complex environments, taking into account other variables such as
the routing protocol, (ii) compare Akasen with moderns clustering algorithms, including
ACASIM, and (iii) develop an algorithm to perform the optimal selection of sensor nodes
that will transmit the measurements.
References
Carvalho, C., Gomes, D. G., Agoulmine, N., and de Souza, J. N. (2011). Improving
prediction accuracy for wsn data reduction by applying multivariate spatio-temporal
correlation. Sensors, 11(11):10010–10037.
Gielow, F., Jakllari, G., Nogueira, M., and Santos, A. (2015). Data similarity aware
dynamic node clustering in wireless sensor networks. Ad Hoc Networks, 24:29–45.
Heinzelman, W. R., Chandrakasan, A., and Balakrishnan, H. (2000). Energy-efficient
communication protocol for wireless microsensor networks. In Proceedings of the
33rd Hawaii International Conference on System Sciences, volume 8 of HICSS ’00,
pages 8020–, Washington, DC, USA. IEEE Computer Society.
Jain, A. K. (2010). Data clustering: 50 years beyond k-means. Pattern Recognition Let-
ters, 31(8):651 – 666. Award winning papers from the 19th International Conference
on Pattern Recognition (ICPR).
Jiang, H., Jin, S., and Wang, C. (2011). Prediction or not? an energy-efficient framework
for clustering-based data collection in wireless sensor networks. IEEE Transactions
on Parallel and Distributed Systems, 22(6):1064–1071.
Karasabun, E., Korpeoglu, I., and Aykanat, C. (2013). Active node determination for
correlated data gathering in wireless sensor networks. Computer Networks, 57(5):1124
– 1138.
Kim, J.-Y., Sharma, T., Kumar, B., Tomar, G. S., Berry, K., and Lee, W.-H. (2014).
Intercluster ant colony optimization algorithm for wireless sensor network in dense
environment. International Journal of Distributed Sensor Networks, 2014.
Kohonen, T. (1998). The self-organizing map. Neurocomputing, 21(1):1 – 6.
Kridi, D. S., de Carvalho, C. G. N., and Gomes, D. G. (2016). Application of wireless
sensor networks for beehive monitoring and in-hive thermal patterns detection. Com-
puters and Electronics in Agriculture, 127:221 – 235.
Lemos, M., d. Carvalho, C., Lopes, D., Rabelo, R., and Filho, R. H. (2017). Reducing
energy consumption in provisioning of virtual sensors by similarity of heterogenous
sensors. In 2017 IEEE 31st International Conference on Advanced Information Net-
working and Applications (AINA), pages 415–422.
Meghji, Mahirand Habibi, D. (2011). Transmission Power Control in Single-Hop and
Multi-hop Wireless Sensor Networks, pages 130–143. Springer Berlin Heidelberg,
Berlin, Heidelberg.
Rawat, P., Singh, K. D., Chaouchi, H., and Bonnin, J. M. (2014). Wireless sensor net-
works: a survey on recent developments and potential synergies. The Journal of Su-
percomputing, 68(1):1–48.
361
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
362
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
363
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
receber as informações. Já o Broker, é uma parte que visa fornecer o serviço como
servidor MQTT, através da conexão com a internet. O Broker é o responsável pelo
funcionamento, assim sobrando mais tempo para gerenciar outras partes do
desenvolvimento [Grgic et al. 2016]. O MQTT [Lampkin et al. 2012] é um protocolo de
mensagens extremamente simples e leve. Sua arquitetura segue o modelo apresentado
na figura 1.
364
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
365
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
366
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Resultados
No cenário proposto com a utilização do protocolo MQTT, a solução implementada
permite ligar/desligar todos os eletrodomésticos automatizados e monitorar sensores
implantados neste ambiente de automação residencial. A utilização do protocolo MQTT
nesta automação, possibilitou a utilização diversos tipos de tecnologias como Arduino,
nodeMCU, Raspberry PI, Serviços na nuvem, aplicativos e entre outros. Os resultados
têm por objetivo demonstrar o funcionamento da rede desenvolvida para obter a maior
facilidade da realização dos testes com experimentos reais. O desenvolvimento desta
automação residencial trouxe uma série de benefícios, obtidas nas métricas realizadas
com base em testes práticos. Alguns desses benefícios no quesito distribuição de
367
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Babovic, Z. B., Protic, J., and Milutinovic, V. (2016). Web performance evaluation for
internet of things applications. In International Journal IEEE Access, pages 6974–6992.
IEEE, 4th edition.
Bhatt, A. and Patoliya, J. (2016). Cost effective digitization of home appliances for
home automation with low-power wifi devices. In International Conference on
Advances in Electrical, Electronics, Information, Communication and Bio-Informatics
(AEEICB16), pages 643–648. IEEE.
368
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Grgic, K., Speh, I., and Hedi, I. (2016). A web-based iot solution for monitoring data
using mqtt protocol. In International Conference on Smart Systems and Technologies
(SST), pages 249–253. IEEE.
Javed, A., Larijani, H., Ahmadinia, A., Emmanuel, R., Mannion, M., and Gibson, D.
(2016). Design and implementation of cloud enabled random neural network based
decentralized smart controller with intelligent sensor nodes for hvac. In IEEE Internet
of Things Journal, pages 1–11. IEEE.
Lampkin, V., Leong, W. T., Rawat, S., Subrahmanyam, N., and Xiang, R. (2012).
Building smarter planet solutions with mqtt and ib wevsphere mq telemetry. In
ibm.com/redbooks, pages 1–270. IBM, 14th edition.
Li, R., Asaeda, H., and Li, J. (2017). A distributed publisher-driven secure data sharing
scheme for information-centric iot. In IEEE Internet of Things Journal, pages 1–13.
IEEE.
Priyanka, N. and Vasisht, A. (2015). Smart cities. In International Journal of
Engineering Science Invention, pages 43–49. IJESI, 4th edition.
Rani, S., Ahmed, S. H., Talwar, R., and Malhotra, J. (2017). Iomt: A reliable cross layer
protocol for internet of multimedia things. In IEEE Internet of Things Journal, pages1–
9. IEEE.
S., R. B., G., J. G. R., C., S. M., and Decouchant, D. (2011). Towards a uniform
sensorhandling scheme for ambient intelligence systems. In Electrical Engineering
Computing Science and Automatic Control (CCE), pages 1–6. IEEE.
Thatmann, D., Zickau, S., Forster, A., and Kupper, A. (2015). Applying attribute-based
encryption on publish subscribe messaging patterns for the internet of things. In IEEE
International Conference on Data Science and Data Intensive Systems, pages 556–563.
IEEE.
Triawan, M. A., Hindersah, H., Yolanda, D., and Hadiatna, F. (2016). Internet of things
using publish and subscribe method cloud-based application to nft-based hydroponic
system. In IEEE 6th International Conference on System Engineering and Technology
(ICSET), pages 98–104. IEEE, 6th edition.
Zanella, A., Bui, N., Castellani, A., Vangelista, L., and Zorzi, M. (2014). Internet of
things for smart cities. In IEEE Internet of things journal, pages 6–15. IEEE, 1th
edition.
369
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
O ensino superior é de grande importância para o estudante e a sociedade por ser consider-
ado como um dos fatores fundamentais para o desenvolvimento econômico, social e cul-
tural nas nações, em um contexto de crescente competição global[Ferreira 2009]. Porém,
com a facilidade de ingresso no ensino superior surgiram novos fatores de preocupação
nos ı́ndices de evasão, como o desempenho no ensino médio e as condições socioe-
conômicas[Ribeiro 2005].
Esse problema do grande número de evasão acadêmica é sofrido por várias as
universidades no Brasil e no mundo. Isso traz consequências que preocupam tanto o sis-
tema organizacional quanto os próprios alunos. São diversos os motivos que levam o
aluno a evasão do curso, desde a não identificação com o curso, até dificuldades no apren-
dizado em disciplinas especı́ficas. Cursos das áreas exatas como Ciências, Matemática
e Computação apresentam grandes ı́ndices de evasão, como aponta os dados do Instituto
Nacional de Estudos e Pesquisas Educacionais Anı́sio Teixeira INEP[Silva Filho 2007].
O INEP1 divulga em seu portal, dados estatı́sticos da educação superior, onde ex-
istem informações como dados gerais das instituições de ensino, matrı́culas, quantidade
de concluintes em cursos entre outros. Segundo os dados divulgados em 2014, há um
1
http://portal.inep.gov.br/censo-da-educacao-superior
370
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Table 1. Situação de alunos nas IES dos cursos de BCC, segundo dados do INEP
em 2014.
2. Trabalhos relacionados
Os trabalhos sobre evasão acadêmica têm ganhado um espaço maior no meio cientı́fico.
Essas pesquisas buscam determinar os principais fatores que causam a evasão a fim de
combater esse recorrente problema nas IES Brasileiras.
Couto e Dantas[Couto 2014] avaliaram por meio de técnicas de mineração de da-
dos os três cursos oferecidos pelo Departamento de Ciência da Computação da Univer-
sidade de Brası́lia, onde mostram em seu trabalho que há uma diferença nos motivos de
evasão entre homens e mulheres. Enquanto homens abandonam o curso por falta de de-
sempenho as mulheres acabam abandonando por falta de identificação com o curso. Os
autores realizaram análises estatı́sticas nas disciplinas dos blocos iniciais que são ofere-
371
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
cidas pelos departamentos de fı́sica, matemática e computação, onde afirmam que a taxa
de reprovação nessas disciplinas está ligado diretamente à evasão acadêmica.
No trabalho de Dekker et al. [Dekker 2009], foi realizado uma análise com os
dados dos alunos do curso de Engenharia Elétrica da Universidade de Eindhoven. Assim
como Couto e Dantas [Couto 2014] os autores levantaram estatı́sticas e identificaram que
os blocos iniciais são os que apresentam o maior número de evasão. Com as caracterı́sticas
levantadas, os autores utilizaram diversos algoritmos de Aprendizagem de Máquina com
a técnica Supervisionada e obtiveram acurácias de 75% a 80%.
Através de um levantamento estatı́stico, Palmeira e Santos [Palmeira 2014] iden-
tificaram maiores ı́ndices de evasão nos blocos 2, 3 e 4. Além disso os autores levantaram
outras caracterı́sticas relacionadas diretamente à evasão, como, sexo, escola de origem e
o desempenho médio em disciplinas obrigatórias. Essas informações foram aplicadas em
algoritmos de Aprendizagem de Máquina, e obtiveram acurácias de 83% a 90%.
Brito et al.[Brito 2015] utilizaram dados do histórico de alunos do curso de BCC,
da Universidade Federal da Paraı́ba. Os autores mostraram que o curso apresentou no
perı́odo de 2001 a 2013 três matrizes curriculares, porém com poucas diferenças. Eles
utilizaram cinco disciplinas do primeiro bloco em comum com os três currı́culos, onde
utilizaram as notas de cada uma. Com base no desempenho das disciplinas escolhidas os
autores iniciaram o treinamento dos algoritmos. Eles obtiveram acurácias de 84% a 86%,
assim como Couto e Dantas[Couto 2014], o de melhor desempenho foi o classificador
baseado em árvore de decisão.
Diferentemente de [Couto 2014], [Dekker 2009] e [Brito 2015], esse trabalho in-
vestiga também se a origem escolar do aluno afeta diretamente na decisão de continuar
ou não o curso de BCC. Além disso, esse trabalho obteve melhores taxas de acurácia em
relação aos trabalhos de [Dekker 2009], [Palmeira 2014] e [Brito 2015], apesar de terem
sido aplicados em ambientes diferentes do BCC da IES.
3. Levantamento Estatı́stico
Para definir os fatores de evasão é necessário um estudo em dados relacionados a diversos
aspectos do aluno de ensino superior(e.g. quais são as disciplinas mais cursadas, quais
possuiem maiores ı́ndices de reprovação/aprovação, em qual dos perı́odos do curso de
graduação essas disciplinas se encontram, etc.). Tendo em vista essa necessidade, foi
utilizado nesse trabalho a base de dados contendo informações de 2340 alunos dos cursos
de BCC da UESPI, do perı́odo de 2000 até 2015. É importante ressaltar que não foram
disponibilizadas informações de conteúdo restrito dos alunos, apenas dados relacionados
ao histórico acadêmico e informações de caráter público.
A primeira etapa da pesquisa foi analisar a base de dados e verificar como es-
tava organizada. Logo após iniciou-se um levantamento estatı́stico para descobrir quais
elementos influenciam diretamente na evasão acadêmica. É essencial esse levantamento
para validar os fatores que influenciam na evasão, pois alguns atributos acabam não sendo
relevantes na classificação.
Inicialmente, procurou-se verificar as informações a respeito dos alunos evadidos
e concluı́dos. Para a evasão têm-se os valores: matrı́cula cancelada, desistente, trans-
ferido, mudança de campus, acúmulo de curso, e inexistente matrı́cula especial. E para os
372
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
alunos que concluı́ram o curso: graduado e aguardando colação. Os dados de alunos que
estavam cursando não foram utilizados nas demais fases.
Assim como [Couto 2014], [Dekker 2009], [Palmeira 2014] e [Brito 2015]
buscou-se investigar o ı́ndice de evasão de alunos por bloco, a fim de tentar definir quais
os elementos associados, se são disciplinas de computação, se são disciplinas de outros
cursos. A figura 1 mostra o ı́ndice de evasão por bloco. Observa-se que os três blocos
iniciais apresentam o maior número de evasão.
373
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
tatı́stica - Bloco II, Programação II - Bloco III, Calculo II - Bloco II, Álgebra Linear II -
Bloco II e Inglês Instrumental - Bloco I.
As disciplinas que apresentaram os maiores ı́ndices de reprovação foram Lógica
de Programação, Cálculo I, Programação I, Cálculo II e Programação II. As figuras 2 e 3
mostram os ı́ndices de reprovação e aprovação nas disciplinas de Lógica de Programação
e Cálculo 1, apresentando também a situação acadêmica do aluno indicando a evasão ou
a conclusão.
374
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
ı́ndice de reprovação em relação aos alunos que conseguiram concluir o curso, 385 estu-
dantes que reprovaram nessa disciplina optaram pela desistência do curso de BCC.
Outra informação importante e que foi pouco explorada por trabalhos da área é
se a evasão acadêmica possui alguma com o tipo de escola de origem do aluno, pública
ou privada. É sabido que existe uma diferença de qualidade na formação escolar no
ensino médio público e privado, porém esse não deve ser único fator para caracterizar essa
evasão. Esse mesmo alunado oriundo do ensino público são provavelmente indivı́duos que
possuem menor renda familiar, e podem acabar deixando o curso para outras atividades
em função da famı́lia. A figura 4 mostra um alto ı́ndice de evasão associado ao aluno
oriundo do ensino público.
4. Abordagem
Com base nas estatı́sticas estudadas, foi possı́vel identificar algumas caracterı́sticas que
impactam em determinar o perfil do aluno como evadido ou formado. Essas carac-
terı́sticas foram tratadas e serão utilizadas em algoritmos de Aprendizagem de Máquina
que classificarão a situação de cada aluno do BCC da IES. As caracterı́sticas utilizadas
são descritas na tabela 2.
Atributo Descrição
Origem Escola de origem do aluno.
Nota Nota do aluno na disciplina
Repetiu Define se o aluno cursou mais de uma vez a disciplina
Situacao Reprovação ou aprovação do aluno na disciplina
TotalCursado Total de disciplinas cursadas do conjunto de dez disciplinas
Classe Define se o aluno é evadido ou formado
O atributo Origem descreve a o tipo de escola em que o aluno concluio seu ensino
médio, se foi escola pública, privada ou outro. Confome a figura 4 apresenta, acredita-se
que essa informação é valiosa para a análise da evasão acadêmica.
Os atributos Nota, Repetiu, e Situação são avaliados nas 10 disciplinas mais
cursadas apresentadas na seção 3. Nesse sentido o atributo Repetiu verifica a quantidade
de vezes que o aluno cursou a disciplina, sendo um incremento ou decremento de valor
2 dependendo da situação (aprovado ou reprovado). O atributo Nota recebe o valor da
última nota do aluno na disciplina. Por fim, o atributo Situação indica o status do aluno
na ultima vez que cursou a disciplina, sendo o valor 0 para reprovado ou 1 para aprovado.
Para diferenciar a quantidade de disciplinas cursadas por cada aluno foi adicio-
nando o atributo TotalCursado, que recebe o total das disciplinas que o aluno cursou do
total das 10 utilizadas no levantamento estatı́stico. Caso não haja registro de que o aluno
não tenha cursado a disciplina, ele receberá um valor único (9999) em todos os campos
(quantidade, nota, situação) para que se possa distinguir do aluno que cursou a disciplina.
375
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Experimento
Para a condução do experimento desse protótipo foram utilizados dados 1761 alunos que
já concluı́ram o curso de BCC, ou evadiram do curso. Para a obtenção desses dados
foi criado uma aplicação em comunicação com o Banco de Dados disponibilizado pela
IES, possibilitando assim a extração dessas informações, tratando cada valor e gerando o
conjunto de dados com base nos atributos apresentados na seção anterior. Desse conjunto,
foram utilizadas 1201 informações pertencentes aos alunos evadidos, enquanto 560 dessas
informações são referentes aos alunos que obtiveram a conclusão do curso.
A técnica de Aprendizagem de Máquina utilizada foi a Supervisionada, esse
método permite que o processo aprenda com base em exemplos de dados que já pos-
suem os resultados esperados conhecidos [Mitchell 1997]. Os algoritmos utilizados para
realização do experimento foram as implementações de Support Vector Machine (SVM),
Multilayer Perceptron (MLP), Naive Bayes e Árvore de Decisão, contidos na ferramenta
Weka [Hall et al. 2009].
Para a avaliação desse experimento foi utilizada a métrica da acurácia, a qual foi
obtida através da Validação Cruzada com 10 folds. A tabela 3 apresenta os resultados obti-
dos no experimento. Como é possı́vel observar o modelo com melhor taxa de Acurácia
foi a MLP, obtendo 91,19%. O modelo SVM (90,35%) apresentou resultado próximo ao
da MLP, seguido do modelo Árvore de Decisão, que foi um pouco inferior aos modelos
anteriores, alcançando 89,21% de acurácia. Por fim, o modelo que apresentou o menor
resultado foi o Naive Bayes, conseguindo 80,69%.
6. Considerações Finais
Nesse trabalho foi apresentado um protótipo para avaliar algumas caracterı́sticas associ-
adas à evasão acadêmica no curso de BCC. O problema da evasão vem afetando diversos
pontos econômicos e sociais, trazendo prejuı́zo aos cofres das IES, e aos cidadãos que
buscam vagas nas universidades que estão sendo desperdiçadas com a desistência de out-
ros candidatos.
O experimento conduzido obteve a melhor taxa acurácia com um algoritmo MLP,
alcançando 91,19%. Outros modelos como o SVM e a Árvore de Decisão obtiveram
resultados próximos à Rede Neural. Um dos passos seguintes desse trabalho é realizar
um experimento estatı́stico, utilizando testes, a fim averiguar qual desses modelos é o
superior.
376
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
References
Brito, D. M. (2015). Identificação de estudantes do primeiro semestre com risco de
evasão através de técnicas de data mining. In Congreso Internacional en Infomática
Educativa, volume 20, pages 459 – 463.
Couto, G.; Dantas, M. (2014). Utilizando mineração de dados na resolução de proble-
mas de gênero na UnB. Monografia, Instituto de Ciências Exatas da Universidade de
BrasÃlia, Brası́lia.
Dekker, G.; Pecheniskiy, M. V. J. (2009). Predicting students drop out: A case study. In
In Proceedings of the International Conference on Educational Data Mining.
Ferreira, J. B.; Machado, M. L. M. A. (2009). A importancia e a satisfação no ensino
superior: a perspectiva dos estudantes. In X Congresso da Sociedade Portuguesa de
Ciências da Educação. Instituto Politécnico de Bragança.
Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., and Witten, I. H. (2009).
The WEKA Data Mining Software: An Update, volume 11. ACM, New York, NY,
USA.
Hastie, T., Tibshirani, R., and Friedman, J. (2009). The elements of statistical learning:
data mining, inference and prediction. Springer, 2 edition.
Mitchell, T. M. (1997). Machine Learning. McGraw-Hill, Inc., New York, NY, USA, 1
edition.
Palmeira, L. B., S. M. P. (2014). Evasão no Bacharelado em Ciência da Computação da
Universidade de Brası́lia: análise e mineração de dados. Monografia - Instituto de
Ciências Exatas da Universidade de Brası́lia, Brası́lia.
Ribeiro, M. A. (2005). O projeto profissional familiar como determinante da evasão
universitária: um estudo preliminar. Revista Brasileira de Orientação Profissional,
6:55 – 70.
Sarker, F., Davis, H., and Tiropanis, T. (2010). A review of higher education challenges
and data infrastructure responses.
Silva Filho, R. L. L. e. a. (2007). A evasão no ensino superior brasileiro. Cadernos de
Pesquisa, 37:641 – 659.
377
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
[email protected],[email protected]
Resumo. As Redes Veiculares estão se tornando cada vez mais comuns na área
da computação móvel. A sua popularidade se dá por conta da sua potencial
utilização na solução de diversos problemas cotidianos. Essas redes são cons-
tituı́das por veı́culos equipados com dispositivos de comunicação sem fio. Este
trabalho analisa o desempenho do protocolo PRoPHET estruturado em DoE
(Desing of Experiment), aplicando uma abordagem combinatória com fatores
e nı́veis diferentes, testando suas médias de entrega de mensagens na arquite-
tura V2V (Vehicle-to-vehicle). Os resultados mostraram que o protocolo pode
atender as necessidades das possı́veis aplicações de alerta, se feita uma escolha
adequada de velocidade dos nós, tamanho dos pacotes e buffer.
1. Introdução
A crescente necessidade de comunicação promove a busca por maneiras mais eficientes
de realizá-la . Com o desenvolvimento da tecnologia da informação, as redes de compu-
tadores tornaram-se uma parte muito importante da comunicação moderna.
Com o avanço das pesquisas nessa área, criou-se a rede móvel Ad Hoc (Mobile
Ad Hoc Network - MANETs), que possibilita formar uma rede em áreas onde não há uma
infra-estrutura pré-definida de comunicações, ocasionando melhorias na acessibilidade e
mobilidade da rede [de Sousa and Soares 2015].
A partir das MANETs, surgiram as Redes Veiculares Ad hoc (Vehicular Ad Hoc
Network - VANETs). As Redes Veiculares estão ligadas diretamente a segurança no
trânsito, auxiliando os condutores nas estradas. Elas também são usadas em sistemas
de localização, entretenimento e suporte ao socorro de vı́timas em locais de difı́cil acesso
[de Sousa and Soares 2015].
378
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Background
Ao longo desta seção diversos aspectos relacionados às VANETs são apresentados, como
suas dificuldades e tecnologias utilizadas em sua implementação, como estão dispostas as
suas estruturas e também os aspectos do protocolo PRoPHET.
1
http://www.brasil.gov.br/defesa-e-seguranca/2017/02/mortes-em-rodovias-federais-cairam-6-8-em-
2016
379
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
380
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Trabalhos Relacionados
Nesta seção, podemos analisar algumas caracterı́sticas acerca de trabalhos relacionados
no contexto das VANETs. A Tabela 1 apresenta os critérios analisados, confrontando suas
contribuições, diferenças e semelhanças com relação com presente trabalho.
[Sok et al. 2013] realizaram uma avaliação de desempenho entre o PRoPHET tra-
dicional e o DiPRoPHET, versão modificada do PRoPHET tradicional proposto através
de uma simulação NS2 (Network Simulator – 2). No artigo de [Ayub et al. 2014] foi
proposto um protocolo de roteamento chamado DF (Delegated Forwarding) ++ que cal-
cula o valor da qualidade do nó com base no modelo probabilı́stico usado no proto-
colo PRoPHET e encaminha a mensagem para o nó atual pela computação adaptativa do
espaço de buffer disponı́vel. No trabalho de [Shinko et al. 2015] investigou-se o desem-
penho dos protocolos First Contact, PRoPHET e Spray-and-Wait em um cenário de en-
caminhamento da Rede Veicular Tolerante a Atrasos (VDTN), os padrões de mobilidade
dos veı́culos são gerados por SUMO (Simulação de Mobilidade Urbana) e como simula-
dor de protocolo de comunicação foi usado o ONE (Ambiente de Rede Oportunı́stico).
No trabalho de [Choudhary et al. 2016] analisaram o impacto do tamanho do buffer na
probabilidade de entrega, número de relés e relação.
O presente trabalho se destaca em relação aos trabalho correlatos devido ao uso
do método estatı́stico DoE. A grande contribuição do DoE está na análise combinatória
que permite investigação mais profunda sobre nı́veis diferentes relacionados a parâmetros
ou recursos diferentes que podem ser modificados. Isso possibilita um aperfeiçoamento
na criação e no desenvolvimento de novas métricas sobre o comportamento do protocolo
PRoPHET ou outros protocolos VDTNs.
381
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4.1. Resultados
Esta seção discute as avaliações e conclusões em relação aos resultados obtidos. Neste
trabalho, o desempenho do protocolo é mensurado pela taxa de entrega, desse modo,
quanto maior o número de pacotes entregues com sucesso, mais eficiente será para um
sistema veicular.
Os dados estão apresentados como médias ajustadas para cada nı́vel de avaliação.
O número de mensagens criadas foram 362 em todas as execuções para serem enca-
minhadas aos seus destinos. O numero de hosts emissores de mensagens iniciava-se
com 40 (número mı́nimo padrão para o simulador ONE) e aumentava-se 5 hosts a cada
execução,para que fossem analisados de forma mais eficiente, tendo em vista algumas
limitações do ONE, desse modo, segundo [Villares et al. 2013], estes resultados acabam
sendo otimistas quando comparados à situações reais. Na Figura 3 são mostrados os
resultados relativos ao comportamento do protocolo com os fatores analisados.
• Comportamento das Velocidades
382
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
383
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Na Figura 4 (a), na interação dos nı́veis de velocidades e buffers notamos que a en-
trega foi mais bem sucedida nos nı́veis 1 em que a velocidade e o buffers eram razoáveis.
Os casos medianos foram os de nı́veis 2, em que as velocidades são baixas e buffers pe-
quenos, mantendo um crescimento constante na entrega das mensagens. Os piores casos
foram os de nı́veis 3, com velocidades altas e tamanhos de buffers grandes. Possivelmente
o tempo de contato foi o causador dessa caracterı́stica, pois se não há tempo suficiente
para manter o enlace da troca de dados, as mensagens não serão passadas com sucesso
pela rede.
Na Figura 4 (b) está a interação da velocidade com tamanho de pacote. Para os
melhores casos estão os de nı́veis 2, com velocidades e buffers razoáveis, mantendo uma
crescente e constante entrega de mensagens. Os casos intermediários foram os nı́veis
1, com velocidades pequenas e pacotes pequenos. Os piores casos foram os de nı́veis
3 com velocidades e os pacotes maiores, tal caracterı́stica reafirma o que foi relatado
anteriormente na análise do gráfico de efeito na Figura 3, o gráfico de efeito demostrou
que o tempo de contado influencia a entrega, e agora somado a tamanhos de pacotes
grandes, a influência fica maior.
Na interação do buffer e tamanho de pacote, na Figura 4 (a), os melhores casos
foram para os de nı́veis 1, com velocidades pequenas e buffers pequenos, porém aceitáveis
para o contexto das VANETs. Os casos intermediários (nı́vel 2) foram com buffer e
tamanho razoáveis. Nos piores casos ficaram os de nı́veis 3, em que os tamanhos de
buffer e pacotes são grandes.
5. Conclusão
Podemos concluir que os tamanhos dos pacotes influenciam diretamente na interação com
o buffer caso o seu tamanho seja grande ele continuará negativando a entrega de pacotes.
Como consequência a média de entrega de mensagens não terá aumento, faz-se necessário
pacotes com tamanhos um pouco reduzidos como os do nı́vel 2. Notamos também que
tamanhos de pacotes grandes relacionadas a velocidades altas, têm influência negativa no
384
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
uso do recurso do buffer, ou seja, expandir seu tamanho não é a principal medida para
aumentar a média da entrega.
As velocidades altas em um meio VDTN ocasionam um número maior de
distâncias percorridas nas vias em menor tempo, isto influencia diretamente em que mais
nós sejam alcançados para o encaminhamento de pacotes, porém isso pode ocasionar pro-
blemas na entrega de mensagens, pois quanto maiores são as velocidades, menos tempo
de contato existirá entre os nós. Como o protocolo PRoPHET se baseia em número de
contados entre os nós, indiferentemente do tempo de contato entre eles, quanto maiores
são as velocidades, menor é o tempo de contado entre os nós, logo quanto maiores forem
os pacotes mais difı́cil é sua transferência pela rede.
A avaliação do método estatistico DoE mostrou-se poderosa na análise das carac-
teristicas particulares a cada nı́vel submetido. Para trabalhos futuros pretendemos realizar
novas análise com outras variáveis dependentes, como a latência ou Throughput, além de
executar uma avaliação do PRoPHET integrado a uma aplicação de emergência.
Referências
Ayub, Q., Zahid, M. S. M., Rashid, S., and Abdullah, A. H. (2014). Df++: An adaptive
buffer-aware probabilistic delegation forwarding protocol for delay tolerant network.
Cluster computing, 17(4):1465–1472.
Choudhary, N., Mittal, K., Kota, K. D., Nagrath, P., and Aneja, S. (2016). Analyzing and
designing energy efficient routing protocol in delay tolerant networks. CSI transactions
on ICT, 4(2-4):285–291.
de Sousa, R. S. and Soares, A. C. B. (2015). Estimativa e sinalizaç ao de congestiona-
mentos de tráfego através de redes veiculares v2v.
Patel, D. and Shah, R. (2016). Improved prophet routing protocol in dtn.
Shinko, I., Oda, T., Spaho, E., Kolici, V., Ikeda, M., and Barolli, L. (2015). A simulation
system based on one and sumo simulators: Performance evaluation of first contact,
prophet and spray-and-wait dtn protocols. In Broadband and Wireless Computing,
Communication and Applications (BWCCA), 2015 10th International Conference on,
pages 137–142. IEEE.
Soares, R., Galeno, S., and Soares, A. Simulação de redes veiculares.
Soares, V. N., Dias, J. A., Isento, J. N., and Rodrigues, J. J. (2013). Protocolos de en-
caminhamento para redes veiculares com ligações intermitentes. In CRC 2012: 12a
Conferência sobre Redes de Computadores, pages 77–84.
Sok, P., Tan, S., and Kim, K. (2013). Prophet routing protocol based on neighbor node
distance using a community mobility model in delay tolerant networks. In High Per-
formance Computing and Communications & 2013 IEEE International Conference on
Embedded and Ubiquitous Computing (HPCC EUC), 2013 IEEE 10th International
Conference on, pages 1233–1240. IEEE.
Villares, T. L., Campos, C. A. V., and Viana, A. C. (2013). A influência de nós especiais
na entrega de mensagens nas redes tolerantes a atrasos e interrupções. WRA, 13:44–57.
Wangham, M. S., Nogueira, M., Fernandes, C. P., Paviani, O., and da Silva, B. F. (2014).
Segurança em redes veiculares: Inovações e direções futuras.
385
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
A Demand Response (DR), como parte da Smart Grid (SG), tende a estimular os
consumidores finais a modificarem seu consumo energético em resposta às mudanças
ocorridas no preço da eletricidade ao longo do tempo e, também, durante horários de
picos do sistema. Assim, a DR permite que as concessionarias de energia elétrica
ofereçam incentivos (descontos ou créditos na conta de energia) destinados a impulsi-
onar a redução do consumo energético em horários que os preços de mercados estão
elevados ou quando a confiabilidade da rede é comprometida com a sobrecarga do
sistema. Dessa maneira, o aumento excessivo da demanda de energia elétrica fez o
uso da DR ser interessante aos consumidores e às concessionárias de energia elétrica
[Parvania and Fotuhi-Firuzabad 2010];[Siano 2014].
386
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
387
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
consumo energético (em kWh) de cada aparelho residencial por intervalo de tempo. Fo-
ram usadas diferentes categorias de aparelhos escolhidos com base nos perfis de con-
sumo de carga residencial criados por meio da ferramenta Load Profile Generator (LPG)
[Pflugradt 2016]. Tais perfis foram desenvolvidos para compor uma base de dados com
os diferentes cenários de consumidores residenciais objetivando uma análise destinada a
aplicabilidade e a eficácia da DR. Na equação (1) é apresentada a função f1.
N
X T
X
M inimize Ei (P rt ∗ DSAt,i )2 (1)
i=1 t=1
N
X
dmin
t ≤ DSAt,i ∗ Pi ≤ dmax
t , ∀t=1,...,T (2)
i=1
N
X
(DSAt,i − DSAt+1,i ) ∗ Pi ≤ rD , ∀t=1,...,T −1 (3)
i=1
N
X
(DSAt+1,i − DSAt,i ) ∗ Pi ≤ rU , ∀t=1,...,T −1 (4)
i=1
N X
X T
DSAt,i ∗ Ei ≥ mdc (5)
i=1 t=1
T
X
DSAt,i ≥ Reqi , ∀i ∈ AI (6)
t=1
T ReqiY
X +(q−1)
DSAt,i ≥ 1, ∀i ∈ AII (7)
q=1 t=q
ETi
X
DSAt,i ≥ Reqi , ∀i ∈ AIII (8)
STi
388
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
389
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Estudo de Caso
Nesta seção, são apresentados os cenários de testes e os resultados das simulações com-
putacionais considerando a técnica de otimização (NSGA-II) implementada para determi-
nar a operação dos aparelhos residenciais. Foram criados, por meio da ferramenta Load
Profile Generator (LPG) [Pflugradt 2016], vários perfis de consumo de carga residen-
cial levando em consideração as preferências dos consumidores em relação ao uso dos
aparelhos, as diferentes localizações geográficas, e as temperaturas climáticas e suas res-
pectivas implicações em cada região do Brasil. Além disso, foram adotados para o cálculo
390
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
do preço dinâmico da energia elétrica os valores fornecidos pelo Mercado Ibérico de Ele-
tricidade (OMIE) de Portugal [OMIE 2015], pois o Brasil ainda não utiliza o programa
de DR baseado no preço em tempo real.
391
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Pode-se observar que, naquelas soluções que conseguiram uma maior redução no
custo da eletricidade, o Trade-off de inconveniência é maior, o que resulta numa maior
redução por unidade de inconveniência causada ao consumidor final. Já na outra ponta,
naquelas soluções que alcançaram a maior redução de inconveniência, o Trade-off é o me-
nor visto que essas soluções visam manter a inconveniência a menor possı́vel, permitindo
manter o consumo de eletricidade igual ao padrão de consumo original.
Outra análise foi feita com o intuito de verificar quais aparelhos residencias apre-
sentam maior influência na quantidade de inconveniência causada ao consumidor de modo
a aperfeiçoar o agrupamento dos aparelhos apresentados na Tabela 1. Para realizá-la, foi
considerada a solução que obteve a menor redução de inconveniência (maior redução de
custo). Os aparelhos da Categoria AI , proporciona 95.34% da inconveniência total da
solução, enquanto que a Categoria AII é responsável por 4.66% e a Categoria AIII não
causa inconveniência. Assim, isso é motivado pela não definição da preferência de um
horário de funcionamento para tais aparelhos, o que leva a técnica de otimização a alo-
car suas operações nos horários onde o custo da eletricidade é mais baixo. Conhecendo
tal fato, dá-se ao consumidor a liberdade de definir quais aparelhos não irão causar-lhe
inconveniência (terão seu funcionamento bem definido previamente), com base em suas
preferências utilizando-se do agrupamento dos aparelhos residenciais.
392
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Conclusão
Neste trabalho foi apresentado um modelo de otimização multi-objetivo de DR para con-
sumidores residenciais que visa minimizar tanto o custo associado ao consumo da eletri-
cidade quanto a inconveniência causada aos consumidores finais. Para tanto, por meio do
NSGA-II, a programação do uso dos aparelhos foi baseada no preço da energia elétrica
em tempo real e nas particularidades operacionais das diferentes categorias de aparelhos
residenciais.
Desse modo, foram obtidos resultados que permitem ao consumidor tomar a de-
cisão de como modificar seu consumo de energia elétrica, tendo como preferência a
redução do custo ou a manutenção do seu conforto/satisfação. Vale ressaltar que os nı́veis
de inconveniência normalmente não é contemplado na formulação de modelos de DR,
pois o objetivo central comum é a minimização dos custos da eletricidade.
Como trabalho futuro propõe-se a implementação de modelos de DR visando a
otimização de microgrids. Esses ambientes que possuem algumas caracterı́sticas espe-
ciais, como a similaridade de padrões de consumo de energia, o que é propı́cio para o
surgimento de diferentes horários de pico na aplicação de modelos comuns de DR. Tal
estudo aumentaria a robustez do modelo proposto neste trabalho.
Referências
Chen, Z., Wu, L., and Fu, Y. (2012). Real-time price-based demand response management
for residential appliances via stochastic optimization and robust optimization. IEEE
Transactions on Smart Grid, 3(4):1822–1831.
Coello, C. C. (2006). Evolutionary multi-objective optimization: a historical view of the
field. IEEE computational intelligence magazine, 1(1):28–36.
Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. (2002). A fast and elitist multiob-
jective genetic algorithm: Nsga-ii. IEEE transactions on evolutionary computation,
6(2):182–197.
Kung, H.-T., Luccio, F., and Preparata, F. P. (1975). On finding the maxima of a set of
vectors. Journal of the ACM (JACM), 22(4):469–476.
Kunwar, N., Yash, K., and Kumar, R. (2013). Area-load based pricing in dsm through
ann and heuristic scheduling. IEEE Transactions on Smart Grid, 4(3):1275–1281.
Miettinen, K. (2012). Nonlinear multiobjective optimization, volume 12. Springer Sci-
ence & Business Media.
OMIE (2015). Electricity market price. http://www.omie.es/inicio.
Parvania, M. and Fotuhi-Firuzabad, M. (2010). Demand response scheduling by stochas-
tic scuc. IEEE Transactions on smart grid, 1(1):89–98.
Pflugradt, N. D. (2016). Modellierung von wasser und energieverbräuchen in haushalten.
Master’s thesis, Technische Universitat Chemnitz, Chemnitz.
Siano, P. (2014). Demand response and smart grids - a survey. Renewable and Sustainable
Energy Reviews, 30:461–478.
Srinivas, N. and Deb, K. (1994). Multiobjective optimization using nondominated sorting
in genetic algorithms. Evolutionary computation, 2(3):221–248.
393
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introduction
The Internet of Things (IoT) is the pervasive presence of a variety of devices, such as:
sensors, Radio Frequency Identification (RFID) tags and smartphones, among other
devices which can interact with each other for a common purpose [Atzori et al., 2010].
In the scenario of the IoT, plurality is increasing and forecasts indicate that over 40
billion devices will be connected until 2020 [Forbes 2014], allowing for the emergence
of new application possibilities, such as: smart cities, health, smart houses, etc.
Among the most promising technologies for the IoT paradigm are RFID and
Wireless Sensor Networks (WSN), according to [Atzori et al. 2010] and [Sobral et al.
2015]. WSNs have limitations on the identification of a person or object in some types
394
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
of applications. However, unlike WSNs, RFID systems are unable to sense data from
the place in which they are inserted, such as: humidity, temperature and pressure, which
are provided by the WSN. This is an indication that the IoT, by means of the integration
between the RFID and WSN technologies, maximizes the benefits, thus opening up new
perspectives for applications that consider context information, such as: temperature
monitoring in remote areas and the air quality of a specific city or region, control of
vehicle flow in one way, among others. The context usually refers to location, but it can
also cover different information used to characterize entities involved in the interaction
between the user and the application. According to [Baldauf et al. 2007], context-
sensitive systems are able to adapt their behavior to current conditions with no explicit
intervention from the user.
In IoT, a number of information, such as features of the device itself, of the
environment which surrounds it and of its capacity, can be used as a source of
contextual information. This requires context-sensitive routing protocols for the
fulfillment of a number of challenges during the exchange of messages in the IoT, such
as: a shorter delay, greater reliability on data transmission and minimal power
consumption. Based on these challenges, this article proposes an adjustment of the RPL
protocol [RFC 6550], which is implemented from the creation of four new OFs. The use
of proposed OFs occurs in the process of establishing routes, in order to meet the
context of the applications.
The paper is organized as follows. Section 2 sets out the related Works. Section
3 describes the adjustment done on the RPL protocol. The assessment of the proposed
approach is discussed in Section 4, followed by the conclusions in Section 5.
2. Related Work
According to [Vasseur, J., et al., 2012], the RPL makes use of metrics specified in RFC
6551 which are suitable for IPv6 over Low power Wireless Personal Area Networks
(6LoWPAN) environments, such as: number of hops; latency; delivery ratio, node
energy; throughput; level of link quality; and transmission reliability. In [Thubert 2012]
a standard objective function called Objective Function Zero (F0) was proposed for the
RPL; it was designed to enable interoperability among different implementations of the
RPL. The operation of OF0 is simplified and does not use any routing metrics for the
definition of the rank. A node chooses as its preferred parent the neighbor within reach
which has the lowest rank.
In [Levis & Gnawali 2012], the Minimum Rank with Hysteresis Objective
Function (MRHOF) objective function was introduced. MRHOF is only suitable for the
metrics specified in RFC 6719. The selection of the favorite “parents” is made taking
into account the adopted metrics, where the routes that minimize the cost associated
with the metrics are preferable.
[Jayaraman and Delirhaghighi 2013] propose a context-aware approach that
alters the functioning of a sensor node based on the phenomena collected from the
environment, such as: temperature, humidity, pressure, etc. The contribution of the
author, entitled Situation-Aware Adaptation Approach for Energy Conservation in
Wireless Sensor Network (SA-A-WSN), aims at monitoring the way the sensor node
works in the environment, in order to reduce the network’s power consumption.
According to [Perera et al., 2014] context-sensitive computing has been gaining
more market and relevance, to the extent that it is currently being considered to be an
important component of the Internet of Things.
395
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. Proposed Approach
In this article, it propose an approach focused on adaptation of the Routing Protocol for
Low-power and Lossy-networks (RPL), [RFC 6550]. The main purpose of this proposal
is to optimize routing in order to meet the context requirements of specific applications.
396
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
• 𝑟𝑎𝑛𝑘𝑖𝑛𝑐𝑟𝑒𝑎𝑠𝑒 , is a variation factor (delta) between the node and the parent
rank.
The objective functions proposed in the approach enable the devices to select the
parent nodes (default route) based on the context information obtained from the
application. Each application may have requirements that simultaneously need up to
three metrics Expected Transmission Count (ETX) and/or Number of Hops (NH) and/or
Energy Consumed (EC), which allows us to rate them according to their priority level
(N) as (High = 1; Medium = 3; Low = 5). Each of these metrics is represented by an F
function. Based on this information, a T(ni) weight is achieved by each network device,
which represents the sum of the context functions. Table 1 shows the objective
functions used to calculate the route selection.
The route selection is carried out by applying the value of T(ni) to the route
selection mechanism described in expression (6), which enable the nodes to locally
decide which route to use for sending the data without incurring the high costs related
to the knowledge of the topology of the overall network. The route selection process can
397
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
𝑄𝐶 = ∑𝑘−1
𝑖=1 𝑇(𝑛𝑖)𝑣𝑖 (6)
The rule implemented in the protocol suggests that, the lighter the weight of
𝑇(𝑛𝑖), the better the quality of the 𝑄𝐶 path. Thus, the best path to choose is the one
which, among all the paths that are available from origin to destination, achieves the
lowest value corresponding to the 𝑄𝐶 .
4. Performance Assessment
In order to assess the development of the approach proposed in this paper, it used the
COOJA [Osterlind 2006] simulator, which is part of the Contiki simulation
environment.
The objective functions proposed herein were assessed and compared with the
OF0 and MRHOF functions, which are native objective functions of the RPL. The
energy consumption model used for the performance assessment concerning energy was
the Energest module from the Contiki [Dunkels et al. 2007], which measures the energy
consumption within an IoT device.
The total simulation time was 35 minutes; it repeated the simulation five times,
considering that, from the fifth time, no change was observed in the results. However, in
order to assess the dynamic change between the objective functions, the time simulated
was 140 minutes, because each application lingers for 35 minutes. The messages were
simulated with 30-byte packages (default from Contiki). The initial power of the nodes
398
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
was adjusted to 200 joules above the Energest energy consumption model from the
Contiki [Dunkls et al. 2007].
Five metrics used by the RPL [RFC 6551] were chosen for the assessment of the
approach: Energy Consumed (EC), Cost of the Reception of Messages (CR), Number of
Hops (NH), Delivery Ratio (TX) e Expected Transmission Count (ETX). O Cost of the
Reception of Messages (CR) is the ratio between the number of messages received by
the sink and the total remaining energy of the network. The Expected Transmission
Count (ETX) is equal to the average number of transmissions required (including
retransmissions) so that a package is duly delivered to its destination.
Four applications were taken into account for this study. The first application
requires priority in reliability (represented by the delivery ratio). The second application
requires a shorter delay (represented by the number of hops). The third application
requires a long life span (represented by the energy consumed), and the fourth
application requires QoS for data delivery (represented by the ETX).
Figure 3. Energy consumption for the Figure 4. Message delivering delay for the
network nodes. sink.
Also in figure 4, from 525 seconds to the end of the simulation, the DQCA-OF4
function had a shorter delay when compared to the MRHOF and OF0 objective
functions. Figure 5 shows that all the objective functions proposed had a lower Cost of
the Reception of Messages when compared to the MRHOF and OF0 objective
functions. This occurred because the proposed approach uses specific objective
functions for each application, which is not the case with the MRHOF and OF0
objective functions.
399
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figure 5. Cost of the Reception of Figure 6. Delivery rate for the sent
Messages (Number of messages/J). messages.
For applications that require reliability in the delivery of data, figure 6 shows
that the DQCA-OF1 function achieved the best performance, with a delivery ratio of
89% when compared to the MRHOF and OF0 objective functions, which achieved
delivery ratios of 65% and 50,4%, respectively. This occurred because, for the selection
of routes, the RPL protocol used the function which forecasts the Expected
Transmission Count (ETX) and Number of Hops (NH) metrics; in this case, both with
high priority.
Figure 7 shows that, for applications that require priority in the quality of the
delivery of data, the DQCA-OF2 (EC=High) function achieved the best performance in
the number of transmissions/retransmissions with ETX=42 when compared to the
DQCA-OF2 (EC=Low) functions, which achieved ETX=88, MRHOF with ETX=140
and OF0 with ETX=180. This difference was achieved because the application required
a high level of priority in the Energy consumed (EC) metrics.
5. Conclusion
This paper proposes an approach for dynamic route selection in IoT based on contextual
information of from the applications. The results showed that the proposed approach is
more effective when compared to the one used by the RPL protocol in its original
version. This was possible because the objective functions which were proposed for the
adaptation of the routing in the RPL protocol showed positive results in terms of life
span, delay, cost of the reception of messages, reliability, and QoS. Moreover, the route
selection mechanism, which was also proposed in this paper, helped in the choice of the
highest quality path. Our intention for the next papers is to implement this approach in
other protocols which apply to the IoT, taking into account the scalability of the devices
that make up an IoT structure.
400
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Acknowledgements
This work has been partially supported by National Funding from the FCT - Fundação
para a Ciência e a Tecnologia through the UID/EEA/50008/2013 Project, and by Finep,
with resources from Funttel, Grant No. 01.14.0231.00, under the Centro de Referência
em Radiocomunicações - CRR project of the Instituto Nacional de Telecomunicações
(Inatel), Brazil.
References
Atzori, L., Iera, A. and Morabito, G. (2010). The Internet of things: A survey, Computer
networks, 54(15): 2787–2805.
Baldauf, M., Dustdar, S., Rosenberg, F. (2007) “A survey on context-aware systems”,
International Journal of Ad Hoc and Ubiquitous Computing, vol. 2, no. 4, pp.
263277.
Chen, Y., Chanet, J., Hou, K., Shi, H., De Sousa, G.: A scalable Context-Aware
Objective Function (SCAOF) of Routing Protocol for Agricultural Low-Power and
Lossy Networks (RPAL). Sensors 19507–19540 (2015).
Dunkels, A., Osterlind, F., Tsiftes, N., e He, Z. (2007). Software-based on-line energy
estimation for sensor nodes. In Proceedings of the 4th Workshop on Embedded
Networked Sensors, EmNets ’07, pages 28-32, New York, NY, USA. ACM.
Forbes (2014). Internet of Things By The Numbers: Market Estimates And Forecasts.
Gaddour, O.; Koubaa, A.; Baccour, N.; Abid, M. OF-FL: QoS-aware fuzzy logic
objective function for the RPL routing protocol. In: Modeling and Optimization in
Mobile, Ad Hoc, and Wireless Networks (WiOpt), 2014 12th International
Symposium on. IEEE, 2014, p. 365-372, 2014.
Jayaraman, P. P.; Delirhaghighi, P. SA-A-WSN: Situation-aware adaptation approach
for energy conservation in wireless sensor network. In: Intelligent Sensors, Sensor
Networks and Information Processing, 2013 IEEE Eighth International Conference
on. IEEE, 2013, p. 7-12, 2013.
Miorandi, D., Sicari, S., De Pellegrini, F. and Chlamtac, I. (2012). Internet of things:
Vision, applications and research challenges, Ad Hoc Networks 10(7): 1497–1516.
Osterlind, F.; Dunkels, A.; Eriksson, J.; Finne, N.; Voigt, T. Cross-level sensor network
simulation with cooja. In: Local Computer Networks, Proceedings 2006 31st IEEE
Conference on. IEEE, 2006, p. 641-648, 2006.
Perera, C., Zaslavsky, A., Christen, P., Georgakopoulos, D. (2014) "Context Aware
Computing for The Internet of Things: A Survey", IEEE Communications Surveys &
Tutorials, vol. 16, no. 1.
Pister, K., et al. Industrial Routing Requirements in Low-Power and Lossy Networks.
Network Working Group . 2009. RFC 5673.
Sharkawy, B.; Khattab, A.; Elsayed, K.M.F. Fault-tolerant RPL through context
awareness. In: Internet of Things (WF-IoT), 2014 IEEE World Forum on. IEEE,
2014. p. 437-441, 2014.
Sobral, J., Rabêlo, R., Oliveira, D., Lima, J., Araújo, H., e Holanda, R. (2015). A
framework for improving the performance of IoT applications. In The 14 th
International Conference on Wireless Networks, 2015, pages 143-140, Las Vegas,
NV, USA.
Vasseur, J., et al. Routing metrics used for path calculation in low power and lossy
networks. Network Working Group . 2012. RFC 6551.
401
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Atualmente vivemos em um mundo rodeado de tecnologias denominado de cidades inte-
ligentes que nos ajudam em diversas atividades. Há diversos sistemas automatizados que
402
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
realizam diversas tarefas como: detectar se um veículo passou o sinal vermelho, analisar
uma imagem de satélite e verificar se há desmatamento ou queimadas, analisar uma ima-
gem de um exame de um paciente e identificar alguma doença, etc. Ou a partir dos dados
de um paciente, identificar se ele tem ou não determinadas doenças. Essas ferramentas
que auxiliam nas tomadas de decisão e que tentam simular o nosso cérebro para resolver
determinados problemas são denominadas de Reconhecimento de Padrões (RP).
Desta forma, RP visa classificar uma determinada entidade desconhecida dentre
um conjunto de classes conhecidas. Ou seja, corresponde a um problema de classifi-
cação, sendo a aprendizagem supervisionada a mais utilizada. Há diversos modelos de
classificação, dentre eles podemos destacar os classificadores estatísticos, redes neurais,
bayesianos, probabilísticos. Um dos classificadores mais simples e intuitivo é o KNN
(K-Nearest Neighbours), que é um modelo que associa uma entidade desconhecida como
sendo da mesma classe que a entidade mais próxima a ela.
Na abordagem de aprendizagem supervisionada, há uma fase de treinamento e
uma de testes. Dependendo da cardinalidade e da qualidade dos conjuntos de treina-
mento, essa etapa pode consumir muito tempo e gerar modelos cuja acurácia seja baixa.
Diante desse contexto, surgiram os algoritmos de seleção de protótipos para reduzir a car-
dinalidade dos conjuntos de treinamentos e melhorar tanto a acurácia quanto o tempo de
processamento. Dentre esses algoritmos, destacam-se o ENN (do inglês Edited Nearest
Neighbor Rule) e o CNN (do inglês Condensed Nearest Neighbor). O primeiro algoritmo
elimina os elementos próximos às fronteiras de decisão enquanto que o segundo realiza o
inverso.
Visto que uma das linhas de aplicação de RP é diagnóstico médico, o objetivo
deste trabalho é realizar um estudo comparativo entre os algoritmos de seleção de protó-
tipos ENN e CNN aplicados em problemas médicos.
O restante do trabalho está organizado da seguinte forma: a Seção 2 apresenta
um resumo dos principais tópicos teóricos detalhando o classificador KNN e os dois al-
goritmos de seleção de protótipos estudados. Em seguida, apresenta-se a metodologia
e os resultados obtidos. Por fim, são apresentadas as conclusões e recomendações para
trabalhos futuros.
2. Fundamentação Teórica
2.1. Reconhecimento de Padrões
Como visto, Reconhecimento de Padrões (RP) vêm sendo aplicado em diversas áreas de
conhecimento, desde processamento de imagens, análise de crédito a diagnóstico médico.
Um padrão pode ser qualquer entidade que possa ser associada a uma determinada classe.
Por exemplo, uma pessoa que pode ser associada a classe dos indivíduos que possuem
diabetes; uma compra realizada em um site de vendas pode ser classificado como sendo
uma fraude; uma mensagem de correio eletrônico pode ser classificada como spam, etc.
Segundo Marques [dos Santos Salvador Marques 2000], RP consiste em, a partir da iden-
tificação de um objeto, escolher qual classe melhor se adapta ao objeto identificado dentre
um conjunto de hipóteses.
Dessa forma, RP consiste em associar um padrão desconhecido a uma classe
que é já conhecida previamente pelo classificador. Em geral, um padrão é modelado
403
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
404
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Algoritmo 1: ENN
Entrada: Conjunto de Treinamento T
Saída: Conjunto de Treinamento Selecionado L
inicio
Conjunto treino = T ;
Conjunto L = ∅ ;
para cada ei ∈ T faça
Conjunto teste = ei ;
Classificador knn = new Classificador(treino);
float acuracia = knn.classificar(teste);
se acuracia == 0 então
L.adicona(ei );
fim
fim
S = T − L;
fim
retorna S
Fonte: Elaborado pelo autor.
3. Materiais e Métodos
Visando atingir os objetivos deste trabalho, foram implementados os algoritmos ENN e
CNN. A linguagem usada para implementação foi Java usando algumas funcionalidades
da biblioteca Weka, que é disponibilizada juntamente com a aplicação Weka, que é uma
ferramenta de aprendizagem máquina gratuita bastante utilizada. Os experimentos foram
realizados utilizando bases de dados de domínio público. Os experimentos foram feitos
com os dados originais e com os dados selecionados pelos algoritmos ENN e CNN. Com
os dados originais, os experimentos foram realizados com a ferramenta Weka, enquanto
que com os dados selecionados, foram utilizados as implementações realizadas.
405
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Algoritmo 2: CNN
Entrada: Conjunto de Treinamento T
Saída: Conjunto de Treinamento Selecionado L
inicio
L = ObtemUmElementoAleatorioPorClasse(T )
para cada ei ∈ T faça
Conjunto treino = L
Conjunto teste = ei
Classificador knn = new Classificador(treino);
float acuracia = knn.classificar(teste);
se acuracia == 0 então
L.adicona(ei );
fim
fim
fim
retorna L
Fonte: Elaborado pelo autor.
Para atingir o objetivo deste trabalho, foram selecionadas algumas bases de dados
gratuitas disponíveis em [UCI 2016], a saber: diabetes, hepatitis e sick. A Tabela 1 apre-
senta um comparativo entre essas bases. Não foi aplicado nenhum método de extração
de características. Para realização dos experimentos, foi utilizada a técnica de validação
cruzada com 10 folds. Os dados foram baixados no formato ARFF, que é o formato de
arquivo utilizado pelo Weka.
406
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
24 eval.evaluateModel(classif, teste);
25 evalSelecionados.evaluateModel(classifSelecionados, teste);
26
27 // Obtendo a acurcia (taxa de acertos) dos experimentos
28 acuracia += eval.pctCorrect();
29 acuraciaSelecionados += evalSelecionados.pctCorrect();
30 }
407
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Foram feitos experimentos com outros valores de k, porém não houve melhoria
considerável na taxa de acertos do classificador. O desvio padrão foi relativamente alto,
com isso, faz-se necessário investigar outros bancos de dados. Para os experimentos com
seleção de protótipos, verificou-se que o ENN melhorou a acurácia em 2 dos 3 experi-
mentos realizados. Já o CNN, a acurácia foi reduzida nos 3 experimentos.
408
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusão
Os resultados mostraram que o classificador KNN pode ser utilizado como apoio ao di-
agnóstico de doenças, conforme experimentos realizados. Como a acurácia média foi
abaixo de 90%, é necessário realizar experimentos com outros conjuntos de dados e com-
parar os resultados com outros classificadores. Em relação aos dois algoritmos avaliados,
ENN e CNN, conclui-se que os mesmos não apresentaram resultados satisfatórios para
as bases testadas. Assim sendo, os algoritmos não são recomendados para utilização em
ferramentas de apoio ao diagnóstico médico. Apesar do ENN ter melhorado o custo em
63% dos experimentos, não justifica sua utilização pelo custo de execução. Além disso, a
melhoria foi de apenas 2%.
Como trabalhos futuros, recomenda-se estudar a influência de algoritmos de sele-
ção de protótipos sobre a performance de outros classificadores, como Redes Neurais e
Máquinas de Vetores de Suporte (SVM). Recomenda-se testar com outras bases e também
outros algoritmos. Recomenda-se avaliar não somente a acurácia, mas também outros fa-
tores, como tempo de processamento e precisão.
Referências
Campos, T. E. (2001). Técnicas de seleção de características com aplicações em reconhe-
cimento de faces. Mestrado em ciência da computaçõo, Universidade de São Paulo,
São Paulo.
dos Santos Salvador Marques, J. (2000). Reconhecimento de padrões: métodos esta-
tísticos e neuronais. Coleção Ensino da Ciência e da Tecnologia. Instituto Superior
Técnico.
Norvig, P. and Russell, S. (2014). Inteligência Artificial, 3ª Edição, volume 1. Elsevier
Brasil.
Oliveira, D. V. R. (2011). Análise comparativa de técnicas de seleção de protótipos em ba-
ses desbalanceadas. Bacharelado em engenharia da computação, Universidade Federal
de Pernambuco, Recife.
UCI (2016). Uci machine learning repository.
Webb, A. R. and Copsey, K. D. (2011). Statical Pattern Recgnition. Wiley.
WEKA (2016). Weka 3: Data mining software in java.
409
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Os desenvolvimentos recentes em ferramentas inovadoras de visualização e in-
terfaces gráficas impulsionam o avanço de novas tecnologias de interação humano-
máquina. A viabilidade dessas tecnologias dá-se devido ao crescimento conjunto de
campos como computação gráfica, realidade aumentada, realidade virtual e robótica
[Technavio 2015]. Interfaces capazes de fornecer a sistemas computacionais uma entrada
humana são um fator chave, do qual os setores mencionados são altamente dependentes
[Vilarinho 2014]. Equipamentos como Kinect, Cyberith Virtualizer e Razer Hydra são
exemplos de inovação em tecnologia de dispositivos de entrada [Betancourt et al. 2015].
Contudo, essas ferramentas ainda possuem elevado custo financeiro de aquisição.
Uma possı́vel solução é o uso de técnicas de processamento digital de imagens
(PDI) e visão computacional (VC) para reconhecimento de gestos a partir de imagens de
uma câmera de computador comum. Essa abordagem permite reduzir de forma significa-
tiva os custos associados ao desenvolvimento de aplicações que necessitem de interação
humano-máquina.
Os principais desafios na elaboração de algoritmos eficientes de reconhecimento
de gestos são: segmentação do cenário da imagem, extração de caracterı́sticas relevantes,
410
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
normalização dos dados adquiridos e classificação dos gestos [Conti and Gonzaga 2011,
Zhang 2012]. As técnicas de reconhecimento de gestos podem ser divididas em duas
categorias: gestos estáticos ou dinâmicos. As técnicas utilizadas para gestos estáticos
realizam o reconhecimento com base em uma única imagem e, por isso, tem um me-
nor custo computacional quando comparadas a técnicas para gestos dinâmicos, que utili-
zam sequências de vı́deo. Na literatura, existem diversas abordagens de reconhecimento
de gestos utilizando técnicas de aprendizagem supervisionada ou não-supervisionada,
como: redes neurais [Ming-Hsuan Yang and Tabb 2002], máquinas de vetor de suporte
[Deng-Yuan Huanga and Changa 2011], nearest-neighbor [den Bergh et al. 2011], grafos
[Triesch and von der Malsburg 2001], Distributed Locally Linear Embedding (DLLE)
[Ge et al. 2006], entre outros [Pisharady and Saerbeck 2015].
Este artigo apresenta uma técnica de reconhecimento de gestos estáticos baseada
na extração de momento invariantes de Hu e classificação com redes neurais profundas.
As taxas de acerto de três diferentes arquiteturas de rede são calculadas a partir de cinco
experimentos, com variação das frações de imagens utilizadas para treino e validação.
2. Fundamentação Teórica
Esta seção aborda as técnicas de pré-processamento, extração de caracterı́sticas
e classificação utilizadas neste trabalho. Em primeiro lugar, realiza-se uma etapa
de remoção de plano de fundo, na qual adota-se o método de segmentação por cor
[Phung et al. 2005] para distinguir a mão presente na imagem e o plano de fundo. A
partir de uma aproximação poligonal do contorno da mão [Suzuki et al. 1985], as carac-
terı́sticas extraı́das são os momentos invariantes de Hu [Hu 1962]. Esses atributos são
fornecidos a uma rede neural profunda durante os treinamentos e testes para que seja
realizada a classificação de gestos.
P (B|A) · P (A)
P (A|B) = . (1)
P (B)
Essa modelagem matemática pode ser aplicada para a segmentação de imagens
como uma técnica de classificação binária de pixels: pele e não-pele. Para imagens repre-
sentadas em espaços de cor de 3 canais, por exemplo, considera-se que o evento A repre-
senta o fato de um pixel pertencer a uma região de pele e B corresponde ao valor numérico
que um pixel assume em determinado canal. É necessário, portanto, obter P (A), P (B|A)
e P (B), conhecidos como probabilidades a priori. De forma intuitiva, tem-se P (A),
probabilidade de encontrar determinado pixel; P (B), probabilidade de encontrar pele; e
P (B|A), probabilidade de encontrar pele dado que um pixel possui determinado valor.
411
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
0 pi ≤ λ
CA (pi ) = . (2)
1 pi > λ
n
X (pi − Ci )2
= , (3)
i=1
n
412
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
momentos. Na equação, ηij representa o i-ésimo momento para o eixo x e j-ésimo mo-
mento para o eixo y; x e y são ı́ndices correspondentes a cada pixel; e I(x, y) indica o
valor, em escala de cinza, do pixel correspondente.
XX
ηij = xi y j I(x, y) (4)
x y
Ming-Kuei Hu, propôs em [Hu 1962] um conjunto de equações que, a partir dos
momentos de uma imagem, obtém valores invariantes em relação a rotação, escala e
translação. Estas equações são conhecidas como momentos de Hu ou momentos inva-
riantes de uma imagem.
413
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
das amostras é repetida um determinado número de vezes e sempre são escolhidas amos-
tras aleatoriamente. O objetivo é garantir que os dados de saı́da não sejam repetidos
durante os testes. A Figura 2 ilustra o funcionamento desse método, que foi adotado neste
trabalho.
3. Metodologia
As fases de segmentação por cor e reconhecimento de gestos exigem um base de
dados de imagens. Um software foi desenvolvido para aquisição dessa base de dados.
Foram coletadas imagens de mãos, de diferentes pessoas e etnias, realizando 6 classes de
gestos. Mais de 500 amostras foram coletadas, contendo os gestos definidos na Figura 3.
(a) Gesto 1 (b) Gesto 2 (c) Gesto 3 (d) Gesto 4 (e) Gesto 5 (f) Gesto 6
414
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Resultados
Os quatro experimentos foram executados para as três configurações de rede neu-
ral, cada uma com 30 rodadas de simulação. A partir dos resultados obtidos uma média
da taxa de acertos foi calculada. A Tabela 1, apresenta os resultados obtidos acerca da
porcentagem da taxa de acertos após o treinamento e teste das redes.
Tabela 1. Taxa de acertos dos experimentos.
RN 1 RN 2 RN 3
25% treino / 75% teste 86.52% 90.27% 90.81%
50% treino / 50% teste 91.83% 93.57% 93.84%
75% treino / 25% teste 94.07% 94.43% 94.69%
100% treino / 100% teste 99.15% 99.95% 99.89%
415
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Conclusões e Perspectivas
A segmentação por cor apresentou um ótimo desempenho, resistente a variações
no ambiente. A utilização de momentos de Hu, invariantes a escala e rotação mostrou-se
eficaz e capaz de diferenciar adequadamente as seis classes de gestos escolhidas nos ex-
perimentos. A classificação utilizando rede neurais profundas apresentou taxas de acerto
superiores a 90%, demonstrando a elevada capacidade de reconhecimento de gestos da
técnica apresentada. O método, portanto, mostra-se uma alternativa viável no desenvolvi-
mento de aplicações de interação humano-máquina.
Apesar dos resultados promissores, os métodos apresentados podem ser aprimo-
rados. É possı́vel obter informações acerca de profundidade a partir de imagens bidimen-
sionais, o que possibilitaria adotar técnicas de reconhecimento tridimensional de gestos.
Essas informações poderiam complementar os atributos de entrada da rede neural e elevar
a taxa de acertos dos algoritmos. É relevante também a implementação de um algoritmo
que realize o rastreamento dos dedos para o reconhecimento de gestos dinâmicos. Essa
medida elevaria o número de aplicações do trabalho apresentado, como, por exemplos, o
reconhecimento de gestos aplicado a libras.
Referências
Avraam, M. (2014). Static gesture recognition combining graph and appearance feature
s. International Journal of Advanced Research in Artificial Intelligence, 3(2).
Betancourt, A., Morerio, P., Regazzoni, C. S., and Rauterberg, M. (2015). The evolution
of first person vision methods: A survey. Circuits and Systems for Video Technology,
IEEE Transactions on, 25(5):744–760.
Bufo, M. J. (2000). Aplicação de rede neural artificial como auxiliar na predição do
desempenho de um land farming. Dissertação (Mestrado em Engenharia Agrı́cola),
page 192 p.
416
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Conti, C. and Gonzaga, A. (2011). Rastreamento do movimento dos dedos da mão hu-
mana em imagens de vı́deo. Journal of the Brazilian Neural Network Society, 9:104–
119.
den Bergh, M. V., Carton, D., Nijs, R. D., Mitsou, N., Landsiedel, C., Kuehnlenz, K.,
Wollherr, D., Gool, L. V., and Buss, M. (2011). Real-time 3d hand gesture interaction
with a robot for understanding directions from humans. In 2011 RO-MAN, pages 357–
362.
Deng-Yuan Huanga, W.-C. H. and Changa, S.-H. (2011). Gabor filter-based hand-pose
angle estimation for hand gesture recognition under varying illumination. Expert Sys-
tems with Applications, 38(5):6031–6042.
Ge, S. S., Yang, Y., and Lee, T. H. (2006). Hand gesture recognition and tracking ba-
sed on distributed locally linear embedding. In 2006 IEEE Conference on Robotics,
Automation and Mechatronics, pages 1–6.
Hasan, H. S. and Kareem, S. B. A. (2013). Gesture feature extraction for static gesture
recognition. Arabian Journal for Science and Engineering, 38(1):3349–3366.
Hu, M.-K. (1962). Visual pattern recognition by moment invariants. Information Theory,
IRE Transactions on, 8(2):179–187.
Ming-Hsuan Yang, N. A. and Tabb, M. (2002). Extraction of 2d motion trajectories and
its application to hand gesture recognition. IEEE Transactions on Pattern Analysis and
Machine Intelligence, 24(8):1061–1074.
Nguyen, T.-N., Huynh, H.-H., and Meunier, J. (2015). Static hand gesture recognition
using principal component analysis combined with artificial neural network. Jounal of
Automation and Control Engineering, 3(1):40–45.
Phung, S. L., Bouzerdoum, A., and Chai, D. (2005). Skin segmentation using color pixel
classification: analysis and comparison. IEEE transactions on pattern analysis and
machine intelligence, 27(1):148–154.
Pisharady, P. K. and Saerbeck, M. (2015). Recent methods and databases in vision-based
hand gesture recognition. Comput. Vis. Image Underst., 141(C):152–165.
Ramer, U. (1972). An iterative procedure for the polygonal approximation of plane cur-
ves. Computer graphics and image processing, 1(3):244–256.
Suzuki, S. et al. (1985). Topological structural analysis of digitized binary images by
border following. Computer Vision, Graphics, and Image Processing, 30(1):32–46.
Technavio (2015). Global robotics market 2015-2019. Technical report, Research and
Markets.
Triesch, J. and von der Malsburg, C. (2001). A system for person-independent hand pos-
ture recognition against complex backgrounds. IEEE Transactions on Pattern Analysis
and Machine Intelligence, 23(12):1449–1453.
Vilarinho, L. (2014). Interface homem-máquina. Engenharia de Software Magazine, (47).
Zhang, Z. (2012). Microsoft kinect sensor and its effect. MultiMedia, IEEE, 19(2):4–10.
417
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Resumo. A evasão é um problema sério que afeta as Instituições de Ensino
Superior (IES) brasileiras. A Universidade Estadual do Piauí (UESPI),
campus Prof. Alexandre Alves de Oliveira não fica de fora desta realidade.
Este trabalho objetiva demonstrar o uso da técnica DAMICORE para auxiliar
na identificação de alunos que têm tendência a abandonar seus estudos.
Através desta técnica de Mineração de Dados é possível agrupar dados
específicos de alunos e identificar aqueles que têm grandes chances de evasão.
Fazendo uso do método de identificação de alunos proposto neste artigo
espera-se ser possível ter um maior controle sob o índice de evasão na UESPI
de Parnaíba através de um acompanhamento mais direcionado.
Abstract. Evasion is a serious problem that affects Brazilians Higher
Education Institutions. The University of Piauí State (UESPI), campus Prof.
Alexandre Alves de Oliveira is not out of this reality. This paper aims to
demonstrate the use of the DAMICORE technique to help to identify students
who tend to abandon their studies. Through this technique of Data Mining it is
possible to group specific data of students and to identify those that have great
chances of university dropout. Using the method proposed in this paper it is
expected to be possible to have a greater control under the evasion index in the
UESPI of Parnaíba city through a more accurate monitoring.
1. Introdução
A evasão é hoje um dos maiores problemas que instituições de ensino superior têm para
resolver e tem sido alvo de muitas pesquisas educacionais. Muitos gestores buscam
minimizar efetivamente esse problema através de ações concretas como atendimento
psicológico [Moura e Facci 2016] ou até mesmo aulas preparatórias para o nivelamento
do conhecimento [Campos 2009]. Porém, para que essas ações sejam postas em prática
de forma mais seletiva e eficaz é necessário que esses gestores saibam quem são os
estudantes propensos a desistir de seus estudos.
Pensando nisto e considerando o escopo da UESPI de Parnaíba, este trabalho
propõe o uso de uma técnica de mineração de dados para fazer a classificação de alunos
que têm características de desistente. O que se espera é que os resultados obtidos sirvam
para auxiliar os gestores dessa instituição de ensino a agir antecipadamente,
minimizando os problemas relacionados à evasão.
418
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
DAMICORE é uma técnica de mineração de dados que é poderosa na tarefa de
classificar, agrupar e encontrar correlações em dados de diversos tipos. No trabalho de
Abreu Silva et al. (2014), a técnica mostrou-se ser capaz de encontrar correlações
complexas. Nesse trabalho, ela é aplicada com objetivo de classificar os dados de
alunos, visando a identificação daqueles com perfil de desistente.
O presente artigo foi organizado nas seguintes seções. A seção 2 descreve
trabalhos relacionados à mineração de dados educacionais e afins. A seção 3 define a
proposta geral deste trabalho. A seção 4 define e explica a metodologia utilizada. E a
seção 5 conclui esse artigo com uma visão geral do que se pode esperar como resultados
da aplicação do método proposto na UESPI de Parnaíba.
2. Trabalhos Relacionados
Existem diversas pesquisas na área relacionado as predições do desempenho acadêmico
e sua relação com a evasão da formação educacional utilizando mineração de dados, o
qual floresceu bastante nos últimos anos. Tem despontado como uma área relevante de
estudo pois permite analisar grande volumes de dados proporcionando soluções mais
rápidas para um tema que está sempre em foco dos educadores.
Segundo Santos et al. (2016) a área cresceu nos últimos anos, seu estudo
analisou diversos trabalhos da área, analisando as principais técnicas e ferramentas
utilizadas. Fica evidente que muitos trabalhos utilizaram uma abordagem mais direta nas
disciplinas, deixando de empregar uma tratamento mais focado no aluno, porém é
amplamente utilizado Árvores de Decisão, isso favorece esta técnica como uma
abordagem segura e bem sucedida.
Rigo, Cambruzzi e Barbosa (2014) apresentam um sistema de descoberta de
conhecimento em bases de dados educacionais, que resultou de uma parceria com uma
empresa de tecnologia educacional, o sistema busca identificar tendências de alunos
possibilitando assim que os gestores possam tratar e minimizar qualquer impacto,
principalmente os casos de evasão imediata. O trabalho busca um foco mais direto ao
aluno, investindo em soluções mais sociais, onde não está focado apenas no bem da
instituição, mas do discente também. No entanto foi utilizada uma abordagem extensa
para solucionar os problemas encontrados, podendo causar um gasto excessivo de
tempo e atrasando a solução para a ocorrência.
Júnior, Noronha e Kaestner (2016) têm como objetivo definir um modelo de
previsão da evasão, utilizando dados extraídos do sistema acadêmico da UTFPR, foram
testados trinta e seis atributos e criados onze atributos para contribuir na tarefa de
mineração de dados. Foi então selecionado os dez melhores atributos, entre eles está o
coeficiente de rendimento, mostrando assim que este é uma ótima escolha para
identificar se o aluno tem disposição a evasão escolar.
Silva (2017) propõe um sistema previsor capaz de indicar quais alunos estão
com maior risco de não conseguirem formar, para seu desenvolvimento foi utilizado
dados de alunos da área de computação que já saíram da universidade. Foi constatada a
viabilidade da utilização de mineração de dados para prever o risco do aluno evadir.
Simões Gomes (2015) usou dados estatísticos educacionais procedentes do
419
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Exame Nacional do Ensino Médio (ENEM) dos anos de 2013 e 2014 para descobrir
padrões e regras de associação dos dados utilizando-se de técnicas e métodos de
mineração de dados. A autora buscou dar ênfase aos dados do questionário
socioeconômico disponibilizado pelo Instituto Nacional de Estudos e Pesquisas
Educacionais Anísio Teixeira (INEP), tentando encontrar correlações entre os dados do
questionário com o desempenho dos inscritos no ENEM. Um dos algoritmos usados em
seu trabalho encontrou uma forte relação entre a renda familiar dos estudantes e o seu
desempenho na prova, principalmente dos advindos da escola pública.
Moro et al. (2014) têm como objetivo identificar padrões relevantes de
comportamento de alunos, que utilizaram a plataforma MathTutor. Empregando a
ferramenta DAMICORE para realizar a mineração de dados, o experimento obteve
resultados positivos que demonstram a eficácia da ferramenta para esta tarefa. O
trabalho se enquadra em um projeto maior, sendo assim a sua elaboração é um meio
para validar os métodos utilizados, a fim de dar continuidade.
3. Proposta
Tendo em vista os prejuízos causados por um aluno desistente e os problemas causados
pela evasão em geral, esse trabalho propõe o uso da técnica de mineração de dados
DAMICORE para analisar dados de universitários concluintes do primeiro semestre dos
cursos da UESPI de Parnaíba, comparando com dados de alunos já evadidos, e concluir
se os dados de determinado aluno são semelhantes ou não aos dos desistentes através de
agrupamento de dados. O que se espera é que universitários com características de
desistente sejam imediatamente identificados de forma automática e eficiente, e que,
dessa forma, os gestores da UESPI de Parnaíba possam ter um maior controle sobre a
evasão nessa instituição, utilizando-se das medidas necessárias para o tratamento deste
problema. Essas medidas podem ser direcionadas especificamente àqueles identificados
pela ferramenta.
4. Método
Devido a natureza teórica desta obra, os métodos descritos são baseados em trabalhos de
terceiros com intuito de efetuar trabalhos futuros aplicando o que foi abordado e
validando as explanações descritas. Por tratar-se de uma proposta, os dados utilizados no
artigo são fictícios devido ao seu objetivo de demonstração do funcionamento das
técnicas debatidas. Para explicar o método, aqui é feito um exemplo simples que ilustra
o DAMICORE aplicado em uma base de dados de alunos.
O DAMICORE é uma técnica de mineração de dados na qual os dados são
dispostos em arquivos e armazenados em um diretório único. A técnica é caracterizada
pela aplicação em tipos de dados diversos graças ao Normalized Compression Distance
(NCD), uma métrica baseada em compressor que visualiza os dados como simplesmente
uma sequência de bits. O funcionamento do DAMICORE se dá através das técnicas
NCD, Neighbor Joining e Fast Newman [Sanches, Cardoso e Delbem 2011; Gomes
2016].
A implementação das etapas segundo Rigo (2012), descoberta do conhecimento,
registro de padrões de interesse, identificação de tendências conforme os padrões
descobertos, aviso aos envolvidos e registro das ações realizadas e resultados obtidos.
420
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Com essas informações coletadas é feito sua entrega aos envolvidos para que possam ser
tratadas e reduzir seu impacto.
421
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
baixo e reprovações RM e FR. A Tabela 2 lista os dados dos alunos que tiveram bom
CRA e não reprovaram em nenhuma disciplina no primeiro período letivo.
Tabela 1. Dados de alunos com rendimento acadêmico ruim após conclusão do primeiro
período letivo.
422
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Resultados
Na Figura 1, pode-se ver que o aluno_000, alvo fictício da análise, foi posicionado do
lado de baixo da árvore, circulado em vermelho, onde estão agrupados corretamente
todos os alunos com notas ruins. Esse é o resultado esperado, pois o aluno_000
realmente tem os dados com valores próximos aos dos alunos definidos como evadidos.
No exemplo, conclui-se, então, que o aluno_000 tem características de desistente.
Porém, ao analisar o resultado mais profundamente, vê-se que há grupos mais
especializados. O DAMICORE realiza esse agrupamento em etapas posteriores à etapa
inicial, afinando as comparações e aproximando mais as folhas. Houve, no resultado
gerado, um engano da aplicação. Ao analisar a tabela dos alunos com desempenho ruim,
constata-se que o aluno_004 não é o mais parecido com o aluno_000, mas sim o
aluno_003, que, embora esteja no mesmo ramo, poderia ter sido melhor classificado e,
como resultado, estar posicionado ao lado do aluno_000. Ainda que os resultados de
agrupamentos de ramos mais especializados não sejam de interesse desse trabalho, este
é um erro que chama atenção e causa preocupação.
Figura 1. Árvore filogenética gerada pelo DAMICORE. Fonte: Autor.
423
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
As linhas pontilhadas não fazem parte da imagem gerada pelo DAMICORE,
foram inseridas na figura para destacar e separar visualmente os dois grupos. O grupo
circulado em vermelho contém os alunos com notas ruins, e o grupo circulado em azul,
os que têm bom rendimento acadêmico.
A seção anterior exemplifica bem o funcionamento do DAMICORE aplicado em
uma base de dados estudantil. O resultado mostrado na Figura 1 é pouco detalhado
devido à quantidade de registros na base de dados. O que se espera de uma aplicação
real é que se tenha centenas de instâncias e o uso de vários atributos quantitativos
relacionados ao desempenho dos discentes, inclusive dados socioeconômicos, para que
os resultados sejam mais precisos.
6. Considerações Finais
Como é possível observar na metodologia, para melhores resultados na aplicação da
técnica é necessária uma grande base de dados de alunos, pois, dessa forma, a chance de
encontrar semelhanças aumenta. Deve-se também levar em conta os índices de acertos e
desempenho do DAMICORE, que, tratando-se dessa abordagem, não podem ser
estimados, pois não há referência suficiente na literatura usando essa técnica para se
determinar um percentual.
Quanto aos alunos que podem ser considerados ideais para participar desta
análise é necessário levar em consideração que nos primeiros período letivos a evasão é
relativamente maior [Silva Filho et al. 2007]. Desta forma, o primeiro período letivo é
uma excelente fonte de dados referentes ao problema. Por tratar-se de um exemplo, esta
questão não é colocada em foco, porém, na execução do método em uma situação real
esta faixa de alunos pode ser vista como ideal.
O objetivo do trabalho foi demonstrar a aplicação da técnica DAMICORE em
uma base de dados de alunos universitários para identificar aqueles com tendência a
evasão. O que se espera com a aplicação dessa técnica na UESPI de Parnaíba é a
diminuição do índice de desistência dessa instituição. Mas, para isso, é imperativo que
se debruce sobre o perfil do aluno, acompanhando as alterações e realizando
continuamente ajustes no modelo pedagógico [Moura e Facci 2016].
Assim fica em aberto para trabalhos futuros sua utilização no banco de dados da
UESPI de Parnaíba, para que seja trabalhado neste local e demonstrado sua capacidade
para ajudar no combate a evasão de alunos.
Referências
Abreu Silva, B. de., Cuminato, L. A., Delbem, A. C., Diniz, P. C. e Bonato V. (2014).
Application-oriented cache memory configuration for energy efficiency in
multi-cores. IET Computers & Digital Techniques, Reino Unido, vol. 9, n. 1, p.
73-81, fev. 2014.
Campos, M. (2009). Calouros passam por nivelamento. Disponível em:
<http://www.gazetadopovo.com.br/educacao/vida-na-universidade/vestibular/calouro
s-passam-por-nivelamento-bs4u73lw4ujla5k37ks6lcuoe/>. Acesso em: 16 de jul.
2017.
424
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Gomes, E. A. P. (2016). Detecção de ilhamento de geradores síncronos distribuídos por
correlações da mineração complexa de dados. Dissertação de Mestrado, Escola de
Engenharia de São Carlos, USP, São Carlos.
Júnior, José G. de Oliveira, Noronha, Robinson Vida; Kaestner, Celso A. Alves (2016).
Criação e Seleção de Atributos Aplicados na Previsão da Evasão de Curso em Alunos
de Graduação. Computer On The Beach, São José, p.61-70, abr. 2016.
Manhães, L. M. B., Cruz, S. M. S. da., Costa, R. J. M., Zavaleta, J. e Zimbrão, G.
(2012). Identificação dos Fatores que Influenciam a Evasão em Cursos de Graduação
Através de Sistemas Baseados em Mineração de Dados: Uma Abordagem
Quantitativa. VIII Simpósio Brasileiro de Sistemas de Informação (SBSI), Anais, São
Paulo, p. 468-479, mai. 2012.
Moura, F. R. e Facci, M. G. D. (2016). A atuação do psicólogo escolar no ensino
superior: configurações, desafios e proposições sobre o fracasso escolar. Psicologia
Escolar e Educacional, São Paulo, v. 20, n. 3, p. 503-514, set./dez. 2016.
Moro, Luis F. de S. et al. Caracterização de Alunos em Ambientes de Ensino Online:
Estendendo o Uso da DAMICORE para Minerar Dados Educacionais. 3º Congresso
Brasileiro de Informática na Educação, [s.l], p.631-640, 2014.
Rigo, S. J., Cazella, S. C. e Cambruzzi, W. (2012). Minerando Dados Educacionais com
foco na evasão escolar: oportunidades, desafios e necessidades. I Workshop de
Desafios da Computação Aplicada à Educação, Paraná, jul. 2012.
Rigo, S. J., Cambruzzi, W., Barbosa, Jorge L. V. (2014). Aplicações de Mineração de
Dados Educacionais e Learning Analytics com foco na evasão escolar: oportunidades
e desafios. Revista Brasileira de Informática na Educação, [s.l.], v. 22, n. 1,
p.132-146, mar. 2014.
Sanches, A. Cardoso, J. M. P. e Delbem, A. C. B. (2011) “Identifying Merge-Beneficial
Software Kernels for Hardware Implementation” in International Conference on
Reconfigurable Computing and FPGAs, p. 74-79.
Santos, R. M. M. dos, Pitangui, C. G., Andrade, A. V., Assis, Luciana P. de (2016).
Análise de Trabalhos Sobre a Aplicação de Técnicas de Mineração de Dados
Educacionais na Previsão de Desempenho Acadêmico. V Congresso Brasileiro de
Informática na Educação, Porto Alegre, p.960-969, 2016.
Silva, Gabriel Ferreira (2017). Análise Preditiva do Desempenho Acadêmico de Alunos
de Graduação da UnB Utilizando Mineração de Dados. 2017. 63 f. TCC (Graduação)
- Curso de Ciência da Computação, Universidade de Brasília, Brasília, 2017.
Silva Filho, R. L. L., Motejunas, P. R., Hipólito, O. e Lobo, M. B. de C. M. (2007). A
evasão no ensino superior brasileiro. Cadernos de pesquisa, São Paulo, v. 37, n. 132,
p. 641-659, set./dez. 2007.
Simões Gomes, T. Carina (2015). Descoberta de Conhecimento Utilizando Mineração
de Dados Educacionais Abertos. TCC. Universidade Federal Rural de Pernambuco,
Departamento de Estatística e Informática, Recife.
425
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Há séculos o avanço da tecnologia beneficia a área da saúde na obtenção de exames,
diagnósticos e cirurgias com cada vez mais eficiência, o que implica na melhoria da
condição de vida da população mundial como um todo. Uma das ciências da saúde que
muito se tem estudado é a neurologia, devido a complexidade do sistema neurológico e
das suas funções. Apesar de tamanha complexidade dessa região, inúmeros tipos de
exames e diagnósticos foram criados, a fim de detectar irregularidades e evitar que estes
se transformem em problemas maiores e consequentemente deixem sequelas.
O tipo de exame mais utilizado na neurologia é o eletroencefalograma. O EEG
consiste na realização de mapeamento cerebral, por meio de uma série de eletrodos
inseridos na parte externa do crânio do paciente e que monitora os sinais oriundos do
426
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
cérebro[E. Nurse et al, 2016]. Com isso, é possível diagnosticar inúmeros problemas
cerebrais como epilepsia, demência ou narcolepsia.
Apesar de ser o principal tipo de exame desde a segunda metade do século
passado, o EEG ainda apresenta alguns déficits no diagnóstico e nos resultados
finais[Becker K., et al 2004]. Para haver aumento na eficiência dos resultados nesse tipo
de situação, é necessária a utilização de ferramentas computacionais, que são criadas
justamente no intuito de resolver problemas na maioria das áreas. O objetivo deste
artigo foi por meio de um mapeamento sistemático, fazer uma ‘’varredura’’ na literatura,
em busca de trabalhos que fizeram esta mesma combinação de ferramentas e com
aplicações próximas utilizando os conceitos já detalhados anteriormente e, além disso,
ter conhecimento sobre o estado da arte.
Após a seção de introdução, este artigo foi organizado nas seguintes seções. A
seção 2 corresponde aos conceitos que fundamentam a pesquisa. A seção 3 detalha
todas as etapas do mapeamento sistemático realizado. A seção 4 diz respeito às
conclusões dos autores sobre os resultados do mapeamento sistemático. E por último, na
seção 5 são descritas as considerações finais sobre o artigo e as lacunas a serem
estudadas em pesquisas futuras com o intuito de complementar o conhecimento gerado
por este trabalho.
2. Referencial Teórico
Redes neurais artificiais são modelos computacionais inspirados pelo sistema nervoso
central de um animal, que são capazes de realizar o aprendizado de máquina, bem como
o reconhecimento de padrões. Redes neurais artificiais geralmente são apresentadas
como sistemas de "neurônios interconectados que podem computar valores de
entradas"[F.A.C. Azevedo et al, 2009].
Deep Learning é uma subcategoria de redes neurais artificiais que corresponde a
oportunidades de aprendizagem profundas com o uso de redes neurais para melhorar
algumas funcionalidades, tais como reconhecimento de fala, visão computacional e
processamento de linguagem natural. Além disso a Deep Learning tem se tornado uma
das áreas mais estudadas na computação moderna.
Outra ferramenta computacional estudada neste artigo foi a Interface
Cérebro-Computador(BCI), que pode ser descrito de forma mais detalhada como “um
caminho comunicativo direto entre o cérebro e um dispositivo externo” ou como “um
sistema de inteligência artificial que usa sinais de controle coletados a partir da atividade
eletroencefalográfica”. BCI são direcionados para auxiliar, aumentar ou reparar a
cognição humana ou as funções sensório-motor[Liu, J. et al, 2015].
3. O Mapeamento Sistemático
O Mapeamento Sistemático surgiu da base da engenharia de software e é apontado
como uma das metodologias, que se baseia em evidências para realização de pesquisas.
A etapa de criação do mapa representativo do conhecimento estudado é uma das
atividades mais difíceis de ser realizada pela falta de um processo claro e de uma
ferramenta que o apoie, pois nem sempre o acesso ao conhecimento que já foi gerado
naquele estado da arte é livre. Por conta disso, os Mapeamentos Sistemáticos são
427
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
realizados utilizando como principal ferramenta avaliativa que apoia os pesquisadores na
produção de revisões sistemáticas. Os resultados do Mapeamento Sistemático
apresentados neste trabalho seguem um conjunto de diretrizes [Kitchenham et al, 2007],
que têm por objeto a identificação e sumarização sobre o uso de redes neurais no
processo de eletroencefalograma. É composto por 3 etapas, planejamento , execução e
sumarização.
3.1 Planejamento
Buscando direcionar esforços durante o levantamento e compreensão dos estudos
primários sobre o uso das redes neurais no processo de eletroencefalograma, foram
utilizadas questões de pesquisa a fim de satisfazer a mesma ao final do mapeamento
sistemático. A revisão sistemática deve ser realizada com o objetivo primário de
responder essa questão. Então é necessário formular uma string que possa contemplar os
trabalhos que atendam à questão de busca. Para tanto, alguns grupos devem ser
atendidos.
Foram utilizados 3 conceitos principais, os quais já foram mencionados na seção
de introdução deste artigos, para a formulação das palavras-chave que resultaram na
string final. Os conceitos utilizados foram os de Eletroencefalograma, que remete ao
exame que analisa a atividade elétrica cerebral, captada através da utilização de
eletrodos colocados sobre o couro cabeludo; Neural Network, o qual remete às técnicas
computacionais de redes neurais(deep learning), que apresentam um modelo
matemático inspirado na estrutura neural de organismos inteligentes e que adquirem
conhecimento através da experiência; e BCI, que refere-se à ferramentas
computacionais que visam criar um caminho entre cérebro e computador a fim de
corrigir falhas na cognição humana.
Por fim, apresento a questão de pesquisa e suas subquestões que guiaram este trabalho.
Tabela 1 - Questões e Subquestões de pesquisa
Questão de Pesquisa e Subquestões
428
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Etapa Resultado
429
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Critérios de Inclusão
Fossem escritos em Inglês
Possuir palavras da expressão em seu título e/ou resumo
Ter sido publicado nos últimos 5 anos(2013, 2014, 2015, 2016, 2017)
Trabalhos que abordam sobre redes neurais no processo de EEG
Trabalhos que possuem como temática algumas das técnicas já citadas.
Critérios de Exclusão
Estivessem disponíveis somente em forma de resumos
Trabalhos hospedados em serviços pagos não financiados pela universidade.
3.2 Execução
A tabela 5 detalha os resultados da pesquisa obtidos após a aplicação da String de
Busca, e por conseguinte as 2 etapas descritas na seção 3.1.2.
Tabela 5 - Resultados da Pesquisa
Publicações Publicações Selecionadas
Biblioteca Digital Retornadas
Primeira Etapa Segunda Etapa
Scopus 64 50 24
430
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
leque muito grande ainda a ser explorado. Isso significa que as pesquisas sobre o uso
das Redes Neurais(Deep Learning) no processo de Eletroencefalograma vêm ganhando
espaço nas pesquisas e devem aumentar ainda mais. A Figura 1 apresenta o número de
publicações identificadas por ano.
Figura 1 - Publicações por ano
Figura 2 - Publicações por áreas aprimoradas
431
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5. Considerações Finais
Com base nos resultados obtidos, o objetivo do artigo que era fazer uma análise
interessante à respeito do estado da arte da área de pesquisa abordada e de suas
necessidades futuras, foi atingido. Concluímos que esta combinação de áreas e
ferramenta possui potencial promissor e deve ser mais explorada. Em relação aos
problemas e necessidades futuras abordados pela maioria dos artigos, a principal lacuna
encontrada foi a necessidade de maior base de dados, a fim de resultados finais mais
detalhados e convincentes além da possibilidade de maiores comparações entre os
resultados. Além disso, também é preciso que haja mais trabalhos que abordam em seus
métodos novas combinações em relação às redes neurais e seus algoritmos de
treinamentos.
432
Anais Eletrônicos
ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
An, X., Kuang, D., Guo, X., Zhao, Y., He, L. (2014) “A deep learning method for
classification of eeg data based on motor imagery”. Lecture Notes in Computer
Science (including subseries Lecture Notes in Artificial Intelligence and Lecture
Notes in Bioinformatics), 8590 LNBI, pp. 203-210.
Azevedo FA, Carvalho LR, Grinberg LT, Farfel JM, Ferretti RE, Leite RE, Jacob Filho
W, Lent R, Herculano-Houzel S.(2009) “Equal numbers of neuronal and nonneuronal
cells make the human brain an isometrically scaled-up primate brain”, Instituto de
Ciências Biomédicas, UFRJ, Rio de Janeiro, Brazil.
Becker, K., Sinzig, J.K., Holtmann, M. (2004)”Attention deficits and subclinical
epileptiform discharges: Are EEG diagnostics in ADHD optional or essential?'
Developmental Medicine and Child Neurology, 46 (6), pp. 431-432.
E. Nurse, Benjamin S. Mashford, Antonio J. Yepes, I. Kiral-Kornek, S. Harrer (2016)
"Decoding EEG and LFP signals using deep learning: heading TrueNorth" CF '16
Proceedings of the ACM International Conference on Computing Frontiers Pages
259-266, Italy.
Kinney-Lang, E., Auyeung, B., Escudero, J. (2016) “Expanding the (kaleido)scope:
Exploring current literature trends for translating electroencephalography (EEG)
based brain-computer interfaces for motor rehabilitation in children” Journal of
Neural Engineering, 13 (6), art. no. 061002, .
Kitchenham, B. & Charters, S. (2007) “Guidelines for performing systematic literature
reviews in software engineering, Technical Report” EBSE-2007-01, School of
Computer Science and Mathematics, Keele University.
Liu, J., Cheng, Y., Zhang, W. (2015) “Deep learning EEG response representation for
brain computer interface” Chinese Control Conference, CCC, 2015-September, art.
no. 7260182, pp. 3518-3523.
Petticrew M., Roberts H. (2008) “Systematic reviews–do they ’work’ in informing
decision-making around health inequalities?” Health economics, policy, and law, 3
(Pt 2). pp. 197-211. ISSN 1744-1331 DOI: 10.1017/S1744133108004453
Tabar, Y.R., Halici, U.(2017)”A novel deep learning approach for classification of EEG
motor imagery signals” Journal of Neural Engineering, 14 (1), art. no. 016003, .
Young, B.M., Nigogosyan, Z., Nair, V.A., Walton, L.M., Song, J., Tyler, M.E., Edwards,
D.F., Caldera, K., Sattin, J.A., Williams, J.C., Prabhakaran, V. (2014) “Case report:
Post-stroke interventional BCI rehabilitation in an individual with preexisting
sensorineural disability”. Frontiers in Neuroengineering, 7 (JUN), art. no. 18, .
433
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. Introdução
Pode-se conferir cada vez mais a tecnologia atuando em nosso ambiente, seja ela em
casa, no trabalho e nos trajetos feitos no dia-a-dia. Essa é uma realidade a qual, parte
dela, se dá pelo conceito de internet das coisas, onde tudo pode estar interligado em rede.
Exemplos disso, seria projetos como Casa Inteligente empregando a automação residen-
cial, a qual consiste em equipar uma casa com uma gama de dispositivos voltados para a
gestão de energia, conforto, automação de tarefas domésticas, sistemas de áudio, vı́deos
e iluminação [Elétrica 2015], Automação veicular, onde apresenta-se um veı́culo, como
um carro, composto por componentes responsáveis por controlar alguma funcionalidade
do veı́culo, como vidros elétricos, ignição e faróis, ou por enviar informações, como con-
sumo de combustı́vel e velocidade média em algum trecho e softwares de controle de
exercı́cios fı́sicos, como a corrida, os quais são responsáveis por identificar o percurso
feito, exibir a distância percorrida juntamente com o tempo gasto, velocidade média e
outros tipos de informações relevantes para o usuário.
Para realização de projetos, cujo apresenta-se o emprego de conceitos de IoT (In-
ternet of Things), pode-se utilizar plataformas de prototipagem eletrônica como o Ar-
duino ou Raspberry, os quais são placas compostas por um microcontrolador e, também,
434
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Trabalhos Correlatos
A utilização de sistemas baseados em IoT está cada vez mais comum e necessário, devido
a necessidade de se ter todas as informações na nuvem. Na literatura pode-se encon-
trar várias pesquisas relacionadas ao tema, além de ainda existir produtos já no mercado
disponibilizados para o uso.
No dia 21 de junho de 2017, o site btcsoul anunciou que as empresas IBM e
AOS firmaram uma parceria com o intuito de construir um blockchain para rastrear a
proveniência e o status de caminhões e seus produtos, onde registra o tratamento de
transações e informações sobre as cargas para ter-se maior transparência no processo de
entrega [Chrys 2017].
Firmando o fato de que a tecnologia está avançando maiores campos as fabrican-
tes de automóveis Tesla, Toyota e Volvo têm-se mantido o foco no desenvolvimento de
veı́culos que podem interagir com os ambientes [Econômico 2017]. O caminho para isso
é implantar o sistema de biometria nos veı́culos, onde o mesmo poderá identificar quem
é o usuário e o ambiente. Segundo a Equipe de Mobilidade Inteligente da Frost Sullivan,
um terço dos veı́culos novos terá sensores biométricos até 2025.
No meio automobilı́stico, o termo tecnologia se torna comum, onde visa-se sem-
435
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
pre o seu avanço. Levando isso em conta, tem-se buscado cada vez mais a automatização
neste ambiente e um fato que pode-se confirmar isto é a implantação de semáforos inte-
ligentes, o qual controla-se o seu tempo de acordo com o fluxo de veı́culos presentes na
via. Este sistema utiliza o Google Maps para identificar onde há mais veı́culos e deixa o
sinal aberto por mais tempo [do Paraı́ba e região 2017].
Na literatura, pode-se encontrar, também, diversos trabalhos que tem-se como
tema a utilização de IoT no ambiente veicular. Um exemplo disso é o trabalho de desen-
volvimento de sistema de rastreamento de veı́culos usando GPS e modem GSM (Global
System for Mobile Communications), onde visa-se o rastreio do veı́culo, remotamente,
através da rede móvel. Com o número de veı́culos crescendo significativamente devido às
economias crescentes, há falta de sistemas de rastreamento e apresentou-se a necessidade
de algo semelhante para ter-se maior segurança com os veı́culos, sejam eles pessoais ou
públicos e também algo mais acessı́vel a população [Pham et al. 2013].
3. Metodologia e Desenvolvimento
O sistema será composto por uma aplicação móvel, destinada para usuários finais, onde
possibilita-se o controle de alguns comandos destinados ao veı́culo, como acionar a
ignição e os faróis, e uma placa de prototipagem eletrônica, chamada arduino, responsável
por receber os comandos enviados pelo smartphone e realizar as devidas ações no veı́culo.
A comunicação entre as plataformas se dará via bluetooth.
Para os testes foi utilizado o smartphone Asus Zenfone 2 Deluxe, o Arduino Uno
R3, para a realização dos comandos e transmissão de dados foi utilizado um módulo
relé de 8 canais de 5V cada e um módulo bluetooth Hc06, os quais podem ser vistos na
Figura 1, e para os testes reais em veı́culo, foi utilizado o veı́culo Gol G4 2013/2014.
436
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
437
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
438
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
transmissão de dados. Ao acionar algum botão, o qual seja referente a alguma ação a ser
executada no veı́culo, o dispositivo móvel procura algum outro dispositivo para se conec-
tar, já pré-definido, o qual é o arduino. Ao obter êxito na conexão, os dados referentes são
serializados e transmitidos ao arduino, para, posteriormente serem traduzidos e executar
as devidas ações.
4. Resultados
Como demonstração dos resultados, realizou-se uma entrevista com 31 pessoas, de dis-
tintos locais e idades, as quais foram submetidas a responder a algumas questões. Dentro
das questões propostas foram avaliados, de uma escala de 1 a 10, os seguintes itens:
• Nı́vel de facilidade para operar as funções do veı́culo. O qual 29% dos entrevista-
dos atribuı́ram nota 1, constatando não haver nenhuma dificuldade.
439
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
440
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
que há falta de meios tecnológicos em alguns setores e em algumas classes sociais, como
é o caso de automação em veı́culos populares.
No desenvolvimento do sistema, pode-se concluir que há uma certa eficiência na
criação de aplicações móveis através de linguagens nativas, pois a mesma permite uti-
lizar mais recursos sobre a plataforma. Além disso, percebe-se que a comunicação via
bluetooth foi pouco eficiente, levando em consideração que seu alcance e sua veloci-
dade de transmissão é menor em comparação com o wifi [Jordão 2013], contudo o seu
custo/benefı́cio é menor [Kate T. 2017], o qual teve como objetivo o desenvolvimento de
um protótipo, onde visa-se a demonstração das funcionalidades empregadas.
Finalizando, esse sistema abre portas para diversas possibilidades, levando em
conta a sua capacidade de funcionar em diferentes plataformas. Algumas pretensões para
futuros trabalhos são a alteração da comunicação utilizada para Wifi, visando o aumento
da velocidade e do alcance para transmissão de dados, ampliação do campo de alcance
do aplicativo, tornando-o multi-plataforma, onde terá a disponibilidade para dispositivos
iOS, criação de novas funcionalidades como a possibilidade de rastrear o veı́culo e con-
trolá-lo, independente da localização do veı́culo e do smartphone e também a instalação
de uma funcionalidade para cortar o combustı́vel do veı́culo, em caso de possı́vel furto,
com o intuito de aumentar a segurança.
Referências
Chrys (2017). Ibm e aos: uso de blockchain para rastreamento de veı́culos. [Online;
accessed 17-agosto-2017].
do Paraı́ba e região, G. V. (2017). Semáforos ’inteligentes’ são implantados na avenida
dos astronautas. [Online; accessed 17-agosto-2017].
Econômico, B. (2017). Biometria nos veı́culos: veja como a experiência de transporte
será impactada. [Online; accessed 17-agosto-2017].
Elétrica, S. Internet das coisas. [Online; accessed 12-abril-2017].
Elétrica, S. (2015). Automação residencial e casa inteligente: Bem vindo ao futuro.
Jordão, F. (2013). Tecmundo explica: qual a diferença de bluetooth para wifi? [Online;
accessed 17-agosto-2017].
Kate T., Poonam S., P. S. N. J. I. B. K. G. (2017). Bluetooth vs. wi-fi. [Online; accessed
17-agosto-2017].
Pham, H. D., Drieberg, M., and Nguyen, C. C. (2013). Development of vehicle tracking
system using gps and gsm modem. In 2013 IEEE Conference on Open Systems (ICOS),
pages 89–94.
SAP. O que é a internet das coisas (iot)? [Online; accessed 12-abril-2017].
441
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
1. INTRODUÇÃO
O Teste de Caminhada de 6 minutos (TC6) mede a capacidade funcional dos pacientes,
sendo efetuado por profissionais da área de saúde, comumente por Fisioterapeutas. O
teste, habitualmente é realizado de forma manual e tem por objetivo identificar a
capacidade funcional do paciente, isto é, o quanto de distância o sujeito consegue atingir
no intervalo de seis minutos. A avaliação do TC6 é recomendado para identificação de
442
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. FUNDAMENTAÇÃO TEÓRICA
O TC6 representa de maneira mais aprimorada as limitações às atividades diárias, e
mostrou-se mais considerável que os testes em esteiras (MORALES-BLANHIR, 2011).
Morales-Blangir (2011), corrobora que o TC6 mede de forma objetiva a dessaturação de
oxigênio durante o exercício de pacientes com doenças pulmonares. Por ser um teste
submáximo e fidedigno é um instrumento confiável para realização de avaliações do
sistema de cardiopatas.
Em 2002, foi publicado pela American Thoracic Society - ATS1 as diretrizes
para a realização do TC6, explicitando que o TC6 deve por precaução, ser realizado em
locais que possuam facilidade de acesso em caso de emergência, pois pacientes que
realizam os testes podem sofrer de patologias cardiovasculares que limitam o esforço
físico. Pesquisas realizadas em Osaka-Japão, pela National Cardiovascular Center
demonstra que a Distância do Teste de Caminhada de 6 minutos – DTC6 é um fator
importantíssimo na avaliações de mortalidade de pessoas com hipertensão
(MIYAMOTO, 2010).
1
http://www.thoracic.org/
443
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
444
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
3. OSFISIO
O Our Source Fisioterapia (OSFISIO) é uma proposta de software para auxiliar
profissionais da área da saúde, especificamente os Fisioterapeutas, a realizarem o TC6
(Teste de Caminhada de 6 minutos) com pacientes. Atualmente o teste é realizado
manualmente.
As funcionalidades do OSFisio estão descritas a seguir:
● (1) Iniciar Caminhada;
● (2) Cronometrar o tempo e a distância da caminhada;
● (3) Realizar os cálculos de distância predita e frequência cardíaca máxima;
● (4) Finalizar caminhada.
O OSFisio divide-se em duas aplicações que se comunica. Uma aplicação
servidora (OSFisio Server), na qual será armazenado os dados de acompanhamento, e
uma aplicação cliente (OSFisio Client) que poderá ser executada no modo
Fisioterapeuta ou Paciente. Na Figura 2 pode-se analisar a ilustração da arquitetura do
OSFisio.
O OSFisio Server é responsável por disponibilizar ao OSFisio Client uma interface para
conexão com o banco de dados, além de gerar relatórios sobre os testes armazenados.
Através desta aplicação pode-se também manipular dados sobre os
usuários/fisioterapeutas e pacientes. As informações sobre os testes realizados são
apenas para consulta nesta aplicação. A conexão entre o dispositivo que executa o
OSFisio Client e o OSFisio Server é feita por meio de web services. O OSFisio Server
não é ferramenta de estudo deste trabalho.
No OSFisio Client temos a presença de dois dispositivos móveis, sendo a
comunicação entre eles realizada pela tecnologia bluetooth, que conecta dispositivos
que estão há uma pequena distância. A tecnologia foi preferível por menos riscos de
interferência.
445
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. METODOLOGIA
Por se tratar de uma técnica onde os possíveis benefícios ainda estão sendo
investigados, surgiu a necessidade de realizar um estudo exploratório através da
pesquisa experimental.
Todos os pacientes julgados pelos especialistas necessários a realizar o teste no
período desta pesquisa o fizeram com o auxílio do software OSFisio. Cada teste foi
realizado com no mínimo dois fisioterapeutas e um estudante de fisioterapia. Um dos
fisioterapeutas utilizava o software instalado em um celular para controlar a caminhada
em intermédio ao software, instalado em outro celular fixado na panturrilha do paciente,
o qual contava os passos do mesmo transmitindo via bluetooth para o celular nas mãos
do fisioterapeuta a distância que estava sendo percorrida. Outro fisioterapeuta era
responsável por resolver os cálculos que resultava em frequência cardíaca máxima e
distância predita. O terceiro, um aluno do 8º semestre de fisioterapia, em processo de
estágio, contava o número de voltas que o paciente realizava, ao final, multiplicava o
número de voltas por 30 para chegar a distância percorrida em metros. Por fim, os
resultados dos cálculos e distância do software eram confrontados com os feitos pelos
especialistas.
Os sujeitos da pesquisa foram selecionados na clínica escola de Fisioterapia da
Faculdade de Ciências Aplicadas Dr. Leão Sampaio, situada na cidade de Juazeiro do
Norte-CE, no mês de agosto de 2014. A amostra total foi composta por 14 (quatorze)
pacientes, 13 (treze) do gênero feminino e 1 (um) do gênero masculino. Todo o
procedimento foi acompanhado por 2 (dois) especialistas e 10 (dez) estudantes do 8º
semestre do curso de Fisioterapia.
As variáveis a serem estudadas nesta pesquisa foram: distância predita,
frequência cardíaca máxima, distância percorrida após os seis minutos de caminhada, e
índice de normalidade do paciente.
A distância predita é calculada de acordo com a altura, peso e idade. O resultado
deve mostrar quantos metros o paciente deverá caminhar em 6 minutos. Caso o mesmo
não atinja a distância predita, deve-se diminuir 153m para os homens, ou 139m para as
mulheres desta distância.
A frequência cardíaca máxima é calculada subtraindo a idade do paciente do
valor 220. Caso o mesmo atinja frequência cardíaca igual ou superior ao valor resultante
do cálculo, durante a caminhada, o teste deve ser interrompido.
A distância percorrida - após os seis minutos de caminhada - é a quantidade em
metros percorrida pelo paciente. Caso ela seja inferior a distância predita, mesmo depois
das subtrações realizadas, indica que o paciente não está em sua normalidade, caso
contrário, afirma-se que o sujeito está no nível de normalidade.
446
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
5.1 Cálculos
Não existiu inconstância entre os cálculos realizados pelo software e o do fisioterapeuta
em nenhum teste. Os cálculos informatizados foram o de: frequência cardíaca máxima e
distância predita.
447
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6. CONCLUSÃO
O OSFisio se mostrou uma boa alternativa para automatização do TC6, facilitando o
trabalho do profissional que aplica o teste realizando os cálculos necessários, além de
medir distância e ao final mostrar o diagnóstico, que poderá afirmar se o paciente está
ou não dentro de sua normalidade. Dessa forma, o profissional que aplica o teste terá
preocupações de acompanhar mais atentamente o paciente.
O objetivo deste trabalho foi atingido, pois foi desenvolvido um software que
atendeu as necessidades do TC6, e sua validação na Clínica Escola de Fisioterapia da
Faculdade de Ciências Aplicadas Dr. Leão Sampaio trouxe resultados fidedignos.
O trabalho se limita a uma amostra não probabilística e com fórmulas adequadas
ao padrão de vida brasileiro.
Como trabalhos futuros é pretendido realizar o teste com uma amostra
probabilística maior do que a realizada neste, inserir outras fórmulas, e com o histórico
de testes realizados, decidir qual a melhor fórmula para indivíduos com determinadas
características.
Referências
6MWT. Play Store. Disponível em: <https://goo.gl/J1NMHY>. Acessado em: 02 de
Outubro de 2017.
ATS. American Thoracic Society Statement: guidelines for six-minute walk test.
American Journal Respiratory Critical Care Medicine 2002.
448
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
449
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Sistemas de Informação
Universidade Federal do Piauí (UFPI)
Resumo. Grande parte dos sistemas em produção apresentam erros. Para mi-
nimizar isto, as atividades de Verificação e Validação são indispensáveis. A
Análise Estática de Código (AEC) é uma técnica da Engenharia de Software
para moderar erros, assim como para a verificação de estilos, ou ambos. Clang
e Splint são exemplos de ferramentas para a linguagem C que auxiliam na
redução de erros utilizando a AEC. Este estudo busca realizar a comparação
dessas ferramentas, avaliando e mensurando o número de erros encontrados e
o tempo de execução, mediante a aplicação dos cenários com códigos de tama-
nhos diferentes com mesmo número de erros, duas máquinas diferentes reali-
zando a execução e por último, os 2 analisadores de código. Identificou-se que
o Algoritmo usado possui maior influência sobre o Tempo de Execução da AEC.
No que concerne ao número de erros encontrados, a ferramenta Clang obteve
desempenho máximo no encontro dos erros, enquanto apresentou um custo
maior de tempo de execução quando comparado com o Splint.
1. Introdução
O desenvolvimento de um software pode se tornar difícil conforme as dimensões do
problema. Além disso, o processo de desenvolvimento está sujeito a vários proble-
mas, sejam eles internos ou externos, que resultam em um produto diferente do plane-
jado. Diversos problemas podem ser identificados, porém, a maioria deles tem origem
no erro humano [Maldonado and Delamaro 2016]. Com isso, cria-se a necessidade de
maneiras para melhorar a qualidade do produto na indústria de software.
450
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
451
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2. Estudo Comparativo
Alguns erros que ocorrem em algoritmos não são visíveis para determinados compi-
ladores. A Análise Estática de Código é a maneira para encontrar erros e reduzir de-
feitos em aplicações [Bardas et al. 2010]. A Análise Estática de Código pode ser feita
com diversas técnicas, bibliotecas e algoritmos. Para a linguagem C, existem diver-
sas ferramentas para realização dessa análise, a destacar Clang4 e Splint5 por conta de
suas frequentes atualizações pela comunidade nos repositórios dessas ferramentas no
GitHub 6 .
O Clang é uma ferramenta para Análise Estática de linguagens como C, C++,
Objective-C e variantes. Esse artefato de análise é usado para encontrar erros no có-
digo e pode ser integrado com Interfaces de Desenvolvimento (IDEs) [Clang 2017].
Clang tem código mantido no GitHub pela comunidade de desenvolvimento, e passa
por constantes revisões e atualizações. O Clang possui algumas funcionalidades e me-
tas disponíveis, entre elas, destaca-se a rápida compilação, baixo uso de memória, di-
agnósticos expressivos e código fonte de fácil entendimento.
Splint é uma ferramenta para verificação estatística de programas em C que
busca encontrar erros e vulnerabilidades de segurança. O Splint está na versão 3.1.2 e
pode ser instalado em sistemas operacionais Linux e Windows [Splint 2017]. A ferra-
menta Splint tem código-fonte mantido na plataforma GitHub, de forma aberta para a
comunidade, e passa por atualizações frequentes [Splint 2017].
Para mensurar a performance do Splint e Clang, foram considerados os seguin-
tes parâmetros: Número de erros encontrados, número de falsos positivos encontra-
dos e tempo de execução das ferramentas.
Neste artigo, foram selecionadas, como estudos de caso, alguns erros frequen-
temente cometidos em projetos de software para avaliar a eficácia das ferramentas de
análise estática, segundo [Terra 2008] há uma categorização de defeitos baseando-se
no grau de impacto no projeto. Porém, esta categorização é baseada nos efeitos dos
defeitos, e não nas causas ou nos tipos da ocorrência no código. As categorias são
listadas na Tabela 1.
4
https://github.com/llvm-mirror/clang
5
https://github.com/ravenexp/splint
6
https://github.com/
452
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
O Splint detectou corretamente nove dos doze erros, obtendo uma taxa de
acerto de 75%. O Splint foi capaz de detectar: repetições infinitas, bloco de condi-
ções declaradas erroneamente, uso de variáveis não declaradas e tipo de função ine-
xistente. Entretanto, Splint não foi capaz de detectar os três seguintes tipos erros: falta
de ponto-e-virgula, erro de alocação de memória pela declaração errada de ponteiros
e utilização de função de biblioteca não declarada. Por outro lado o Clang conseguiu
detectar todos os erros do teste.
453
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Vale ressaltar que em ambos os casos de testes testados não houve ocorrência
de falsos positivos, para melhor entendimento, consideramos falso positivo quando o
algoritmo que rodamos os casos acusam erros em lugares onde não existem, assim,
os erros encontrados realmente existiam no código. Um detalhamento dos erros uti-
lizados nos experimentos com sua respectiva categorização estão dispostos na Tabela
3.
454
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Pode-se observar no gráfico que o fator com maior influência na variável de-
pendente (Tempo de Execução) é o Algoritmo usado (representando pela letra A no
gráfico). Variando-se a escolha entre o analisador Splint e Clang, obtêm-se a maior
influência no tempo da análise estática de códigos.
Outras variáveis independentes como Tamanho de Código e Configuração da
Máquina (representadas como B e C, respectivamente) não possuem influência esta-
tística considerável na variável independente (Tempo de Execução).
Buscando complementar e melhor detalhar o estudo, utilizou-se o gráfico de
Efeitos Principais (que pode ser visualizado na Figura 4). Este gráfico é usado para se
demonstrar, detalhadamente, como um ou mais fatores categóricos influenciam em
uma resposta contínua. A Figura 4 apresenta o gráfico de Efeitos considerando o expe-
rimento.
3. Trabalhos Relacionados
455
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
4. Conclusões
Com relação ao número de erros encontrados na execução dos testes e ao número
de falsos positivos, podemos concluir que a ferramenta Clang superou a ferramenta
Splint nestes quesitos, pois foi capaz de encontrar todos os erros propostos nos testes,
obtendo completo êxito, enquanto o Splint não conseguiu encontrar todos, obtendo
uma taxa de acerto de 75%. Com estes resultados, pode-se concluir que a ferramenta
Clang teve um melhor resultado no quesito eficácia. Em outro experimento apresen-
tado, percebe-se que o tempo de execução sofreu influência dos três fatores estudados,
o que pode ser comprovado com a Análise de Sensibilidade apresentada na seção 2.2.
O fator que teve maior influência sobre o tempo de execução foi o Algoritmo, acima
de configuração da máquina e tamanho de código, o que pode ponderar com maior
valor a escolha adequada do algoritmo para aumento da eficiência da análise estática.
Atrás do fator de algoritmo, a configuração da máquina exerceu pouca influência so-
bre os resultados, se comparado com o fator algoritmo, sendo responsável por pouco
alterar o tempo de processamento durante variação das propriedades da máquina de
456
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
análise. Mas embora sua relevância ser pouca ainda se sobre-sai quando comparado
ao tamanho do código.
Referências
Bardas, A. G. et al. (2010). Static code analysis. Journal of Information Systems and
Operations Management, 4(2):99–107.
Chahar, C., Chauhan, V. S., and Das, M. L. (2012). Code analysis for software and system
security using open source tools. Information Security Journal: A Global Perspective,
21(6):346–352.
Clang (2017). Clang: a c language family frontend for llvm. In Clang: a C language
family frontend for LLVM.
Goseva-Popstojanova, K. and Perhinschi, A. (2015). On the capability of static code
analysis to detect security vulnerabilities. Information and Software Technology,
68:18–33.
Maldonado, C, J. and Delamaro, E. M. (2016). Introdução ao Teste de Software. Elsevier,
2th edition.
Manzoor, N., Munir, H., and Moayyed, M. (2012). Comparison of static analysis tools
for finding concurrency bugs. In Software Reliability Engineering Workshops (ISS-
REW), 2012 IEEE 23rd International Symposium on, pages 129–133. IEEE.
Sommerville, I. (2011). Engenharia de Software. Pearson, 9th edition.
Spectrum, I. (2015). Interactive: The top programming languages 2015. In Interactive:
The Top Programming Languages 2015.
Splint (2017). Splint - secure programming lint. In Splint - Secure Programming Lint.
Terra, R. (2008). Splint - secure programming lint. In Ferramentas para Análise Estática
de Códigos Java.
Zitser, M., Lippmann, R., and Leek, T. (2004). Testing static analysis tools using exploi-
table buffer overflows from open source code. In ACM SIGSOFT Software Enginee-
ring Notes, volume 29, pages 97–106. ACM.
457
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
[email protected], [email protected]
[email protected], [email protected]
1. Introdução
A inserção da tecnologia no ambiente residencial está chegando a nı́veis cada vez mais
altos. Desde tarefas mais simples, como acordar de manhã com alarme do celular a tarefas
mais complicadas como sair de casa pelo portão eletrônico. Na década de 90, Weiser criou
o termo computação ubı́qua para se referir a sistemas presentes nos mais triviais objetos
do dia a dia, de maneira mais tangı́vel ao usuário [Weiser 1991].
458
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Todavia, para que isso fosse possı́vel nos dias atuais, muitos avanços foram ne-
cessários. A evolução das redes computadores, miniaturização dos componentes de hard-
ware, redução de custo de componentes computacionais, e outros fatores, permitiram que
as ideias de Weiser fossem, enfim, possı́veis [Lyytinen and Yoo 2002].
Tais avanços tecnológicos beneficiaram diferentes áreas de atuação, dentre elas a
Domótica que tem como finalidade proporcionar maior comodidade, conforto e segurança
em ambientes domésticos [Bonino and Corno 2008]. Além disso, algumas aplicações
desse campo podem ajudar na economia de recursos como água, energia elétrica, e tempo
com a automatização de atividades.
O presente trabalho tem por objetivo apresentar um sistema de automação resi-
dencial com a plataforma Raspberry PI de maneira a simplificar tarefas comuns em um
ambiente residencial. Desta forma, foi projetado e desenvolvido um sistema domótico de
baixo custo que controla, através da internet, dispositivos conectados ao sistema como:
controle de iluminação (lâmpadas), temperatura ambiente, leitura de sensores e câmera
de segurança.
O sistema de controle desenvolvido utiliza um microcomputador, microcontrola-
dor e um smartphone. Desta forma, foi desenvolvido um protótipo de hardware e soft-
ware integrados com sensores, atuadores, plataformas de comunicação, que apresenta
uma solução facilitada para tarefas comuns do dia a dia, bem como um consumo eficiente
de energia elétrica para uma residência.
O restante deste artigo está organizado da seguinte maneira. A Seção 2 discorre
sobre o referencial teórico necessário para o bom entendimento do trabalho, a Seção 3
apresenta uma visão geral do sistema desenvolvido. Por fim, a Seção 4 apresenta as
conclusões e direções para trabalhos a serem desenvolvidos
2. Referencial Teórico
Nessa seção serão apresentados alguns conceitos importantes para uma boa compreensão
do trabalho.
2.1. Domótica
A Domótica pode ser conceituada como um aglomerado de serviços proporcio-
nados por sistemas integrados, com o propósito de satisfazer necessidades dos
ocupantes de uma residência. É um conceito conhecido também como ”casa
inteligente”[Ricquebourg et al. 2006].
A automação residencial é o agregamento de serviços oferecidos por sistemas tec-
nológicos integrados, com o intuito de prover serviços como: comunicação, segurança,
gestão energética. O principal fator que define automação residencial é a integração en-
tres equipamentos que têm a capacidade de se comunicarem em um sistema que permite
receber e executar comandos programáveis [Association et al. 2010].
459
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2.3. Arduino
O Arduino é uma plataforma de prototipagem eletrônica criada na Itália que tornou o
mundo da robótica mais acessı́vel às pessoas. Iniciado em 2005, a ideia base era que ele
fosse utilizado como apoio educacional em aplicações escolares.
Ele é constituı́do basicamente por um microcontrolador Atmel AVR de 8 bits,
pinos analógicos e digitais de entrada e saı́da, e entrada USB. Embutido no Arduino existe
um firmware, que mescla memoria ROM para leitura e um programa gravado nesse tipo
de memória, carregado na memória da placa e compatı́vel com os sistemas operacionais
Windows, Linux, e Mac OS X [McRoberts 2011].
2.4. Raspberry PI
O Raspberry PI é um computador de pequeno porte, do tamanho de cartão de crédito, com
dimensões de 85.60 mm por 21 mm que pesa 45g. Esse computador de código aberto foi
criado para estimular o ensino de programação e tecnologia [Pi 2013].
Além disso, o Raspberry PI conta com as Portas Programadas de Entrada/Saı́da
(General Purpose Input/Output – GPIO ), que é basicamente um conjunto de pinos res-
ponsável por fazer a comunicação de entrada e saı́da de sinais digitais. Dependendo do
modelo do Raspberry PI, ele pode contar com 26 ou 40 GPIO. Com esse pinos é possı́vel
acionar LEDs, relés, motores e fazer leitura de sensores digitais.
2.5. Sensores
Sensor é um dispositivo que responde a um estimulo fı́sico ou quı́mico de maneira espe-
cifica e mensurável analogicamente. Sensores são responsáveis pelas informações sobre
variáveis que precisam ser medidas, como: temperatura, umidade, velocidade, corrente,
entre outras. Essas variáveis são mensuradas por elementos sensı́veis como circuitos
eletrônicos não digitais [Wendling 2010].
Os sensores digitais só podem assumir dois valores no seu sinal de saı́da ao longo
do tempo, que podem ser interpretados como zero e um. Nãos existem naturalmente
grandezas fı́sicas que assumam esses valores, mas elas são assim mostradas ao sistema de
controle após serem convertidos por um circuito eletrônico.
O sensor de corrente não invasivo atua como um indutor e responde ao campo magnético
ao redor de um condutor portador de corrente. Pela leitura da quantidade de corrente pro-
duzida pela bobina pode-se calcular a corrente que está passando pelo condutor [Flipeflop
2017].
460
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
2.6. Relé
Segundo [Souto 2004], é um dispositivo eletromecânico que funciona com pequenas cor-
rentes, mas é capaz de controlar circuitos externos que envolvem correntes elevadas, e
é formado basicamente por uma bobina e um conjunto de contatos. Para [Braga 2010]
relés são dispositivos comutadores eletromecânicos. Através de uma corrente de con-
trole aplicada a bobina de um relé, podemos abrir, fechar ou comutar os contatos de uma
determinada forma, controlando assim as correntes que circulam por circuitos externos.
3. Abordagem
O sistema domótico desenvolvido é composto por três componentes principais que
quando sincronizados, provêm um ambiente para iteração entre o usuário e sistema. Os
componentes são: placa Raspberry, Arduino e sistema web. Na Figura 1 podemos obser-
var um diagrama simplificado da comunicação entre esses componentes. Cada compo-
nente exerce um papel especı́fico no sistema, como por exemplo, a central de controle de
processamentos, realizado pelo Raspberry, a comunicação entre o usuário e a aplicação, o
sistema Web, e, por fim, a coleta de dados dos dispositivos finais (luzes, ar-condicionados
e controle energético) e comunicação entre a central de processamento realizados pelo
arduino.
461
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
acessadas pelo usuário através dos principais navegadores. Esse acesso ocorre por meio
de uma comunicação intranet, onde o usuário deve estar conectado a rede.
A aplicação desenvolvida é composta por 4 funcionalidades: login, controle de
iluminação, controle de temperatura e gestão energética. Inicialmente, para o usuário
ter acesso as funcionalidades presentes na aplicação, é necessário realizar um login no
sistema. Na Figura 3 podemos observar uma imagem que representa essa área de acesso
inicial do usuário.
462
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Figura 4. Dashboard
463
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
464
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Referências
Association, C.-H. A. S. et al. (2010). What is home automation? systems that integrate
with home automation. home automation system (spanish website).
Atzori, L., Iera, A., and Morabito, G. (2010). The internet of things: A survey. Computer
networks, 54(15):2787–2805.
Bonino, D. and Corno, F. (2008). Dogont-ontology modeling for intelligent domotic
environments. The Semantic Web-ISWC 2008, pages 790–803.
Gubbi, J., Buyya, R., Marusic, S., and Palaniswami, M. (2013). Internet of things (iot):
A vision, architectural elements, and future directions. Future generation computer
systems, 29(7):1645–1660.
Lyytinen, K. and Yoo, Y. (2002). Ubiquitous computing. Communications of the ACM,
45(12):63–96.
McRoberts, M. (2011). Arduino básico. São Paulo: Novatec.
Pi, R. (2013). Raspberry pi. Raspberry Pi, 1:1.
Ricquebourg, V., Menga, D., Durand, D., Marhic, B., Delahoche, L., and Loge, C. (2006).
The smart home concept: our immediate future. In E-Learning in Industrial Electro-
nics, 2006 1ST IEEE International Conference on, pages 23–28. IEEE.
Weiser, M. (1991). The computer for the 21st century. Scientific american, 265(3):94–
104.
Wendling, M. (2010). Sensores. Universidade Estadual Paulista. São Paulo.
465
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
[email protected],[email protected],
[email protected]
Abstract. Due to the increasing market demand for innovation, flexibility and quality in
software development processes, so-called agile methods have emerged. Among these methods,
the Scrum framework stands out, in order to optimize the work of the developers and solve
complex and adaptive problems, delivering the product with the highest possible value. The
objective of this work is to present the advantages of using the Scrum framework in software
development.
1. INTRODUÇÃO
Com a rápida evolução da tecnologia, os softwares se tornam obsoletos de forma mais rápida,
pois o acesso a informações precisas e confiáveis fazem com que as necessidades mudem
constantemente. Como consequência, os prazos diminuem e a demanda aumenta. Diante disso
o desenvolvimento de softwares torna-se um processo mais sensível à influência de fatores
externos à equipe técnica. [Bassi Filho 2008].
466
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Este trabalho tem como objetivo demonstrar as vantagens da utilização do framework Scrum
perante aos métodos tradicionais de desenvolvimento de software. Será realizado um estudo
entre uma empresa que utiliza o framework Scrum no desenvolvimento de software e uma
empresa que utiliza métodos tradicionais, e posteriormente, analisar e apresentar os resultados
obtidos. Este estudo também explica o que é o framework Scrum, suas principais características
e como é utilizado. A presente pesquisa trata-se de um estudo descritivo qualitativo, através da
observação da rotina do time Scrum das empresas.
2.Objetivos
Este artigo tem como relevância apresentar a importância da utilização do método ágil o
framework Scrum, como forma de elevar os valores empresariais, voltada para a gestão de
desenvolvimento de softwares em empresas no que refere a escopo e prazo.
3. Metodologia
O estudo foi dividido em 6 etapas que são descritas nas sessões abaixo.
Aplicação do formulário 1
467
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Foi aplicado um minicurso com o time da empresa B. Esse minicurso foi focado nos valores e
princípios do Scrum, com exemplos de casos reais, com intuito de despertar o interesse da
equipe.
Aplicação do formulário 2
Foi aplicado o formulário 2 após o minicurso do Scrum com perguntadas voltadas somente para
o que foi apresentado, com intuito de avaliar o conhecimento adquirido e observar a nova visão
da equipe sobre o framework.
Implantações do Scrum
Os métodos ágeis são caracterizados por fazer entregas pequenas e, também, versões para os
clientes a cada duas ou três semanas. Os clientes participam das versões durante o
desenvolvimento para melhor comunicação entre ambas ás partes, evoluindo nos requisitos,
diminuindo a documentação e utilizando mais a comunicação informal. [Sommerville 2011].
Dentre os métodos ágeis, destaca-se o framework Scrum, uma abordagem enxuta que auxilia
no planejamento e desenvolvimento de produtos. O Scrum é baseado em práticas já
comprovadas e está em constante crescimento por décadas no desenvolvimento de software.
Caracteriza-se por ser “empírica, adaptativa e inovadora” utilizada de forma incremental no
468
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
A partir de R. S. Pressman “O Scrum (nome derivado de uma atividade que ocorre durante um
jogo de rugby) é um modelo ágil de processo que foi desenvolvido por Jeff Sutherland e por
sua equipe no início da década de 1990”. [Andrade; Oliveira; Barbosa; Silveira 2015].
Figura 1 - Ciclo do Scrum. Fonte: Schwaber & Beedle (2002); Schwaber (2004).
Time Scrum:
469
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Artefatos do Scrum
5. Resultados
Inicialmente através das respostas dos formulários era nítida a falta e a falha da
comunicação entre a equipe e com os clientes. Durante o acompanhamento dentro da empresa
470
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Conforme no quadro 1, os resultados foram bastante satisfatórios, a equipe ficou mais motivada
e mais segura em relação à tomada de decisões, otimizando os recursos e aumentando os lucros.
Quadro 1: Análise dos resultados após implantação do Scrum. Fonte: Próprio autor.
Antes Depois
Dentro da equipe nem sempre era claro o Transparência no processo de desenvolvimento entre
que cada desenvolvedor estava fazendo e a equipe, através das reuniões diárias.
desorganização.
471
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
6.Referências
Andrade, w. et al, O.J.B.P.S.F (2015). “Gestão de Projeto com Scrum: Um Estudo de Caso”.
Disponível em: < http://eloquium.com.br/wp/wp-content/uploads/2015/12/scrum.pdf> Acesso
em 25 de maio de 2017.
Bassi Filho, Dairton. (2008) ”Experiências com desenvolvimento Ágil”. São Paulo. Disponível
em: < https://www.ime.usp.br/~dairton/files/Dissertacao-DairtonBassi.pdf > Acesso em 17 de
abril de 2017.
Schwaber K.; Sutherland J.(2009) “Scrum Guide: Developed and sustained”. Scrum.org.
Schwaber, K.; Beedle, M.(2002) “Agile Software Development With Scrum”. Prentice-Hall,
Nova Jersey.
Schwaber, Ken; Sutherland, Jeff.(2013) “Um guia definitivo para o Scrum: As regras do jogo”.
Disponível em:<https://www.scrumguides.org/docs/scrumguide/v1/Scrum-Guide-Portuguese-
BR.pdf>. Acesso em: 19 de julho 2017.
Silva, M. A. C.; Roriz Filho, H.; Silva, H. F. N. (2010) “Análise do BA durante o Processo
Scrum. XVII Simpósio de Engenharia de Produção”. Bauru – SP.
Sommerville, I.(2011) “Engenharia de software”, 9ª Edição, Ed. Pearson Prentice Hall, São
Paulo.
7. Apêndice
472
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1
Formulário 1
1) Você sabe o que está sendo desenvolvido? O que será o produto final e para quem está sendo
desenvolvido?
2) O prazo de entrega do produto é de conhecimento dos desenvolvedores? Se não, Quem
estipula o prazo de entrega?
3) Dentro da equipe cada desenvolvedor sabe o que seu "parceiro" está fazendo?
4) Existe alguma lista de prioridades para desenvolvimento do produto?
5) Você desenvolvedor, depende de outro desenvolvedor para finalizar algum processo? Se sim
o que pensa sobre isso?
6) Como é feita a prioridade das solicitações ?
7) Como é realizado o monitoramento diário de atividades ?
8) A equipe realiza o planejamento das demandas ?
9) A Equipe realiza estimativas das solicitações ?
10) Existem metas da equipe ?
11) A equipe utiliza requisitos como base no desenvolvimento ?
12) Quando o código é integrado ao servidor de versões ?
13) Como uma solicitação é definida como concluída ?
14) Quando a equipe discute sobre o andamento dos trabalhos ?
15) Os colaboradores possuem autonomia para cobrarem um dos outros ?
16) A entrega das solicitações são feitas com qual frequência ?
17) Como a equipe apresenta o que foi desenvolvido em um intervalo de tempo ?
18) A equipe possui papeis claros e ativos ?
19) Qual a medida utilizada nas estimativas ? (Story points, horas, pontos de função, ideal day)
20) A equipe discute a cada projeto/iteração/Fase, pontuando os itens que devem ser
melhorados e o que deve ser mantido ?
21) O processo de gerenciamento utilizado é transparente ?
22) O processo de gerenciamento é simples ?
Formulário 2
1) O que são métodos ágeis ?
2) O que é Scrum ?
3) Sabem diferença entre agilidade e velocidade ?
4) Vocês utilizam reuniões diárias ?
5) Utilizam backlog ?
6) Utilizam retrospectivas ?
7) Utilizam reuniões de revisão ?
8) Realizam estimativas de tarefas ?
9) Possuem meta de desenvolvimento ?
10) Realizam reuniões de planejamento ?
11) A equipe realiza priorizações frequentes das estórias ?
12) Possuem papeis claros e ativos ?
13) A equipe se sente motivada com o processo atual ?
14) Todo o trabalho realizado/ e a ser realizado está claro e de fácil acesso a equipe (Quadro,
Software, etc ) ?
15) Porque não utilizam SCRUM ?
473
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1
Departamento de Computação – Universidade Federal do Piauı́ (UFPI)
Teresina – PI – Brasil
[email protected], [email protected]
Abstract. Elastic optical networks have emerged with the goal of dealing with
the great growth of data traffic on the Internet, using the resources of the network
efficiently. Efficiency happens through the use of Orthogonal Frequency Divi-
sion Multiplexing technology, which allows the division of the spectrum into
frequency ranges called slots. For the establishment of an optical path in the
elastic networks, it is necessary to define a route and a range of spectrum. With
the establishment and closure of circuits in a dynamic scenario, the problem
of fragmentation arises, which makes it impossible to attend to new requests.
To mitigate this problem, defragmentation algorithms are run periodically. In
this work, an analysis of the Dijkstra algorithm with and without the use of de-
fragmentation is proposed, in order to evaluate the loss and gain related to the
metrics of circuit block probability, external fragmentation and spectrum usage.
Finally, the energy consumption of the scenarios was also analyzed.
1. Introdução
O crescente aumento no número de usuários e o surgimento de diversos serviços na Inter-
net, tem requerido uma maior largura de banda no núcleo dos sistemas de comunicações.
Segundo a Cisco, estima-se que em 2021 cerca de 51% da população mundial estará co-
nectada à rede. Além disso, dentre as diversas aplicações existentes ou emergentes na In-
ternet, o vı́deo sob demanda será responsável por 82% do tráfego IP global [Cisco 2017].
474
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Trabalhos Relacionados
No contexto das EONs, o problema da fragmentação do espectro se torna comum. Este
problema acontece em decorrência do estabelecimento e remoção dos circuitos, gerando
na rede uma distribuição de pequenos fragmentos não-contı́guos no espectro, dificultando
o atendimento de novas demandas. Trabalhos na literatura têm sido proposto para mitigar
o problema da fragmentação [Horota et al. 2014, Moura et al. 2014].
Para aliviar a fragmentação na rede, é realizada a execução de algoritmos de
desfragmentação do espectro. O objetivo é reorganizar as conexões existentes a fim
de disponibilizar o maior número de slots contı́guos para acomodar futuras requisições.
Esse mecanismo de desfragmentação do espectro é um ponto significativo para redução
da probabilidade de bloqueio dos circuitos [Zhang et al. 2014]. Diversas estratégias de
desfragmentação são encontradas na literatura.
Em [Ba et al. 2017], é proposto uma estratégia de desfragmentação utilizando so-
brevivência, no qual cada circuito terá uma rota backup (secundária) que será utilizada
caso a rota primária falhe. Dessa forma, tanto as conexões primárias e de backup serão
realocadas. Quando uma conexão primária for reconfigurada, é realizado uma troca de
funções do caminho primário para o de backup. A avaliação de desempenho é feita com-
parando um cenário sem e com a utilização da estratégia proposta. A probabilidade de
bloqueio, utilização do espectro, número médio de realocações e troca de funções de ca-
minhos são as métricas utilizadas para avaliar o desempenho.
Já os autores em [Fávero et al. 2015], utilizam uma estratégia de desfragmentação
475
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
que realocam as conexões que compartilham o enlace mais fragmentado, de acordo com
uma métrica de fragmentação dada na proposta. O processo de desfragmentação é inici-
ado quando a quantidade de circuitos finalizados atinge um limiar (10, 50 e 100 utilizados)
e a avaliação de desempenho é realizada a partir da métrica de probabilidade de bloqueio.
Um esquema sem interrupção de tráfego utilizando a informação de Holding Time
dos circuitos é proposto em [Singh and Jukan 2016]. A ideia é reorganizar os circuitos
ativos em ordem descrescente de tempo de permanência na rede, do menor ı́ndice de
slot para o maior. Consequentemente, os circuitos serão finalizados seguindo de uma
extremidade à outra. Dito isso, o desempenho da rede foi avaliado através da métrica de
probabilidade de bloqueio de circuito e do número médio de reconfigurações.
Portanto, este estudo avalia o desempenho do algoritmo DJK com e sem
desfragmentação através de um amplo conjunto de métricas. O objetivo a partir da análise
comparativa dos cenários em questão é apresentar o impacto causado pelo processo de
desfragmentação no desempenho da rede sob vários aspectos.
476
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Avaliação de Desempenho
Nesta seção é apresentado os resultados obtidos via simulações computacionais utilizando
o simulador SNetS (SLICE Network Simulator) [de Sousa Santos 2015]. Para a avaliação
de desempenho da rede, adotou-se a métrica de probabilidade de bloqueio de circuito,
probabilidade de bloqueio de banda, fragmentação externa, utilização do espectro e con-
sumo energético. A Tabela 1 apresenta os parâmetros utilizados para as simulações.
477
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
0,15
0,1
0,05
0
100 150 200 250 300
Carga (Erlangs)
DJK DJK (Gat=10) DJK (Gat=50) DJK (Gat=100)
0,55
Fragmentação Externa
0,5
0,45
0,4
0,35
0,3
0,25
0,2
100 150 200 250 300
Carga (Erlangs)
DJK DJK (Gat=10) DJK (Gat=50) DJK (Gat=100)
478
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
senta a menor utilização do espectro com redução média de 14% em relação ao DJK. A
redução da fragmentação acontece devido a reorganização das conexões ativas da rede. E
além disso, o processo de reorganização suaviza a existência de fragmentos não-contı́guos
no espectro.
0,5
Taxa de Utilização do Espectro
0,45
0,4
0,35
0,3
0,25
0,2
100 150 200 250 300
Carga (Erlangs)
DJK DJK (Gat=10) DJK (Gat=50) DJK (Gat=100)
1,09E+20
Consumo Energético (J)
8,9E+19
6,9E+19
4,9E+19
2,9E+19
9E+18
80 160 320 500 750 1000 1250
Largura de Banda (Gbps)
DJK DJK (Gat = 10) DJK (Gat = 50) DJK(Gat =100)
479
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Conclusão
Referências
480
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
481
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract. This paper proposes the joint use of unsupervised and supervised Ma-
chine Learning methods for data clustering and labeling tasks, respectively. The
labeling task consists in identifying the clusters through their most relevant cha-
racteristics. The algorithms used are known to be efficient, obtaining satisfac-
tory results in the definitions of the clusters formed, frequently exceeding 90%
accuracy in the done experiments.
1. Introdução
A rápida popularização do uso de computadores para informatizar diversos setores da
sociedade resultou no expressivo crescimento das bases de dados. Pesquisadores pas-
saram então a utilizar técnicas de reconhecimento de padrões, por meio da detecção de
correlações entre os dados, que pudessem trazer à tona conhecimentos relevantes e úteis,
potencialmente contidos nessas bases [Fayyad et al. 1996].
Uma das principais técnicas de reconhecimento de padrões é o agrupamento (clus-
tering), o qual visa organizar os dados em grupos (clusters). É comum a presença de uma
diversidade de tipos de dados em uma mesma base, o que torna a inferência de uma
correlação entre eles um processo geralmente não trivial e relativamente complexo. O
método DAMICORE (do inglês, DAta MIning of COde REpository) [Sanches et al. 2011]
mostrou ser capaz de encontrar correlações em bases de dados de tipos mistos (registros
com diferentes tipos de dados).
Embora tenha sido um dos focos principais dos pesquisadores, o processo de clus-
tering não fornece informações que permitam inferir de forma clara as caracterı́sticas de
cada cluster formado, o que se deve a limitações das métricas de distância utilizadas
[Anaya-Sánches et al. 2008]. A rotulação de dados visa identificar essas caracterı́sticas e
permitir então que se tenha a plena compreensão dos clusters resultantes.
A rotulação de um cluster busca resumir sua definição, ou seja, descrevê-lo em
função de seus atributos mais relevantes, e suas respectivas faixas de valores, a fim de
482
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
melhor compreendê-lo. Assim, este conjunto de valores representa uma definição para
um cluster qualquer – isto é, um rótulo – capaz de fornecer ao especialista um melhor
entendimento sobre os dados.
Em Lopes et al. [Lopes et al. 2016] é proposta a utilização de Redes Neurais Ar-
tificiais para identificar quais os atributos relevantes, e suas respectivas faixas de valores,
que juntos formam o rótulo de um determinado cluster, ou seja, determinam as carac-
terı́sticas predominantes pelas quais os elementos foram alocados em um mesmo cluster.
A abordagem proposta por Lopes et al. [Lopes et al. 2016] obteve resultados positivos,
conseguindo rotular clusters com taxa de acerto média de 85%, aos ser aplicada em agru-
pamentos realizados pelo algoritmo K-means [MacQueen 1967].
O método de clustering utilizado é um dos fatores de maior influência sobre a
acurácia da rotulação. Assim, quanto melhor o agrupamento realizado, maior será a
capacidade dos rótulos encontrados definirem os clusters. Neste artigo apresenta-se a
utilização do Método de Rotulação Automática (MRA) [Lopes et al. 2016] para rotular
os clusters formados pelo DAMICORE, em substituição ao K-means, e compara-se os
resultados com os obtidos em Lopes et al. [Lopes et al. 2016]. Com isso aferiu-se a
eficiência do MRA em rotular agrupamento por filogenias, alcançando acurácia superior
a 90%.
O texto a seguir está organizado da seguinte maneira: na Seção 2 tem-se o re-
ferencial teórico com descrição dos métodos utilizados; na Seção 3 é descrita a forma
como foram conduzidos os testes e são apresentados os resultados; na Seção 4 é feita uma
comparação com os resultados de [Lopes et al. 2016]; por fim, na Seção 5 são apresenta-
das as conclusões obtidas.
2. Referencial Teórico
A seguir apresenta-se o funcionamento básico dos métodos DAMICORE e MRA, utiliza-
dos para clustering e rotulação automática de dados, respectivamente.
2.1. DAMICORE
O DAMICORE une algoritmos largamente utilizados na literatura, produzindo resultados
eficientes como demonstrado em Sanches et al. [Sanches et al. 2011]. O método faz
uso de um conjunto de técnicas de várias áreas do conhecimento (Teoria da Computação,
Bioinformática e Fı́sica) de forma a extrair informações através de uma métrica universal e
robusta. O DAMICORE surge como um método de identificação de correlação entre tipos
de dados diversos, procedimento relativamente complexo para a maioria dos algoritmos
de agrupamento. Além disso, não é necessário informar ao algoritmo a quantidade de
clusters na qual os elementos devem ser alocados.
A execução do DAMICORE é iniciada pelo cálculo da Matriz de Distância usando
a NCD (Normalized Compression Distance) [Cilibrasi e Vitányi 2005], a qual calcula
uma razão de distância entre os dados determinando a semelhança entre os valores das
variáveis com base nos tamanhos de seus dados compactados. A NCD tem sido aplicada
com sucesso em áreas como a genética, literatura, música e astronomia. Essa abordagem
não requer nenhum conhecimento especı́fico do domı́nio da aplicação.
A partir da Matriz de Distância é reconstruı́da uma Árvore Filogenética
[Cancino e Delbem 2007] (que pode representar relações hierárquicas entre os in-
483
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Experimentos e Resultados
Para a realização dos experimentos foram utilizados os mesmos data sets usados por
Lopes et al. em [Lopes et al. 2016] para rotulação de clusters criados pelo algoritmo K-
means (Glass, Iris e Seeds). A Figura 1 resume as etapas da metodologia utilizada. Antes
de serem agrupados os data sets foram submetidos a um pré-processamento, composto
pelas fases de discretização (I) e codificação (II).
Os atributos cujos valores eram contı́nuos foram discretizados utilizando dois
métodos: EWD (Equal Width Discretization), no qual o intervalo de valores assumidos
pelo atributo é dividido em faixas de larguras iguais; e o EFD (Equal Frequency Dis-
cretization), que divide o intervalo de valores do atributo de forma a alocar a mesma
quantidade de elementos em cada faixa resultante.
Em seguida, os data sets foram submetidos a uma fase de codificação na qual os
valores de atributos numéricos são substituı́dos por códigos alfanuméricos. Essa fase visa
1
usualmente empregado por ferramentas de bioinformática.
484
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
reforçar a diferença entre valores como, por exemplo, 1 e 11 – que por vezes são conside-
rados mais próximo que 1 e 2. O data set codificado é então submetido ao DAMICORE
para realização do agrupamento (III). Obtém-se ao final do processo, uma lista contendo
o ı́ndice de cada elemento seguido por um número inteiro representando o cluster ao
qual o elemento foi alocado. Esses valores são adicionados ao data set original e então
submetidos ao MRA (IV), que fornecendo um rótulo para cada cluster.
As Tabelas 1 a 3 apresentam os resultados obtidos pela aplicação do MRA sobre
os clusters formados pelo DAMICORE para os 3 data sets utilizados. Ressalta-se que
são apresentados somente os melhores resultados em relação ao método de discretização
(EWD ou EFD), sendo a quantidade de faixas utilizada a mesma apontada pela literatura
para cada data set. Além disso os valores atribuı́dos à variação v em cada experimento
foram os mesmos utilizados por Lopes et al. [Lopes et al. 2016].
O data set Glass se refere à identificação de vidros e pode ser encontrado no repositório
de dados UCI Machine Learning2 . O data set é composto por 214 elementos (amostras
de vidros), caracterizados por 9 atributos, definindo seu Índice de Refração (IR) e sua
composição quı́mica em termos das porcentagens dos óxidos (Na, Kg, Al, Si, Ca, Ba e Fe).
Os elementos podem ser organizados em 7 clusters diferentes quanto à sua destinação de
uso e a presença ou não de processamento [Evett e Spiehler 1988].
A Tabela 1 apresenta os resultados da rotulação obtidos em relação ao data set
Glass utilizando o método de discretização EFD. O DAMICORE organizou os elementos
em 22 clusters. Entretanto é possı́vel visualizar que os clusters 1 e 4 possuem o mesmo
rótulo, que se repete ainda em outros clusters não visı́veis na Tabela 1. Isto ocorre pelo
fato de o DAMICORE subdividir um cluster maior em clusters menores, devido à natu-
reza hierárquica da reconstrução de filogenias inerente à estrutura de árvore.
Em vários dos demais grupos vê-se o atributo Ba com a mesma faixa de valores (0
∼ 0,15). Porém, quando combinado com outros atributos considerados relevantes (e suas
faixas de valores), novos rótulos são formados, evidenciando caracterı́sticas diferentes
entre clusters, de fato, distintos.
2
http://archive.ics.uci.edu/ml/datasets/Glass+Identification
485
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Tabela 1. Rótulos e taxas de acerto obtidos pelo MRA aplicado aos clusters
formados pelo DAMICORE no data set Glass.
Rótulos Análise
Cluster # Elem. Rel. (%)
Atrib. Intervalo # Erros Acertos (%)
1 15 Ba 0 ∼ 0,15 100 0 100
.. .. .. .. .. .. ..
. . . . . . .
4 9 Ba 0 ∼ 0,15 100 0 100
.. .. .. .. .. .. ..
. . . . . . .
IR 1,5202 ∼ 1,5339 66,67 1 92,86
14 14 Si 71,96 ∼ 72,48 66,67 1 92,86
Ba 0 ∼ 0,15 72,22 2 85,71
.. .. .. .. .. .. ..
. . . . . . .
21 13 Mg 0 ∼ 2,39 100 0 100
K 0 ∼ 0,13 100 0 100
22 9 Mg 0 ∼ 2,39 100 0 100
Al 1,94 ∼ 3,5 100 0 100
486
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Tabela 2. Rótulos e taxas de acerto obtidos pelo MRA aplicado aos clusters
formados pelo DAMICORE no data set Iris.
Rótulos Análise
Cluster # Elem. Rel. (%)
Atrib. Intervalo # Erros Acertos (%)
PW 0,1 ∼ 0,4 100 0 100
1 12
SL 4,0 ∼ 5,6 93,33 1 91,67
PW 0,1 ∼ 0,4 100 0 100
2 11 SL 4,3 ∼ 4,9 86,67 2 81,82
PL 1 ∼ 1,7 100 0 100
.. .. .. .. .. .. ..
. . . . . . .
10 8 PW 1,1 ∼ 1,5 100 0 100
.. .. .. .. .. .. ..
. . . . . . .
13 8 PW 1,1 ∼ 1,5 83,33 0 100
.. .. .. .. .. .. ..
. . . . . . .
PW 1,9 ∼ 2,5 100 0 100
18 7
PL 6,3 ∼ 7 100 0 100
comprimento do sulco da semente (LKG). Os resultados obtidos para este data set, utili-
zando o método de discretização EFD (que forneceu os melhores resultados), são exibidos
na Tabela 3.
Tabela 3. Rótulos e taxas de acerto obtidos pelo MRA aplicado aos clusters
formados pelo DAMICORE no data set Seeds.
Rótulos Análise
Cluster # Elem. Rel. (%)
Atrib. Intervalo # Erros Acertos (%)
WK 3,073 ∼ 3,337 72,22 2 84,62
1 13
Área 13,37 ∼ 15,11 66,67 5 61,54
.. .. .. .. .. .. ..
. . . . . . .
Wk 3,073∼ 3,337 100 0 100
12 7 Área 12,05 ∼ 13,37 100 0 100
Perı́metro 13,31 ∼ 14,02 100 0 100
.. .. .. .. .. .. ..
. . . . . . .
AC 4,933 ∼ 8,456 72,22 2 84,62
Área 10,59 ∼ 12,05 66,67 2 84,62
23 13
LKG 4,805 ∼ 5,132 66,67 2 84,62
Perı́metro 12,41 ∼ 13,31 66,67 3 76,92
487
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Conclusão
O Método de Rotulação Automática (MRA) foi utilizado para rotular clusters forma-
dos pelo DAMICORE. Os resultados obtidos foram comparados com os apresentados
em Lopes et al. [Lopes et al. 2016], ao se realizar a rotulação automática sobre clus-
ters formados pelo K-means. A análise dos resultados mostrou que os rótulos obtidos da
aplicação do MRA sobre os clusters formados pelo DAMICORE possuem maior acurácia
em comparação à alcançada pela aplicação sobre o agrupamento do K-means.
A eficácia da rotulação obtida para o agrupamento do DAMICORE é atribuı́da à
quantidade de clusters resultantes. Com um maior número de clusters ocorre uma maior
especificidade das caracterı́sticas de seus respectivos elementos, devido ao menor grau de
488
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
Anaya-Sánches, H., Pons-Porrata, A., e Berlanga-Llavori, R. (2008). A new document
clustering algorithm for topic discovering and labeling. In 13th Iberoamerican Con-
gress on Pattern Recognition - CIARP 2008, pags 161–168. LNCS.
Cancino, W. e Delbem, A. (2007). Inferring phylogenies by multi-objective evolutionary
algorithm. In International journal of information technology and intelligent compu-
ting, pags 1–26.
Cilibrasi, R. e Vitányi, P. (2005). Clustering by compression. In IEEE Transactions on
Information Theory, pags 1523–1545. University of California Press.
Duch, J. e Arenas, A. (2005). Community detection in complex networks using extremal
optimization. In Physical Review E, pags 406–425.
Evett, I. e Spiehler, E. (1988). Rule induction in forensic science. In Knowledge based
systems, pags 152–160. Halsted Press.
Fayyad, U., Piatetsky-Shapiro, G., e Smyth, P. (1996). From data mining to knowledge
discovery in databases. In Advances in Knowledge Discovery and Data Mining, pags
37–54. AAAI Press.
Fisher, R. (1936). The use of multiple measurements in taxonomic problems. In Annals
of Eugenics, pags 17–188.
Kulczycki, P. e Charytanowicz, M. (2011). A complete gradient clustering algorithm.
In Proceedings of the Third International Conference on Artificial Intelligence and
Computational Intelligence, pags 497–504. Springer-Verlag.
Lopes, A., Machado, V., e Rabêlo, R. (2016). Automatic labelling of clusters of discrete
and continuous data with supervised machine learning. In Knowledge-Based Systems,
pags 231–241. LNCS.
MacQueen, J. (1967). Some methods for classification and analysis of multivariate ob-
servations. In Proceedings of the fifth Berkeley Symposium on Mathematical Statistics
and Probabilitys, pags 281–297. University of California Press.
Newman, M. e Girvan, M. (2004). Finding and evaluating community structure in
networks. In Physical Review E, pags 406–425.
Saitou, N. e Nei, M. (1987). The neighbor-joining method: a new method for reconstruc-
ting phylogenetic trees. In Molecular Biology and Evolution, pags 406–425.
Sanches, A., Cardoso, J., e Delbem, A. (2011). Identifying merge-beneficial software
kernels for hardware implementation. In Reconfigurable Computing and FPGAs (Re-
ConFig), pags 74–79. AAAI Press.
489
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract. The area of Natural Language Processing seeks to analyze the lan-
guage used naturally by humans for interpersonal communication. A task that
has gained prominence in this area refers to the temporal location of the expres-
sed opinion or fact, that is, when the fact or opinion occurred or was expressed.
This task is commonly divided into the Temporal Expressions Classification and
Normalization subtasks, the first task being to identify time-denoting expressi-
ons and the second task in order to obtain a formal date from the expressions
identified in the first one. This work focuses on the Classification subtask and
describes the creation of the TECLA module for identification of temporal ex-
pressions for Portuguese.
1. Introdução
Não há dúvidas de que a Internet mudou as formas de relação humana e elevou o impacto
de situações que de outra forma ficariam restrits a um pequeno grupo de indivíduos, como
vídeos ou relatos de acontecimentos curiosos e não-usuais que de um dia para o outro
percorrem todo o mundo e são vistos e comentados por milhões de pessoas. Com a
internet as pessoas conseguem produzir e consumir conteúdo em quantidades e formatos
nunca antes figurados. E através das Redes Sociais Online torna-se real e cotidianamente
presente a troca de informações e experiências entre pessoas das mais diversas culturas
ao redor do globo.
Segundo a União Internacional das Telecomunicações(UIT) [1], órgão ligado à
Organização das Nações Unidas(ONU), no final de 2016 quase 3,5 bilhões de pessoas
490
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
tinham acesso à internet, representando 47% da população mundial. Outro relatório di-
vulgado pela CISCO [2] mostra que em 2016 essas pessoas foram responsáveis pelo trá-
fego de mais de 2 exabytes de dados por dia na internet, sendo 17% destes utilizados por
aplicações como email, blogs, fóruns de discussão e etc.
Esses dados que trafegam pela internet levam consigo informações pessoais, opi-
niões e tendências, e manifestam tanto o pensamento coletivo quanto as impressões de
cada indivíduo sobre os mais variados assuntos. Daí pode-se observar o real valor desses
dados, uma vez que uma análise deles pode possibilitar – dentre diversos outros casos – a
uma empresa poder medir a aceitação de um produto, a um político poder saber os pontos
de discordância dos eleitores e suas propostas, ou a um pesquisador poder analisar traços
do comportamento humano. A área de Processamento de Linguagem Natural(PLN) é a
área da Ciência da Computação que se encarrega da análise destes dados.
O termo "Processamento de Linguagem Natural"é utilizado para definir a tarefa de
geração e compreensão de textos escritos em alguma das linguagens naturalmente faladas
pelos seres humanos, tais como: Inglês, Português, Espanhol e etc.
Uma tarefa que tem requerido especial atenção de pesquisados da área de PLN é
a Resolução de Expressões Temporais(RET), que de forma simplista consiste em obter
uma data formal para acontecimentos cujas datas ou períodos de tempo são descritos
valendo-se de termos e expressões próprias da linguagem natural. Bittar[3] defende que a
importância da tarefa de RET reside no fato de que a estrutura temporal é parte primordial
da narrativa e que só através dela pode-se obter completo entendimento do texto estudado.
Desta forma, podemos observar que a obtenção de dados temporais possibilita melhor
entendimento do contexto em que o texto foi criado ou a que se refere, como também
auxilia na organização cronológica dos fatos narrados.
Podemos utilizar como exemplo para a tarefa de RET a frase “chegarei no dia 7
de setembro e retornarei no dia seguinte” onde o autor especifica formalmente sua data
de chegada, mas não a de retorno. Neste caso uma ferramenta de RET deveria ser capaz
de identificar o termo “dia seguinte” como uma Expressão Temporal(ET) e normalizá-la
formalmente como dia 8 do mês de setembro.
A RET pode ainda ser dividida nas subtarefas de Classificação e Normalização.
Sendo a primeira responsável por identificar ETs presentes no texto original e a segunda
responsável por transformar cada ET encontrada em uma data ou período de tempo for-
mal.
O objetivo deste trabalho é apresentar a ferramenta TECLA(Temporal Expression
CLAssifier) que visa realizar a classificação de ETs para o Português. O restante deste
trabalho está organizado da seguinte forma: a Seção 2 descreve a fundamentação teórica,
onde estão explanados os princípais termos e conceitos pertinentes ao desenvolvimento
deste trabalho, como também as tecnologias utilizadas durante a fase de implementa-
ção; a Seção 3 discorre sobre os trabalhos que serviram de influencia e auxílio no desen-
volvimento deste; na Seção 4 estão descritos desenvolvimento e forma de utilização do
TECLA; já na Seção 5 temos a metodologia de avaliação utilizada e seus resutados; na
Seção 6 explanamos sobre os resultados gerais do TECLA e os trabalhos futuros a ele
relacionados; por fim temos a Seção 7 mostrando referências deste trabalho.
491
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Fundamentação Teórica
Nesta seção explanamos sobre os principais termos, ferramentas e tecnologias que são
importantes para a plena compreensão do restante deste trabalho.
Jurafsky e Martin[7] definem expressão regular(ER) como “a notação padrão para se-
quencias de caracteres”. Expressões regulares são amplamente utilizadas na computação
para a representação de padrões textuais, busca de subpartes de um texto, definição de
sintaxe de linguagens formais e etc.
Imagine por exemplo que definamos uma linguagem cujas palavras devam iniciar
com o símbolo a, e serem seguidas por uma sequencia de tamanho não-determinado de
ocorrências dos símbolos a e b, terminando com o símbolo b. Essa linguagem teria então
palavras como: aaaaab, ab e abab.
Assim, uma expressão regular que denote tal linguagem poderia ser definida como
mostrado na Figura 1. Onde os parentêses servem para agrupar subpartes da expressão,
o asterísco significa a ocorrência de zero ou mais instâncias do símbolo ou conjunto de
símbolos agrupados antecessor a ele, e a barra vertical representa o operador lógico "ou".
Então podemos ver que a ER da Figura 1 representa formalmente a linguagem definida
no parágrafo anterior.
492
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2.4. Corpus
A palavra corpus vem do Latim e significa corpo ou conjunto. Neste trabalho o sentido do
termo corpus é o mesmo empregado pelos pesquisadores da área de linguística e definido
por Sardinha[9] como “conjunto de dados linguísticos textuais coletados criteriosamente
com o propósito de servirem para a pesquisa de uma língua”.
McEnery et al.[10] categorizam os corpus em anotados e não-anotados. Sendo
os primeiros aqueles que contem marcações ou metadados linguísticos que trazem ganho
de informação, ou seja, um corpus anotado é aquele no qual além do texto existem in-
formações linguísticas perninentes ao escopo da pesquisa para o qual ele servirá. Já um
corpus não-anotado é aquele onde encontra-se somente o texto na forma como foi escrito
ou trasncrito originalmente.
493
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2.6.2. Scrapy
Na fase de avaliação desse trabalho fez-se necessário um corpus anotado com informações
sobre as expressões temporais. Antes de realmente criar o corpus anotado fez-se necessá-
ria a definição do domínio deste. Para tal, foram coletados e analisados 50 comentários de
cada um dos domínios de: hotelaria, jogos online, cinema e produtos eletrônicos. Sendo
escolhido o domínio de hotelaria por este apresentar maior número de ETs por comentário
em relação aos demais.
Assim, foi criado um corpus contendo 200 comentários extraídos do site Boo-
king.com[11] sobre 5 hóteis das cinco regiões do Brasil no período de janeiro a dezembro
de 2016. O site Booking.com foi escolhido por ter mais de 1,3 milhões de hóteis cadas-
trados em todo o mundo, e 121 milhões de comentários de clientes reais.
O corpus teve suas ETs anotadas por um especialista da área de PLN em conjunto
com um especialista da área de linguística.
3. Trabalhos Relacionados
Nessa seção são descritos os trabalhos relacionados ao nosso ou que de alguma forma
serviram de influência para este.
Antes de mais nada é importante falar sobre os corpus CSTNews[14] e
TimeBankPT[15]. Eles foram essenciais para o desenvolvimento do nosso método de
classificação de ETs, pois possibilitaram o entendimento da forma com ETs se manifes-
tam em textos em Português e a modelagem dos padrões utilizados para a identificação
destas. O CSTNews contém um conjunto de mais de 150 notícias veiculadas por jornais
de circulação no Brasil, as notícias têm suas expressões temporais anotadas por um grupo
de especialistas das áreas de computação e linguística. Já o TimeBankPT é a tradução do
corpus TimeBank(originalmente escrito e anotado em Inglês) para o Português de Portu-
gal – que não apresenta diferenças com o Português Brasileiro no que se refere às ETs.
O trabalho de Menezes e Pardo[16] propõe um método para RET. Para a im-
plementação os autores optaram por seguir a estratégia de dividir a tarefa nas fases de
Classificação e Normalização. Durante a fase de Classificação, os autores puderam notar
que a maioria das ETs apresenta padrões que podem ser previstos utilizando Expressões
Regulares(ERs). Escolhendo esta como a forma de identificação das ETs. Tais ERs foram
obtidas através do estudo do corpus CSTNews[14].
O protótipo criado pelos autores foi então submetido a um conjunto de textos de
entrada, e sua saída(a anotação das expressões temporais contidas nos textos) foi ava-
494
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
liada pela comparação com a anotação realizada por especialistas. Obtendo a anotação
automática índices de acerto de 75% em comparação com realizada pelos especialistas.
Entretanto os autores ressaltam que o projeto ainda se encontra em fase de desenvolvi-
mento, necessitando de ajustes.
No trabalho de Baptista et al.[17] os autores detalham as regras e relatam as expe-
riências obtidas na segunda edição do HAREM. O HAREM é um concurso que contém
uma série de tarefas que fazem uso de PLN, onde os participantes são convidados a mos-
trar seus trabalhos, trocar ideias e promover o avanço do estudo de PLN no Português. Ele
é descrito pelos autores como “uma avaliação conjunta na área de PLN em português”.
O evento teve duas edições, sendo a primeira em 2006 contando com 5 grupos de pes-
quisa em inscritos, e a segunda em 2008, contando com 20 grupos inscritos e sendo esta
a primeira a incluir a tarefa de RET, nomeada de “PISTA TEMPO”. Todas as discussões,
apresentações e resultados das tarefas do evento foram sumarizados no Livro Segundo
HAREM[17] que entre outras contribuições oferece um panorama geral do estado da arte
das técnicas de PLN exploradas pelos participantes do evento, seus resultados e métodos
de avaliação.
Outro trabalho que nos influenciou durante o desenvolvimento deste foi
Carneiro[18] que descreve a proposta e implementação do CoppeTER(Coppe Tempo-
ral Expression Recognizer), um sistema que trabalha através da combinação de regras e
aprendizado de máquina para o reconhecimento e normalização de ETs em português. O
protótipo implementado por Carneiro[18] trabalha utilizando um processador linguístico
como porta de entrada para o sistema, que retira construções textuais não essenciais para
a tarefa de reconhecimento das ETs, e gera como saída um conjunto de tuplas do tipo <pa-
lavra, classe_gramatical>. O resultado dessa fase é então processado pelo módulo de Pro-
cessamento Temporal, que utiliza um conjunto de expressões regulares associados a um
dicionário de gatilhos(descrito pelo autor como um “conjunto de palavras comumente as-
sociadas a expressões temporais”) e um dicionário de datas especiais para escolher quais
partes do texto de entrada serão enviados ao motor de regras que fará a classificação das
expressões como temporais ou não-temporais. O sistema foi avaliado utilizando o con-
junto de dados, métricas e diretrizes da Pista Tempo do Segundo HAREM[17], obtendo
resultados que o deixam em igualdade com os melhores trabalhos de RET para a lingua
inglesa, que é reconhecidamente a língua onde estão concentrados os maiores esforços e
melhores resultados de pesquisa em PLN de forma geral. Apesar dos bons resultados o
CoppeTER não está disponível à comunidade e não há no trabalho os anexos que seriam
necessários para a reprodução do mesmo(como a base de regras utilizada, o conjunto de
expressões regulares, o dicionário de gatilhos ou o calendário de datas especiais).
4. Módulo TECLA
A ferramenta TECLA(Temporal Expression CLAssifier) é um módulo de código aberto
para classificação de ETs em Português desenvolvido para a linguagem de programação
Python[12], e é a principal contribuição deste trabalho. A seguir estão relatadas as etapas
de seu desenvolvimento e sua forma de utilização.
4.1. Desenvolvimento
O desenvolvimento do módulo TECLA ocorreu por meio das etapas descritas a seguir.
495
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
O TECLA tem sua arquitetura mostrada na Figura 2 recebe como entrada principal o
texto no qual se deseja verificar a ocorrência das ETs. Este sofre então a tentativa de
"matching"(ou casamento) com os padrões observados durante a fase de estudo dos cor-
pus. Essa fase é seguida por uma busca no texto por palavras que estejam no banco de
expressões temporais.
O banco de ETs padrão do TECLA conta com 75 ETs que não foram incluídas
nos padrões principais por não serem tão significativas, ou seja, não se encontrarem co-
mumente nos corpus analisados. Existe ainda a opção de substituir-se o banco de ETs
padrão por um da escolha do utilizador do módulo.
496
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Avaliação
A avaliação do TECLA foi feita utilizando o corpus de comentários extraídos do site
Booking.com[11] e anotado por um especialista da área de PLN em conjunto com um
especialista da área de linguística. Os resultados do TECLA foram então comparados
com os resultados de Menezes e Pardo[16] e Carneiro[18].
Nos 200 comentários que compunham o corpus utilizado foram encontradas 142
setenças que continham ETs, essas foram unidas a outras 142 sentenças que não conti-
nham ETs e submetidas unitariamente ao TECLA. Para a avaliação foram utilizadas as
medidas de precisão, cobertura e medida-F, que como demonstra Powers[19] são as mais
indicadas para avaliação de sistemas de predição.
O TECLA obteve precisão de 83%, cobertura de 88% e medida-F de 85%. Os
cálculos foram feitos com base na matriz de confusão mostrada Figura 5 que confronta
as ETs anotadas manualmente no corpus com as ETs encontradas pelo TECLA.
Em comparação com o trabalho de Menezes e Pardo[16] e Carneiro[18] – que uti-
liza o mesmo princípio de procura de padrões por meio de expressões regulares para iden-
tificar ETs – podemos notar que o TECLA tem índices de precisão, cobertura e medida-F
superiores, como demonstrado na tabela da Figura 6 e no gráfico da Figura 7. Entretanto,
tem valores de precisão e cobertura inferiores aos apresentados por Carneiro[18].
Vale salientar que mesmo estando atrás dos resultados conseguidos por
Carneiro[18] o TECLA tem uma abordagem e arquitetura mais simples que este, e tam-
bém está totalmente disponível à comunidade por meio do código-fonte disponibilizado
no Github[20], um repositório de códigos livre e gratuito.
497
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
498
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7. Referências
[1] SANOU, B. "ICT Facts & Figures The world in 2016. ICT Data and Statistics Division
Telecommunication Development". Bureau International Telecommunication Union,
2016.
[2] Cisco, I. "Cisco visual networking index: Forecast and methodology, 2016–2021".
CISCO White paper, 2016.
[3] BITTAR, A. "Annotation of Events and Temporal Expressions in French Texts: SA-OT
accounts for pronoun resolution in child language". LOT Occasional Series, 2009.
[4] JACKSON, P.; MOULINIER, I. "Natural Language Processing for Online Applications:
Text Retrieval, Extraction and Categorization". John Benjamins Publishing Com-
pany, 2002.
[5] HIGH, R. "The era of cognitive systems: An inside look at ibm watson and how it works".
IBM Corporation, Redbooks, 2012.
[6] LAZER, DAVID, et al. "The parable of Google Flu: traps in big data analysis". Science,
2014.
[7] JURAFSKY, D.; MARTIN J. "Speech and Language Processing: An Introduction to Na-
tural Language Processing Computational Linguistcs, and Speec Recognition". Pe-
arson Education Inc., 2008.
[8] AHN, D.; RANTWIJK, J.; RIJKE, M. "A Cascaded Machine Learning Approach to In-
terpreting Temporal Expressions". Proceedings of Human Language Technologies:
The Annual Conference of the North American Chapter of the Association for Com-
putational Linguistics, 2007.
[9] SARDINHA, T. "Lingüística de corpus". Editora Manole Ltda, 2004.
[10] McENERY, T.; RICHARD, X.; TONO, Y. "Corpus-based language studies: An advanced
resource book". Taylor & Francis, 2006.
[11] Booking Inc. Disponível em: <https://www.booking.com>, acesso em Março de 2017.
[12] MARTELLI, A.; RAVENSCROFT, A.; ASCHER, D. "Python cookbook". O’Reilly Me-
dia, Inc., 2005.
[13] KOUZIS-LOUKAS, D. "Learning Scrapy". Packt Publishing Ltd, 2016.
[14] SOUZA, J., FELIPPO A. "Corpus CSTNews e sua Complementaridade Temporal". Inst.
de Ciências Matemáticas e de Computação (ICMC) - Universidade de São Paulo
(USP).
499
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
500
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract. The Brazilian Sign Language (LIBRAS) is the official language in the
communication of the deaf in Brazil. Although it is the primary means of com-
munication for the hearing impaired, LIBRAS is still not very widespread in the
rest of society. In this way, sign language recognition is a research area of high
relevance, since it aims to include deaf people in the rest of community. Based
on this, we propose in this article a mobile system, compatible with any Android
device with a camera, for the recognition of static gestures, that is, gestures that
do not need the movement of hands, in LIBRAS. The proposed system uses a
skin detection algorithm to segment the region of interest, then seeks to identify
the hand of the individual and extract some characteristics regarding their posi-
tion and finally recognize the gesture signaled through the information extracted
using a classifier Support Vector Machine. The developed system obtained a rate
of 86.5% accuracy in recognition of the evaluated gestures
1. Introdução
Segundo o censo do Instituto Brasileiro de Geografia e Estatı́stica (IBGE) de 2010 ha-
via no Brasil uma população de mais de 190 milhões de pessoas, dessas 45,6 milhões
(23,9%) apresentaram algum tipo de deficiência, sendo 9,7 milhões (5,1%) portadoras
de deficiência auditiva. Algumas das dificuldades encontradas pelos deficientes podem
ser contornadas por meio do uso de Tecnologias de Informação e Comunicação (TICs).
501
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Trabalhos Relacionados
Foi realizado uma busca por softwares que possuam o mesmo ou um objetivo semelhante
ao sistema proposto. Na busca, foram encontrados sistemas, não necessariamente mo-
bile, que fazem o reconhecimento de gestos de LIBRAS e o traduza para português. No
entanto, a pesquisa por sistemas móveis retornou apenas alguns aplicativos que fazem a
conversão do português para a LIBRAS, ou seja, o inverso do objetivo mostrado nesse
trabalho.
Tal busca também se estendeu para aplicações Desktop, agora retornando alguns
programas listados na Tabela 1
502
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Além disso, foi feita uma busca cientifica para se ter conhecimento dos princi-
pais métodos proposto existente. Com isso, foi analisado o retorno da pesquisa, onde
foram classificados como sendo de maior relevância para o desenvolvimento do sistema
os seguintes trabalhos: [SIOLA 2010], [Koroishi 2016],[Brandt 2015], [Teodoro 2015] e
[Souza et al. 2007]
Em [SIOLA 2010] o método possui diversas restrições entre elas: o processo deve
ser realizado em um ambiente controlado, com um fundo de cor branca ou preta, somente
o interprete da linguagem deve ser visı́vel a câmera, o interprete deve utilizar roupas
brancas ou pretas de manga comprida, uma luva de cor azul na mão direita deve ser usada
para sinalizar os gestos e outra de cor laranja na mão esquerda, no inicio do vı́deo o
interprete deve estar com suas mãos posicionadas para cima e ao final do vı́deo suas mãos
deveram estar para baixo.
Ja em [Koroishi 2016] e [Brandt 2015], os autores estudaram a viabilidade do uso
de sensores 3d, como o Kinect, para o reconhecimento da LIBRAS baseando-se nessa
classificação para uma abordagem probabilı́stica e com uso de redes neurais.
No trabalho de [Souza et al. 2007] o reconhecimento de um sinal em LIBRAS é
feito através de uma sequência de várias imagens que são consideradas marcantes para
o gesto representado, o seu trabalho dá ênfase no uso de Modelos de Markov Oculto
(HHMs) para a classificação. Para testar o desempenho do método proposto foi construı́do
um banco com amostras de imagem correspondente a 47 sinais diferentes, sendo que todas
as imagens foram capturadas com o fundo estático e uniforme.
O último trabalho citado foi o de [Teodoro 2015] em seu projeto a autora desen-
volveu um sistema de reconhecimento de algumas palavras em LIBRAS para desktop,
que processa vı́deos gravados e armazenados em um banco construı́do pelo próprio au-
tor. Porém, apresenta uma usabilidade melhor do que os trabalhos anteriores, pois seu
sistema não necessita do uso de luvas, nem outro tipo de acessório para o funcionamento.
Nesse trabalho o sistema analisa a sequência de imagens gravadas que correspondem ao
sinal, realiza uma etapa de pré-processamento para melhorar a imagem, em seguida seg-
menta a região de interesse através do método Kovac, faz o rastreamento do movimento
da mão para identificar sinais dinâmicos, em seguida extrai as caracterı́sticas utilizando o
descritor Random Forest e reconhece o sinal.
Além dos trabalhos citados, o sistema desenvolvido por [Qin 2015] foi de grande
relevância para esse projeto, nele foi desenvolvido um aplicativo que é capaz de abrir
outros aplicativos instalados no celular através do reconhecimento dos dedos das mãos,
porém seu sistema necessita de uma etapa de pré-treinamento sempre que é iniciado,
precisando ser informado onde está o fundo e a mão do usuário.
3. Metodologia
Nesse trabalho, utilizamos o sistema operacional Android e a linguagem de programação
Java. O sistema proposto é compatı́vel com qualquer dispositivo Android, tendo apenas a
câmera como pré-requisito funcional. O funcionamento do sistema ocorre em três etapas:
detecção da mão, reconhecimento da mão e o reconhecimento do sinal. O Funcionamento
do sistema está resumido no fluxograma apresentado na Figura 1 e será detalhado nas
próximas seções.
503
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Após obter a matriz resultante com a região da pele detectada, o sistema aplica
algumas técnicas na matriz a fim de melhorar a imagem com a região da mão. Para isso,
inicialmente é aplicado o filtro da mediana com o objetivo de equilibrar a imagem que
504
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
possui pixels mais claros e mais escuros. Em seguida, a imagem passa por um processo
de limiarização threshold disponı́vel na biblioteca Opencv, isso faz com que ela seja seg-
mentada em todos os pixels que tiverem o valor inferior a taxa de threshold, no sistema
proposto esta taxa foi definida com o valor 20, tal escolha foi feita devido a esse valor ter
realizado a limiarização com mais eficiência, sem grandes perdas na imagem. Com a área
de interesse (pele) segmentada, usamos a função da biblioteca OpenCv findContours, que
nos retorna os contornos encontrados a partir da imagem passada.
Como na etapa anterior a matriz foi restrita a conter apenas a região da mão, a função
irá retornar somente os contornos correspondente aos da mão. A partir daı́ é criado uma
caixa, chamada boundingbox na qual é limitada somente à região da mão, é a partir das
informações representadas dentro do boundingbox que um sinal é reconhecido, como
mostra a Figura 3.
505
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Resultados e Experimentos
Foram realizados testes para validar a eficiência do sistema proposto. Esses testes foram
realizados em um smartphone Xiaomi Redmi 2 que utiliza o sistema operacional Android
na versão 4.4 com as seguintes configurações:
• Modelo: Redmi 2;
• Marca: Xiaomi;
• Versão do Android: 4.4.4 KTU84P;
• Chipset: Qualcomm MSM8916 Snapdragon 410;
• CPU: Quad-core Max 1,2 GHz;
• Memória RAM: 1GB;
• GPU: Qualcomm Adreno 306;
• Câmera: 8 Mp.
Para testar a aplicação foram convidadas 5 pessoas que se disponibilizaram para
sinalizar os gestos selecionados para o teste. Os voluntários escolhidos possuem diferen-
tes tonalidades de cor de pele para evidenciar o desempenho do algoritmo desenvolvido
com o maior leque de caracterı́sticas possı́veis, além disso, nenhum dos participantes pos-
sui conhecimentos avançados em LIBRAS.
Os gestos escolhidos para serem testados foram as 10 primeiras letras do al-
fabeto que possuam gesto estático, ou seja, que não seja necessário realizar ne-
nhum movimento com a mão para o sinal ser executado. O sistema foi treinado
com 10 amostras de gestos de cada letra, com isso as letras a serem analisadas são:
“A”,“B”,“C”,“D”,“E”,“F”,“G”,“I”,“L” e “M”.
Os testes foram executados em ambientes com o fundo heterogêneo e não con-
trolado. Foi criado um pequeno algoritmo para calcular o resultado dos testes, onde é
contabilizado a quantidade de vezes que o sistema classificou a letra sinalizada correta-
mente dividido pelo total, ou seja, quantidade de vezes que o sistema classificou o sinal de
forma correta ou incorreta durante os 50 primeiros frames da câmera, o que corresponde
a mais ou menos de 7 a 10 segundos para cada letra. Os resultados dos testes variam de 0
506
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Baseado nos resultados analisados na Figura 5 ao fazer uma média dos valores de
cada letra podemos afirmar que o sistema faz o reconhecimento de gestos com uma taxa
507
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
de 86,5 % de acerto. Esse número foi significamente afetado pelas baixas taxas de acerto
das letras “E”, “F” e “G” já citadas anteriormente.
Referências
Brandt, A. H. (2015). Lirann: sistema de reconhecimento de libras baseado em redes
neurais artificiais com kinect. Trabalho de Conclusão de Curso, Universidade de Santa
Cruz do Sul, Santa Cruz do Sul, pages 30–38.
Koroishi, G. O. (2016). Reconhecimento de sinais da libras por visão computacional.
Mecatrone, 1(1):2–7.
Qin, Y. (2015). Color-based hand gesture recognition on android.
SIOLA, F. (2010). Desenvolvimento de um software para reconhecimento de sinais libras
através de vı́deo. Trabalho de Conclusão de Curso, Universidade Federal do ABC,
Santo André, pages 32–41.
Souza, K. P., Dias, J. B., and Pistori, H. (2007). Reconhecimento automático de gestos
da lıngua brasileira de sinais utilizando visao computacional. In III Workshop de Visao
Computacional, pages 3–5.
Teodoro, B. T. (2015). Sistema de reconhecimento automático de Lı́ngua Brasileira de
Sinais. PhD thesis, Universidade de São Paulo.
508
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. INTRODUÇÃO
Desde a invenção do ENIAC, o primeiro computador digital eletrônico de grande escala,
criado em fevereiro de 1946 pelos cientistas norte-americanos John Eckert e John
Mauchly, da Electronic Control Company (TERRA, 2017), muitas inovações
aconteceram na área da tecnologia da informação (TI).
O modelo de desenvolvimento denominado Computação Distribuída vem
ganhando cada vez mais espaço, e têm contribuído para desenvolvimento de novas
tecnologias. Segundo Coulouris et. al (2007) um Sistema Distribuído(SD) é aquele no
qual os componentes localizados em computadores interligados em rede se comunicam e
coordenam suas ações apenas passando mensagens.
Este artigo procura demonstrar tecnologias para o desenvolvimento de sistemas
distribuídos e o desenvolvimento de um software com algumas destas tecnologias. O
desenvolvimento aconteceu seguindo as etapas de: Levantamento de dados, elaboração
do projeto, desenvolvimento e análise final. O sistema desenvolvido deve apresentou
algumas das principais características de um SD que são: Heterogeneidade, Segurança,
Escalabilidade, Concorrência e Transparência.
Possivelmente a presença da computação na rotina da população despertara o
interesse das pessoas pela área do desenvolvimento de software. Em 2007 uma pesquisa
realizada por técnicos da Universidade de Maastricht, da Holanda, mostrou que o Brasil
tinha o maior número de desenvolvedores de software de código aberto, dentre os países
que participaram da pesquisa naquela época (INTERVOZES, 2015).
509
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. REVISÃO TEÓRICA
É possível entender o surgimento e propagação dos sistemas distribuídos ao observar a
evolução da computação, pois esse desenvolvimento envolve necessariamente, não
proporcionalmente, hardware e software por estarem ligados, ou seja, à medida que
novos hardware surgem, a implementação de novo software faz-se necessário.
Esse progresso acelerou em meados da década de 1980 com o desenvolvimento
dos microprocessadores de grande capacidade e a invenção de redes de computadores de
alta velocidade (TANENBAUM; STEEN, 2007). Fato que possibilitou a implementação
510
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
511
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
512
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. METODOLOGIA
Tendo em mãos o resultado da pesquisa que resultou em um grupo de tecnologias para o
desenvolvimento da aplicação, deu-se continuação a prática do projeto elaborado
realizando a implementação do sistema.
O desenvolvimento do sistema teve uma instituição de ensino da rede federal
como estudo de caso. O Campus analisado possui uma estrutura de rede, além de possuir
uma diversidade de hardware que atende às necessidades para a implantação de um
sistema distribuído.
Dentre os setores do Campus o escolhido foi o da Coordenação de Disciplina
(CODIS), por possuir ligação com outros setores e necessitar automatizar as suas
atividades diárias como: o controle de uso das salas de aula e registro de aulas ministradas
e não ministradas. Além disso o sistema possui como funcionalidade a geração de
horários de aulas, administrada pela diretoria de ensino da instituição mencionada.
Para definir com clareza os requisitos do sistema foram elaborados diagramas,
entre eles o diagrama entidade-relacionamento. E como complemento foi produzido uma
simulação da estrutura de hardware e rede a ser utilizada pelo sistema.
O sistema foi definido em quatro partes que estão diretamente relacionadas, mas
que possuem tecnologias diferentes em sua implementação.
A codificação do sistema aconteceu basicamente em duas etapas, a primeira foi a
criação da API(Application Programming Interface), em português, Interface de
Programação de Aplicativos. Afim de garantir a heterogeneidade nesta etapa foram
utilizados alguns frameworks da linguagem Python. Utilizou-se uma adaptação do
controle do Django para receber as requisições do cliente, todas as respostas da API
utilizam a notação do objeto Javascript, JSON(JavaScript Object Notation).Utilizou-se o
Django Rest Framework para converter os dados de texto simples para Json. Tornando
possível que futuras aplicações independente da linguagem que possam ser
implementadas, possam ser integradas ao sistema.
Toda a questão de segurança do sistema deu-se do seguinte modo: A autenticação
dos usuários através de token foi implementada com JSON Web Token(JWT). Foi
513
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
escolhido o banco de dados Postgresql, que utiliza a Psycopg2, uma biblioteca Python,
para conectar o banco com a API. No que se refere ao gerenciamento de permissões de
quais domínios poderiam consumir esses dados e para permitir o token no cabeçalho das
requisições foi usado o Django-cords-heads.
Com o objetivo de tornar o sistema escalável, ou seja, torná-lo capaz de suportar
maior quantidade de acessos e prepará-lo para integração com futuras aplicações, criou-
se duas bases de dados replicadas (master x master) com o uso da extensão Bucardo, do
postgresql. A primeira instância do banco de dados foi implementada nos sistema
operacionais Windows versão 8.1. A segunda instância do banco no sistema operacional
Linux, Distribuição Linux Mint versão 18.
Na segunda etapa foram construídos dois tipos de clientes, uma página na web e
um aplicativo móvel híbrido, ou seja, um aplicativo executável em diversas plataformas.
A transparência do sistema é evidenciada, por exemplo, quando o site consome dados da
API através de requisições AJAX(Asynchronous Javascript and XML), essas requisições
acontecem de modo que a url não muda, o cliente tem a ideia de que os recursos são
requisitados apenas uma vez. Em seu desenvolvimento, a fim de obedecer os princípios
do Representational State Transfer (REST), o controle de acesso dos dados acontece
através de requisições HTTP, característica que contribui para a segurança dos dados,e
pode acontecer por exemplo, a utilização de uma mesma URL em diferentes requisições
mudando somente o verbo (GET, POST).
O Angular, que é um framework javascript, é o responsável por solicitar, receber
e mostrar esses dados, além de os converter json em texto simples com o auxílio de
marcações da linguagem HTML5, apresentando assim a página ao usuário de forma
amigável. E como complemento utilizou-se o Semantic UI, framework da linguagem
CSS, para melhorar a aparência da página.
Finalmente, o aplicativo móvel desenvolvido com o framework Ionic, versão 2. O
aplicativo acessa os dados do banco através do middleware, nesse caso, é a própria API.
A aplicação móvel não possui uma base de dados local, ou seja, não há dados armazenado
no lado cliente com exceção do token que fica armazenado na memória do aparelho.
Também obedecendo a arquitetura REST, às informações são acessadas via HTTP e
exibidas de forma temporária sendo necessária a conexão com a rede sempre que
necessário revê-las, mantendo as informações sempre atualizadas.
4. RESULTADOS E DISCUSSÃO
Tendo sido realizadas as fases fundamentais para a conclusão do projeto elaborado,
observou-se que existe uma constante atualização das tecnologias e métodos utilizados
no desenvolvimento de sistemas como um todo, mas principalmente no que diz respeito
à computação distribuída.
O software desenvolvido foi executado numa pequena estrutura de rede construída
especificamente para a análise do sistema e nesta foram realizados o testes.
A Figura 3 ilustra o esquema de hardware e de rede usados para realizar os testes da
aplicação:
514
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. CONCLUSÃO
Conclui-se a partir do investigado que existem inúmeras tecnologias disponíveis para o
desenvolvimento de sistemas distribuídos, sendo possível o desenvolvimento de um
software com a arquitetura e as tecnologias abordadas.
Observou-se a existência de grandes desafio para a computação distribuída, como por
exemplo a baixa velocidade da internet em algumas instituições e as falhas na arquitetura
de rede. É necessário àqueles que desejem seguir nessa área específica que aumentem
seus conhecimentos tanto na programação de sistemas como também em redes de
computadores.
Foi percebido que há grandes vantagens em desenvolver sistemas distribuídos,
pois estes possuem um grande potencial para expansão e integração com sistemas já
existentes. Sendo também o futuro da computação, a integração de todos os sistemas
através da internet.
REFERÊNCIAS
ABES, A. B. Mercado Brasileiro de Software - Panorama e Tendências. 2007.
Disponível em: <www.abes.org.br: http://www.abessoftware.com.br/dados-do-
setor/estudo-2017--dados-2016>. Acesso em: 07 Agos. 2017)
ANGULAR. Angular. Disponível em: <angular.io: https://angular.io/guide/template-
syntax>. Acesso em: 13 Agos. 2017.
CASS, S. As principais linguagens de programação de 2017. 2017. Disponível em:
<http://spectrum.ieee.org/computing/software/the-2017-top-programming-languages>.
Acesso em: 10 Agos. 2017.
COULOURIS, G.DOLLIMORE, J. & KINDBERG, T. SIstemas Distribuídos
Conceitos e Projeto. Porto Alegre. ABDR, 2007. 15p.
515
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
516
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract. This paper describes the use of a Linux embedded system for use in
digital information and communication technology in order to generate image
warnings using Internet of Things (IoT) principles. The proposed project
generated a product, developed using concepts of project-based learning
(ABP), called SECI (electronic internal communication system) that is
accessed by students to view online warnings by distributed monitors and also
by mobile devices connected to the Internet.
1. Introdução
A internet das coisas (IoT) possibilita o desenvolvimento de sistemas que nos permite
controlar o ambiente a nossa volta de forma cada vez mais automática. Hoje podemos
conectar diversos dispositivos em rede e trocar mensagens de controle, tornando as
nossas rotinas diárias mais rápidas, eficientes e gerando uma quantidade de informações
sobre o nosso ambiente doméstico e de trabalho.
A sociedade vive hoje em constante mudança, visto isso e a prospecção de novas
tecnologias, nada mais natural do que estas
T
et al. 2006].
Neste artigo, é proposto o desenvolvimento de um sistema de avisos sem fio,
que visa facilitar a divulgação de mensagens em uma comunidade acadêmica, baseado
em IoT usando Raspberry pi. O Raspberry pi é um computador completo de baixo
custo, ele é usado acoplado em monitores através de uma conexão via cabo HDMI. Está
configurado para abrir uma página web usando Wi-fi toda vez que é inicializado de
517
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
forma automática, nesta página são exibidas de forma cíclica imagens no formato jpg
(Joint Photographics Experts Group) contendo informações que antes eram divulgadas
através de papéis que exigia um esforço humano para distribuí-los, o gasto com papel,
bem como o gasto com tinta da impressora e o trabalho para trocar esses avisos
manualmente em quadros onde eram fixados.
Para isso foi criado um sistema Web chamado SECI (Sistema Eletrônico de
Comunicação Interna), onde os responsáveis pelo setor de comunicação gerenciam em
tempo real as imagens exibidas em cada monitor espalhados pela instituição.
Esse trabalho teve como princípio de desenvolvimento o método de
aprendizagem baseada em projeto (ABP) que permite identificar problemas do mundo
real e transformar ideias em produtos que atenderão às necessidades da comunidade que
fazem parte.
2. Trabalhos Relacionados
Nesta seção, são apresentados trabalhos relacionados que têm por objetivo propagar
informações para um determinado grupo de indivíduos usando a tecnologia para
melhorar a forma de distribuição de avisos, bem como reduzir custos com materiais.
O Multi Electronic Notice Board criado por Kruthika Simha, Shreya, Chethan
Kumar, Parinitha C, Shashidhar Tantry, utiliza-se um LCD alfanumérico para exibir
mensagens de texto. O circuito contém um centro de controle com um módulo GSM,
que é usado para receber os avisos como SMS. Esse centro de controle é usado para
gerenciar todos os LCDs que receberam os textos. A comunicação entre o centro de
controle e os centros de exibição é conseguida usando um protocolo de comunicação
serial com fio, enquanto os avisos podem ser enviados de qualquer lugar do mundo. O
uso de GSM é vantajoso, já que o ponto de envio não precisa ser vinculado a um local
fixo, aumentando substancialmente o alcance da comunicação. A introdução de um
módulo GSM neste sistema torna a mensagem exibida dinâmica, ou seja, o aviso que
está sendo exibido na placa muda conforme e quando as mensagens são enviadas.
Entretanto o LCD é limitado a exibir somente texto, apesar de poder variar o tamanho
do LCD ele sempre exibirá o mesmo formato de conteúdo alfanumérico.
Neeraj Khera, Divya Shukla, Shambhavi Awasth propuseram um sistema que
usa comunicação de dados em série sem fio Bluetooth ou Wi-Fi em exibição de
mensagens em um quadro de notificação digital remoto. Os programas de aplicação
baseados em Android disponíveis para comunicação Bluetooth e Wi-Fi para
dispositivos de assistente digital pessoal (PDA) são usados para transmitir as mensagens
de texto alfanuméricas. Para este fim, uma placa de microcontrolador de baixo custo
(Arduino Uno) está programada para receber mensagens de texto alfanuméricas em
qualquer um dos modos de comunicação selecionados. A placa de microcontrolador
Arduino Uno é programada para receber a mensagem do usuário remoto em tecnologia
de comunicação sem fio Bluetooth e Wi-Fi. Assim como o Multi Electronic Notice
Board, o sistema proposta é limitado a exibir também conteúdo alfanumérico.
O SECI, apresentado neste artigo, melhora os sistemas apresentados nesta seção
ao não se limitar a um LCD alfanumérico para exibir os avisos, visto que o SECI utiliza
qualquer monitor que tenha entrada HDMI, como monitores para computadores, TVs
etc. Por usar o modo gráfico do Raspberry pi o sistema utiliza um navegador web para
518
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
exibição, logo pode usar todos os recursos e os formatos aceitos em um browser como
jpg, png, gif, mp4, etc. No caso foi escolhido o formato jpg para exibir imagens em
forma fullscreen nos monitores.
3. Metodologia
Utilizando o princípios de ABP [Nobre et al. 2006], foi analisado o ambiente acadêmico
em busca de problemas onde o uso da tecnologia poderia tornar-se presente. Observou-
se como era feita a divulgação de avisos internamente na comunidade acadêmica, quais
métodos e recursos eram utilizados. Na instituição de ensino superior utilizada na
pesquisa, refletiu o que se é possível ver em muitas instituições de ensino, o uso de
flanelógrafos espalhados pelas dependências da instituição, onde são fixados os avisos
pelo setor de comunicação, que é o responsável pela distribuição dos avisos em cada
flanelógrafo, que acarreta no consumo excessivo de papéis.
O SECI disponibiliza uma página web onde os avisos em formato jpg ficam
sendo exibidos de forma cíclica. Essa página é aberta em um browser através de um
sistema embarcado Linux composto por um Raspberry Pi (RPi) conectado ao monitor
via cabo HDMI, ela também pode ser acessada pelos alunos via dispositivos móveis,
como pode ser visto na Figura 1.
519
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
arquivo a cada 5 segundos, caso alguma mudança tenha ocorrido o navegador web
é atualizado, exibindo assim os avisos novos em todos os monitores e na página
acessada pelos dispositivos móveis.
520
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A segunda parte fica com a configuração do Raspberry Pi para agir como a CPU
acoplada em cada monitor, sendo responsável por exibir o slideshow com os avisos
assim que é ligada sua fonte de alimentação. Para automatizar a rotina do RPi foi
utilizado um Script que é iniciado junto com o boot do sistema embarcado. As
configurações desse Script possibilitam que no momento da inicialização seja
apresentado o browser de forma automática em modo fullscreen e também é
responsável por verificar se houveram atualizações nas imagens do servidor.
As mudanças feitas no sistema operacional do RPi foram:
Essas mudanças permitem que os Rpis conectados aos monitores não precisem
ser acessados para realizar qualquer tipo de configuração, assim logo que forem ligados
já estarão exibindo o sistema Web responsável pelos avisos.
521
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
No script f5.sh existe uma estrutura de repetição que fica a cada 5 segundos
consultando um arquivo texto hospedado no servidor. Uma verificação nesse arquivo é
necessária para saber se houve alguma imagem nova adicionada para exibição. No
momento em que o administrador do SECI envia um aviso novo esse arquivo de texto é
modificado, assim ao consultá-lo novamente, o RPi sabe que houve uma alteração no
servidor, então o f5.sh executa os sequintes comandos:
4.1. Apache
O Servidor Web Apache foi escolhido por ser consistente, possibilitar uma
quantidade grande de ferramentas e por ter compatibilidade com o sistema operacional
do Raspberry Pi (2016). A escolha por SECI ser um sistema web ocorreu pelo fato de
tornar a atualização dos avisos mais dinâmica e de forma que ocorra em todos os
sistemas embarcados utilizados nos monitores de forma simultânea.
4.2. Raspberry Pi
O Raspberry Pi (Figura 4), considerado o menor computador do mundo, possui
o tamanho de um cartão de crédito, conexões USB para conectar o teclado e mouse
utilizados em computadores de mesa. É possível conectá-lo à TVs com saída RCA ou
HDMI, além de ter um baixo custo de hardware e custo zero em seu software de sistema
embarcado. Todo o hardware é integrado em uma única placa. Têm em sua capacidade a
possibilidade de se desenvolver tudo que um computador convencional faz, como
navegar, criar planilhas, reproduzir vídeos, processar textos, jogos, entre outras tarefas
mais complexas, como o monitoramento online. Dessa forma, é utilizado por crianças
de todo o mundo para aprender como funcionam os computadores, como manipular o
mundo eletrônico ao redor deles, e como programá-los.
522
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4.4. HTML/CSS/JavaScript
A junção dessas três linguagens possibilitou a criação do site como pode ser
visto da Figura 2, onde é gerada uma imagem jpg nas dimensões da TV. A figura 5
mostra uma das estações com o Raspberry pi conectado a uma TV, o sistema foi
montando no restaurante acadêmico da universidade e funcionou de forma correta
substituindo os avisos com papel.
523
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Considerações Finais
Como foi visto neste trabalho, o sistema embarcado Linux composto por um Rpi
utilizado como controlador do sistema IoT de exibição dos avisos funcionou como
projetado utilizando técnicas de aprendizagem baseada em Projeto no início da
disciplina de sistemas embarcados, quando foi concebida essa aplicação.
Foi apresentado neste trabalho o desenvolvimento de um sistema embarcado
Linux baseado em Raspberry pi para uso em tecnologia digital de informação e
comunicação no intuito de gerar avisos por imagens utilizando princípios de IoT. O
projeto proposto gerou um produto, desenvolvido utilizando conceitos de aprendizagem
baseada em projeto (ABP), chamado SECI (sistema eletrônico de comunicação interna)
que é utilizado pelos alunos para visualização de avisos online utilizando dispositivos
móveis conectados à Internet.
6. Referências
BEN ER W N (2014) “ z : çã f
para o século XXI. Porto Alegre: Penso.
CANTINI, M. C; (2006) “O desafio do professor frente às novas tecnologias.
Disponível em:
http://www.pucpr.br/eventos/educere/educere2006/anaisEvento/docs/CI-081-TC.pdf
Acesso em: 17/05/2016
NOBRE, J. C. S; (2006) “ z B P (P -Based Learning
– PBL) fw ” : http://www.br-
ie.org/pub/index.php/sbie/article/download/486/472. Acesso em 30/06/2017.
KRUTHIKA SIMHA, SHEYA, CHETHAN KUMAR, PARINITHA C,
SHASHIDHAR TANTRY. (2016) Electronic notice board with multiple output display
in Paralakhemundi, India. http://ieeexplore.ieee.org/document/7955701/
NEERAJ KHERA, DIVYA SHUKLA, SHAMBHAVI AWASTHI. (2016)
Development of simple and low cost Android based wireless notice board in Noida,
India. http://ieeexplore.ieee.org/document/7785031/
R y P (2016) “ R y P M ”
https://www.raspberrypi.org/documentation/hardware/computemodule/RPI-CM-
DATASHEET- 1_0 f ”
RICHARDSON, M. e WALLACE, S.(2013) Instalação e Configuração, In: M.
R S W (2013) “P P R y P ” Sã P :
Novatec Editora, p.17-36.
524
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Sistemas de Informação
Universidade Federal do Piauı́ - UFPI
rosaljoao,ricardobrunof,brenamaia12,rocaleal98}@gmail.com
1. Introdução
De acordo com um relatório apresentado pela Ericsson no ano de 2012, o número de
Smartphones triplicará até 2018, chegando à marca de 3,3 bilhões de unidades no mundo.
525
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
526
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Mot
oG Pl
ay SM-
J710MN LG D337 SM-
J500M LG D392
2.2. AppCompare
Fazendo parte da plataforma de avaliação de desempenho distribuı́da, foi desenvolvido
um aplicativo que realiza comparação automática entre aplicativos móveis, considerando-
se o critério de consumo energético. A aplicação submetida funciona em cinco fases:
1. Seleção de Aplicativos: Cada usuário pode selecionar um ou mais aplicativos que
estão instalados no sistema para realizar a investigação. A Figura 2 apresenta a
tela para seleção de aplicativos.
2. Configuração do Experimento: Nesta etapa o usuário deve escolher o número
de observações que serão realizadas pelo AppCompare. O número de observações
definido é o mesmo para todos os aplicativos avaliados;
3. Execução do Experimento: Nesta etapa são abertos, em sequência (não simulta-
neamente), os aplicativos avaliados. Após a abertura do aplicativo em avaliação,
o usuário pode usar funcionalidades que deseja conhecer seu gasto energético
e comparar com os outros selecionados. Por exemplo, a comparação entre o
consumo energético do serviço de mensagens do Whatsapp e Messenger seria
um experimento possı́vel. Para execução do experimento foi adotado o conceito
de observações por segundo, onde são capturados os consumos energéticos das
aplicações avaliadas no intervalo de um segundo, formando uma observação. O
tempo de execução do experimento é variável conforme o número de observações,
se forem 30 observações, será, assim, 30 segundos para monitoramento do aplica-
tivo.
4. Geração de Relatório em Gráficos: Nesta etapa o AppCompare executa uma
análise estatı́stica e gera gráficos de fácil interpretação do usuário. Um gráfico
527
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
(
A) (
B)
(A) (B)
Figura 3. (A) Gráficos de Barras e (B) Boxplot
3. Experimento
O experimento foi baseado na execução do AppCompare por um conjunto de modelos de
Smartphones distintos. Os aplicativos móveis investigados foram: WhatsApp e Messen-
ger. O número de observações para cada aplicativo foi 30.
528
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
As mensagens definidas são importantes para avaliação já que sua configuração
impacta na avaliação do gasto energético do AppCompare. Para o teste T-Student feito,
o aplicativo utiliza a hipótese que o WhatsApp tem consumo energético distinto do Mes-
senger. Por padrão, o aplicativo considera sempre esta hipótese (de médias diferentes).
Se o resultado for True, então, os aplicativos tem consumos diferentes, caso contrário
(False) os aplicativos possuem consumos estatisticamente iguais. A Figura 5 apresenta os
gráficos BoxPlot gerados para os cinco modelos de Smartphones avaliados.
Em todas as comparações executas, a hipótese padrão (h0) sempre foi classificada
como verdadeira, ou seja, as médias de consumo foram sempre distintas. O aplicativo
AppCompare apresenta textualmente para o usuário que o consumo energético dos apli-
cativos é distinto.
Nos testes apresentados na Figura 5, é possı́vel perceber que o aplicativo Messen-
ger teve maior consumo energético em relação ao WhatsApp em todas as situações. A
ausência de intersecções entre as caixas dos gráficos BoxPlot representa que as medições
foram maiores sempre para o Messenger. O modelo de Smartphone que vale a pena ser
destacado é o Samsung Galaxy S3 SGH-T999 que teve um gasto pequeno e peculiar para a
troca de mensagens no WhatsApp, enquanto que teve um gasto elevado para o Messenger.
Ao avaliar a figura 6, percebe-se que o consumo energético do Messenger é su-
perior em todos os momentos. Isto se deve ao fato de que o Facebook Messenger possui
muito mais recursos do que o Whatsapp, como lista de contatos Online, Status, Jogos
online (Opções Não Existentes no Whatsapp), requerindo maior poder de processamento,
529
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
(A) (B)
(C) (D)
(E)
Figura 5. Gráficos BoxPlot sobre os Testes
4. Trabalhos Relacionados
Esta seção apresenta os trabalhos relacionados ao presente estudo ordenados por ano (de
2010 a 2014). Para melhor visualização, a Tabela 1 elenca quatro fatores comparativos:
Métricas de Monitoramento, Comparação Automática e Contexto. A seguir, estes fatores
são comentados.
530
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
40 40
20 20
0 0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Observações Observações
Modelo XT1068
10
Gasto Energético (J)
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Observações
WhatsApp Messenger
531
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Conclusão
Este artigo apresentou uma plataforma chamada AppCompare para avaliação de gasto
energético de aplicativos móveis. A comparação automática com teste T-Student foi re-
alizada com os aplicativos WhatsApp e Messenger. O experimento realizado baseou-se
na execução do AppCompare por Smartphones de modelos distintos, e teve as mesmas
configurações (rede, número de observações) para aumento de rigor. O resultado das
execuções demonstrou que o aplicativo WhatsApp teve menor gasto energético em todos
os modelos no quesito trocas de mensagens de texto. O modelo Samsung Galaxy S3
SGH-T999 teve o menor gasto no WhatsApp, e inversamente um gasto bem elevado para
o Messenger. Representando quanto o consumo pode variar pela mudança de aplicativo
de troca de mensagens de texto. O gasto de energia pelo WhatsApp nos modelos tem
valores com menor amplitude, sem existência de picos elevados de consumo, ao contrário
do Messenger. A inicialização foi sempre superior para o aplicativo Messenger visto seu
maior conjunto de funcionalidades que necessitam ser carregadas. Para trabalhos futuros,
pretende-se possibilitar a comparação com três ou mais aplicativos utilizando técnicas es-
tatı́sticas como a ANOVA. Além disso, usar uma técnica ou mecanismo que possibilite
mensurar a precisão do aplicativo no consumo energético.
Referências
Adhianto, L., Banerjee, S., Fagan, M., Krentel, M., Marin, G., Mellor-Crummey, J., and
Tallent, N. R. (2010). Hpctoolkit: Tools for performance analysis of optimized parallel
programs. Concurrency and Computation: Practice and Experience, 22(6):685–701.
Choi, M. (2013). Power and performance analysis of smart devices. Int. J. Smart Home,
7(3):57–66.
Hao, S., Li, D., Halfond, W. G., and Govindan, R. (2013). Estimating mobile application
energy consumption using program analysis. In Software Engineering (ICSE), 2013
35th International Conference on, pages 92–101. IEEE.
Hao, S., Liu, B., Nath, S., Halfond, W. G., and Govindan, R. (2014). Puma: Programma-
ble ui-automation for large-scale dynamic analysis of mobile apps. In Proceedings of
the 12th annual international conference on Mobile systems, applications, and servi-
ces, pages 204–217. ACM.
Jung, W., Kang, C., Yoon, C., Kim, D., and Cha, H. (2012). Devscope: a nonintrusive and
online power analysis tool for smartphone hardware components. In Proceedings of
the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign
and system synthesis, pages 353–362. ACM.
Lee, J., Joe, H., and Kim, H. (2012). Smart phone power model generation using use pat-
tern analysis. In Consumer Electronics (ICCE), 2012 IEEE International Conference
on, pages 412–413. IEEE.
Saipullah, K. M. (2012). Opencv based real-time video processing using android
smartphone. International Journal of Computer Technology and Electronics Engi-
neering, 1(3):1–6.
Silva-Filho, A. G., Bezerra, P., Silva, F., Júnior, A. L., Santos, A. L., Costa, P. H., and
Miranda, R. C. (2012). Energy-aware technology-based dvfs mechanism for the an-
532
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
533
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
Um sistema de transmissão de energia elétrica interconecta as centrais de geração aos lo-
cais de consumo, devendo ser operado de forma a suportar quaisquer mudanças nos perfis
de geração e de carga de potência [Momoh 2012]. Nos sistemas de transmissão, o con-
trole da magnitude de tensão possui um papel fundamental para a sua operação segura,
pois se as magnitudes de tensão estiverem fora dos limites pré-definidos por órgãos de
regulamentação, o sistema elétrico pode ser levado a operar próximo a condições críti-
cas [Kundur et al. 2004].
Para evitar tais cenários, os operadores do sistema possuem a sua disposição me-
canismos de controle como: geradores síncronos, transformadores em fase, bancos de
534
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
535
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para encontrar a relação entre variações nas injeções de potência reativa com varia-
ções nas magnitudes de tensão, desconsidera-se que as injeções de potência ativa variem
(∆P (θ, V ) = 0). Dessa forma, consideram-se apenas as variações de potência reativa
(∆Q (θ, V )) como resultantes da combinação entre a matriz Jacobiana J (θ, V ) das equa-
ções de balanço de potência com as variações nos ângulos de fase (∆θ) e as magnitudes
de tensão (∆V ).
0 ∆θ
= J (θ, V ) (2)
∆Q (θ, V ) ∆V
Considerando que:
" ∂P ∂P #
∂θ ∂V J1 J2
J (θ, V ) = = (3)
∂Q ∂Q J3 J4
∂θ ∂V
536
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
−1
∆VG = JQV ∆QG (8)
A metodologia de controle VSF (Voltage Sensitivity Factor) [Löf et al. 1992] (apresen-
tada no Algoritmo 2), aplica índices de sensibilidade obtidos por meio da inversa da ma-
−1
triz Jacobiana reduzida JQV e recebe como entrada os vetores ∆VC e ∆QG , calculados
de acordo com (6) e (7), e a matriz JQV , calculada de acordo com (5). Inicialmente, ela
determina a barra i que possui a maior violação de tensão (Passo 2). Em seguida, a matriz
S com os índices de sensibilidade é computada (Passo 3). Depois, define-se a barra j a ser
ajustada, aquela cujo índice de sensibilidade da i-ésima coluna de S tiver o maior valor
(Passo 4). Então, calcula-se o ajuste na magnitude de tensão (∆VG ) para ser realizado o
despacho de potência reativa necessário (Passo 5).
537
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Resultados e Discussões
Nesta seção são apresentados os resultados da aplicações da abordagem proposta. Para
avaliá-la é apresentado um cenário de teste com violação da magnitude de tensão. A deter-
minação desse cenário é feita por meio de alterações nas magnitudes de tensão das barras
de controle e/ou modificando-se o carregamento do sistema. Simulações computacionais
são realizadas no sistema IEEE de 57 barras, que representa uma porção do sistema elé-
trico localizado na Região Centro-Oeste dos Estados Unidos [IEEE 1993] e caracterizado
pelo conjunto de barras de controle G = {1, 2, 3, 6, 8, 9, 12}.
A Tabela 1 apresenta os valores (Vk (p.u.), θk (graus), Pk (M W ), Qk (M V ar))
que caracterizam o estado das barras dos sistema, além disso são considerados ativos
todos os taps fixos do sistema. Na Tabela 1 são exibidas apenas as barras que foram
alteradas para se obter as violações de tensão.
538
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Por fim, o despacho de potência reativa nas barras de controle, após a execução dos
ajustes definidos pela metodologia VSF para corrigir a violação de tensão nas barras 31 e
46, é apresentado na Tabela 4. Os ajustes são executados nas barras 8 e 12, que possuem
os maiores índices de sensibilidade com relação as barras 31 e 36, respectivamente. A
barra 8 injeta potência reativa para corrigir a magnitude de tensão da barra 31, enquanto
a barra 12 absorve potência reativa para corrigir a violação de tensão da barra 46.
539
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
28.1
28
27.9
27.8
0 1 2 3
Passo
Sequência de Ajustes
Referências
Calderaro, V., Galdi, V., Lamberti, F., and Piccolo, A. (2015). A smart strategy for vol-
tage control ancillary service in distribution networks. IEEE Transactions on Power
Systems, 30(1):494–502.
540
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
541
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
(leosilvadrums100, diegofernando5672)@gmail.com
1. Introdução
As Redes Móveis estão em crescimento no cenário mundial devido à procura a uma ampla
conexão de dados. Chamando a atenção das empresas e da comunidade cientıfica para o
estudo e desenvolvimento dessa tecnologia. Podemos citar como exemplos de tecnologias
originadas das Redes Móveis: Serviços de Telefonia Móvel, Localização GPS, Rede 3G
e 4G e também Redes Veiculares, entre outras [Rodrigues et al. 2015].
542
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Com o avanço das pesquisas criou-se a Rede Móvel Ad Hoc (Mobile Ad Hoc
Network-MANETs) possibilitando haver uma infraestrutura não inteiramente fixa ocasio-
nando melhorias na acessibilidade e mobilidade [Sant’Ana 2014]. Oriunda das MANETs
derivou-se as Redes Veiculares Ad Hoc (Vehicular Ad Hoc Network-VANET). Elas são
redes autogeradoras responsáveis por sua própria infraestrutura e entrega de pacotes por
meio de veı́culos [Palmeira and dos Santos 2015].
O padrão IEEE 802.11p define a camada fı́sica conhecida como Dedicated Short-
Range Comunications (DSRC) que opera nos EUA em uma faixa exclusiva de 75 MHz.
Na Europa a faixa de frequência varia entre 5,860 GHz e 5.900 GHz, de acordo com a
especificação da European Telecommunications Standards Institute (ETSI), com divisão
de faixa de frequência em canais de 10 MHz [Barcelos et al. 2014].
As aplicações funcionais são quase inexistentes e os trabalhos que focam em testes
de campo são escassos por conta do alto custo da tecnologia e dificuldade ao seu acesso
[Costa 2015]. Tal fato levou ao surgimento de pesquisas paralelas (uma das motivações
do trabalho atual) para o desenvolvimento de tecnologias que podem se adaptar ao mesmo
desempenho e funcionalidades das tecnologias especı́ficas para as VANETs.
[Sukuvaara 2012] utilizou do padrão IEEE 802.11p para Redes veiculares execu-
tando testes práticos capazes de proporcionar comunicações V2I (Veı́culo-para-Veı́culo),
V2V (Veı́culo-para-Infraestrutura) e V2X (Hı́brido) de maneira eficiente com os dispo-
sitivos a rádio NEC Linkbird-MX. As métricas empregadas se propuseram a analisar
medições sobre o tempo de conexão e vazão dos veı́culos.
No trabalho de [Teixeira et al. 2013] foi feita outra análise no mesmo padrão,
porém com dispositivos UNEX DCMA-86P2 instaladas em dois notebooks. Os resul-
tados indicaram que o padrão IEEE 802.11p supriu a latência, jitter, vazão, taxa de perda
de pacotes e tempo de associação necessários para haver o QoS (Qualidade de Serviço,
em inglês, Quality of Service) mı́nimo.
Segundo [Barcelos et al. 2014] o dispositivo UNEX DCMA-86P2 é um dos
únicos no mercado que dão suporte ao padrão IEEE 802.11p. Para sobressair ao custo
elevado, ele utilizou os dispositivos NEC Linkbird-MX para avaliar o padrão. Os resul-
tados do seu trabalho mostraram que a taxa de perda de pacotes manteve-se instável em
distâncias curtas com atraso inferior a 100 ms e com velocidades razoavelmente altas.
Em outro trabalho mais recente, [Sarakis et al. 2016] também utiliza dispositivos
NEC Linkbird-MX para uma avaliação em transmissão multimı́dia entre veı́culos. As
transmissões foram feitas com vı́deos e velocidades diferentes em ambientes distintos.
Como conclusão os resultados se mostraram aceitáveis com a configuração adequada,
manipulação da comunicação disponı́vel e parâmetros de aplicação.
Atualmente no Brasil, o custo dos dispositivos que possuem suporte ao padrão
IEEE 802.11p continuam elevado, além de serem escassos e de difı́cil implantação nos
veı́culos, pois precisam de grandes recursos computacionais para serem instalados. O
presente trabalho pretende desenvolver um protótipo que possa sobressair aos altos custos
para realização de testes em campo.
Foram utilizados os módulos ZigBee no padrão IEEE 802.15.4 como uma alter-
nativa ao padrão IEEE 802.11p. Os resultados apontaram que os módulos Zigbee supor-
543
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
taram mais 50% na taxa de entrega de quadros para pequenas velocidades nas aplicações,
porém as taxa declinou para altas velocidades com cargas de trabalhos diferentes.
Este trabalho está organizado como descrito a seguir. A Seção 2 apresenta o Back-
ground, sobre aspectos das VANETs. Na Seção 3 são apresentados os Trabalhos Relaci-
onados. A Construção do Protótipo na Seção 4. Na Seção 5 Metodologia e Testes. As
avaliações são discutidas na Seção 6 e por fim na Seção 7 as conclusões são apresentadas.
2. Background
Há um conjunto de fatores ambientais e geográficos que podem influenciar na instalação
de qualquer tipo serviços de redes. [Kurose and Ross 2010]. Tratando das VANETs em
que os nós são dinâmicos a troca de informações depende muito da movimentação dos
mesmos para situações de contato para troca dos pacotes [Serrado et al. 2014].
Por fim a topologia da rede se torna inconstante e de difı́cil previsão, dificul-
tando um estudo prévio de rotas mais eficientes para que a comunicação à radio seja mais
confiável entre os nós. Podemos notar outros fatores como velocidade e distâncias dos
veı́culos que dificulta o contato mı́nimo para que ocorra o salto [Serrado et al. 2014].
544
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Trabalhos Relacionados
Nesta seção, podemos analisar algumas caracterı́sticas acerca de trabalhos relacionados
no contexto das VANETs. A Tabela 1 apresenta os critérios analisados, confrontando suas
contribuições, diferenças e semelhanças com relação com presente trabalho.
[Bhargav and Singhal 2013] Um Sistema de Emergência Resgates de Veı́culos Acidentados Sim Não Não
[Sant’Ana 2014] Uma Aplicação de Detecção de Colisão de Veı́culos Sim Não Não
[Karyemsetty et al. 2015] Sistema de monitoramento GPS em uma rede Zigbee Sim Não Não
No trabalho de [Bhargav and Singhal 2013] foi fornecida uma abordagem abran-
gente no desenvolvimento de um sistema de eficiente de missões de emergência para o
gerenciamento de resgates de veı́culos envolvidos em acidentes com meio do auxı́lio de
redes Ad-hoc Veiculares (VANETs). Os resultados mostram que os módulos ZigBee aten-
dem aos requisitos para a comunicação de carro para carro para transmissões multimı́dia.
O trabalho de [Sant’Ana 2014] é proposto o desenvolvimento uma aplicação de
detecção de veı́culos em possı́vel risco de colisão, com avisos para a resposta do usuário
para evitar acidentes. Foram realizados testes em ambientes de diferentes caracterı́sticas
545
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Construção do Protótipo
Para a viabilização da comunicação via rádio das aplicações foram adotados comunica-
dores Zigbee da Digi XBee Ecosystem baseados no padrão IEEE 802.15.4. Os protótipos
desenvolvidos foram dois nós: um deles instalados em um veı́culo e o outro em um note-
book à margem da pista. Na figura 2 estão os protótipos.
546
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
duino para a coleta para dos logs das mensagens. Na Aplicação offboard (RSU) está co-
nectado um módulo Xbee à uma entrada USB de um Notebook que executa um script se-
rial desenvolvido na linguagem Python. Ele é responsável por gravar o horário e conteúdo
das mensagens recebidas.
5. Testes e Metodologia
Para que seja feito um estudo estatı́stico sobre redes é necessário que se forneçam
parâmetros para a análise de métricas mais precisas. As métricas da RFC 2544 espe-
cificam testes que podem descrever as caracterı́sticas de desempenho em dispositivos de
redes e o formato correto em que os dados devem ser apresentados.
Foram enviados quadros de 32 bytes a 40 km/h e 80 km/h, 64 bytes a 40 km/k e
80 km/h e 84 bytes a 40 km/k e 80 km/h. As escolhas dos tamanhos dos quadros foram
embasadas na capacidade de transmissão da tecnologia. Pois a partir de 84 bytes é feita
a quebra e indexação de quadros em tamanhos menores. Na figura 3 está um compilado
com as fotos do ambiente de testes.
Para cada nı́vel foram realizadas 6 voltas, enviando 5 pacotes com 3 segundos de
atraso entre eles, a fim de analisar envios de 30 quadros seguidos (amostra mı́nima para
a estatı́stica). Os quadros foram enviados com seu conteúdo e ID de saı́da do aparelho
celular entre um carro e uma infraestrutura, a uma distância inicial de 20 metros até 60
metros em uma pista de aproximadamente 120 metros. No final das baterias de testes
totalizou 36 voltas (6 nı́veis vezes 6 voltas) com envios de quadros de tamanhos distintos
a velocidades diferentes.
6. Avaliação
Nesta seção são discutidas as avaliações acerca dos resultados. A variável medida é a taxa
de entrega obtida através do número de pacotes encaminhados com sucesso na arquitetura
V2I em um contexto rodoviário. Nas Figuras 4, estão os gráficos de barras com as taxas
de entrega dos quadros de 32 bytes, 64 bytes e 84 bytes em velocidades de 40 km/h e 80
km/h.
547
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7. Conclusão
Podemos concluir que o padrão pode ser adotado para aplicações que trabalham em con-
texto veicular, porém há uma série de particularidades a serem analisadas para que pos-
sam ser implementado em âmbito real. Alguns desses questionamentos diz respeito a
que tipo de aplicação se adequaria às tecnologias usadas nos protótipos (onboard e offbo-
ard), e também como as tecnologias se comportam em conjunto. Através dos resultados
notamos que o padrão IEEE 802.15.4, em relação a envios de dados consecutivos em pe-
quenas velocidades, suprem de forma positiva as entregas e o tempo de conexão útil para
o enlace dos nós. Entretanto há uma certa degradação da rede em altas velocidades para
todas as combinações feitas. Nota-se que o padrão se comportou de forma estável mesmo
com o aumento dos tamanhos dos quadros. Isso denota que o padrão atende a envios de
quadros mesmo que seu workload seja aumentado gradualmente e que possı́veis colisões
são recuperadas e reenviadas. A degradação em altas velocidades pode ter sido causada
pelos buffers dos módulos Zigbee e pela transferência de dados do bluetooth utilizado na
aplicação onboard. Para trabalhos futuros estuda-se a possibilidade de fazer uma medição
acerca da latência e taxa de transferência média dos quadros tomando uso de um método
mais aprimorado em combinações como o DoE (Desing Of Experiment).
548
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
Alves, R. d. S., Campbell, I. d. V., Couto, R. d. S., Campista, M. E. M., Moraes, I. M.,
Rubinstein, M. G., Costa, L. H. M., Duarte, O. C. M., and Abdalla, M. (2009). Redes
veiculares: Princıpios, aplicaçoes e desafios. Minicursos do Simpósio Brasileiro de
Redes de Computadores, SBRC.
Barcelos, V. P., Amarante, T. C., Drury, C. D., and Correia, L. H. (2014). Sistema de mo-
nitoramento de veıculos usando dispositivos no padrao ieee 802.11 p. XXXII Simpósio
Brasileiro de Redes de Computadores ee Sistemas Distribuı́dos, SBRC, page 20.
Bhargav, K. K. and Singhal, R. (2013). Zigbee based vanets for accident rescue missions
in 3g wcdma networks. In Global Humanitarian Technology Conference: South Asia
Satellite (GHTC-SAS), 2013 IEEE, pages 310–313. IEEE.
Costa, L. A. G. (2015). Análise da utilização de agentes de software em redes veiculares
hı́bridas utilizando zigbee.
Filho, S. G. P., de Sousa, R. S., and Soares, A. C. (2016). Impacto do uso de rsus em um
protocolo de controle de congetionamento de tráfego baseado em redes veiculares.
Karyemsetty, N., Samatha, B., and Rao, K. H. (2015). Design and deployment of vehi-
cle tracking system in vanets using xbee pro: Prototype model. In Communication
Networks (ICCN), 2015 International Conference on, pages 97–100. IEEE.
Kurose, J. F. and Ross, K. W. (2010). Redes de computadores e a internet (preferencial-
mente a 5a edição).
Palmeira, P. C. and dos Santos, M. P. (2015). Survey em redes veiculares usando o mixim
sobre o omnet++. Interfaces Cientı́ficas-Exatas e Tecnológicas, 1(2):47–56.
Rodrigues, D. d. S., Faria, D. B., and Azevedo, J. P. d. A. (2015). Telefonia móvel.
Sant’Ana, A. R. (2014). Sistema de detecção de colisão entre veı́culos utilizando gps e
zigbee.
Sarakis, L., Orphanoudakis, T., Leligou, H. C., Voliotis, S., and Voulkidis, A. (2016).
Providing entertainment app lications in vanet environments. IEEE Wireless Commu-
nications, 23(1):30–37.
Serrado, R. P., Pedroza, A. d. C. P., de Almeida, H. L. S., and Boas, S. B. V. (2014).
Proposta de roteamento para redes veiculares tolerantes a atrasos.
Shree, K. L., Penubaku, L., and Nandihal, G. (2016). A novel approach of using security
enabled zigbee in vehicular communication. In Computational Intelligence and Com-
puting Research (ICCIC), 2016 IEEE International Conference on, pages 1–5. IEEE.
Soares, R., Galeno, S., and Soares, A. (2016). Simulação de redes veiculares.
Sukuvaara, T. (2012). Field measurements of ieee 802.11 p based vehicular networking
entity. In Ubiquitous and Future Networks (ICUFN), 2012 Fourth International Con-
ference on, pages 135–139. IEEE.
Teixeira, F., Silva, V., Leoni, J., Santos, G., Souza, A., Macedo, D., and Nogueira, J.
(2013). Análise experimental de redes veiculares utilizando o padrão ieee 802.11
p. Anais do V Simpósio Brasileiro de Computação Ubı́qua e Pervasiva (SBCUP),
page 10.
549
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
No contexto geral, a internet hoje tem influenciado e facilitado a vida das pessoas,
porque vivemos num mundo de constante transformação aos mais diversos níveis,
políticos, social, econômico, educativo e tecnológico. Com esse meio é possível
explorar e trocar informações instantaneamente e aceder rapidamente a novas soluções
(SILVA, 2012).
Nesse contexto, quando se trata de criações para web e tecnologia em geral, é
550
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Aplicação SortSite
Durante o processo de avaliação da usabilidade da aplicação web SARI, foi utilizada a
plataforma de análise SortSite. Tal ferramenta verifica as falhas e os aspectos negativos
que, de alguma forma, prejudicam a experiência virtual do usuário. Não obstante, os
métodos de verificação utilizados são coerentes com os maiores padrões de
direcionamento da programação web no mundo. No processo de análise de desempenho
do SARI, foi utilizada a vertente para desktop, dentro do período de testagem gratuita.
Na página inicial da SortSite (Figura 1), diversas instruções são repassadas ao
usuário para que o processo de análise seja executado da maneira correta. Após a
inserção do site a ser verificado, a aplicação realiza, segundo a empresa desenvolvedora,
inúmeros testes de qualidade e desempenho, coerentes com as diretrizes estabelecidas
551
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. A plataforma DaSilva1
Por outro lado, durante o processo de verificação da acessibilidade do SARI, utilizou-se
a plataforma online DaSilva. Sendo o primeiro avaliador de acessibilidade de sites em
língua portuguesa, ela é uma ferramenta desenvolvida pela Acessibilidade Brasil em
parceria com a empresa W2B Soluções Internet. A avaliação do mecanismo consiste
nos princípios de acessibilidade estabelecidos pelo W3C/WAI2 (WCAG1 e WCAG2) e
pelo documento E-mag, desenvolvido pelo governo eletrônico brasileiro em parceria
com a Acessibilidade Brasil, possibilitando a análise das discrepâncias de todas as
páginas do site.
1
Disponível em: http://www.dasilva.org.br/.
2
As recomendações contidas no W3C explicam como tornar o conteúdo web acessível a pessoas com
deficiências. Destinam-se a todos os criadores de conteúdo web (autores de páginas e projetistas de sites)
e aos programadores de ferramentas para criação de conteúdo.
552
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Estudo de Caso
O presente estudo de caso foi desenvolvido para verificar a eficácia da ferramenta
SortSite no que diz respeito ao processo de identificação dos problemas de usabilidade e
acessibilidade de interfaces da WEB. Para isso, foram realizadas as avaliações de
usabilidade e acessibilidade na aplicação SARI (Figura 2). Tal aplicação web – também
adaptada para dispositivos móveis - é utilizada como instrumento online para controle e
registro da manipulação – compra, venda, reserva e retirada - dos tickets de
alimentação, necessários para acesso dos alunos e servidores ao restaurante.
553
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
554
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
555
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Conclusão
O desempenho de interfaces computacionais possui papel crucial no sucesso de uma
aplicação web. Em tal âmbito, neste artigo, foi demonstrada a análise de usabilidade e
acessibilidade da plataforma online SARI do IFPI – Campus Floriano através dos testes
realizados, respectivamente, pelos mecanismos de verificação SortSite e DaSilva. Os
resultados permitiram identificar as deficiências estruturais, gráficas e funcionais que
prejudicam a interação entre o SARI e os usuários. A avaliação foi baseada nos
parâmetros, consórcios e organizações que regulamentam a programação para a web.
Durante o processo de verificação, o SARI foi exposto a diversos testes de
usabilidade e acessibilidade, oriundos das ferramentas de análise utilizadas no estudo.
Os resultados individuais foram apresentados e organizados em um panorama geral que
representa as principais as falhas da plataforma institucional. Dessa forma, tais erros
podem ser agrupados em duas vertentes: na usabilidade, constatou-se que a rotulação
dos botões não apresenta a função executada, a indisponibilidade do botão “voltar” em
algumas interfaces, o alongamento demasiado das URLs, os títulos inconsistentes das
páginas e as deficiências dos botões de rádio do sistema; na acessibilidade, verificou-se
a ausência de descrição dos componentes do site, a utilização em grande parte através
somente do mouse e a inconsistência de apresentação dos elementos de mesma
funcionalidade do SARI.
A partir desse momento, os problemas evidenciados serão transmitidos ao Setor
de Tecnologia da Informação do IFPI – Campus Floriano para que sejam realizadas as
devidas alterações computacionais a fim de reparar ou diminuir os erros de usabilidade
e acessibilidade detectados. Não obstante, as sugestões de correção, originárias dos
instrumentos de análise, também serão apresentadas à repartição competente visando
auxiliar no processo de aprimoramento do SARI.
Dessa forma, sugere-se ao Setor de TI da Instituição que promova um canal de
comunicação direto com os usuários da plataforma. Essa espécie de ouvidoria
possibilitará um feedback mais rápido e ágil dos estudantes e servidores que utilizam o
restaurante institucional, favorecendo o aperfeiçoamento constante da aplicação web e a
melhoria dos serviços alimentícios.
556
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
FAÇANHA, Agebson Rocha; FIGUEIREDO, Renato Busatto; FÉLIX, Phyllipe do
Carmo. Procedimentos para a análise de acessibilidade de sites. Disponível em:
<http://www.infobrasil.inf.br/userfiles/Procedimentos para a análise de
acessibilidade de sites.pdf>. Acesso em: 16 jan. 2017.
GNÁCIO, Edilson Antonio; CARVALHO, José Oscar Fontanini de. Avaliação da
acessibilidade de sites oficiais de pesquisa no Brasil por pessoas com deficiência.
Encontros Bibli: revista eletrônica de biblioteconomia e ciência da informação, [s.l.],
v. 13, n. 26, p.131-146, 24 out. 2008. Universidade Federal de Santa Catarina
(UFSC). http://dx.doi.org/10.5007/1518-2924.2008v13n26p131.
IFPI – CAMPUS FLORIANO. SARI – Sistema de Acesso ao Restaurante
Institucional. Disponível em: <http://www.floriano.ifpi.edu.br/sari/>. Acesso em: 09
set. 2016.
NIELSEN, Jakob. LORANGER, Hoa. Projetando Websites. Traduzido por Edson
Furmankiewicz & Carlos Schafranski. Rio de Janeiro: Campus, 2006. Tradução de:
Prioritizing web usability.
POWERMAPPER. Website Error Checker: Accesibility & Link Checker -
SortSite. Disponível em: <http://www.powermapper.com/products/sortsite/>.
Acesso em: 09 set. 2016.
SHAWN L.H, and participants of the education and Outreach Working Group (EOWG)
(2005) “Introduction to Web Accessibility”. Disponível em: . Acesso em: 16 jan
2017.
SILVA, Maria Luciana da. A INTERNET E SUAS FACILIDADES. 2012.
Disponível em: <http://terceiroperiododehistoria.blogspot.com.br/2012/06/internet-e-
suas-facilidades.html>. Acesso em: 09 set. 2016.
SILVEIRA, Diego Santana; NUNES, Maria Augusta Silveira Netto. AVUSABILITY:
UMA APLICAÇÃO PARA APOIAR A AVALIAÇÃO DE USABILIDADE DE
INTERFACES DA WEB. Geintec, São Cristovão, v. 3, n. 5, p.251-260, jan. 2013.
SOUSA, Felipe Franco de; OSÓRIO, Marcos Coimbra; ANDRADE, Edméia L. P. de.
Proposta de avaliação de acessibilidade em sites por deficientes visuais.
Disponível em:
<http://www.aedb.br/seget/arquivos/artigos08/407_ArtigoFINAL_Alterado.pdf>.
Acesso em: 16 jan. 2017.
557
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
O interesse pela exploração da caprinovinocultura vem aumentando gradativamente nos
países desenvolvidos, onde o uso de tecnologias, com o objetivo de aumentar a
produtividade já é significativo [Vieira 2006]. No entanto, as enfermidades parasitárias
causadas por nematódeos gastrintestinais estão presentes nos rebanhos em todo mundo,
causando sérios prejuízos econômicos aos produtores [Lima 2007].
Um dos principais responsáveis pelas parasitoses gastrintestinais, que afetam a
produtividade do rebanho, é o nematódeo Haemonchus contortus (HC), que se destaca
em mais de 80% dos casos. O controle de verminose em caprinos e ovinos é geralmente
realizado com o uso de anti-helmínticos na vermifugação do rebanho, porém, o uso
indiscriminado dessas drogas por parte dos produtores, pode tornar o rebanho resistente
a produtos antiparasitários do HC [Vieira 2006].
1
Caprinos são mamíferos da espécie Capra aegagrus hircus (bodes, cabras e cabritos).
2
Ovinos são mamíferos da espécie Ovis aries (ovelhas, carneiros e borregos).
558
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Diante dessa realidade, na década de 90, foi desenvolvido por pesquisadores sul-
africanos o método FAMACHA (FAffa MAlan CHArt), cartão guia que tem como
objetivo identificar clinicamente animais que apresentem diferentes graus de anemia,
frente à infecção pelo HC. Possibilitando assim, o tratamento de forma seletiva, sem
necessidade de recorrer a exames laboratoriais, onde são vermifugados apenas os animais
que apresentam maior grau de anemia [Molento et al. 2004]. Apesar de a ferramenta ter
sido implementada com sucesso em vários países desde a sua criação, como qualquer
outro método, apresenta taxa de falhas que são atribuídas a fatores como luminosidade e
erro humano ao comparar a conjuntiva do animal ao cartão [Demoliner e Alves 2017].
Neste sentido, o objetivo desta pesquisa é desenvolver uma ferramenta
computacional alternativa ao método FAMACHA, que possibilite ao produtor uma
avaliação mais precisa com a utilização de dispositivos móveis. Isto, através de aplicativo
que a partir da captura de uma foto do olho do animal, seja capaz diagnosticar
automaticamente o grau de anemia do pequeno ruminante, com o emprego de redes
neurais artificiais.
2. Referencial Teórico
Diante dos avanços tecnológicos, cada vez mais é necessária à criação de processos que
auxiliem as pessoas na busca por resultados mais rápidos e precisos em suas atividades,
sejam na área da indústria, agropecuária, saúde, etc. Nesse contexto, a Visão
Computacional (VC) é uma área da ciência que vem avançando e auxiliando na evolução
e desempenho dos processos realizados pelo homem [Borth et al. 2014].
Sabe-se também que uma das áreas onde há constante estudo é a área de
Inteligência Computacional (IC), o que é de fácil verificação devido ao fato desta área
buscar modelar e reproduzir funções de um órgão vital e complexo do ser humano: o
cérebro [Zhang et al. 2013]. Aliado a esse campo de estudo está à área de
Processamento Digital de Imagens (PDI), onde também traz o desafio de reproduzir a
função dos olhos humanos [Almeida 2014].
Nesse sentido, acredita-se que a identificação do grau de anemia em caprinos e
ovinos por meio de dispositivos móveis, baseada no método FAMACHA, só é possível
de ser realizada automaticamente se forem combinadas técnicas que mesclam as áreas de
VC, IC e PDI, estas que envolvem várias outras subáreas multidisciplinares.
559
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Quanto a vermifugação dos animais guiadas a partir do cartão, nos dois primeiros
graus (1 e 2) a coloração bem vermelha indica que os animais não apresentam traços de
anemia. A partir do grau 3 já é indicada a vermifugação. Nos graus seguintes (4 e 5) a
vermifugação é imprescindível, pois a mucosa apresenta palidez intensa. No último grau
é indicado a suplemento alimentar ao animal. [Chagas, Carvalho e Molento 2007].
560
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
saída outra imagem modificado de acordo com filtros aplicados sobre a imagem de
origem, sejam eles de correções ou de outro fim desejado. Segundo os autores
[Marengoni e Stringhini 2009], “podemos dizer que processamento de imagens é um
processo onde a entrada do sistema é uma imagem e a saída é um conjunto de valores
numéricos, que podem ou não compor uma outra imagem”.
Existem diversos algoritmos, ferramentas e frameworks que permitem a
implementação do PDI através do computador. Onde se destaca o OpenCV, que é
gratuito e implementado na Linguagem C/C++ com portes para outras linguagens, como
por exemplo, Java (Android) e Python [Alves 2016].
561
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Metodologia de Desenvolvimento
Primeiramente, faz-se necessário um maior aprofundamento do estudo sobre vários
temas que envolvem o desenvolvimento do aplicativo proposto, tanto teórico como
prático. Para que assim, seja possível desenvolver um aplicativo com técnicas de visão
computacional, que realize um prévio processamento das imagens capturadas por
dispositivo do produtor e, em seguida, classifique a mesma por redes neurais treinadas
para diagnosticar o grau de anemia do pequeno ruminante.
De início, serão utilizadas imagens de bancos de dados públicos e devidamente
tratadas. Como também, planeja-se utilizar bibliotecas ou API (Application
Programming Interface) que disponham de técnicas já implementadas de VC e PDI que
serão necessárias para o desenvolvimento da ferramenta proposta, tais como: OpenCV
(Open Source Computer Vision Library) e API JAI (Java Advanced Image). É neste
momento em que será definida a plataforma mais apropriada para o desenvolvimento da
ferramenta. Outra biblioteca a ser utilizada como suporte inicial é a API Weka (Waikato
Environment for Knowledge Analysis), que dispõe de algoritmos de classificação, estes
que devem ser utilizados para o treinamento introdutório da RNA.
No decorrer da pesquisa, espera-se capturar as imagens da conjuntivite dos
animais através de dispositivos móveis, munidos de software com todas as técnicas já
implementadas, se possível, sem dependências adicionais. Possibilitando assim, a
realização de testes em campo sem o uso demasiado dos recursos do hardware.
Na etapa final, deve ser concluído o treinamento da RNA, supervisionado por
profissional experiente na aplicação do método FMC e, posteriormente, após a
quantidade de testes e ajustes necessários, devem ser validados os resultados da pesquisa
na prática.
562
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Resultados Esperados
Ao término deste projeto espera-se a entrega dos seguintes resultados: 1) Rede neural
treinada para classificação de imagens dentro dos cinco graus de anemia conforme o
método FMC; 2) Pacote de software de plataforma aberta, que ofereça as
funcionalidades necessárias para implementação de aplicações capazes de determinar o
grau de anemia em pequenos ruminantes (caprinos e ovinos); e, 3) Aplicação mobile que
utilize o pacote de software para que potenciais usuários possam utilizar as
funcionalidades de classificação da ferramenta proposta.
Referências
Alexandria, A. R. d. Sistema de Reconhecimento Óptico de Algarismos para Medidores
Convencionais de Energia. Dissertação (Mestrado) - Universidade Federal do Ceará
(UFC), 2005.
Almeida, T. M. de. Uma metodologia de reconhecimento de caracteres manuscritos
utilizando redes neurais embarcadas. Monografia (Especialização). Faculdade 7 de
Setembro (FA7), 2014.
Alves, R. J. F. ANEMIMETRO: App para aplicação do Método Famacha. Seminário de
Iniciação Científica, Seminário Integrado de Ensino, Pesquisa e Extensão e Mostra
científica, [S.l.], 2016.
Borth, M. R., Iacia, J. C., Pistori, H., Ruviaro, C. F. A Visão Computacional no
Agronegócio: Aplicações e Direcionamentos. In: 7º Encontro Científico de
Administração, Economia e Contabilidade (ECAECO), 2014, Ponta Porã. [Trabalho
apresentado na forma de pôster].
Chagas, A. C. de S., Carvalho, C. O. de e Molento, M. B. Método Famacha©: Um
recurso para o controle da verminose em ovinos. São Carlos, SP: Embrapa Pecuária
Sudeste. Circular Técnica 52. 2007.
Demoliner, G., Alves, R. J. F. ANEMIMETRO: app móvel para implementação do
método Famacha. Unoesc & Ciência - ACET, [S.l.], v. 8, n. 1, p. 25-32, jun. 2017.
Gonzalez, R. C. and Woods, R. E. Digital Image Processing (3rd Edition). [S.l.]:
Prentice Hall, 2007.
Lima, M. M. de. Estudo de fatores do aspecto sanitário em relação à infecção por
parasitos gastrintestinais em caprinos e ovinos no estado de Pernambuco - Brasil.
2007. 182 f. Tese (Programa de Pós-Graduação em Ciência Veterinária) -
Universidade Federal Rural de Pernambuco, Recife.
Marengoni, M., Stringhini, D. Tutorial: Introdução à Visão Computacional usando
OpenCV, Universidade Presbiteriana Mackenzie, 2009.
563
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
564
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
À medida que a aquisição de recursos de Tecnologia da informação (TI) se torna mais
acessível financeiramente, mais rápida também é a sua popularização, sendo vital para o
desenvolvimento de boa parte das empresas ou instituição principalmente pequenas e
microempresas. Com base num estudo encomendado pela ABRADISTI-Associação
Brasileira dos Distribuidores de Tecnologia da Informação, só em 2012 as pequenas
empresas representaram 40% dos investimentos realizados em Tecnologia da Informação.
Estas empresas dos mais diversos ramos de atividade estão se beneficiando com
a tecnologia da informação cada vez mais acessível, tomando como exemplo a Cloud
computing (computação em nuvem) considerando a definição do NIST (National Institute
of Standards and Technology - USA), onde a computação em nuvem representa um
conveniente modelo de acesso, sempre que for necessário, a um conjunto compartilhado
de recursos computacionais configuráveis, tais como, redes, servidores, armazenamento,
aplicações e serviços, que podem ser disponibilizados rapidamente, com o mínimo
esforço, gerenciamento e interação com o provedor dos serviços.
565
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Fundamentação Teórica
Baseando-se no modelo de implementação de computação em nuvem, o sistema proposto
faz uso da arquitetura SaaS onde a aquisição ou utilização de um software não está
relacionado a compra de licenças, ou seja, lhe permite adquirir o que você necessita,
pagando apenas pelo que utiliza em determinado período ou situação pontual, sendo pelo
consumo dos recursos (Armbrust, 2010) seja este período por hora ou mensal, ou por
assinatura quando o usuário aloca uma quantidade fixa de recursos por mês e paga por
esta Quantidade (Kalyvas, 2013).
Segundo Araújo (2016) os principais motivos que levam ou que podem levar as
empresas a utilizar Software SaaS são a poupança nos custos com Hardware, Software e
suporte de TI. Mas o SaaS não é só um modelo distinto de distribuição de Software, é
uma nova forma de fazer negócio. A escalabilidade das soluções é central para atingir
volumes críticos de forma a gerar os lucros pretendidos.
566
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Arquitetura
O desenvolvimento deste projeto foi baseado nos conceitos de cloud computing aplicando
o modelo de negócio SaaS e a arquitetura Multi Tenant, o motivo da adoção desta
arquitetura está justamente possibilitar uma solução de baixo custo e atendendo as
especificidades de cada estudo de caso proporcionando grau considerável de segurança e
alta disponibilidade.
Ao fazer uso da arquitetura convencional de rede cliente-servidor implicaria em
maiores custos tendo em vista a necessidade de aquisição de hardware específico ainda
conforme aumento dos dados poderia comprometer a robustez do sistema limitando o seu
grau de escalabilidade, abaixo (Figura 1) as diferenças das arquiteturas.
567
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Conforme a análise dos requisitos e estudo de caso adotou-se trabalhar com uma
solução de sistema distribuído, que pode ser acessada de qualquer lugar independente do
sistema operacional com o mínimo de Hardware para pleno funcionamento, neste os
serviços são fornecidos através de uma REST API implementada em Laravel Framework
que fornece estes serviços para as aplicações cliente.
O esquema de funcionamento do produto proposto fica disposto da seguinte
maneira, após a confirmação do pagamento o serviço é automaticamente liberado para
uso diferindo-se de outros tipos de aplicações que necessitam de configuração de
hardware e software específicos para funcionamento e uso, o acesso dar-se-á por meio
de uma aplicação cliente (Android, Web, IOS) onde ao inserir o seu login o cliente será
redirecionado ao servidor de autorização Oauth2 que faz a verificação dos dados do
cliente , Após a autorização é feito a autenticação através de um token de acesso que é
retornado com as credenciais do cliente para consumir os recursos da REST API
conforme disposto na (Figura 2).
4. Metodologia
Foram utilizados para o levantamento de dados deste projeto formulários eletrônicos com
a ferramenta Google forms, direcionados aos funcionários da instituição objeto deste
estudo, no formulário questionou-se aos mesmo quais as dificuldades enfrentadas na
gerência e manipulação dos dados (notas e informações acadêmicas) e demais ocasiões
do dia a dia ainda se almejavam o uso de alguma ferramenta que os auxiliasse nas
atividades do setor dentre outras.
568
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
569
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
570
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6. Considerações finais
A adoção das tecnologias de computação em nuvem SaaS e da arquitetura Multi-tenancy
mostraram-se bastante apropriadas ao real intuito do projeto e possibilitam implementar
um grau maior de robustez e coerência das atividades institucionais com as
funcionalidades da plataforma aqui desenvolvida, ao aplicar as principais características
do modelo SaaS ampliou-se as funcionalidade destinadas a auxiliar as principais atividade
da instituição, proporcionando mais agilidade nas tarefas de controle acadêmico com
acesso online aos serviços da plataforma. Será possível diminuir de forma considerável o
risco de atrasos nas entregas, visto que o software apresenta uma relação de alunos e notas
mais precisa e até mesmo a criação do boletim escolar.
Com a base de dados isolada implementada será possível atribuir um grau maior
na segurança, disponibilidade, robustez e evitando também a possível exclusão acidental
da base de dados que antes era armazenada nas maquinas locais. A escolha do Framework
laravel foi de grande importância para o desenvolvimento ágil do ambiente, com o
aplicativo para as plataformas Android e IOS voltado aos pais será mais transparente o
acompanhamento das notas dos alunos assim como notificações e convocações para
comparecimento na instituição.
Durante o projeto foram encontradas algumas dificuldades na fase de
desenvolvimento devido à complexidade de atender às especificidades da instituição e no
início com o pouco conhecimento da equipe com as tecnologias usadas na fase de
implementação que demandou mais tempo. Futuramente para amadurecimento da
aplicação e adição de mais módulos ao ambiente e melhorias no aplicativo para
dispositivos móveis será necessário aumentar o número de desenvolvedores assim como
trabalhos e pesquisas complementares a fim de aprimorar o produto e modelo de negócio
para implantação em mais instituições e demais casos de uso com problemática similar
abrangida pela arquitetura e modelo de negócio aqui usado.
571
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
Araújo, Virgínia e Cota, M. (2016). Avaliando SaaS através de métodos combinados de
investigação. CIAIQ2016, 4.
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R., Konwinski, A., Lee, G.,
Patterson, D., Rabkin, A., Stoica, I., et al. (2010). A view of cloud computing.
Communications of the ACM, 53(4): pp 50–58.
Bogueira, G., Batista, F., & Carvalho, J. P. (2016, agosto). Sistema Inteligente de
Recolha, Armazenamento e Visualização de Informação proveniente do Twitter”. Atas
da Conferência da Associação Portuguesa de Sistemas de Informação Vol. 15, No. 15,
pp. 418-439.
Gartner (2014) “Predicts 2015: Cloud and Digital Business Shape Strategies in the Future
IT Services Market “.
Kalyvas, J. R.; M. R. Overly; M. A. Karlyn (2013) Cloud Computing: A Practical
Framework for Managing Cloud Computing Risk - Part I, Intellectual Property &
Technology Law Journal, (25)3, pp. 7-18.
NIST-National Institute of Standards and Technology -USA (2009). The NIST Definition
of Cloud Computing. Disponível em: http://csrc.nist.gov/publications/drafts/800-
145/Draft-SP-800-145_clouddefinition.pdf.
572
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[email protected], [email protected]
1. Introdução
O tráfego da Internet tem aumentado gradativamente nos últimos anos, devido o crescente
numero de usuários, as aplicações de áudio, vı́deos, TV de alta definição, computação em
nuvem e aplicações de rede em tempo real [Costa and Drummond 2016]. Dessa forma,
para atender o crescente aumento da transmissão de dados a fibra óptica ganha espaço no
cenário, aliada a uma nova tecnologia caracterizada como redes ópticas elásticas (EON-
Elastic Optical Network) [Chatterjee et al. 2015].
As EON utilizam a tecnologia Multiplexação de Divisão de Frequência Ortogo-
nal (OFDM - Orthogonal Frequency Division Multiplexing) [Fontenele 2016], no qual
permite a divisão do espectro óptico em pequenos intervalos de frequência (12.5 GHz),
denominados de slots, e para cada circuito óptico pode ser alocado uma quantia distin-
tas de slot. Dessa forma, as EON tem a capacidade de alocar espectro para os circuitos
ópticos conforme a largura de banda requisitada.
573
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
As fibras ópticas, atuando como camada fı́sica das EON, tem o objetivo de via-
bilizar maiores larguras de banda, medida da capacidade de transmissão do meio óptico,
resultando em altas taxas de transmissões de dados. Além disso, apresentam baixas perdas
de intensidade do sinal ao longo da transmissão dos dados, cooperando para a utilização
de poucos repetidores de sinal, responsáveis por amplificarem e regenerarem os sinais
ópticos [Gao et al. 2014].
No entanto, apesar de as fibras ópticas serem compostas por materiais dielétricos,
isolantes, no qual possui imunidade a interferência eletromagnética, estão sujeitas aos
efeitos fı́sicos do meio, resultando em perda de sinal, oriundos pela distorção, atenuação e
interferências no sinal [Gonçalves 2012]. Neste contexto, tem-se destacado a importância
de avaliar as imperfeições da camada fı́sica, no qual degradam a qualidade de transmissão
(QoT - Quality of Transmission) a medida que o sinal propaga pelos enlaces e dispositivos
ópticos da rede [Fontinele et al. 2016]. Para que ocorra uma melhor propagação do sinal
óptico é importante analisar e avaliar as fibras ópticas, afim de verificar quais efeitos do
meio podem contribuir para a degradação da QoT.
Portanto, a proposta do trabalho é apresentar uma analise do desempenho dos
tipos distintos de fibras ópticas nas EONs, no qual foram consideradas três tipos de fibras
para os seguintes cenários: a SSMF, com o span de 100 e 50 km, a ULAF e a NZDSF,
utilizando o algoritmo Dijkstra na topologia NSFNet.
Este trabalho está organizado da seguinte forma: Na Seção 2 é apresentada os prin-
cipais trabalhos relacionados; Na Seção 3 é apresentada uma descrição das redes ópticas
elásticas; Na Seção 4 é descrito os os tipos de fibras estudadas nesse artigo; Enquanto que
na Seção 5 é descrito os resultados; seguidos das conclusões.
2. Trabalhos Relacionados
Em [Gonçalves 2012] foi feito uma análise do comportamento da propagação de pulsos
numa fibra óptica considerando os efeitos lineares e não lineares. Primeiramente são
introduzidos conceitos básicos sobre como os feixes de luz podem viajar pela fibra, apre-
sentando conceitos de difração e reflexão total da luz. Em seguida, faz-se uma breve
descrição sobre por que razão os pulsos luminosos sofrem o efeito da dispersão durante
a propagação na fibra óptica. Como resultados, observa-se que o efeito da dispersão nos
pulsos é o principal limitador da largura de banda do sinal transmitido.
Os autores em [Gao et al. 2014]avaliam as caracterı́sticas da camada fı́sica que
influenciam na performance das redes ópticas elásticas, no qual foi analisada a taxa de
bloqueio de requisições por banda, os tipos de fibras e a utilização da técnica forward
error correction (FEC), uma técnica usada para controlar erros durante uma transmissão
de dados. Além disso, os mesmos autores propuseram um algoritmo para melhorar a
qualidade de transmissão através da adaptação do cabeçalho FEC para cada requisição.
Por fim, apontam que as fibras com maior área efetiva do núcleo e menores perdas por
atenuação podem melhorar a qualidade da contramissão.
Em [Harboe et al. 2008] foi analisado o efeito não linear, denominado de Four
Wave Mixing (FWM), no qual a interação entre os sinais propagados na fibra óptica ge-
ram novos sinais indesejados. Em seguida, são analisadas os tipos de fibras monomodos
utilizados em comunicações ópticas, no qual a Fibra de Dispersão Deslocada Não-Nula
(NZDSF - Non Zero Dispersion Shifted Fiber) é a ideal para suprimir a FWM.
574
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Camada Cliente
Plano de Controle
Camada Física
Na camada superior representado pela camada cliente, estão as redes clientes que
requerem serviços para a rede óptica, enquanto que o plano de controle representa a in-
terface entre a camada cliente e a camada fı́sica. A comunicação entre os clientes é por
meio do plano de controle, no qual executa os algoritmos RSA estabelecendo a conexão e
alocando os recursos da camada fı́sica. No plano de controle as ligações entre os nós são
efetuadas por conexões lógicas porém, não necessariamente corresponde a uma conexão
fı́sica semelhante na camada fı́sica. A camada inferior representado pela camada fisica
corresponde aos dispositivos ópticos e os dados entre os clientes são percorridos através
da camada fı́sica.
A medida que se propaga um sinal óptico da origem ao destino, o sinal so-
fre degradações devido as imperfeições da camada fı́sica, além disso, o excesso de
degradações do sinal óptico ao longo da rota resulta em uma BER (Bit Error Rate) in-
tolerável no receptor, dificultando a comunicação [Rahbar 2012].
575
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Um circuito óptico pode degradar a QoT de outros circuitos devido aos efeitos
de camada fı́sica. Este impacto em outros circuitos acontece quando tem nós e enlaces
em comum e para que estabeleça um novo circuito óptico é necessário que a o espec-
tro da rota escolhida esteja disponı́vel, a QoT do circuito seja aceitável e caso o novo
circuito seja atendido, deverá ser mantida para os outros circuitos ópticos ativos na rede
[Fontinele et al. 2016].
Tendo isso em vista, como a QoT depende da camada fı́sica os diversos tipos
de fibras podem resultar em diferentes QoT, pois tem caracterı́sticas de atenuação e não
linearidade distintas para propagação do sinal óptico [Gonçalves 2012]. Dessa forma, a
seguir serão apresentadas as caracterı́sticas da camada fı́sica, bem como os efeitos que
podem degradar o QoT e, por fim, os 3 tipos diferentes de fibras ópticas estudadas nesse
trabalho, no caso a SSMF, com o span de 100 e 50 km, a ULAF e a NZDSF.
576
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
577
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Probabilidade de Bloqueio por Banda (546 Erlang ) Probabilidade de Bloqueio por Banda (720,72
Erlang )
0,35
0,45
Probabilidade de Bloqueio
0,3
Probabilidade de Bloqueio
0,4
0,25 0,35
0,3
0,2
0,25
0,15 0,2
0,15
0,1
0,1
0,05 0,05
0 0
10.0 20.0 40.0 80.0 160.0 320.0 10 20 40 80 160 320
Largura de banda (Gbps) Largura de Banda (Gbps)
0,32
0,27
0,22
0,17
0,12
31 2
3.24 3
3.48 4
3.72 5
3.96
Pontos de carga
NZDSF SSMF-100 SSMF-50 ULAF
578
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
qual verificou-se que no primeiro ponto de carga a SSMF-100 obteve bloqueio inferior
de 144,38%, 155,28% e 32,80% quando comparado a NZDSF, SSMF-50 e ULAF, res-
pectivamente. Para o ultimo ponto de carga, a SSMF-100 apresentou bloqueio inferior
de 77,32% e 65,66% ao igualar com a NZDSF e SSMF-50, nessa ordem. No entanto,
verificou-se probabilidade de bloqueio superior de 11,55% comparando à ULAF.
A Figura 3 apresenta a probabilidade de bloqueio levando em consideração a me-
dia de todas as largura de banda para cada um dos pontos de carga. Foi calculado a média
da probabilidade de bloqueio para todos os pontos de carga, dessa forma, observou-se que
a SSMF-100 obteve bloqueio inferior de 48,35% e 21,73% quando comparado a NZDSF
e SSMF-50, nessa ordem. No entanto, quando comparado à ULAF resultou em um blo-
queio superior de 15,08%.
6. Conclusão
A maleabilidade das redes ópticas elásticas possibilita um melhor aproveitamento dos re-
cursos espectrais e, deste modo, podem suportar altas taxas de transmissões. Entretanto,
as caracterı́sticas da camada fı́sica podem influenciar na performance dessas redes, de-
gradando a qualidade de transmissão. Tendo isso em vista, foram realizados simulações
utilizando a topologia NSFNET, o algorı́timo de roteamento DKJ e a politica de alocação
de espectro First-fit a fim de avaliar a performance das seguintes fibras: a Standard Single-
Mode Fiber (SSMF) com o span de 100 e 50 km, a Ultra-Large-Area Fiber (ULAF) e a
Non-zero Dispersion-Shifted Fiber (NZDSF) .
Foi verificado que a SSMF-100 aponta desemprenho superior em relação à de-
mais fibras, para um brando tráfego de dados, uma probabilidade de bloqueio inferior de
48,35% para NZDSF e 21,73% para SSMF-50. No entanto apresenta um desempenho in-
ferior em comparação à fibra ULAF para redes com intensivo tráfego de informações, um
bloqueio superior de 15,08%. Tal comportamento é resultado dos efeitos não lineares da
fibra óptica relacionados à potencia luminosa como auto modulação de fase, modulação
cruzada de fase e mistura de quatro ondas.
Neste contexto, a ULAF, por ter uma área efetiva maior, apresenta menos inten-
sidade óptica resultando na redução de efeitos não lineares. Para as demais fibras, cujo a
área efetiva é menor, os efeitos não lineares se intensificarão, degradando o sinal ao longo
da transmissão.
Referências
Brasileiro, Í. B., dos Reis Júnior, J. V., and Soares, A. C. B. (2016). Nova solução para
o problema de roteamento em redes opticas elásticas utilizando algoritmo ciente de
fragmentação baseado em sistemas fuzzy. Simpósio Brasileiro de Redes de Computa-
dores - SBRC.
Chatterjee, B. C., Sarma, N., and Oki, E. (2015). Routing and spectrum allocation
in elastic optical networks: A tutorial. IEEE Communications Surveys & Tutorials,
17(3):1776–1800.
Costa, L. R. and Drummond, A. C. (2016). Novo algoritmo rmlsa com roteamento mul-
tihop em redes ópticas elásticas. Simpósio Brasileiro de Redes de Computadores -
SBRC.
579
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
580
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
De acordo com [Eremia and Shahidehpour 2013], o objetivo principal do controle da
magnitude de tensão é manter as magnitudes numa faixa de valores adequada. Para
581
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
582
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para encontrar a relação entre variações nas injeções de potência reativa com variações
nas magnitudes de tensão, desconsidera-se que as injeções de potência ativa variem
(∆P (θ, V ) = 0). Dessa forma, consideram-se apenas as variações de potência rea-
tiva (∆Q (θ, V )) como resultantes da combinação entre a matriz Jacobiana J (θ, V ) das
equações de balanço de potência com as variações nos ângulos de fase (∆θ) e nas mag-
nitudes de tensão (∆V ).
0 ∆θ
= J (θ, V ) (2)
∆Q (θ, V ) ∆V
Considerando que:
" ∂P ∂P #
∂θ ∂V J1 J2
J (θ, V ) = = (3)
∂Q ∂Q J3 J4
∂θ ∂V
−1
∆VG = JQV ∆QG (7)
583
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Resultados e Discussões
No intuito de avaliar a aplicação da abordagem proposta para o controle da magnitude
de tensão, são apresentados os cenários operacionais com violações de magnitude de
tensão. A determinação desses cenários é feita por meio de alterações nas magnitudes de
tensão das barras no conjunto de barras de controle G = {1, 2, 3, 6, 8, 9, 12}. Todas as
simulações são realizadas para os sistemas IEEE de e 57 barras que representa uma porção
do sistema elétrico localizado na Região Centro-Oeste dos Estados Unidos [IEEE 1993].
584
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
585
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Por fim, o despacho de potência reativa nas barras de controle, após a execução dos
ajustes definidos pela metodologia MaxQ para corrigir a violação de tensão nas barras 31 e
46, é apresentado na Tabela 4. Os ajustes são executados nas barras 8 e 12, que possuem
os maiores ı́ndices de sensibilidade com relação as barras 31 e 36, respectivamente. A
barra 8 injeta potência reativa para corrigir a magnitude de tensão da barra 31, enquanto
a barra 12 absorve potência reativa para corrigir a violação de tensão da barra 46.
As perdas de potência ativa, à medida que os despachos de potência reativa foram execu-
tados, são ilustradas na Figura 1. A metodologia de controle, executa dois ajustes na barra
8 e um ajuste na barra 12 para corrigir a violação de tensão e reduz a perda de potência de
28,37 M W para 27,79 M W . Em tal cenário de testes, é possı́vel concluir que a estimação
da variação na geração de potência reativa é capaz de conduzir as magnitudes de tensão
violadas à faixa de operação adequada.
586
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
28.2
28
27.8
0 1 2 3 4
Passo
MaxQ
4. Conclusões
A eficácia da abordagem proposta, no que se refere a análise elétrica, é avaliada de acordo
com o despacho de potência reativa realizado para eliminar as violações de tensão; os
ajustes nas magnitudes de tensão nas barras de controle e as perdas de potência ativa no
sistema à medida que os ajustes são realizados. Então, determina-se o conjunto de barras
de controle a serem operadas e o quanto variar na injeção de potência reativa de cada uma
delas. Para a correção das violações de magnitude de tensão o Gestor de Controle executa
o Fluxo de Carga e determina o estado da rede elétrica. Em seguida, aplica a metodologia
MaxQ para definir as barras de controle a serem operadas e a sequência de ajustes a serem
realizados.
Baseado nos resultados obtidos por meio da execução dos ajustes no despacho de
potência reativa para controlar as magnitudes de tensão violadas nos cenários teste IEEE
57 barras simulado, é possı́vel justificar as contribuições da abordagem apresentada pelos
seguintes itens: determinação de uma sequência de ajustes que, ao serem executados
nos dispositivos de controle do sistema elétrico, foram capazes de corrigir as violações
nas magnitudes de tensão do cenário de teste e a metodologia de controle baseadas na
máxima variação da injeção de potência reativa calculados pela matriz JQV , estabelece os
ajustes nas magnitudes de tensão a serem executados nas barras de controle para alterar o
despacho de potência reativa do sistema.
Referências
Calderaro, V., Galdi, V., Lamberti, F., Piccolo, A., and Graditi, G. (2014). Voltage support
control of unbalanced distribution systems by reactive power regulation. In 2014 IEEE
PES Innovative Smart Grid Technologies Conference Europe (ISGT-Europe), pages
1–5. IEEE.
Capitanescu, F., Bilibin, I., and Romero Ramos, E. (2014). A comprehensive centra-
lized approach for voltage constraints management in active distribution grid. IEEE
Transactions on Power Systems, 29(2):933–942.
Chen, S., Hu, W., Su, C., Zhang, X., and Chen, Z. (2015). Optimal reactive power and
voltage control in distribution networks with distributed generators by fuzzy adaptive
hybrid particle swarm optimisation method. IET Generation, Transmission &
Distribution.
Eremia, M. and Shahidehpour, M. (2013). Handbook of electrical power system dyna-
mics: modeling, stability, and control, volume 92. John Wiley & Sons.
IEEE (1993). 57 bus power flow test case.
587
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Lage, G. G. (2013). O fluxo de potência ótimo reativo com variáveis de controle discretas
e restrições de atuação de dispositivos de controle de tensão. PhD thesis, Universidade
de São Paulo.
Niknam, T., Narimani, M., Azizipanah-Abarghooee, R., and Bahmani-Firouzi, B. (2013).
Multiobjective optimal reactive power dispatch and voltage control: a new opposition-
based self-adaptive modified gravitational search algorithm. IEEE Systems Journal,
7(4):742–753.
Paramasivam, M., Dasgupta, S., Ajjarapu, V., and Vaidya, U. (2015). Contingency analy-
sis and identification of dynamic voltage control areas. IEEE Transactions on Power
Systems, 30(6):2974–2983.
Xu, Y., Zhang, W., Liu, W., and Ferrese, F. (2012). Multiagent-based reinforcement
learning for optimal reactive power dispatch. IEEE Transactions on Systems, Man,
and Cybernetics, Part C (Applications and Reviews), 42(6):1742–1751.
588
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract. Educational robotics is a tool that has been used to create a lear-
ning environment based on the cooperative learning model. This work shows
the use of the Lego
R Mindstorms
R NXT 2.0 robotics kit as a methodology for
teaching learning in programming logic, being applied to students who are new
to Computer Engineering. The objective of the project was to promote the lear-
ning and sharing of knowledge through groups of engineering students, making
it possible to consolidate the contents of programming logic seen in the class-
room. The main idea is to get students to develop their methods, concepts and
strategies, offering the opportunity for a concrete and collaborative experience.
In this model, students together become problem solvers constructors involving
programming logic by developing the ability to discover, experiment and learn
by interacting. In this work, we will present some practical examples made in
the classroom, as well as the methodology for development according to the
foundations of cooperative learning.
1. Introdução
O modelo instrucionista ainda é o modelo mais utilizado na aprendizagem brasileira, nele
o discente assume o papel passivo no processo de aprendizagem, fazendo com que suas
589
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
590
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
sas peças de encaixe e um smart brick, este último trata-se de um bloco programável que
utiliza um software de desenvolvimento padrão NXT 2.0 Programming, sua programação
utiliza blocos de comandos bem estruturados e de fácil compreensão.
Além do conhecimento teórico, os alunos precisam desenvolver habilidades cog-
nitivas e cooperativas, para se tornarem profissionais qualificados, já que o mercado de
trabalho e a sociedade requerem profissionais que possam solucionar de forma eficiente e
clara os problemas que lhes são apresentados e que possam trabalhar de forma eficiente
em grupo.
Dessa forma, os discentes tem a oportunidade de aprender através de experiências
práticas em parceria com os outros discentes. Assim, alguns paradigmas tradicionais
como o modelo instrucionista seriam reformulados, proporcionando melhor flexibilidade
e experiências no processo de ensino-aprendizagem, pois os alunos se tornam construtores
do próprio conhecimento ao aprenderem pondo em prática os conceitos visto no decorrer
das células, sendo capazes de criar soluções e desenvolver estratégias.
Neste trabalho será apresentada a utilização da robótica educacional como fer-
ramenta de ensino no estudo de lógica de programação, tendo como base o modelo de
ensino da aprendizagem cooperativa, para os alunos do primeiro semestre do curso de
Engenharia de Computação.
2. Metodologia
2.1. Aprendizagem Cooperativa
A aprendizagem cooperativa pode ser definida como o conjunto de técnicas de ensino
em que os alunos trabalham em pequenos grupos, que são chamados de células, que tem
como principal objetivo a ajuda mútua. Essa ajuda se baseia na ideia de que o aluno
pode ensinar e aprender ao mesmo tempo. Todas as atividades são estruturadas por um
facilitador que é denominado articulador de célula, ele tem como função base acompanhar
e estabelecer o que será desenvolvido e estudado. Esse novo método de ensino permite
que os discentes possam interagir com seus colegas e com o articulador, gerando assim
autonomia e responsabilidade no aprendizado.
Para que a aprendizagem seja cooperativa é necessário que se verifiquem as se-
guintes caracterı́sticas especı́ficas que não atuam isoladamente, mas são ligadas, são elas:
interdependência positiva, responsabilidade pessoal, interação face a face, habilidade so-
cial e processamento de grupo [Johnson 2010].
A interdependência positiva caracteriza-se por um sentido de dependência mútua
que se cria entre os alunos da célula e que pode conseguir-se através da implementação
de estratégias especı́ficas de realização, onde se incluem a divisão de tarefas de
diferenciações de papéis, atribuição de recompensas, estabelecimento de objetivos co-
muns para todo a célula e realização de um único produto, referem ainda que a interde-
pendência positiva cria um compromisso com o sucesso de outras pessoas, para além do
seu próprio sucesso, o qual é a base da Aprendizagem Cooperativa. Referem ainda os
mesmos autores que, sem interdependência positiva, não há cooperação.
A segunda caracterı́stica é a responsabilidade pessoal, cada membro de célula é
responsável pela tarefa que lhe foi atribuı́da, ninguém pode se aproveitar do trabalho
do colega. A finalidade das células de aprendizagem cooperativa é que os estudantes
591
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
592
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
tecnologias.
2.3. Lógica de Programação
Ao primeiro contato com a programação, os estudantes encontram um grande obstáculo
em aplicar seus conhecimentos e habilidades, gerando uma fonte de medo, frustração e
desistência do ramo [Castro 2003].
A disciplina de Programação Computacional ofertada no primeiro semestre do
curso de graduação em Engenharia de Computação em Sobral, é uma das disciplinas
onde ocorrem mais taxas de reprovação e desistência. Segundo os dados coletados em
parceria com a coordenação do curso de Engenharia de Computação sobre os calouros
no ano de 2016, no primeiro semestre, 2016.1, foi registrado um total de 27 reprovações
de uma turma de 55 alunos, enquanto no segundo semestre, 2016.2 foi registrado uma
quantidade de 30 reprovações de uma turma de 55 alunos.
Levando em consideração esses dados, fez-se necessário a pesquisa e
implementação de novas técnicas educacionais com o objetivo de reverter essa grande
quantidade de reprovações e tornar o aluno mais criativo e eficiente na solução de pro-
blemas. Utilizando a robótica educacional como mecanismo de ensino cooperativista, os
alunos em conjunto, passam a ser construtores de ideias e desenvolvem habilidades cog-
nitivas e sociais. Os alunos tem a oportunidade de colocar em prática a teoria vista em
sala não somente com o uso de simulações computacionais, mas também com o compar-
tilhamento de saberes ao criar robôs.
593
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4. Resultados
Após o professor da disciplina Programação Computacional explicar em sala de aula so-
bre as estruturas de decisão e repetição, os instrutores do curso de robótica sugeriram uma
atividade aos alunos que consistia no desenvolvimento do robô seguidor de linha a fim de
aprofundar os conceitos vistos em sala.
A atividade realizada para aprimoramento dos conceitos de estruturas de decisão
e de repetição, consiste na elaboração de uma estrutura robótica que pudesse seguir um
percurso sob orientação do sensor de luminosidade acoplado a estrutura. O protótipo
montado no processo de desenvolvimento do robô seguidor de linha pode ser visto na
Figura 1.
Na parte lógica, os alunos teriam que usar o conteúdo visto em sala de aula e apri-
morá-lo, buscando uma ligação entre a linguagem de alto nı́vel com a linguagem baseada
em blocos. Para alcançar tal resultado, o aluno deve tomar decisões, criar soluções, ser
agente ativo no processo de desenvolvimento do programa.
A Figura 2 apresenta o esquema lógico para a realização da atividade.
Como podemos ver na Figura 2, existe duas partes, a externa e a interna, que re-
presentam a parte do programa onde foi utilizado os conceitos de estrutura de repetição e
de decisão, respectivamente. No processo de desenvolvimento do esquema lógico os alu-
nos mostraram seus próprios métodos e estratégias. Aprenderam de forma colaborativa,
interagindo com os colegas e com o próprio objeto de estudo.
594
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Conclusão
Neste trabalho fizemos uso da robótica como ferramenta de ensino baseado nas perspecti-
vas cooperativistas para o ensino de lógica de programação, com o objetivo de aperfeiçoar
o aprendizado do aluno, já que a disciplina de lógica de programação, em muitos casos, é
vista como um obstáculo.
595
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
Castro, T. C. e. a. (2003). Utilizando programação funcional em disciplinas introdutórias
de computação. Anais do WEI 2003, Brasil.
Cohen, E. G. (1994). Restructuring the classroom: conditions for productive small groups.
Review of Educational Research, v. 64, n. 1, p. 1-35.
Johnson, David. W. ; Johnson Roger. T.; Smit, K. A. (2010). A aprendizagem cooperativa
retorna as faculdades. [Disponı́vel] http://unjobs.org/authors/roger-t.-johnson [Acesso
em: 20-07-2017].
Maia, A., Pereira, A., and Oliveira, A. (2016). Aprendizagem cooperativa e a evasão
acadêmica. Periodicos.ufc.br, page 1.
Marreiros, Antónia; Fonseca, J. C. J. (2001). O trabalho cientı́fico em ambiente de apren-
dizagem cooperativa. In Revista da Educação. Vol. X no 2 99-112.
Menezes, Ebenezer Takuno de; Santos, T. H. d. (2015). Verbete robótica educa-
cional. dicionário interativo da educação brasileira - educabrasil. [Disponı́vel]
http://www.educabrasil.com.br/robotica-educacional/ [Acesso em: 19-07-2017].
Piaget, J. (1970). O Estruturalismo. Trad. Moacir R. de Amorim. São Paulo: Difel.
Pujolàs, M. P. (2009). Aprendizaje cooperativo y educación inclusiva: Una forma práctica
de aprender juntos alumnos diferentes. VI Jornadas de cooperación educativa con ibe-
roamérica sobre educación especial e inclusión Educativa. Barcelona: Universidade de
Vic. [Disponı́vel] http://www.educacion.es/dctm/ministerio/educacion/actividad-
internacional/cooperacion-educativa/2009-ponencia-jornadas-antiguas-pere-
2.pdf?documentId=0901e72b8008d13f [Acesso em: 20-07-2017].
Ragazzi, V. (2017). Robótica na escola: é pra já. [Disponı́vel]
https://microsoft.com/brasil/educacao/parceiro/robotica.mspx [Acesso em: 24-
07-2017].
Rogers, Carl R e Rosemberg, R. L. (1977). A pessoa como centro. Universidade de São
Paulo.
596
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Introdução
597
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
análise de um grande volume de dados pode ser feita através do Processo se Descoberta
de Conhecimento - ou Knowledge Discovery on Databases (KDD), um processo de
pesquisa e manipulação em base de dados, divididos em várias etapas, que tem como
objetivo produzir conhecimento a partir das informações fornecidas.
3. Aprendizado de Máquina
598
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A Rede de Kohonen ou Mapas Auto Organizáveis [Haykin, 2001], tem como princípio a
aprendizagem competitiva, simulando processos específicos do cérebro humano na
aprendizagem por respostas sensoriais. Na rede de Kohonen os neurônios são organizados
em uma grade, esta geralmente bidimensional. Essa grade tem a forma de uma superfície
plana, onde os neurônios de saída estão organizados em linhas e colunas [Júnior and
Montgomery 2007].
Baseado na teoria de que o cérebro humano responde à entradas sensoriais
diferentes mapeando-as em regiões especificas do cortéx cerebral, o algoritmo SOM
implementa um processo de competição entre os neurônios da rede, de modo que o
neurônio vencedor ajusta seus pesos para responder melhor ao estímulo recebido, bem
como a sua vizinhança topológica recebe ajustes num processo de cooperação. Assim, os
sinais de entrada apresentados à rede estimulam um grupo de neurônios na camada de
saída. Ao fim do treinamento, a rede de Kohonen pode agrupar os dados apresentados
como entrada de acordo com os neurônios estimulados na camada de saída.
599
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Índice de Silhueta Simplificado (Hruschka et. al., 2004) é uma métrica para avaliação de
agrupamento que utiliza a relação entre a similaridade dos dados de um grupo e a
dissimilaridade entre dados de grupos distintos, podendo ser descrita pela equação:
𝑁
1
𝐼 = ∑ 𝑠(𝑖)
𝑁
𝑖=1
Para cada dado 𝑖 deve ser calculada a relação entre a distância de i para o centroide
de seu grupo – medida de similaridade, dado por a(i), e a distância média de i para o
centroide do grupo vizinho mais próximo – medida de dissimilaridade, dado por b(i), da
seguinte maneira:
𝑏(𝑖) − 𝑎(𝑖)
𝑠(𝑖) =
𝑚𝑎𝑥{𝑎(𝑖), 𝑏(𝑖)}
4. Ferramentas
4.1 Weka
O objeto de estudo deste trabalho é uma base de dados cujas informações estão
relacionadas às características de gestações nas quais houveram a presença de
1
http://www.cs.waikato.ac.nz/ml/weka
600
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
5. Metodologia
5. Resultados
Os resultados obtidos a partir dos agrupamentos gerados pelos algoritmos vistos nas
sessões anteriores foram avaliados segundo o Índice de Silhueta Simplificado (ISS), como
dito anteriormente, considerando-se a média de 10 execuções.
De acordo com os resultados obtidos pelo ISS, para o algoritmo K-means, o
melhor agrupamento ocorre quando o número de grupos é igual a 2, de igual modo para
601
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
o algoritmo SOM, sendo estes os únicos grupos formados por estes algoritmos cujo ISS
ultrapassa 0,2. O algoritmo Cobweb, por sua vez, demonstrou melhor desempenho, tendo
todos os resultados acima de 0,2; sendo o melhor deles 0,2955, quando o número de
grupos formado é igual a 3.
A análise do conteúdo do melhor agrupamento de cada algoritmo deu-se
observando os valores mais comuns para cada atributo em um mesmo grupo. Entende-se
que quanto mais invariável o valor de um atributo em um grupo, mais relevante ele foi
para determinar o mesmo. Desta forma, calculou-se a persistência de cada atributo como
sendo a porcentagem de instâncias do grupo onde um atributo apresenta o mesmo valor.
Posteriormente, foram considerados os cinco atributos com maiores valores de
persistência. Os resultados podem ser observados nas tabelas Tabela 2, Tabela 3, e Tabela
4.
Tabela 2. Atributos com valores mais persistentes para o algoritmo k-means
Grupo 1 Grupo 2
602
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
grupo mostraram-se menos semelhantes que no agrupamento dado pelos outros dois
algoritmos.
Tabela 4. Atributos com valores mais persistentes para o algoritmo SOM
Grupo 1 Grupo 2
2
Representado pelo atributo Tipo com valor 1.
3
O atributo Aborto recebe o valor 1 para histórico de um ou mais abortos, ou o valor 0 para nenhum
histórico de aborto.
4
O atributo Sintoma recebe o valor 1 quando há presença de sintomas de zica, e o valor 0 quando não há.
5
Representado pelo atributo Tipo com valor 2.
603
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7. Referências Bibliográficas
604
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Sistemas de Informação
Universidade Federal do Piauı́ - UFPI
,[email protected] e [email protected]
1. Introdução
O constante aumento dos congestionamentos e acidentes de trânsito nas cidades causam
impactos negativos em diversas áreas, como na economia, no meio ambiente, na saúde,
dentre outras. A implementação das Redes Veiculares tem auxiliado na redução de aci-
dentes e outros percalços no trânsito, além de promover um controle de tráfego e aumento
de segurança nas rodovias [Naz et al. 2011].
605
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2. Referencial Teórico
Esta seção é voltada para discussão dos conceitos deste trabalho. A presente seção discute,
especificamente, os protocolos de encaminhamento estudados. Considerando definições
de Spaho et al. (2016) e Nunes (2013), os protocolos são:
• Protocolo Epidemic: este protocolo funciona espalhando seu conteúdo para todos
os nós ao redor. Dois nós trocam mensagens para decidir se a mensagem não está
armazenada no outro. Após isso é feita uma verificação do espaço de armazena-
mento disponı́vel no nó e, caso tenha espaço, é enviada a mensagem.
• Protocolo First Contact: neste protocolo, os nós enviam as mensagens para o
primeiro nó que encontram, o que resulta em uma busca aleatória pelo destino.
• Protocolo de Maxprop: este prioriza o planejamento dos pacotes que serão trans-
mitidos a outros nós e os pacotes que serão descartados.
• Protocolo Spray and Wait: este protocolo se baseia em disseminar a mensagem e
aguardar algum resultado. Quando um nó retransmissor recebe uma cópia da men-
sagem, ele entra em fase de espera, na qual o retransmissor confirma determinada
mensagem até que o seu destino seja encontrado.
606
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Experimentos
O simulador ONE1 (Opportunistic Network Environment) foi usado para simular o tráfego
de uma Rede Veicular na arquitetura Ad-hoc na cidade Helsinque na Finlândia. Por
padrão, o simulador fornece um tempo de simulação de 12 horas, 40 hosts divididos em
cinco grupos (três para veı́culos e dois para pedestres), TTL de 300 minutos, comunicação
entre nós do tipo Wi-Fi, velocidade de transmissão de 2 MB por segundo e tamanho do
buffer de 5 MB.
Foram configurados dois cenários: o primeiro composto de uma rede esparsa (com
40 nós), com Tempo de Vida da Transmissão (Time To Live - TTL) e Tempo de Simulação
menores; e o segundo cenário possuindo a rede com maior densidade (composta por 100
nós) e com valores maiores para o TTL e o Tempo de Simulação. A variação dos fatores
foi elaborada para permitir a análise de desempenho para cada ajuste da rede, e assim,
identificar a configuração com melhor desempenho.
Os fatores utilizados foram: Protocolo, TTL, Quantidade de Hosts e Tempo de
Simulação, os nı́veis utilizados para Protocolo foram: Epidemic, First Contact, Maxprop
e Spray and Wait, com nı́veis de TTL 60 e 120, Quantidade de Hosts com nı́veis 40 e 100
e Tempo de Simulação com nı́veis 4 horas e 12 horas.
O número de combinações possı́veis pode ser verificado usando o Princı́pio Fun-
damental da Contagem da Análise Combinatória. O fator Protocolo tem quatro nı́veis,
o TTL dois nı́veis, o fator Quantidade de Hosts dois nı́veis, e o Tempo de Simulação
possui dois, portanto, o número de possibilidades é 4 × 2 × 2 × 2, o que resulta em 32
combinações. Para cada combinação foram feitas 8 observações no simulador, o que re-
sulta em 256 investigações distintas no experimento. As métricas estudadas e monitoradas
durante cada observação foram:
M EV
PE = (1)
MC
• Sobrecarga de Rede (SR): diferença de mensagens repetidas entregues (MRE)
pelo número de mensagens entregues ao destino (D). A Equação 2 apresenta o
cálculo matemático para a Sobrecarga de Rede.
M RE − D
SR = (2)
D
• Latência Média (LM): tempo decorrido desde a criação das mensagens (TMC)
no nó de origem até sua entrega ao nó destino (TED). A Equação 3 apresenta o
cálculo matemático discutido, onde (NR) é o número de mensagens recebidas.
n
X T M C − T ED
LM = (3)
i=1 NR
1
https://www.netlab.tkk.fi/tutkimus/dtn/theone/
607
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para cada uma dessas métricas foi feita uma Análise de Sensibilidade usando o
método estatı́stico Design of Experiments (DoE). DoE é um estudo estatı́stico sobre o
impacto de nı́veis de fatores (variáveis independentes ou parâmetros) sobre um resultado
(variável dependente), orientado assim um processo de otimização [Minitab 2017a]. Os
resultados do experimento configurado são apresentados na Seção 4.
4. Resultados
Os experimentos DoE foram realizados a partir dos dados gerados pelas 256 observações
feitas no simulador ONE. Os ensaios foram aleatorizados para aumento do rigor desta
pesquisa. A organização dos fatores e nı́veis pode ser conferida na Seção 3. Para expressar
a conclusão dos experimentos, utilizou-se o gráfico de Efeitos Principais que pode ser
visualizado nas Figuras 1, 2 e 3 das subseções seguintes. O gráfico apresenta o resumo
do estudo que permitiu concluir os fatores e elementos que impactam em métricas como
Probabilidade de Entrega, Latência e Sobrecarga da Rede.
Os gráficos são usados para demonstrar, detalhadamente, como um ou mais fa-
tores influenciam nos valores das métricas em estudo. Essa influência é percebida pelas
inclinações (coloridas em azul nos gráficos das Figuras 1, 2 e 3) entre as variáveis inde-
pendentes estudadas que representam a ordem de esforço. Quanto mais inclinada for a
linha, maior é o impacto sobre a variável dependente [Minitab 2017b]. Com as conclusões
tiradas desses gráficos foi possı́vel construir um Ranking mostrando a colocação de cada
protocolo em relação à sua eficiência. A Seção 4.4 apresenta o ranking de protocolos de
encaminhamento estudados.
608
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4.4. Ranking
A presente subseção é voltada para a apresentação de um ranking dos protocolos de en-
caminhamento estudados. O ranking é organizado com base nos resultados obtidos pelas
Análises de Sensibilidade (da Seção 4.1, 4.2 e 4.3) e os desempenhos de cada protocolo.
A seguir será apresentado o esquema de pontuação do ranking na Tabela 1.
609
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Classificação Pontos
1o 5,0
2o 2,5
3o 1,0
4o 0,5
Tabela 1. Pontuação por critério.
5. Trabalhos Relacionados
Os critérios de comparação são comentados. A seguir a Tabela 3 sintetiza as contribuições
do trabalhos relacionados com este artigo. As referências são ordenadas por ano e cate-
gorizadas por três critérios: Protocolos, DoE e Métricas (critérios de avaliação).
610
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
611
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
Câmara, D., Frangiadakis, N., Filali, F., e Bonnet, C. (2011). Vehicular delay tolerant
networks. Handbook of research on mobility and computing: evolving technologies
and ubiquitous impacts, pages 356–367.
Hossen, M. S. e Rahim, M. S. (2015). On the performance of delay-tolerant routing
protocols in intermittently connected mobile networks. Rajshahi University Journal of
Science and Engineering, 43:29–38.
Minitab (2017a). Designing an experiment. Disponı́vel em: support.minitab.com/en-
us/minitab/17/getting-started/designing-an-experiment. Acesso em: 14/06/2017.
Minitab (2017b). O que é um gráfico de efeitos principais? Disponı́vel
em: support.minitab.com/pt-br/minitab/18/help-and-how-to/modeling-
statistics/anova/supporting-topics/basics/what-is-a-main-effects-plot/. Acesso em:
17/06/2017.
Naz, F., Chowdhury, T. A., Sabah, S. H., e Ferdous, H. S. (2011). A study on the challen-
ges and importance of vehicular network in the context of bangladesh. In Research and
Development (SCOReD), 2011 IEEE Student Conference on, pages 265–270. IEEE.
Oliveira, M. e Silva, É. R. (2016). Impacto dos modelos de mobilidade no desempenho
de redes tolerantes a atrasos e desconexões. In Conferência de Estudos em Engenharia
Elétrica. CEEL.
Soares, V. N., Dias, J. A., Isento, J. N., e Rodrigues, J. J. (2013). Protocolos de en-
caminhamento para redes veiculares com ligações intermitentes. In CRC 2012: 12a
Conferência sobre Redes de Computadores, pages 77–84.
Spaho, E., Barolli, L., Kolici, V., e Lala, A. (2016). Performance comparison of different
routing protocols in sparse and dense vdtns. In Advanced Information Networking and
Applications (AINA), 2016 IEEE 30th International Conference on, pages 698–703.
IEEE.
Zeng, Y., Xiang, K., Li, D., e Vasilakos, A. V. (2013). Directional routing and scheduling
for green vehicular delay tolerant networks. Wireless networks, 19(2):161–173.
612
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abstract.
1. Introdução
A busca pela construção de sistemas de software com qualidade é algo recorrente nas
pesquisas sobre engenharia de software, seja com vistas na qualidade do produto final,
ou por melhorias durante o processo de desenvolvimento. Desse modo, o entendimento
sobre as características que o software possuirá é uma importante etapa do processo de
construção.
É importante que no processo de construção os usuários descrevam as característi-
cas funcionais e não funcionais desejadas para o sistema, de modo que tais informações
fiquem claras, livres de interpretações múltiplas, fáceis de entender, completas e consisten-
tes[Pressman, 2011] .
Durante este processo, outra importante etapa é a realização de testes, decorrente
da tentativa de evitar ou diminuir significativamente os defeitos (bugs, inconsistência nos
dados, entre outros) e possibilitar um entendimento nítido das funcionalidades que estão
sendo ou serão criadas, proporcionando mais qualidade e confiabilidade ao sistema que será
construído. O teste de software é uma das atividades mais importantes do desenvolvimento,
visto que, por meio dessa etapa, as partes interessadas (stakeholders), conseguem avaliar a
613
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1.1. Objetivo
O Objetivo geral deste trabalho é a aplicação dos conceitos de AORE para auxiliar na
especificação dos testes criados por meio da escrita de histórias e seus respectivos cenários
em busca de identificar interesses transversais. Para tanto, este trabalho apresenta uma
614
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
heurística com etapas definidas para identificar interesses transversais durante a escrita dos
testes criados com a notação Gherkin.
1.2. Metodologia
Como forma de atingir os objetivos pretendidos foi realizado as seguintes etapas: Identifi-
cação das principais características dos modelos e técnicas encontrados de aplicação de
AORE na literatura; Criação de uma heurística com etapas definidas para identificar inte-
resses transversais durante a escrita dos testes criados com a notação Gherkin; Aplicação
da heurística com um running example.
2. Abordagem proposta
A abordagem proposta foi motivada pelas características e práticas do BDD e pelos
seguintes modelos/abordagens: um modelo de engenharia de requisitos orientada a aspecto
[MOREIRA et al., 2013]; um processo de design orientado a aspecto [SOMMERVILLE,
2011]; e um padrão que descreve uma solução para duplicação de requisitos [Ramos
et al., 2007]. As referências utilizadas pelo trabalho para montar as etapas da abordagem,
foram usadas por se colocarem como abordagens genéricas de aplicação dos conceitos de
orientação a aspecto e da escrita de requisitos. A abordagem está dividida em duas partes:
Escrita das histórias e Identificação dos interesses transversais nas histórias.
Para auxiliar o entendimento das etapas da abordagem foi utilizado um running
example [Moreira et al., 2013] . O running example refere-se a três entidades de um
sistema: Empregado, Usuário e Função. Um empregado possui atributos como nome,
idade e salário. O salário do empregado é calculado de acordo com sua idade e a idade
para aposentadoria. A entidade Usuário possui os atributos nome de usuário e autorizado
(boolean). Os usuários possuem permissões para realizar determinadas tarefas, por isso
na realização de alguma operação deve ser verificado suas permissões. Além disso,
um empregado possui uma função. No running example é estabelecido como requisito
de segurança manter protegido os dados dos salários dos empregados de acessos não
autorizados de usuários para alterações ou visualizações.
615
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
616
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
função seja única. Logo, é possível entender melhor um interesse do sistema de forma
isolada, sem necessidade do entendimento das outras partes e, assim, mudanças que
possam ocorrer serão localizadas em poucas partes do sistema, facilitando a manutenção e
a evolução [Sommerville, 2011] .
Se um interesse atravessar vários requisitos, ele pode ser considerada um aspecto
[Tekinerdoğan et al., 2005] . Um aspecto pode representar uma função do sistema (log
de operações), um critério de decisão (escolha da arquitetura), um critério de qualidade
(desempenho), ou critérios políticos (regras de negócios) [Rashid et al., 2002].
É importante fazer uma correlação entre os interesses transversais (crosscutting
concerns) e os requisitos para deixar claro a relação existente entre os dois [Rashid et al.,
2002]. Uma forma de representar o impacto que os interesses transversais possam causar
sobre as partes que perpassam, é por meio da criação de uma Requirements Composition
Table (RCT) [Chernak, 2013]. A utilização de uma RCT proporciona a todos os stakehol-
ders do projeto de software uma forma de comunicação clara e simples, gerando uma
linguagem comum entre todos os envolvidos, através de uma visão macro e estruturada
das funcionalidades do software em forma de tabela (Figura 3).
617
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Se uma coluna da tabela TCH possuir várias linhas marcadas, ou seja, se um cenário
estiver presente em mais de uma história, é considerado que existe um espalhamento e
entrelaçamento da característica que aquele cenário representa. No entanto, os interesses
transversais podem estar presentes na escrita dos próprios cenários das histórias e não
evidenciados em um cenário propriamente. Por exemplo, na TCH do running example não
está claro a presença de nenhum cenário nas duas histórias. No entanto, na descrição dos
cenários C04 e C05 da história “Gerenciar Empregado” pode ser notado a presença do
interesse “verificar permissão do usuário” (Figura 5). Ou seja, este interesse corresponde
ao cenário C07 da história “Gerenciar Usuário” que verifica a permissão do usuário e,
portanto, é um interesse transversal relacionado a segurança.
Por isso é necessário analisar todos os cenários das histórias para averiguar se
algum cenário, em sua escrita, possui características que não é do seu interesse, ou seja,
que não é da sua responsabilidade e, portanto, não deveria ser implementado por ele. Uma
Tabela de Interesses Transversais (TIT) pode ser criada para demonstrar em quais histórias
e cenários os interesses transversais encontrados estão presentes (Figura 6).
618
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Fazer o levantamento das histórias e dos cenários que compõem o sistema. Para
auxiliar nesta tarefa, criar uma Tabela de Composição das Histórias (TCH) que irá
permitir uma visão simples dos cenários que compõem as histórias;
• Analisar cada história para verificar a existência de novos comportamentos que não
estão representados nas histórias atuais, e de comportamentos descritos no corpo
dos seus cenários que não são de suas responsabilidades. Caso necessário, atualizar
a TCH;
• Analisar a TCH para verificar se existe cenários espalhados e entrelaçados. Se uma
coluna da TCH possuir mais de uma marcação, este cenário está presente em mais
de uma história e, portanto, espalhado e entrelaçado;
• Montar uma Tabela de Interesses Transversais (TIT) para explicitar os aspectos
identificados, assim como, seus espalhamentos e entrelaçamentos;
• Inserir na TIT os comportamentos transversais identificados que não estão repre-
sentados como cenário de nenhuma das histórias atuais, se houver.
Desse modo, esses passos irão auxiliar na identificação dos interesses transversais
durante a escrita das histórias, assim como, os artefatos gerados (TCH e TIT) irão permitir
a identificação e visualização do espalhamento e entrelaçamento dos interesses.
3. Conclusão
Este trabalho procurou usar os conceitos de AORE com a finalidade de definir etapas para
auxiliar na identificação de interesses transversais durante a escrita de histórias do usuário
619
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
com a notação Gherkin. Com aplicação da heurística no running example, pode-se obter
com maior brevidade o entendimento de como os requisitos estão relacionados (entrela-
çados e espalhados) e, desta forma, permitir que se possa escrever testes que retratarem
bem as características do software e suas relações. Além disso, outra contribuição, é a
possibilidade da realização de um planejamento para evitar que as especificações de histó-
rias/cenários transversais, quando transformadas em especificações executáveis (códigos),
sejam mapeadas juntas, gerando especificações executáveis também transversais. Deste
modo, identificar interesses transversais no momento da criação das histórias do usuário
pode ser um ponto de partida para automatização de testes de aceitação orientados a aspecto
escritos neste formato. Assim como, também, pode ser considerado uma estratégia útil
para proporcionar aos stakeholders um melhor entendimento dos comportamentos de cada
funcionalidade criada.
Referências
Chernak, Y. (2013). Implementing Aspect-Oriented Requirements Analysis for Investment
Banking Applications, chapter 15, pages 289 – 316. Springer, 1 edition.
Mitchell, J. L. e Black, R. (2015). Advanced Software Testing, volume 3. Rocky Nook, 2
edition.
Moreira, A., Chitchyan, R., Araújo, J., e Rashid, A. (2013). Aspect-oriented requirements
engineering. Springer, 1 edition.
North, D. (2014). BDDWiki: Introduction. Editado pela última vez em 2014-09-29.
North, D. (2015). JBehave.
Pressman, R. S. (2011). Engenharia de Software. Bookman, 7 edition.
Ramos, R., Araújo, J., Moreira, A., Castro, J., Alencar, F., e Penteado, R. (2007). Um
Padrão para Requisitos Duplicados. Supporting Organizations.
Rashid, A., Sawyer, P., Moreira, A., e Araujo, J. (2002). Early aspects: A model for aspect-
oriented requirements engineering. In Requirements Engineering, 2002. Proceedings.
IEEE Joint International Conference on, pages 199 – 202. IEEE.
Restivo, A. M. O. (2015). Incremental Modular Testing in Aspect Oriented Programing.
Faculdade de engenharia informatica, Faculdade de Engenharia da Universidade do
Porto.
Smart, J. F. (2015). BDD in Action: Behavior-Driven Development for the whole software
lifecycle. Manning.
Sommerville, I. (2011). Software Engineering - 9th edition. Pearson.
Tekinerdoğan, B., Moreira, A., Araújo, J., e Clements, P. (2005). Early Aspects: Aspect-
Oriented Requirements Engineering and Architecture Design. In E. Aspects, editor,
Anais do Workshop Proceedings.
620
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
1
Softwarização em Redes: Do Plano de Dados ao
Plano de Orquestração
Abstract
Packet Processor Programming, Software Defined Network (SDN) and Network Function
Virtualization (NFV) are different technologies involved in network programming, typi-
cally known as Network "Softwarization". This trend is already a reality in the Telecom-
munications and Information Technology and Communication industry. The network pro-
grammability seeks to optimize costs, automate processes, and offer new services with
the flexibility and agility to create them. The “Softwarization" is creating the conditions
for reinventing the network and service architectures. This mini-course has the follow-
ing objectives: to present a bottom-up vision in the area of network programming; to
approach the principles of programming in the data plane presenting the P4 language;
define data forwarding technology through the OpenFlow protocol (SDN); to present the
network function virtualization in the orchestration of services; and finally, to discuss the
main challenges in the area of network programming. Thus, the mini-course will provide
the participants the main points of the network "softwarization" with focus on the current
tendencies for several lines of research.
Resumo
621
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1.1. Introdução
A infraestrutura das operadoras de telecomunicações consiste de várias tecnologias e es-
pecializados domínios de redes tais como acesso, transporte e núcleo. Atualmente, criar e
implantar serviços de telecomunicações fim-a-fim é um processo manual e lento realizado
através do tradicional Sistema de Suporte a Operação, ou em inglês, Operation Support
System (OSS) [BluePlanet 2017]. Além disso, suas redes estão atreladas a hardware e
software proprietários, os quais demandam altos custos de implantação e de operação
(energia, espaço e técnicos especializados).
Novas tecnologias como Programação de processadores de pacotes, Redes
definidas por Software (SDN) e Virtualização das Funções de Redes (NFV) estão mu-
dando a forma que as operadoras de telecomunicações criarão, implantarão e gerenciarão
os seus serviços [Sonkoly et al. 2014]. Tais tecnologias permitirão a utilização flexível,
escalável e eficiente das infraestruturas de rede. Entretanto, atualmente as operadoras e
provedores de serviços necessitam ter a capacidade de gerenciar e integrar todas essas
tecnologias.
Para acompanhar essas novas tendências, as operadoras de telecomunicações estão
focando na evolução do hardware para o software. Suas infraestruturas devem convergir
para integrar o processamento, o armazenamento e a rede [Galis et al. 2014]. Tecnologias
de virtualização abstraem o hardware e permitem maior elasticidade e automação. No
entanto, atualmente as operadores enfrentam grandes desafios como:
3. Ciclo de vida reduzido do hardware, o que faz com que os mesmos sejam substituí-
dos periodicamente;
622
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
623
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
624
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
atualizar drivers, testar e colocar em produção. Geralmente todo esse processo leva alguns
meses ou mesmo anos de trabalho. Em um ambiente em que necessita ser dinâmico e
flexível todo esse processo impacta diretamente no funcionamento da rede.
Geralmente, os equipamentos de redes são desenvolvidos com configurações fixas
e na direção bottom-up (baixo para cima), ou seja, os sistemas operacionais e softwares
precisam se adequar ao que o processador do equipamento pode oferecer.
Pensando nisso novas pesquisas e soluções estão surgindo nesses últimos anos
para mudar como as redes são implementadas. As redes estão começando a ser progra-
madas em uma abordagem top-down. Com isso é possível programar qual o compor-
tamento desejado para o plano de dados. Novos serviços e funcionalidades podem ser
implementadas não necessitando que seja realizado todo processo de desenvolvimento de
novos equipamentos. O que antes faziam em anos agora pode ser feito em horas.
A programabilidade no plano de dados enfrenta diversos desafios e está sendo
investigada pela comunidade acadêmica e a indústria. Os novos switches (equipamentos
de rede) programáveis devem atender requisitos como [Bosshart et al. 2014]:
Esses desafios não são superados de um dia para outro, mas a academia e a in-
dústria mostram sinais promissores de progresso nessa direção. Um nova geração de
tecnologias programáveis estão surgindo como por exemplo [Kim 2016]:
625
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Portanto, é necessário uma linguagem de alto nível que consiga abstrair o plano
de dados e permita programar como os equipamentos de rede devem se comportar. A
figura 1.3 ilustra a proposta do funcionamento de equipamentos de redes programáveis.
Nesse contexto surgiu uma linguagem de alto nível para programação de pa-
cotes independente de protocolo chamado P4, Programming Protocol-independent Packet
Processors [Bosshart et al. 2014]. Na próxima seção será descrito os detalhes dessa lin-
guagem.
1.2.1. Linguagem P4
A linguagem P4 foi proposta em 2014 no ACM SIGCOMM Computer Communication
Review por um consórcio de várias empresas tais como Barefoot Networks, Intel, Google,
Microsoft e as universidades de Stanford e Princeton. Nos últimos anos a linguagem saiu
de uma simples proposta para uma especificação.
P4 é uma linguagem open source específica para a programação do plano de da-
dos. Atualmente ela é mantida por uma organização chamada P4 Language Consortium.
Basicamente, o P4 abstrai a programação de redes e pode servir como uma interface
genérica entre os equipamentos de rede e o plano de controle (veja figura 1.3).
O projeto da linguagem P4 é baseado em três objetivos principais [Bosshart et al.
2014]:
626
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
627
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
628
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6. Para testar, utilizar o console do mininet para executar novamente um ping entre as
estações do cenário.
> h1 ping h2
PING 10.0.1.10 (10.0.1.10) 56(84) bytes of data.
64 bytes from 10.0.1.10: icmp_seq=7 ttl=63 time=4.71 ms
64 bytes from 10.0.1.10: icmp_seq=8 ttl=63 time=4.48 ms
629
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Figure 1.7. Visão simplificada de uma arquitetura SDN. Adaptado de [Kreutz et al. 2015]
1.3.1. OpenFlow
O OpenFlow [McKeown et al. 2008] é o primeiro protocolo padrão projetado especifica-
mente para SDN, proporcionando alto desempenho e controle de tráfego granular através
de dispositivos de rede de vários fornecedores. O OpenFlow é um protocolo aberto ado-
tado comercialmente como padrão para SDN. Grandes fabricantes de equipamentos de
rede como Cisco, Juniper, Extreme e HP já o utilizam.
OpenFlow é um protocolo que proporciona acesso à tabela de fluxos dos equipa-
mentos de rede. Dessa forma possibilita configurar várias ações sobre os fluxos de dados,
630
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
por exemplo, encaminhamento, descarte, túnel, VLAN [Das et al. 2011] e controlador de
redes ópticas [Saraiva and Castelo Branco Soares 2016]. Ele é formado por dois princi-
pais componentes, o switch OpenFlow, que implementa o plano de dados, e o controlador,
que implementa o plano de controle. A comunicação entre estes dois elementos é através
de um canal seguro. Os fluxos de dados da rede são gerenciados pelo controlador. A
Figura 1.8 ilustra a arquitetura do switch OpenFlow.
631
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
632
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7. Agora, insira algumas regras no switch para permitir o ping entre as estações usando
os comandos ovs-ofctl
sudo ovs-ofctl show s1
sudo ovs-ofctl dump-desc s1
sudo ovs-ofctl add-flow s1 priority=100,in_port=1,actions=output:2
sudo ovs-ofctl add-flow s1 priority=100,in_port=2,actions=output:1
sudo ovs-ofctl dump-flows s1
633
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Além disso, o NFV é capaz de alocar funções de rede em locais mais apropriados
e prover melhor desempenho para o tráfego dos usuários. Um serviço de rede pode ser de-
composto em um ou mais VNFs, e cada uma pode ser formada por um ou mais máquinas
virtuais (ou Virtual Machines (VMs)). Cada VNF é especificada por um descritor de
função de rede virtualizada (ou Virtualized Network Function Descriptor (VNFD)) que
detalha as informações de funcionamento e implantação da VNF.
As VNFs podem ser conectadas ou combinadas juntas para oferecer um serviço
de comunicação de rede fim-a-fim. Isso é conhecido como cadeia de serviço (ou Service
Chain). A cadeia de Serviço fornece uma conectividade lógica entre os equipamentos
virtuais da NFV cuja a ordem de conectividade é importante. Ela também permite a
interconexão do ambiente lógico com redes físicas.
No escopo do ETSI NFV, cadeia de serviço é definido como um grafo de links
lógicos conectando funções de rede a fim de descrever o fluxo de tráfego entre estes
funções de rede. Esse conceito é equivalente ao Encadeamento de Funções de Serviço, ou
Service Function Chaining (SFC), definido pela Internet Engineering Task Force (IETF).
Um serviço de rede fim-a-fim pode usar um ou mais gráficos de encaminhamento
de funções de rede que conecta dois pontos finais através de funções de rede. A figura 1.10
descreve dois exemplos de serviços de rede fim-a-fim. O primeiro (linha verde) é com-
posto de VNFs do tipo vCPE (Virtual Customer Premises Equipment) e vFW (virtual
Firewall) e dois pontos finais (A1 e A2). O secundo é composto de VNFs do tipo vCPE e
vDPI (virtual Deep Packet Inspection) e os pontos finais B1 e B2. Observe-se que o NFV
permite compartilhar VNFs entre diferentes serviços de rede. Isso é uma vantagem em
termos de reutilização de recursos e rapidez na implementação dos serviços.
Figure 1.10. Exemplo de dois serviços de rede fim-a-fim em uma abordagem NFV.
634
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• VNF: bloco funcional que representa uma função de rede virtualizada implemen-
tada sobre um servidor físico. Por exemplo, um roteador ou switch virtual, firewall,
etc.
635
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1.4.1.1. Tacker
5 www.openstack.org
636
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1. Garantir que o Tacker tenha a imagem do OpenWRT. Caso não, usar o comando
abaixo para fazer o upload da imagem.
openstack image create OpenWRT -- disk-format qcow2 -- container-format
bare -- file caminho/Para/Imagem/imagem.img -- public
5. Verificar o status.
tacker vnfd-list
tacker vnf-list
tacker vnf-show <VNF_ID>
6 http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/csd03/tosca-nfv-v1.0-csd03.html
7 https://openwrt.org/
637
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1.5.1. Desempenho
As mudanças que as tecnologias de processamento de pacotes, SDN e NFV trouxeram
para o ambiente de redes tornou-o extremamente virtualizado e baseado em software. En-
tão, o desempenho é um desafio constante nesse ambiente altamente dinâmico de funções
e serviços virtuais.
Atualmente, o throughput de switches OpenFlow comerciais varia de 38 a 1000
fluxos por segundos [Bifulco and Dusi 2014], [Stephens et al. 2012]. Isso é um fator
limitante que deverá ser abordado no projeto dos processadores dos swithes. O suporte
do OpenFlow nas atuais linhas de produção tem sido mais uma adaptação do que um
planejamento para um projeto específico. Uma possível solução seria a evolução dos
switches SDN através de atividades de padronização das API southbound [Kreutz et al.
2015].
Tecnologias já existentes, como DPDK, ClickOS e FPGA, estão dando suporte aos
desafios de desempenho do NFV, tais como balanceamento de carga dinâmico e automa-
tizado e escalabilidade. É importante notar pela figura 1.12 a complexidade de uso versus
a eficiência de chips genéricos (CPU) podem atender casos de usos mais complexos e
portanto podem habilitar o conceito de NFV [Siracusa et al. 2013].
1.5.2. Portabilidade
A portabilidade e a integração com sistemas legados também é um grande desafio para
"softwarização" de redes. Quanto a linguagem P4, esse problema teoricamente é re-
solvido, pois ela é independente do tipo do hardware. O compilador permitirá o fun-
cionamento de um mesmo programa P4 em várias plataformas diferentes. O que muda é
o compilador e não o programa em si.
Quanto a SDN, a escolha da implementação do switch tem fator decisivo no seu
comportamento, precisão e desempenho, variando desde contadores de fluxos até na
638
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Figure 1.12. Eficiência de chip vs. complexidade de caso de uso [Siracusa et al. 2013].
1.5.3. Segurança
Uma infraestrutura de rede softwarizada e virtualizada modifica a forma como os fluxos
de dados e serviços são implementados. E isso impacta diretamente na segurança da rede.
Portanto, novos recursos e funcionalidades necessitam ser implantadas, incluindo capaci-
8 http://openbaton.github.io/
639
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
640
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mesmo ser uma função de rede virtualizada. Existe algumas soluções de orquestração tais
como ONAP e CORD que definem um novo componente SDN em suas arquiteturas. É
necessário uma maior investigação nesse sentido.
1.6. Conclusão
As tradicionais redes são caracterizadas pela forte ligação com hardware fixos e propri-
etários. Esse modelo vem mostrando-se não escalável e inflexível à mudanças. Além
disso, gera um alto custo de implantação devido a aquisição de hardwares específicos,
como também um alto custo de operação e manutenção com complexos gerenciamentos
e manutenção de uma equipe técnica especializada na plataforma adquirida.
A "softwarização" de redes está mudando a forma com as redes são construídas e
gerenciadas permitindo maior flexibilidade, escalabilidade e automação. Nesse minicurso
abordamos as três principais tecnologias fundamentais no processo de "softwarização" de
redes: Programação de processador de pacotes, Redes definidas por Software e Funções
de Redes Virtualizadas. Essa abordagem consiste de uma visão geral de cada tecnologia.
Atividades práticas foram apresentadas com o objetivo de direcionar os participantes em
seus primeiros experimentos com P4, OpenFlow e NFV.
A tecnologia SDN apresenta-se bem consolidada com aporte da ONF e com
plataformas amplamente aceitas como OpenDayLight e ONOS. O NFV ainda estão em
fase de padronização e com algumas soluções propostas como ONAP, Tacker, Cloudify e
OpenBaton. Já a programabilidade do plano de dados está evoluindo rapidamente com a
linguagem P4.
Entretanto, todos essas tecnologias apresentam desafios que necessitam ser estu-
dados e avalidos pela indústria e comunidade acadêmica. Apresentamos alguns desafios
comuns a essas tecnologias, mas muitos outros existem nesse meio tão fértil de novas
oportunidades de pesquisa.
Referências
[Bernardos et al. 2015] Bernardos, C. J., Dugeon, O., Galis, A., Morris, D., and Simon,
C. (2015). 5G Exchange (5GEx) – Multi-domain Orchestration for Software Defined
Infrastructures.
[Bifulco and Dusi 2014] Bifulco, R. and Dusi, M. (2014). Position paper: Reactive logic
in software-defined networking: Accounting for the limitations of the switches. 2014
Third European Workshop on Software Defined Networks (EWSDN), 00:97–102.
[Bosshart et al. 2014] Bosshart, P., Varghese, G., Walker, D., Daly, D., Gibb, G., Izzard,
M., McKeown, N., Rexford, J., Schlesinger, C., Talayco, D., and Vahdat, A. (2014).
P4: Programming Protocol-Independent Packet Processors. ACM SIGCOMM Com-
puter Communication Review, 44(3):87–95.
641
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Das et al. 2011] Das, S., Sharafat, A., Parulkar, G., and McKeown, N. (2011). Mpls with
a simple open control plane. In Optical Fiber Communication Conference/National
Fiber Optic Engineers Conference 2011, page OWP2. Optical Society of America.
[ETSI Industry Specification Group (ISG) NFV 2014a] ETSI Industry Specification
Group (ISG) NFV (2014a). Network Functions Virtualisation (NFV); Management
and Orchestration; Report on Architectural Options.
[ETSI Industry Specification Group (ISG) NFV 2014b] ETSI Industry Specification
Group (ISG) NFV (2014b). Network Functions Virtualisation (NFV); Terminology
for Main Concepts in NFV.
[Foundation 2017] Foundation, L. (2017). ONAP – Open Network Automation Platform.
[Galis et al. 2014] Galis, A., Clayman, S., Mamatas, L., Serrat, J., Rubio-loyola, J., Man-
zalini, A., and Zahariadis, T. (2014). Softwarization of Future Networks and Services
- Programmable Enabled Networks as Next Generation Software Defined Networks.
IEEE SDN for Future Networks and Services (SDN4FNS).
[Katsalis et al. 2016] Katsalis, K., Nikaein, N., and Edmonds, A. (2016). Multi-Domain
Orchestration for NFV: Challenges and Research Directions. In 2016 15th Interna-
tional Conference on Ubiquitous Computing and Communications and 2016 Interna-
tional Symposium on Cyberspace and Security (IUCC-CSS), pages 189–195. IEEE.
[Kim 2016] Kim, C. (2016). Tutorial-Programming The Network Data Plane in P4.
[Koponen et al. 2010] Koponen, T., Casado, M., Gude, N., Stribling, J., Poutievski, L.,
Zhu, M., Ramanathan, R., Iwata, Y., Inoue, H., Hama, T., and Shenker, S. (2010). Onix:
A Distributed Control Platform for Large-scale Production Networks. In Operating
Systems Design and Implementation - OSDI, volume 10, pages 1–6.
[Kreutz et al. 2015] Kreutz, D., Ramos, F. M. V., Esteves Verissimo, P., Esteve Rothen-
berg, C., Azodolmolky, S., and Uhlig, S. (2015). Software-Defined Networking: A
Comprehensive Survey. Proceedings of the IEEE, 103(1):14–76.
[McKeown et al. 2008] McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Pe-
terson, L., Rexford, J., Shenker, S., and Turner, J. (2008). Openflow: Enabling inno-
vation in campus networks. SIGCOMM Comput. Commun. Rev., 38(2):69–74.
[Mijumbi et al. 2016] Mijumbi, R., Serrat, J., Gorricho, J.-l., Bouten, N., De Turck, F.,
and Boutaba, R. (2016). Network Function Virtualization: State-of-the-Art and Re-
search Challenges. IEEE Communications Surveys & Tutorials, 18(1):236–262.
[OASIS 2017] OASIS (2017). TOSCA Simple Profile for Network Functions Virtualiza-
tion (NFV)—Version 1.0.
[OpenStack Foundation 2016] OpenStack Foundation (2016). Tacker - OpenStack.
[Pentikousis et al. 2013] Pentikousis, K., Wang, Y., and Hu, W. (2013). Mobileflow: To-
ward software-defined mobile networks. IEEE Communications Magazine, 51(7):44–
53.
642
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Porras et al. 2012] Porras, P., Shin, S., Yegneswaran, V., Fong, M., Tyson, M., and Gu,
G. (2012). A security enforcement kernel for openflow networks. In Proceedings of
the First Workshop on Hot Topics in Software Defined Networks, HotSDN ’12, pages
121–126, New York, NY, USA. ACM.
[Richardson and Ruby 2008] Richardson, L. and Ruby, S. (2008). RESTful web services.
" O’Reilly Media, Inc.".
[Rosa et al. 2014] Rosa, R. V., Esteve, C., Unicamp, R., Barea, E., Ufscar, C. A., and
Cavalheiro, M. (2014). Network Function Virtualization: Perspectivas, Realidades
e Desafios. In Minicurso do 32o Simpósio Brasileiro de Redes de Computadores e
Sistemas Distribuídos – SBRC 2014.
[Rosa et al. 2015] Rosa, R. V., Santos, M. A. S., and Rothenberg, C. E. (2015). MD2-
NFV: The case for multi-domain distributed network functions virtualization. In 2015
International Conference and Workshops on Networked Systems (NetSys), pages 1–5.
IEEE.
[Rostami 2014] Rostami, A. (2014). The Evolution of Programmable Networks : From
Active Networks to Software Defined Networks ( SDN ).
[Saraiva et al. 2014] Saraiva, N., Falcao, T., Macedo, A., and Soares, A. (2014). A pro-
posed architecture for choice of switching paradigm in hybrid optical networks (OC-
S/OBS). In Proceedings of the 2014 Latin American Computing Conference, CLEI
2014.
[Saraiva and Castelo Branco Soares 2016] Saraiva, N. F. and Castelo Branco Soares,
A. (2016). A Performance Evaluation Programmable Architecture for Choice of
Switching Paradigm in Hybrid Optical Networks. IEEE Latin America Transactions,
14(11):4567–4572.
[Shin et al. 2014] Shin, S., Song, Y., Lee, T., Lee, S., Chung, J., Porras, P., Yeg-
neswaran, V., Noh, J., and Kang, B. B. (2014). Rosemary: A robust, secure, and
high-performance network operating system. In Proceedings of the 2014 ACM SIGSAC
Conference on Computer and Communications Security, CCS ’14, pages 78–89, New
York, NY, USA. ACM.
[Siracusa et al. 2013] Siracusa, D., Salvadori, E., and Rasheed, T. (2013). Edge-to-edge
virtualization and orchestration in heterogeneous transport networks. In 2013 IEEE
SDN for Future Networks and Services (SDN4FNS), pages 1–6.
[Sonkoly et al. 2014] Sonkoly, B., Szabo, R., Jocha, D., Czentye, J., Kind, M., and West-
phal, F.-J. (2014). UNIFYing Cloud and Carrier Network Resources: An Architectural
View. In 2015 IEEE Global Communications Conference (GLOBECOM), pages 1–7.
IEEE.
[Stephens et al. 2012] Stephens, B., Cox, A., Felter, W., Dixon, C., and Carter, J. (2012).
Past: Scalable ethernet for data centers. In Proceedings of the 8th International Con-
ference on Emerging Networking Experiments and Technologies, CoNEXT ’12, pages
49–60, New York, NY, USA. ACM.
643
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
2
Roteamento Dinâmico em IoT baseado em
Requisitos de Aplicações Específicas
Abstract
The pervasive presence of a variety of devices led to the creation of the Internet of
Things (IoT) paradigm. Data dissemination in IoT is generally application dependent
and requires context-aware routing protocols. This chapter aims to present the main
routing concepts in IoT and demonstrate the operation of dynamic routing protocols
inspired by RPL. In addition, an approach for Dynamic Route Selection in IoT based on
Contextual Information will be presented. It is expected that at the end of this chapter
the reader will be able to propose dynamic routing protocols for specific IoT
applications using the approach presented here.
Resumo
A presença pervasiva de uma variedade de dispositivos levou a criação do paradigma
conhecido como Internet das Coisas (Internet of Things - IoT). A disseminação de
dados em IoT é, geralmente, dependente da aplicação e exige protocolos de roteamento
ciente de contexto. Este capítulo tem por objetivo apresentar os principais conceitos de
roteamento em IoT e demonstrar o funcionamento de protocolos de roteamento
dinâmico inspirados no RPL. Além disso, será apresentada uma abordagem para
Seleção Dinâmica de Rotas em IoT baseada em Informações Contextuais. Espera-se
que ao final deste capítulo, o leitor esteja apto a propor protocolos de roteamento
dinâmicos para aplicações específicas de IoT utilizando a abordagem aqui
apresentada.
644
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2.1. Introdução
A Internet das Coisas (Internet of Things - IoT) é a presença pervasiva de uma variedade
de dispositivos, tais como: sensores, etiquetas de Radio Frequency Identification
(RFID), smartphones, dentre outros dispositivos que são capazes de interagir uns com
os outros para um objetivo comum (Atzori et al., 2010). No cenário de IoT, a
pluralidade é crescente e previsões indicam que mais de 40 bilhões de dispositivos
estarão conectados até 2020 [Forbes 2014], possibilitando o surgimento de novas
possibilidades de aplicações, como exemplo: cidades inteligentes, saúde, casas
inteligentes, etc.
Entre as tecnologias mais promissoras para o paradigma de IoT estão a RFID e
Redes de Sensores sem Fio (RSSF), segundo [Atzori et al., 2010] e [Sobral et al. 2015].
As RSSF possuem limitações na identificação de um objeto/pessoa em determinados
tipos de aplicação. No entanto, ao contrário das RSSF, os sistemas RFID não são
capazes de sensorear dados do local onde estão inseridos, tais como: humidade,
temperatura e pressão, proporcionados pela RSSF. Essa é uma indicação de que a IoT,
por meio da integração entre as tecnologias RFID e RSSF, maximiza os seus benefícios
criando novas perspectivas para diversas aplicações, como exemplo as que levam em
consideração as informações de contexto.
O contexto geralmente refere-se à localização, mas pode compreender diferentes
informações usadas para caracterizar entidades envolvidas na interação do usuário com
a aplicação. Segundo [Baldauf et al. 2007], sistemas sensíveis ao contexto são capazes
de adaptar seu comportamento às condições atuais, sem intervenção explícita do usuário
Em IoT, diversas informações como características do próprio dispositivo, do
ambiente que o cerca e de suas capacidades podem ser utilizadas como fonte de
informações contextuais. Muitos trabalhos disponíveis na literatura convergem esforços
para atender questões envolvendo sensibilidade ao contexto em IoT, especialmente
durante a fase de seleção de rotas. Nessa fase, os dispositivos (que possuem fortes
restrições de recursos) processam localmente as informações contextuais a fim de
selecionar o caminho que melhor atenda as necessidades de determinada aplicação.
Esta característica requer protocolos de roteamento sensíveis ao contexto para o
cumprimento de diversos desafios durante a troca de mensagens em IoT, tais como:
menor delay, maior confiabilidade na transmissão dos dados e consumo mínimo de
energia. Baseado nesses desafios, este capítulo também abordará uma adaptação no
protocolo RPL (Routing Protocol for Low-power and Lossy-networks) - (RFC 6550),
que é implementada a partir da criação de quatro novas OF (Functions Objetive).
O uso das funções objetivo propostas ocorre no processo de estabelecimento de
rotas, de maneira a satisfazer aplicações tais como: monitoramento de temperatura em
áreas remotas e da qualidade do ar de uma cidade ou região específica, controle de fluxo
de veículos em uma via, dentre outras.
A estrutura do capítulo está organizada da seguinte forma: a Seção 2.2 apresenta
os principais conceitos de roteamento em IoT. O protocolo RPL é detalhado na seção
2.3. A Seção 2.4 traz uma abordagem para a seleção dinâmica de rotas em IoT, seguida
pela conclusão na Seção 2.5.
645
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
646
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1
𝐸𝑇𝑋 = (1)
𝐷𝑓. 𝐷𝑟𝑠𝑠
Onde:
Df é a probabilidade do pacote ser recebido pelo vizinho;
Dr é a probabilidade do ACK ser recebido com sucesso.
647
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
648
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Na expressão (6) cada ligação l tem um rank, igual ao rank calculado no nó ni,
em relação a um nó pai selecionado aj (j=1, 2, ..., m):
a) Fase de Configuração:
A construção da rede é iniciada pela fase de configuração, que possui quatro
mensagens. Nessa fase, o gateway emite a primeira mensagem DODAG Information
Object (DIO) que representa a principal fonte de controle de roteamento. A segunda
mensagem enviada, chamada de Destination Object (DAO), habilita o tráfego
descendente de dados. A terceira mensagem enviada é o DODAG Information
Solicitation (DIS), que torna possível que um dado nó solicite uma mensagem DIO de
algum nó vizinho alcançável. Todos os seus nós vizinhos que receberem o DIO
adicionarão o gateway a uma tabela armazenada em memória, relacionada com a tabela
de roteamento, que armazena essencialmente o endereço dos nós vizinhos com os quais
existem futuras e possíveis ligações ascendente e descendente. A quarta mensagem é o
DAO-ACK, que é enviada em resposta ao recebimento de uma mensagem DAO.
649
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
R(N)=R(P)+rank_increase (9)
Onde:
R(N),é o novo rank do nó;
R(P),é o rank do pai preferido;
rank_increase, é um fator de variação (delta) entre o rank do pai e o do próprio
nó, descrito na expressão (10):
rank_increase=(Rf*Sp+Sr)*MinHoprank_increase (10)
Onde:
Rf é o um fator configurável que é usado para multiplicar o valor da propriedade
do link. Por default, utiliza o valor 1;
Sp,é o passo do rank;
Sr,é o valor máximo atribuído ao nível do rank a fim de permitir um sucessor
viável.
MinHoprank_increase, é o incremento mínimo em rank entre um nó e qualquer
de seus pais, cujo valor default é 256;
650
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A partir dessas informações um peso T(ni) é obtido por cada dispositivo da rede,
que representa a soma das funções de contexto.
651
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
𝑄𝐶 = ∑𝑘−1
𝑖=1 𝑇(𝑛𝑖)𝑣𝑖 (15)
652
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Onde:
𝐸𝑛𝑒𝑟𝑔𝑒𝑠𝑡𝑉𝑎𝑙𝑢𝑒 = Valor Energest registrado em cada atividade.
𝐶𝑢𝑟𝑟𝑒𝑛𝑡 = Consumo atual.
𝑉𝑜𝑙𝑡𝑎𝑔𝑒 = Voltagem requerida pelas baterias.
𝑅𝑇𝐼𝑀𝐸𝑅𝑆𝐸𝐶𝑂𝑁𝐷 = Temporizador em segundos que é usado pelo módulo rtimer no
Contik (o temporizador em tempo real)
653
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
654
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
B. Resultados Obtidos
Analisando os resultados apresentados nas figuras 3 e 4, observamos que
aplicações que exigem prioridade alta relacionada ao tempo de vida e ao delay,
utilizaram, para o processo de seleção de rotas, a função DQCA-OF4. Esta função
obteve, ao término da simulação, maior energia residual (na ordem de 170 joules)
quando comparada com as funções MRHOF e OF0 que obtiveram, respectivamente,
consumos de 100 joules e 80 joules. Isso ocorreu por esta função considerar as métricas
energia consumida e número de saltos, fazendo com que fossem selecionadas rotas que
possuem menor energia consumida e menor número de saltos.
655
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
656
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2.4.2. Simulação
No passado, Uzi Landman e seus colegas da Universidade da Georgia, Estados Unidos,
descobriram algumas das regras que explicam porque um metal não-reativo como o
ouro funciona como um catalisador quando ele se uni em agrupamentos de alguns
poucos átomos. Eles não se utilizaram de experimentos reais com porções do metal
precioso. Ao invés disso, eles simularam em computador e descobriram que o ouro é um
catalisador muito efetivo quando se encontra na forma de partículas que contenham
entre 8 e 24 átomos. Eles também descobriram que a absorção de cargas elétricas pelo
metal tem um papel crucial em seu funcionamento como catalisador [Zhang et al.,
2008].
Apenas seis anos mais tarde, a tecnologia disponibilizou o aparato técnico que
permitiu que a equipe realizasse testes de suas previsões experimentalmente. A
experiência mostrou que seus cálculos estavam corretos. Landman e seus colegas
utilizaram-se da metodologia científica para validar seu trabalho. Tal metodologia
orienta-se sobre os seguintes passos: observação, formulação de pergunta, formulação
de hipótese, experiência controlada e análise conclusiva dos dados.
Com base no trabalho de Landman e na realidade atual, percebe-se que a
simulação tornou-se uma ferramenta importante para a verificação de uma hipótese
formulada. Geralmente, o experimento valida uma hipótese. Entretanto, em cenários de
redes, uma hipótese pode ser validada utilizando-se de um ou mais dos seguintes
657
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
658
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2.5. Conclusão
Neste capítulo, foi apresentada uma abordagem para Seleção Dinâmica de Rotas em IoT
baseada em Informações de contexto das aplicações. Os resultados mostraram que a
abordagem, considerando todas as funções objetivo propostas, é mais eficiente quando
comparado com a abordagem utilizada pelo protocolo RPL em sua versão original. Isso
foi possível porque as funções objetivo que foram propostas para adaptação do
roteamento no protocolo RPL, apresentaram resultados positivos com relação a
Estimativa de Transmissão (ETX), Número de Saltos (NS), Energia Consumida (EC),
Energia Residual (ER) e Custo de Recebimento de Mensagens (CR).
Também foram apresentados os principais conceitos de roteamento em IoT e o
detalhamento do protocolo RPL. As características de simulação incluindo um
simulador voltado para IoT foram abordadas para mostrar a forma de se validar uma
proposta semelhante a que foi apresentada neste trabalho.
A avaliação da proposta por meio de simulação, demonstrou que a utilização da
abordagem para Seleção Dinâmica de Rotas em IoT baseada em Informações de
contexto das aplicações apresenta resultados positivos em todas as métricas avaliadas.
659
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referência
Al-Fuqaha, A., Guizani, M., MOhammade, M., Aledhari, M., e Ayyash, M. (2015).
Internet of things: A survey on enabling Technologies, protocols, and applications.
IEEE Communications Surveys Tutorials, 17(4): 2347-2376.
Atzori, L., Iera, A. and Morabito, G. (2010). The internet of things: A survey, Computer
networks 54(15): 2787–2805.
Baldauf, M., Dustdar, S., Rosenberg, F. (2007) “A survey on context-aware systems”,
International Journal of Ad Hoc and Ubiquitous Computing, vol. 2, no. 4, pp.
263277.
Boulis, A. (2009). Castalia version 2.1 user’s manual.
Brandt, A., Vasseur, J., Hui, J., Pister, K., Thubert, P., Levis, P., Struik, R., Kelsey, R.,
Clausen, T. H., e Winter, T. (2012). RPL: IPv6 Routing Protocol for Low-Power and
Lossy Network. RFC 6550.
Brandt, A., J. Buron, and G. Porcu. Home Automation Routing Requirements in Low-
Power and Lossy Networks. Internet Engineering Task Force (IETF). 2010. RFC
5826.
Chang, X. (1999). Network simulations with opnet. In WSC ’99: Proceedings of the
31st Conference on Winter Simulation, pages 307–314, New York, NY, USA. ACM.
Chen, Y., Chanet, J., Hou, K., Shi, H., De Sousa, G.: A scalable Context-Aware
Objective Function (SCAOF) of Routing Protocol for Agricultural Low-Power and
Lossy Networks (RPAL). Sensors 19507–19540 (2015)
Curren, D. (2005). A survey of simulation in sensor networks. project report (CS580),
University of Binghamton.
Dohler, M., et al. Routing Requirements for Urban Low-Power and Lossy Networks.
Network Working Group . 2009. RFC 5548.
Downard, I. (2004). Simulating sensor networks in ns-2.
Dunkels, A., Osterlind, F., Tsiftes, N., e He, Z. (2007). Software-based on-line energy
estimation for sensor nodes. In Proceedings of the 4th Workshop on Embedded
Networked Sensors, EmNets ’07, pages 28-32, New York, NY, USA. ACM.
Egea -Lopez, E., Vales-Alonso, J., Martinez-Sala, A., Pavon-Marino, P., and Garc´ıa-
Haro, J. (2005). Simulation tools for wireless sensor networks. In Proceedings of the
International Symposium on Performance Evaluation of Computer and
Telecommunication Systems (SPECTS’05).
Forbes (2014). Internet of Things By The Numbers: Market Estimates And Forecasts.
Gaddour, O.; KOUBÂA, A.; BACCOUR, N.; ABID, M. OF-FL: QoS-aware fuzzy
logic objective function for the RPL routing protocol. In: Modeling and Optimization
in Mobile, Ad Hoc, and Wireless Networks (WiOpt), 2014 12th International
Symposium on. IEEE, 2014, p. 365-372, 2014.
660
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Handziski, V., Kopke, A., Karl, H., and Wolisz, A. (2003). A common wireless sensor
network architecture. Proc. 1. GI/ITG Fachgesprach Sensornetze(Technical Report
TKN-03-012 of the Telecommunications Networks Group, Technische Universitat
Berlin), Technische Universitat Berlin, Berlin, Germany, pages 10–17.
IETF. IETF Datatracker. [Online] Agosto de 2013.
https://datatracker.ietf.org/wg/roll/charter/.
Jayaraman, P. P.; Delirhaghighi, P. SA-A-WSN: Situation-aware adaptation approach
for energy conservation in wireless sensor network. In: Intelligent Sensors, Sensor
Networks and Information Processing, 2013 IEEE Eighth International Conference
on. IEEE, 2013, p. 7-12, 2013.
Levis, P., Lee, N., Welsh, M., and Culler, D. (2003). TOSSIM: Accurate and scalable
simulation of entire TinyOS applications. In Proceedings of the 1st International
Conference on Embedded Networked Sensor Systems, pages 126–137. ACM New
York, NY, USA.
Martocci, J., et al. Building Automation Routing Requirements in Low-Power and
Lossy Networks. Network Working Group. 2010. RFC 5867.
Makris, P., Skoutas, D. N., Skianis, C. (2013) “A Survey on Context-Aware Mobile and
Wireless Networking: On Networking and Computing Environments’ Integration”,
IEEE Communications Surveys and Tutorials, vol. 15, no. 1, pp. 362-386
Miorandi, D., Sicari, S., De Pellegrini, F. and Chlamtac, I. (2012). Internet of things:
Vision, applications and research challenges, Ad Hoc Networks 10(7): 1497–1516.
Park, S., Savvides, A., and Srivastava, M. (2001). Simulating networks of wireless
sensors. In Proceedings of the 33nd Conference on Winter Simulation, pages 1330–
1338. IEEE Computer Society Washington, DC, USA
Kushalnagar, N., Montenegro, G., & Schumacher, C. 2007. RFC4919: IPv6 over low-
power wireless personal area networks 6LoWPANs: Overview, assumptions,
problem statement, and goals. Retrieved from http://tools.ietf.org/html/rfc4919
Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K.,
Struik, R., Vasseur, J., and Alexander, R. (2012). RPL: IPv6 Routing Protocol for
Low-Power and Lossy Networks. RFC 6550.
Martocci, J., et al. Building Automation Routing Requirements in Low-Power and
Lossy Networks. Network Working Group. 2010. RFC 5867.
Miorandi, D., Sicari, S., De Pellegrini, F. and Chlamtac, I. (2012). Internet of things:
Vision, applications and research challenges, Ad Hoc Networks 10(7): 1497–1516.
Osterlind, F.; Dunkels, A.; Eriksson, J.; Finne, N.; Voigt, T. Cross-level sensor network
simulation with cooja. In: Local Computer Networks, Proceedings 2006 31st IEEE
Conference on. IEEE, 2006, p. 641-648, 2006.
Pister, K., et al. Industrial Routing Requirements in Low-Power and Lossy Networks.
Network Working Group . 2009. RFC 5673.
Polley, J., Blazakis, D., McGee, J., Rusk, D., Baras, J., and Karir, M. (2004). Atemu: A
fine-grained sensor network simulator. In IEEE Communications Society Conference
on Sensor and Ad Hoc Communications and Networks. Citeseer.
661
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
662
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
3
Construção de Aplicações Baseadas em Física: uma
Introdução ao ODE
Abstract
In the last years, with graphics processing power improvement, many graphics applica-
tions were mixed with physics to create virtual environments that are similar to the real
world. To empower the skills in building these applications, more quickly and intuitively,
physics engines were employed. This work aims to present the use of the Open Dynamics
Engine (ODE), a physics engine, to develop an interactive graphics application, similar
to a shooting game. For this, concepts of computer graphics and implementation will be
presented. The product of this work is an open source project that contains necessary
tools to develop applications that use physics with ODE.
Resumo
Atualmente muitas aplicações gráficas têm recorrido à física para criar ambientes virtu-
ais realistas, devido ao aumento no processamento gráfico nos últimos anos isso tem sido
potencializado. Para promover de forma mais rápida e intuitiva a construção dessas apli-
cações motores físicos são utilizados. Este trabalho tem como objetivo apresentar uma
introdução ao uso do motor físico Open Dynamics Engine para desenvolver uma aplica-
ção gráfica interativa, similar a um jogo de tiro ao alvo. Para isso, serão apresentados
conceitos de computação gráfica, para produzir os gráficos na tela, e como implementar
o uso desse motor físico. O produto deste trabalho é um projeto open source que contém
as ferramentas necessárias para o desenvolvimento de aplicações gráficas utilizando a
física para criação de um cenário com gravidade e tratamento de colisão.
3.1. Introdução
Atualmente muitas aplicações gráficas têm recorrido à física para criar ambientes virtuais
suficientemente realistas. Objetos que permanecem estáticas no ar ou que não colidem
1 [email protected]
663
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
entre si (se atravessam), dependendo da aplicação, podem ser consideradas ações não
fiéis, os famosos “glitches”. Observando isso, nota-se que, em qualquer aplicação gráfica
realista deseja-se o cumprimento de algumas leis físicas. Considere a título de exemplo o
movimento balístico de um projétil, como no jogo angry birds, baseado em física, onde
os pássaros são lançados como projéteis [Rodrigues e Carvalho 2013]. Nesse caso, para
simularmos seu movimento tem-se que levar em consideração a velocidade inicial do pro-
jétil e a ação da gravidade, além da colisão deste projétil com outros elementos presentes
no cenário. A simulação do movimento desse projétil (objeto) pode ser determinado de
várias formas, destacam-se duas: cinemática e dinâmica. Com essas duas formas pode-se
gerar o movimento do objeto por meio de interpolação – o método que permite construir
um novo conjunto de dados a partir de um conjunto discreto de dados pontuais previa-
mente conhecidos.
Nos movimentos baseados em cinemática desconsideram-se a massa e as forças
que agem no objeto, ou seja, podemos interpolar a posição do objeto simplesmente apli-
cando uma função que determina sua posição ao longo do tempo. Diferentemente, nos
movimentos baseados em dinâmica investiga-se as causas do movimento, as ações que
geraram o movimento, por isso leva-se em consideração a massa do objeto e as forças
de ação e reação (leis físicas). Quando trabalha-se com animação, ou simulação, de mo-
vimentos dinâmicos são vários os fatores que determinam a equação de movimento do
objeto, para determiná-la, na maioria dos casos, precisa-se recorrer a solucionadores nu-
méricos computacionais para calcular a velocidade e aceleração do objeto, pois estes ele-
mentos são necessários para apontar a posição do objeto no decorrer do tempo. Para sanar
o trabalho de determinar todas as equações de movimento dos objetos uma alternativa é a
utilização de motores físicos.
Os motores físicos são alternativas usadas por pesquisadores e desenvolvedores de
jogos, entre outros, para lidar com o movimento de objetos e de objetos articulados por
meio de juntas. Utilizando um motor físico como caixa-preta é possível determinar o mo-
vimento pretendido através de forças calculando internamente a aceleração, velocidade,
posição, orientação e forças de contato que lidam com a colisão dos objetos, facilitando
assim o trabalho ao construir aplicações dinâmicas.
O objetivo norteador deste trabalho é mostrar como configurar e utilizar um motor
físico vinculando-o a uma aplicação gráfica. Na Figura 3.1, pode-se observar uma imagem
do cenário da aplicação produzida neste trabalho. Diferente do lançamento do pássaro no
jogo angry birds onde o usuário pode alterar o ângulo de lançamento projétil (a esfera
amarela) rotacionando-se dois eixos. Isso se deve ao fato que a aplicação possui está em
um ambiente de três dimensões (3D). No decorrer do trabalho explico como foi o processo
de criação da aplicação que está disponível em um repositório público2 .
Este trabalho é produto de um minicurso arquitetado sob um ambiente de pro-
gramação com implementação de algoritmos, vendo-se isso tentei limitar os códigos a
algumas chamadas destacando-os em fonte diferenciada. Todo o corpo das funções e
dos códigos estão dentro do projeto hospedado nesse repositório público. Para melhor
entendimento deste material consulte também o projeto.
2 https://github.com/danilob/ShootPhysics
664
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Figura 3.1. Sequência de imagens que exibe a ação do lançamento de uma esfera
sobre a torre de objetos cilíndricos (da esquerda para direita).
Nas seções a seguir falo sobre o panorama do uso de motores de física (Seção
3.2), exibindo sua principal contribuição destacando o motor de física Open Dynamics
Engine (ODE) que uso neste trabalho; na Seção 3.3, exibo o tipo de simulação física que
utilizaremos, pautada na mecânica de corpos rígidos; na Seção 3.4, discorro a respeito do
processo de criação de aplicações com física, sobre o viés de aplicações gráficas; a seguir,
na Seção 3.5, apresento o caso de estudo deste trabalho, a aplicação tiro ao alvo, com
alguns detalhes de implementação; e por fim, na conclusão (Seção 3.6) disponho algumas
das diversas aplicabilidades e trabalhos futuros possíveis com a utilização de ferramentas
que implementam a física, computacionalmente, por meio de motores.
665
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2D; todos esses motores são escritos em linguagem C ou C++. Particularmente, neste
trabalho utilizo o ODE como motor físico, ferramenta criada por [Smith et al. 2005].
Entre as diversas aplicações que usam motores físicos pode-se observar que ela
está presente principalmente no desenvolvimento de jogos, além disso eles são necessá-
rios para produção de animações e desenvolvimento de protótipos. No desenvolvimento
de protótipos seu uso se faz crucial para a construção de um projeto. Criar um protótipo
sem antes ter a certeza se o mesmo é estável acarretaria em prejuízos consideráveis para
empresa que o desenvolve. Como exemplo, a Nasa antes de lançar qualquer robô/veículo
para o espaço cria um protótipo computacionalmente (na máquina) e executa diversos
testes simulando fisicamente seu comportamento, somente após esgotar uma quantidade
considerável de testes é que o protótipo passa a ser construído realmente. Com o surgi-
mento de motores físicos robustos começamos a presenciar também animações (filmes)
com bons gráficos quase que compatível com a realidade, além de efeitos visuais mais
fidedignos. Existe muita pesquisa associada a animação de personagens baseados em fí-
sica, instigados pela construção de controladores com baixo poder de processamento e
que permitam aplicações realistas como por exemplos os trabalhos realizados por [Coros
et al. 2010, Geijtenbeek et al. 2012, da Silva et al. 2017].
Vimos que um mundo de possibilidades se torna viável com a física, porém encontra-
se escasso o material disponível para aprender a utilizar motores físicos, principalmente
em português. Nas pesquisas que realizei não encontrei nenhum material físico, ou
mesmo digital (livros, ebooks), em português que mostre como utilizar um motor físico.
Os materiais que estão disponíveis para este fim encontram-se na forma de tutoriais espa-
lhados pela rede (internet) onde muitos estão em inglês [Baraff 2001, Millington 2007],
o que inviabiliza o acesso a esta informação para muitos. Talvez se os pesquisadores, e
estudantes, estivessem mais a par da escalabilidade de aplicações em se utilizar motores
físicos existiria um aumento na procura e possivelmente de material disponível para novos
entusiastas. Em paralelo ao objetivo norteador deste material quero semear conhecimento,
mostrando que a computação não está limitada ao uso ou construção de sistemas, o que
fortemente se prega nas acadêmias em nível de graduação. Existem múltiplas possibili-
dades de desenvolvimento basta conhecer as ferramentas certas para isto, ou criá-las.
Na próxima seção falo mais a respeito do tipo de simulação física que trataremos
neste trabalho.
666
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
667
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A projeção está relacionada com a forma pela qual os objetos virtuais serão projetados
na tela de visualização, essa projeção será realizada por intermédio de uma matriz que
determina como cada pixel será projetado na tela. Pode-se definir a matriz de projeção
por meio da seguinte função OpenGL: glMatrixMode(GL_PROJECTION) (a). O
objetivo da função glMatrixMode() é informar que a matriz GL_PROJECTION está
aberta para alteração. Após abrir o modo de projeção (a), defini-se a matriz de projeção
tridimensional por meio da função gluPerspective (angle, aspect, near,
far) onde os parâmetros são podem ser verificados na Figura 3.2. Dentro do projeto
(repositório público) implementei a visualização ortogonal (2D) da aplicação, para exibir
uma visualização da cena similar ao jogo angry birds (Figura 3.3d). Para criar a matriz de
visualização ortogonal utilizei a função glOrtho(). Ambas as implementações estão
na classe Scene.
Para visualizar o cenário é preciso definir uma câmera. A configuração da câmera
é definida por meio de três vetores tridimensionais: up, at e eye. Esses vetores definem
o sistema de coordenadas da câmera, onde o vetor at aponta a posição para onde a câmera
deve olhar, o vetor eye defini a posição da câmera e o vetor up defini seu eixo.
A câmera em conjunto com a matriz de projeção são utilizadas para que o usuário
da aplicação possa observar o cenário como um todo. No OpenGL a câmera é definida
partir da seguinte função: gluLookAt (eye, at, up), onde cada um dos parâme-
tros representa um vetor composto por três valores reais.
aspect = w/h
Câmera angle w h
near
far
668
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Podemos realizar a criação dos objetos do cenário com algumas primitivas simples, como
pontos, linhas e polígonos. A criação de um objeto feito com OpenGL consiste da com-
binação de simples primitivas gráficas [Wright et al. 2010]. O OpenGL fornece mecanis-
mos para desenhar pontos, linhas e polígonos, que são formados por um ou mais vértices.
Neste caso, é necessário passar uma lista de vértices, que pode ser feito entre duas cha-
madas de funções OpenGL: o glBegin() e o glEnd(). O glBegin() recebe um
parâmetro que identifica como será agrupada a lista de vértices que serão inseridos en-
tre essas as camadas, como exemplo têm-se os parâmetros: GL_POINTS, GL_LINES,
GL_QUADS.
Para criação de um paralelepípedo tridimensional, a exemplo, utiliza-se o parâ-
metro GL_QUADS. E dentro das camadas serão inseridos os vértices (glVertex3f())
para construção desse polígono, tomados de quatro em quatro vão formando cada face
do paralelepípedo. Optou-se por não utilizar as funções de definição das normais das
faces dos objetos. As normais são elementos essenciais para o cálculo de iluminação
dos objetos na determinação de sombreamento, porém neste trabalho utilizamos colora-
ção chapada utilizando a função glColor3f() para definir a cor dos objetos. A função
glColor3f() recebe três parâmetros, cada um de 0 a 1, que representam a contribuição
vermelha, verde e azul (RGB).
Pode-se também desenhar um objeto por meio do pacote GLU utilizando superfí-
cies quadráticas (quadrics). Por exemplo, podemos desenhar uma esfera utilizando a
seguinte função: gluSphere(*quadric, radius, slices, stacks). Onde
quadric é um parâmetro do tipo GLUquadric, radius é o raio da esfera, e slices
e stacks são a quantidade de linhas verticais e linhas horizontais respectivamente – se-
melhante aos meridianos e paralelos do planeta.
As funções de desenho definidas anteriormente mostram a construção de um ob-
jeto qualquer em sua origem. Essa origem é chamada de sistema de coordenadas local
do objeto. A partir deste sistema podemos colocar o objeto em coordenadas do mundo
ao aplicar operações com matrizes de transformação. Entre diversas matrizes as mais uti-
lizadas são: a matriz de translação (T), a matriz de rotação (R) e a matriz de escala (S).
Ambas na forma de matriz homogênea, com dimensão 4×4.
Para simplificar os cálculos com as matrizes o OpenGL oferece funções para rea-
lizar esses cálculos. A função glTranslatef() aplica uma matriz de translação aos
vértices, ou ao quadric, onde os parâmetros são as coordenadas de translação; a função
glRotatef() é responsável por aplicar uma matriz de rotação, tendo como parâmetros
um ângulo e um eixo (vetor 3D); e a matriz de escala glScalef() responsável por
criar a matriz de escala, também com três parâmetros. Na determinação dessas funções
o OpenGL executa internamente as operações de multiplicação com as matrizes, a ordem
em que elas aparecem influenciam no resultado final. Por isso, é conveniente utilizar a
seguinte ordem para o aparecimento dessas matrizes no código: T, R e finalmente S.
Praticamente todas as funções de desenho utilizadas na aplicação estão no names-
pace Draw, dentro da pasta graphics.
669
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
670
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Fa = µN (1)
671
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
(d)
(c)
(b)
(a)
Figura 3.3. Ambiente da aplicação. (a) trajetória da esfera, (b) o projétil lançado
(a esfera), (c) objetos cilíndricos dispostos sobre uma bancada e em (d) uma
visão ortogonal da cena com o marcador da velocidade inicial da esfera (no canto
inferior esquerdo).
672
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• A classe Object define toda a estrutura do objeto com suas propriedades gráficas
e físicas. Nessa classe tem-se uma comunicação próxima com a Physics.
Physics
Object
updateObject()
setScene()
GLWidget
Scene Janela QT
setObject()
Widget
paintGL()
setProperties()
Também foi utilizado neste projeto classes que cuidam de alguns cálculos mate-
máticos, como a classe Vec4 e a classe QuaternionQ presentes na pasta math. A
classe Vec4 representa um vetor com quatro parâmetros, que é utilizado para gravar a
673
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
posição dos objetos. A classe QuaternionQ representa um quatérnion, com quatro pa-
râmetros, utilizado para rotacionar os objetos. O ODE utiliza na maioria das funções a
rotação de objetos com quatérnions, por isso criei essa classe. É possível dentro dessa
classe converter outras formas de rotação (ângulos de Euler e eixo ângulo) para quatér-
nion, e vice-versa. A forma de representação por ângulos de Euler possui uma melhor
representação visual para determinar uma rotação, já a representação eixo ângulo é utili-
zada para aplicação da rotação através do OpenGL na função glRotatef().
Implementei o namespace Draw que cuida da parte de desenhar os gráficos pre-
sentes na aplicação. Entre esses gráficos estão os objetos (caixa, esfera e cilindro), a
trajetória da bala, o texto, o solo, e a sombra dos objetos projetados no solo (não realizei
a implementação de sombra sobre os objetos). Essa classe concentra os desenhos, que
são passadas principalmente pela classe Scene. E na classe Scene são configuradas as
matrizes de projeção e a câmera de visualização.
Pela classe GLWidget é possível rotacionar a câmera utilizando o mouse, pro-
porcionando ao usuário visualizar o cenário por outros ângulos. Para isso, são utilizados
os eventos do mouse e a classe Camera que realiza as operações de translação, rotação
e zoom da câmera de visualização. Essa classe é instanciada dentro da classe Scene e
manipulada pela classe GLWidget. Dentro da função de desenho da Scene (draw())
exibo a posição da câmera fazendo uma chamada ao método gluLookAt(eye, at,
up) presente no OpenGL enviando os parâmetros presentes na Camera.
Na Figura 3.4, pode-se observar que a classe Scene configurando na Physics
alguns parâmetros e é também responsável por fazer as chamadas de atualização do mo-
tor físico. Isso é possível por meio de dois parâmetros que a classe copia do motor:
o WorldID e o SpaceID. Esses parâmetros são copiados na inicialização do motor
físico, com a função initScene() presente na Physics. A criação do objeto tam-
bém é realizado pela classe Scene, e armazenado em uma lista de objetos, para ma-
nipulação e desenho. O objeto pode ser criado com propriedades físicas ou não, isso
é especificado por meio de um parâmetro booleano presente na função de criação do
objeto (createObject()). Caso o objeto possua propriedades físicas é obrigató-
rio especificar sua massa para que possa ser criado o objeto físico, os parâmetros o
WorldID e o SpaceID são copiados a partir da classe Scene. Note que tudo está
encadeado a esses dois parâmetros. Pela classe Object é possível adquirir a posição
e a orientação do objeto físico por meio das funções getPositionCurrent() e
getOrientationCurrent(), respectivamente, fazendo uma chamada a Physics
passando como parâmetro o BodyID, parâmetro esse que é capturado pela classe Object
na criação de um objeto com propriedades físicas.
Entendido como criar um objeto, é preciso que os quadros da janela sejam atuali-
zados com uma certa frequência, caso contrário veríamos a mesma imagem com o passar
do tempo. Para realizar a atualização da janela é necessário configurar um QTimer e
associar a função timeout() implementada na classe QTimer a uma função dentro
da classe GLWidget (simStep()) por meio de um connect. A função simStep()
fará a chamada a função que realiza a atualização dos parâmetros físicos dentro da Scene,
o simulationStep(), e chamará a função de desenho paintGL() dentro da classe
GLWidget. Como todo desenho será feito pela classe Scene dentro da função paintGL()
674
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
(a) (b)
675
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Como dito anteriormente, o objetivo dessa aplicação foi mostrar como construir
uma aplicação que utiliza um motor físico, para isso utilizei o ODE. O projeto criado
visa a possibilidade de expansão, talvez até mesmo criar um jogo, permitindo aos que
quiserem expandir esse código adicionando mais recursos e interatividade, objetivando
o aprendizado. Fiz o possível para comentar, em português, algumas rotinas/funções
utilizadas. A ideia é disseminar o conhecimento favorecendo o crescimento de aplicações
e estudos em computação com simulação física.
3.6. Conclusão
Neste trabalho foi apresentado a importância e aplicações dos motores físicos. Como pro-
duto mostrei a implementação de uma aplicação simples que utiliza o motor físico ODE.
Todos os códigos implementados estão disponibilizados no repositório público com com-
partilhamento livre (open source). Pode-se observar que é relativamente simples a vincu-
lação de um objeto gráfico a um objeto físico, em resumo essa vinculação se dá por meio
de atributos que são compartilhados entre os dois objetos permitindo assim a recuperação
dos dados de posição e orientação do objeto físico. Cabe agora fazer uso deste projeto
básico para expandir o conhecimento, produzindo outras aplicações e funcionalidades.
Neste projeto o namespace Physics funciona como uma interface de comuni-
cação entre o objeto físico e o objeto gráfico, caso o programador queira utilizar outra
biblioteca gráfica cabe reconfigurar o código dessa interface e as propriedades dos atribu-
tos compartilhados no objeto gráfico. Isso permite a refatoração simples da aplicação para
inserção de outros motores físicos sem a necessidade de reimplementar muitas rotinas.
Na interface da aplicação, produzida pelo Qt, limitei-me a utilizar a captura de
ações via teclado e mouse para manipulação do cenário. Pode-se também via interface do
Qt adicionar botões, menus e outros elementos para inserção e manipulação de objetos e
propriedades, basta criar conexões entre a ação de um desses elementos e uma função na
classe Scene, similar ao que é feito para atualizar a janela de visualização.
É enorme o campo da pesquisa em física para aplicações computacionais, vê-se
o seu uso principalmente no desenvolvimento de jogos e animação. Esta área de pes-
quisa procura incessantemente por meio da física produzir efeitos que se aproximem da
realidade em um curto espaço de tempo, o que ainda é um desafio. Os trabalhos futuros
visam ultrapassar esse desafio, isso é o que motiva a pesquisa em animação de perso-
nagens baseados em física. Existem atualmente vários eventos e periódicos que rece-
bem trabalhos nessa área, como é o caso do SCA (Symposium on Computer Animation),
EUROGRAPHICS, SIGGRAPH, e CGF (Computer Graphics Forum), entre outros. Em
virtude do que foi mencionado, verifica-se que existem enormes possibilidades de desen-
volvimento em pesquisa que podem ser exploradas.
Referências
1 RODRIGUES, M.; CARVALHO, P. S. Teaching physics with angry birds: exploring
the kinematics and dynamics of the game. Physics Education, IOP Publishing, v. 48, n. 4,
p. 431, 2013.
2 BARAFF, D. Physically based modeling: Rigid body simulation. SIGGRAPH Course
676
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4 COROS, S.; BEAUDOIN, P.; PANNE, M. van de. Generalized biped walking control.
In: ACM SIGGRAPH 2010 papers. New York, NY, USA: ACM, 2010. (SIGGRAPH
’10), p. 130:1–130:9. ISBN 978-1-4503-0210-4.
677
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
4
Processamento Digital de Imagens Médicas com
Python e OpenCV
Abstract
In the medical field, many anomalies are diagnosed from digital images. Early detection
of these abnormalities is fundamental for a more efficient treatment and with fewer risks to
the patient, besides increasing the chances of a more favorable prognosis. To improve me-
dical diagnosis through imaging, digital image processing studies requirements to extract
technical information to enhance the parameters of a more accurate diagnosis. Decision
support systems, called Computer Aided Detection / Diagnosis - CAD / CADx, are com-
putational tools to aid medical diagnosis through imaging, giving the expert a second
opinion for a more accurate diagnosis. Thus, it is proposed to present an introduction
to Digital Image Processing applied to Medical Imaging with the OpenCV library using
the Python language. It is intended to allow an introductory view of the PDI through the
content provided, providing a greater understanding of the learning with practical appli-
cations, arousing greater interest and new ideas for applications in the most varied areas
of knowledge.
Resumo
Na área médica, muitas anomalias são diagnosticados a partir de imagens digitais. A de-
tecção precoce dessas anomalias é fundamental para um tratamento mais eficiente e com
menos riscos ao paciente, além de aumentar as chances de prognóstico mais favorável.
Com o objetivo de melhorar o diagnóstico médico através de imagens, o processamento
digital de imagens estuda requisitos para extrair informações técnicas a fim de melhorar
os parâmetros para um diagnóstico mais preciso. Sistemas de apoio a decisão, chamados
de Computer Aided Detection/Diagnosis - CAD/CADx, são ferramentas computacionais
para auxiliar o diagnóstico médico através de imagens, proporcionando ao especialista
uma segunda opinião para um diagnóstico mais preciso. Assim, tem-se como proposta
678
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4.1. Introdução
Com a popularização dos dispositivos eletrônicos para captura de imagens e vídeos, a
análise automática desses dados através de programas computacionais tornou-se essencial
nas mais variadas áreas de domínio da ciência. Para isso, algoritmos e representações
são desenvolvidos para permitir que uma máquina reconheça objetos, pessoas, cenas e
atividades.
O Processamento Digital de Imagens (PDI) estuda os aspectos visual de certas
feições estruturais para o analista humano e fornecer outros subsídios para a sua inter-
pretação, inclusive gerando produtos que possam ser posteriormente submetidos a outros
processamentos [Câmara et al. 1996]. A principal função do processamento digital de
imagens é fornecer ferramentas para facilitar a identificação e a extração de informações
contidas nas imagens [Silva 2001].
O PDI não é uma tarefa simples, na realidade envolve um conjunto de tarefas
interconectadas. Algumas etapas do processamento digital de imagens são:
2. Pré-Processamento: Essa etapa prepara a imagem para as fases seguintes que vi-
sam à identificação de estruturas de interesse e o relacionamento da estrutura detec-
tada com uma base de conhecimento.
Aplicações com finalidades diversas têm sido desenvolvidas por vários grupos de
pesquisas, visando a auxiliar na composição de diagnósticos como uma forma de contri-
buir para a detecção precoce de doenças.
679
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
680
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
de outra forma seriam delegadas a seres humanos. Por ter base conceitual genérica e
ampla, a ideia do CAD/CADx pode ser aplicada a todas as modalidades de obtenção de
imagem, incluindo radiografia convencional, tomografia computadorizada, ressonância
magnética, ultra-sonografia e medicina nuclear. Pode-se, também, desenvolver esquemas
CAD/CADx para todos os tipos de exame de todas as partes do corpo, como crânio, tórax,
abdômen, osso e sistema vascular, entre outros. Porém, os principais objetos de pesquisa
para o desenvolvimento de sistemas CAD/CADx têm sido as áreas de mamografia, para
a detecção precoce do câncer de mama, tórax, para a detecção de nódulos pulmonares
e Optical Coherence Tomography (OCT) e Heidelberg Retinal Tomography (HRT), para
diagnóstico precoce do glaucoma [de Azevedo-Marques 2001].
Através destes sistemas podemos observar uma contribuição significativa ao tra-
balho do especialista e, consequentemente, nos resultados para os pacientes. Um exem-
plo é a metodologia proposta por [Carvalho Filho 2016], para a classificação de nódulos
pulmonares pertencentes à base de imagem LIDC-IDRI. Foram utilizados os índices de
diversidade taxonômica e a distinção taxonômica da ecologia para descrever a textura de
nódulos e não-nódulos e para classificação foi utilizado a Máquina de Vetor de Suporte
- MVS. A metodologia foi empregada em 833 exames e obteve uma precisão média de
98,11% em sua classificação.
[Carvalho et al. 2017] propôs uma metodologia para o diagnóstico automático de
tecidos da mama em maligno e benigno. A metodologia utilizada no estudo foi: aquisição
de imagem oriundas da base DDSM, extração de características de textura baseado nos
índices de diversidade filogenética, classificação utilizando múltiplos classificadores, e
por fim, a validação da metodologia, utilizando de métricas estatísticas. A metodologia
foi empregada em 1155 exames e obteve uma acurácia de 94,8% em sua classificação.
[Claro 2015] desenvolveu um método para detecção automática de Glaucoma, que
é a segunda principal causa de cegueira no mundo e não possui cura. A metodologia
utilizada no estudo foi: aquisição de imagem, pré-processamento nas imagens da retina,
extração de características de cor e entropia na área alvo e logo após a seleção de atributos.
Os melhores resultados produziram uma sensibilidade de 93,7%, especificidade de 93,6%
e uma acurácia de 93,67%.
Os exemplos de aplicações da informática médica apresentadas utilizaram as téc-
nicas de PDI para a manipulação e análise das imagens. A seguir são apresentados os
passos desenvolvidos em um sistema completo de auxílio ao especialista, fornecendo
informações para compreender as técnicas específicas de manipulação de imagens, ou
construir novas abordagens e metodologias que contribuam para o contexto da informá-
tica médica.
681
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para aplicações práticas, a imagem é uma função contínua, representada por me-
didas obtidas em intervalos regularmente espaçados. Os valores assumidos em cada ponto
medido são quantificados em um número pertencente a uma escala de diferentes cores.
Em imagens médicas, geralmente essas cores são relacionadas a níveis de cinza, sendo
atribuído o valor zero à cor mais escura (preto) e o valor máximo M à cor mais clara da
escala (branco). Dessa forma, pode-se representar uma imagem como uma matriz onde
cada ponto é um valor discreto, conforme mostra a Equação 1, onde n e m correspondem
à quantidade de colunas e linhas, respectivamente.
f (0, 0) f (0, 1) ... f (0, n − 1)
f (1, 0) f (1, 1) ... f (1, n − 1)
.
f (x, y) = (1)
.
.
f (m − 1, 0) f (m − 1, 1) ... f (m − 1, n − 1)
Figura 4.1. (a) imagem em níveis de cinza, (b) imagem no esquema de cores Red,
Green e Blue (RGB).
682
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
683
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para realização dos testes práticos, será utilizado imagens da base RIM-ONE,
por a mesma possuir imagens que podem ser aplicadas todas as etapas de PDI para o
desenvolvimento de um sistema CAD/CADx. Para a concretização deste trabalho, foram
utilizadas 60 imagens, sendo 30 normal e 30 com presença de glaucoma. Todas as lesões
no banco de dados são demarcadas por médicos especialistas.
4.3.2. Pré-Processamento
As técnicas de pré-processamento têm a função de melhorar a qualidade da imagem.
Estas técnicas envolvem duas categorias principais: métodos que operam no domínio
espacial e métodos que operam no domínio da frequência. Técnicas de processamento no
domínio espacial baseiam-se em filtros que manipulam o plano da imagem, enquanto que
as técnicas de processamento no domínio da frequência se baseiam em filtros que agem
sobre o espectro da imagem. É comum para realçar determinadas características de uma
imagem, combinar vários métodos que estejam baseados nestas duas categorias.
4.3.3. Segmentação
A segmentação de imagem é um processo importante para a maioria das tarefas de análise
de imagens médicas. Ter uma segmentação boa irá beneficiar clínicos e pacientes, pois
fornecem informações importantes para visualização, planejamento cirúrgico e detecção
684
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1
i m p o r t g l o b a s g # p a c o t e p a r a o b t e r p a t h de a r q u i v o s em um d i r e t o r i o
3 i m p o r t cv2 # o p e n c v
from d e s c r i t o r _ t e x t u r a i m p o r t e x t r a i r _ c a r a c t e r i s t i c a s # s c r i p t de
e x t r a a o de f e a t u r e s
5 from c l a s s i f i c a d o r i m p o r t c l a s s i f i c a r # s c r i p t de c l a s s i f i c a c a o
685
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
13 l i s t a = g . glob ( pathname= p a t h + ’ ∗ ’+ e x t e n s a o )
return lista
15
17 d e f s o b r e p o r ( imagem , m a s c a r a ) :
’’’
19 : param imagem : imagem o r i g e m
: param m a s c a r a : imagem que contem a m a s c a r a a p o n t a n d o a r e g i a o de
interese
21 : r e t u r n : a imagem s o b r e p o s t a
’’’
23 f o r i in range ( mascara . shape [ 0 ] ) : # p e r c o r r e as l i n h a s
f o r j in range ( mascara . shape [ 1 ] ) : # p e r c o r r e as colunas
25 i f m a s c a r a [ i ] [ j ] == 0 :
imagem [ i ] [ j ] = 0
27 r e t u r n imagem
29
45
i f __name__ == ’ __main__ ’ :
47 # d i r e t o r i o onde contem a s i m a g e n s
d i r _ i n = ’ / home / p a v i c / P y c h a r m P r o j e c t s / PDI−M e d i c a l / d a t a / i m a g e n s /
normal ’
49 # d i r e t o r i o onde a s i m a g e n s s e g m e n t a d a s e s o b r e p o s t a s s e r a o s a l v a s
d i r _ o u t = ’ / home / p a v i c / P y c h a r m P r o j e c t s / PDI−M e d i c a l / d a t a / s e g m e n t a d a s
/ normal ’+ s t r ( ’ / ’ )
51
# v a r i a v e l p a r a e n c o n t r a r o nome da imagem
53 separador = dir_in . s p l i t ( ’ / ’ )
s e p a r a d o r = s e p a r a d o r [ l e n ( s e p a r a d o r ) −1]
55
59 # c i c l o que r e a l i z a o p r o c e s s a m e n t o
f o r i i n caminho_imagens :
61
686
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
# s e g m e n t a a e s o b r e p o e a imagem
63 img_seg = segmentar_com_otsu ( path_img = i )
# s a l v a a imagem
69 cv2 . i m w r i t e ( f i l e n a m e = d i r _ o u t +nome_img , img= s o b r e p o r ( i m g _ s e g [ 0 ] ,
img_seg [ 1 ] ) )
71 # r e a l i z a n d o a e x t r a c a o de c a r a c t e r i s t i c a s
e x t r a i r _ c a r a c t e r i s t i c a s ( p a t h _ n o r m a l = ’ / home / p a v i c / P y c h a r m P r o j e c t s /
PDI−M e d i c a l / d a t a / s e g m e n t a d a s / n o r m a l / ’ ,
73 p a t h _ d o e n t e = ’ / home / p a v i c / P y c h a r m P r o j e c t s /
PDI−M e d i c a l / d a t a / s e g m e n t a d a s / d o e n t e / ’ ,
p a t h _ a r q u i v o _ d e s c r i t o r = ’ / home / p a v i c /
P y c h a r m P r o j e c t s / PDI−M e d i c a l / d a t a / d e s c r i t o r / d e s c r i t o r e s . l i b s v m ’ ,
75 e x t e n s a o = ’ . png ’ )
77 #classificar
c l a s s i f i c a r ( p a t h _ a r q u i v o _ d e s c r i t o r = ’ / home / p a v i c / P y c h a r m P r o j e c t s / PDI
−M e d i c a l / d a t a / d e s c r i t o r / d e s c r i t o r e s . l i b s v m ’ )
687
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
imagem que possa caracterizar a mesma, onde, a partir de um conjunto grande de carac-
terísticas, seja extraída aquelas que são mais redundantes para o problema, formando um
conjunto mais reduzido de características por imagem digital. A extração de caracterís-
ticas tem como objetivo mensurar e quantificar padrões perceptíveis ou não visualmente,
com a finalidade de categorizar objetos nas imagens, de acordo com aspectos morfológi-
cos de interesse.
Na maioria das metodologias CAD/CADx, a etapa de extração de informações
é baseada em: 1) forma, que caracteriza a geometria dos objetos, como o tamanho, a
curvatura e a suavidade dos contornos e 2) na textura, que é caracterizada por variações
locais em valores de pixel que se repetem de maneira regular ou aleatória ao longo da
imagem.
A extração de características foi realizado por meio da textura das imagens base-
ado nos índices de diversidade filogenética. A filogenia é um ramo da biologia responsá-
vel pelo estudo das relações evolutivas entre as espécies, pela verificação dos relaciona-
mentos entre elas, a fim de determinar possíveis ancestrais comuns [Webb 2000].
Diversidade filogenética é uma medida de uma comunidade que incorpora as re-
lações filogenéticas das espécies [Magurran 2004]. A forma mais simples da aplicação
do índice de diversidade em imagens é quando a comunidade representa uma imagem ou
região da mesma, as espécies sendo os níveis de cinza, os indivíduos sendo os pixels e as
distâncias filogenética sendo os número de arestas entre duas espécies [Oliveira 2013]. A
Tabela 4.1 mostra a correspondência entre a biologia e a metodologia.
Nesse trabalho são feitos cálculos dos seguintes atributos de textura: Phylogenetic
Diversity - PD (Equação 2) e Sum of Phylogenetic Distances - SPD (Equação 3).
∑Bi Li Ai
PD = B × (2)
∑Bi Ai
688
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
import glob as g
2 i m p o r t cv2
from u t i l . u t i l i m p o r t getMaximum , getMinimum , n o r m a l i z e
4
d e f g e r a S V M f i l e ( r o t u l o , l i s t a _ f e a t , p a t h _ f i l e , modo ) :
6 ’’’
: param r o t u l o : c l a s s e que p e r t e n c e a s f e a t u r e s
8 : param l i s t a _ f e a t : l i s t a de c a r a c t e r i s t i c a s
: param p a t h _ f i l e : d i r e t o r i o do a r q u i v o onde s e r a s a l v o a s
caracteristicas
10 : param modo : modo de l e i t u r a do a r q u i v o
: r e t u r n : void
12 ’’’
a r q u i v o = open ( p a t h _ f i l e , modo )
14 featureFile = str ( rotulo ) + " "
arquivo . write ( f e a t u r e F i l e )
16 for i in range ( len ( l i s t a _ f e a t ) ) :
l i n h a = s t r ( s t r ( i + 1) + " : " + s t r ( l i s t a _ f e a t [ i ] ) + " " )
18 arquivo . write ( linha )
arquivo . write ( ’ \ n ’ )
20 arquivo . close ()
22 d e f d e s c r e v e r _ i n d i c e s ( c l a s s e , l i s t a , p a t h _ f i l e _ d e s c r i t o r , modo ) :
’’’
24 : param c l a s s e : c l a s s e a q u a l p e r t e n c e a image , 0 p a r a d o e n t e , e 1
para normal
: param l i s t a : l i s t a com o caminho de t o d a s a s i m a g e n s a s e r e m
processadas
26 : param p a t h _ f i l e _ d e s c r i t o r : caminho do a r q u i v o d e s c r i t o r que
armazena as f e a t u r e s
: param modo : modo de l e i t u r a do a r q u i v o d e s c r i t o r
28 : param s i z e : tamanho d a s l i s t a s
: param i n c : i n c r e m e n t o p a r a c a l c u l o da p o r c e n t a g e m
30 : r e t u r n : void
’’’
32 prodind = 0.0
dis = 0
34 valorMPD = 0 . 0
SPD = 0 . 0
36 S1 = 0 . 0
S2 = 0 . 0
38 PD = 0 . 0
soma1 = 0
40 somatorio = 0
MNND = 0 . 0
42 q = 0.0
50 s i z e H i s t o g r a m a = 256
689
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
h i s t = l i s t ( range ( sizeHistograma ) )
52 d i s t a n c e = l i s t ( range ( sizeHistograma ) )
b a c k g r o u n d = min
54
f o r b i n r a n g e ( img . s h a p e [ 0 ] ) :
56 f o r c i n r a n g e ( img . s h a p e [ 1 ] ) :
v a l u e = img [ b ] [ c ]
58 i f i n t ( value ) > 0:
h i s t [ v a l u e ] += 1
60
especie = 0
62 for d in range (0 , sizeHistograma ) :
i f i n t ( h i s t [ d ]) > 0:
64 e s p e c i e += 1
66 diagonal = 0.0
foraDiagonal = 0.0
68
f o r e i n r a n g e ( img . s h a p e [ 0 ] ) :
70 f o r f i n r a n g e ( img . s h a p e [ 1 ] ) :
i f i n t ( img [ e ] [ f ] ) ! = b a c k g r o u n d :
72 i f i n t ( e ) == i n t ( f ) :
_ v a l o r = img [ e ] [ f ] + min
74 d i a g o n a l += n o r m a l i z e ( _ v a l o r )
else :
76 _ v a l o r = f l o a t ( img [ e ] [ f ] + min )
f o r a D i a g o n a l += n o r m a l i z e ( _ v a l o r )
78 indices = []
i n d i c e s . append ( f l o a t ( ( ( e s p e c i e ∗ d i a g o n a l ) − f o r a D i a g o n a l ) / (
especie ∗ ( especie − 1) ) ) )
80 i n d i c e s . append ( f l o a t ( e s p e c i e ∗ i n d i c e s [ 0 ] ) )
82 PSV = i n d i c e s [ 0 ]
PSR = i n d i c e s [ 1 ]
84
for x in range (0 , sizeHistograma ) :
86 for y in range ( x + 1 , sizeHistograma ) :
i f x == 0 :
88 d i s t a n c e [ x ] = ( y − x + 1)
else :
90 d i s t a n c e [ x ] = ( y − x + 2)
92 prodind = ( distance [ x ] ∗ h i s t [ x ] ∗ h i s t [ y ] )
s o m a t o r i o += ( h i s t [ x ] ∗ h i s t [ y ] )
94
for q in range (x , y ) :
96 MNND = MNND + ( d i s t a n c e [ x ] ∗ h i s t [ q ] )
98 t = ( ( sizeHistograma − 1) / 2 . 0 ) #
t o t a l = sizeHistograma ∗ t #
100
for x in range (0 , sizeHistograma ) :
102 for y in range ( x + 1 , sizeHistograma ) :
i f x == 0 :
104 dis = (y − x) + 1
690
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
else :
106 dis = (y − x) + 2
108 p r o d i n d += ( d i s ∗ h i s t [ x ] ∗ h i s t [ y ] )
s o m a t o r i o += ( h i s t [ x ] ∗ h i s t [ y ] )
110
fo r i n d i c e in range ( x , ( y + 1) ) :
112 soma1 += h i s t [ i n d i c e ]
114 Ai = soma1 / ( ( y − x ) + 1 )
S1 += ( d i s ∗ Ai )
116 S2 += Ai
118 valorMPD += p r o d i n d
120 PD = S1 / S2
q = valorMPD / s o m a t o r i o
122 SPD = t o t a l ∗ q
124 feat = []
f e a t . a p p e n d ( PD )
126 f e a t . a p p e n d ( SPD )
128 geraSVMfile ( r o t u l o = c l a s s e , l i s t a _ f e a t = f e a t , p a t h _ f i l e =
p a t h _ f i l e _ d e s c r i t o r , modo=modo )
4.3.5. Classificação
Classificação consiste em reconhecer novos objetos, a partir de descritores gerados dos
mesmos, tomando decisões a partir da extração de características do mundo real em ima-
gens, isso é feito por meio de indagações simples a respeitos dos parâmetros extraídos, ou
por meio de algoritmos de inteligência artificial [CONCI et al. 2008].
No processamento de imagens digitais, classificar uma imagem consiste em pegar
691
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
692
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mais exemplos.
O algoritmo Random Forest é uma combinação de predições de diversas árvores
em que cada árvore depende dos valores de um vetor independente, amostrados aleatori-
amente e com a mesma distribuição para todas as árvores da floresta. Aqui, floresta é a
nomenclatura dada a uma coleção de árvores de decisão. Após a geração de um grande
número de árvores, as classes com maior número de votos são eleitas [Breiman 2001].
O Random Forest divide cada nó usando o melhor dentre um subconjunto de indi-
cadores escolhidos aleatoriamente naquele nó. Esta estratégia, apesar de um tanto contra-
ditória, funciona adequadamente em comparação com muitos outros classificadores, além
de ser robusto a superajuste nos parâmetros. Além disso, é de fácil utilização pois possui
apenas dois parâmetros: o número de variáveis no subconjunto aleatório em cada nó e o
número de árvores da floresta [Silva et al. 2017].
A partir de um vetor de atributos, são gerados outros vetores de atributos, que
são embaralhados em relação ao vetor original. É gerado um vetor para cada árvore do
Random Forest. Em seguida, os vetores de atributos são passados como parâmetro para as
árvores de decisão. Cada árvore irá gerar um resultado para a classificação e, os resultados
são combinados obtendo uma saída unificada [Silva et al. 2017].
A classificação de objetos em python pode ser realizada através da biblioteca
scikit-learn. Esta biblioteca permite a utilização de algoritmos de aprendizagem de má-
quina, clusterização, seleção de atributos, dentre outros. As etapas básicas para classifi-
cação são: divisão do conjunto de dados em treino e teste; criação de uma instância do
classificador utilizado; treino do classificador; predição utilizando os dados de teste; e cál-
culo da taxa de acerto seguindo alguma métrica de avaliação de desempenho. O Código
Fonte 4.3 mostra as etapas de classificação de um conjunto de dados para os classificado-
res SVM, AdaBoost e Random Forest.
1 from s k l e a r n . svm i m p o r t SVC
from s k l e a r n . e n s e m b l e i m p o r t R a n d o m F o r e s t C l a s s i f i e r
3 from s k l e a r n . m o d e l _ s e l e c t i o n i m p o r t t r a i n _ t e s t _ s p l i t
from s k l e a r n . e n s e m b l e i m p o r t A d a B o o s t C l a s s i f i e r
5 from u t i l . u t i l i m p o r t p l o t _ c o n f u s i o n _ m a t r i x , c o n f u s i o n _ m a t r i x
i m p o r t numpy a s np
7 from m a t p l o t l i b i m p o r t p y p l o t a s p l t
from v a l i d a c a o i m p o r t m a i n _ v a l i d a c a o
9
693
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
else :
25 if l i s t a [ j ] != ’ \ n ’ :
value = l i s t a [ j ] . s p l i t ( ’ : ’ ) [1]
27 F . append ( v a l u e )
FEATURES . a p p e n d ( F )
29 r e t u r n LABELS , FEATURES
37 c l a s s _ n a m e s = [ ] # r o t u l o s p a r a o g r a f i c o da m a t r i x de c o n f u s a o
c l a s s _ n a m e s . a p p e n d ( ’ Normal ’ )
39 c l a s s _ n a m e s . append ( ’ Doente ’ )
41 # g r a f i c o de m a t r i x de c o n f u s a o com d a d o s nao n o r m a l i z a d o s
plt . figure ()
43 plot_confusion_matrix ( cnf_matrix , c l a s s e s =class_names ,
t i t l e = ’ Confusion matrix , without
normalization ’ )
45
# g r a f i c o de m a t r i x de c o n f u s a o com d a d o s n o r m a l i z a d o s
47 plt . figure ()
plot_confusion_matrix ( cnf_matrix , c l a s s e s =class_names , normalize=
True ,
49 t i t l e = ’ Normalized confusion matrix ’ )
m a i n _ v a l i d a c a o ( t n , fp , fn , t p ) # e x i b i o s v a l o r e s de a c u r a c i a ,
sensibilidade e especificidade
51 p l t . show ( ) # e x i b e o g r a f i c o
53
def classificar_com_SVM ( X_train , X_test , y_train , y _ t e s t ) :
55 c_svm = SVC ( ) # c r i a uma i n s t a n c i a do modelo SVM
c_svm . f i t ( X _ t r a i n , y _ t r a i n ) # t r e i n a o modelo
57 y _ p r e d = c_svm . p r e d i c t ( X _ t e s t ) # f a z a p r e d i c a o s o b r e o s d a d o s de
teste
g e r a r _ m a t r i x _ c o n f u s a o ( y _ t e s t , y _ p r e d ) # e x i b e o g r a f i c o com a m a t r i x
de c o n f u s a o
59
67
def c l a s s i f i c a r _ c o m _ A d a B o o s t C l a s s i f i e r ( X_train , X_test , y_train , y _ t e s t
):
69 csf_ad = AdaBoostClassifier ()
csf_ad . f i t ( X_train , y _ t r a i n )
71 prediction = csf_ad . predict ( X_test )
gerar_matrix_confusao ( y_test , prediction )
694
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
73
75
d e f model ( LABELS , FEATURES ) :
77 TRAIN = 0 . 2
TEST = 1 − TRAIN
79
# f o r m a t a o s d a d o s de t e r i n o e t e s t e
81 X _ t r a i n , X _ t e s t , y _ t r a i n , y _ t e s t = t r a i n _ t e s t _ s p l i t ( FEATURES ,
LABELS , t e s t _ s i z e =TEST )
87
def c l a s s i f i c a r ( p at h_ a rq u iv o_ d es c ri to r ) :
89 # obtem a l i s t a de l a b e l s e c a r a c t e r i s t i c a s
L, F = get_data ( path_arquivo_descritor )
91 # c r i a o modelo , c l a s s i f i c a e g e r a a s m a t r i z e s de c o n f u s a o
model ( L , F )
Código Fonte 4.3. Classificação de imagens utilizando os classificadores
Random Forest, AdaBoost e Máquina de Vetor de Suporte.
4.3.6. Validação
A fim de considerarmos a presença ou ausência de anomalias em imagens medicas, para
validação dos resultados, utiliza-se de métricas de avaliação baseadas em estatísticas
como, Sensibilidade [Martinez et al. 2003], Especificidade [Martinez et al. 2003] e Acu-
rácia [Metz 1986].
A matriz de confusão oferece uma hipótese das medidas efetivas do modelo de
classificação, mostrando o número de classificações corretas versus as classificações pre-
ditas para cada classe, sobre um determinado conjunto de exemplo, como mostra a Tabela
4.2.
VP
S= (4)
V P + FN
695
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
VN
E= (5)
V N + FP
Acurácia (A), Equação 6, é a proporção de acertos, ou seja, o total de verdadeira-
mente positivos e verdadeiramente negativos, em relação a amostra estudada.
V P +V N
A= (6)
V P +V N + FP + FN
O Código Fonte 4.4 mostra as etapas de validação dos resultados para Acurácia,
Sensibilidade e Especificidade, que são métricas de avaliação baseadas em estatísticas.
2 d e f a c u r a c i a ( vn , fp , fn , vp ) :
r e t u r n ( vp+vn ) / ( vp+vn+ f p + f n )
4
d e f e s p e c i f i c i d a d e ( vn , f p ) :
6 r e t u r n ( vn ) / ( vn+ f p )
8 d e f s e n s i b i l i d a d e ( fn , vp ) :
r e t u r n ( vp ) / ( vp+ f n )
10
12 d e f m a i n _ v a l i d a c a o ( vn , fp , fn , vp ) :
"""
14 : param vn : v e r d a d e i r o s p o s i t i v o s
: param f p : f a l s o s p o s i t i v o s
16 : param f n : f a l s o s n e g a t i v o s
: param vp : v e r d a d e i r o s p o s i t i v o s
18 : return :
"""
20 p r i n t ( ’ A c u r a c i a _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ %.2 f%s ] ’ %(( a c u r a c i a ( vn , fp , fn , vp
) ∗ 1 0 0 ) , "%" ) )
p r i n t ( ’ E s p e c i f i c i d a d e _ _ _ _ _ _ _ _ [ %.2 f%s ] ’ %(( e s p e c i f i c i d a d e ( vn , f p )
∗ 1 0 0 ) , "%" ) )
22 p r i n t ( ’ S e n s i b i l i d a d e _ _ _ _ _ _ _ _ _ [ %.2 f%s ] ’ %(( s e n s i b i l i d a d e ( fn , vp )
∗ 1 0 0 ) , "%" ) )
696
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
De acordo com a Tabela 4.3, o SVM não apresentou uma taxa de acurácia muito
boa, caracterizando todos as imagens como glaucomatosas. O RandomForest e o Adabo-
ost conseguiram de forma eficiente, caracterizar as imagens em normal e glaucomatosas.
697
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
698
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4.4. Conclusão
Neste capitulo foram mostrados conceitos de processamento de imagens e de visão com-
putacional. Os exemplos descritos foram implementados utilizando a biblioteca OpenCV
desenvolvida pela Intel. O OpenCV facilita a implementação de operadores simples até
o desenvolvimento de sistemas mais complexos na área de processamento de imagens e
visão computacional.
O primeiro desafio a ser considerado na construção de sistemas CAD/CADx é
obter uma alta taxa de acerto de casos verdadeiros-positivos, isto é, indicar a presença de
uma doença quando ela realmente existe, com uma baixa taxa de casos falsos-positivos,
quando o sistema indica a existência de uma doença, sem esta de fato existir.
Para se obter um bom desempenho em relação aos acertos, é necessário conhecer
profundamente o problema a ser detectado e a imagem médica que será utilizada para
o diagnóstico, considerando seu processo de formação, que exerce influência nas suas
características.
A utilização do OpenCV fornece enormes vantagens ao desenvolver sistemas que
incluem segmentação, quantificação e visualização de imagens médicas. Destacada-
mente, a grande velocidade na implementação de esquemas de visualização complexos
é um importante diferencial, pois agiliza processos que, se fossem desenvolvidos desde
o começo, levariam muito tempo. Além disso, a considerável quantidade de algoritmos
e técnicas que existe na biblioteca é de grande utilidade na resolução dos mais diversos
problemas em processamento digital de imagens e/ou visualização científica.
Referências
[Bradski e Kaehler 2008] Bradski, G. e Kaehler, A. (2008). Learning OpenCV: Compu-
ter vision with the OpenCV library. "O’Reilly Media, Inc.".
[Câmara et al. 1996] Câmara, G., Souza, R. C. M., Freitas, U. M., e Garrido, J. (1996).
Spring: Integrating remote sensing and gis by object-oriented data modelling. Compu-
ters & graphics, 20(3):395–403.
[Carvalho et al. 2017] Carvalho, E. D., Carvalho Filho, A. O., Sousa, A. D., Barros, P.
V. S., e Drumond, P. M. L. L. (2017). Diferenciação de padrões de benignidade e malig-
nidade em tecidos da mama baseado na diversidade taxonômica. 17 WIM - Workshop
de Informática Médica / XXXVII Congresso da Sociedade Brasileira de Computação,
37:1911–1920.
[Chan et al. 1990] Chan, H.-P., Doi, K., Vybrony, C. J., Schmidt, R. A., Metz, C. E.,
Lam, K. L., Ogura, T., Wu, Y., e MacMahon, H. (1990). Improvement in radiolo-
699
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Claro 2015] Claro, M. L.; Araújo, F. H. D. (2015). Uso de classificadores para a detec-
ção automática do glaucoma.
[CONCI et al. 2008] CONCI, A., AZEVEDO, E., e LETA, F. L. (2008). Computação
Gráfica: Teoria e Pratica., volume 2. Elsevier.
[Doi et al. 1991] Doi, K., Giger, M., MacMahon, H., Hoffmann, K., Katsuragawa, S.,
Nishikawa, R., Yoshimura, Y., Sanada, S., Chen, X., Metz, C., et al. (1991). Computer-
aided diagnosis: present and future. by H. Abe, K. A tsumi, T. linuma, M. Saito and M.
Inoue, Elsevier Science Publishers BV, Amst erdam, pages 59–66.
[Ellis et al. 1993] Ellis, I., Galea, M., Locker, A., Roebuck, E., Elston, C., Blamey, R., e
Wilson, A. (1993). Early experience in breast cancer screening: emphasis on develop-
ment of protocols for triple assessment. The Breast, 2(3):148–153.
[Freund et al. 1996] Freund, Y., Schapire, R. E., et al. (1996). Experiments with a new
boosting algorithm. In Icml, volume 96, pages 148–156.
700
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Ng et al. 2006] Ng, H., Ong, S., Foong, K., Goh, P., e Nowinski, W. (2006). Medical
image segmentation using k-means clustering and improved watershed algorithm. In
Image Analysis and Interpretation, 2006 IEEE Southwest Symposium on, pages 61–65.
IEEE.
[Patton et al. 2006] Patton, N., Aslam, T. M., MacGillivray, T., Deary, I. J., Dhillon, B.,
Eikelboom, R. H., Yogesan, K., e Constable, I. J. (2006). Retinal image analysis:
concepts, applications and potential. Progress in retinal and eye research, 25(1):99–
127.
[Petrick et al. 1996] Petrick, N., Chan, H.-P., Sahiner, B., e Wei, D. (1996). An adaptive
density-weighted contrast enhancement filter for mammographic breast mass detec-
tion. IEEE Transactions on Medical Imaging, 15(1):59–67.
[Silva et al. 2017] Silva, R. R. V., Lopes, J. G. F. ., Araújo, F. H. D., Medeiros, F. N. S.,
e Ushizima, D. M. (2017). Visão computacional em python utilizando as bibliotecas
scikit-image e scikit-learn, volume 1. III Escola Regional de Informática do Piauí.
Livro Anais - Artigos e Minicursos, first edition.
[Sousa et al. 2011] Sousa, U. S. et al. (2011). Classificação de massas na mama a partir
de imagens mamográficas usando índice de diversidade de shannon-wiener.
701
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
5
Produção de Objetos de Aprendizagem Baseados
em Vídeos Interativos voltados para o ambiente
TVDi
Abstract
This work aims to introduce to the participants some authoring tools and others virtual
resources that can be used on production of Learning Objects Based on Interactive Videos
(LOBIV) to the interactive Digital TV environment (TVDi). Initially the learning object
(LO) concept is presented, describing the current scenario and how this kind of objects
can be produced and used in the iDTV environment. This work has a practical appro-
ach where, from a reference LOBIV developed by these authors’ own, others people are
instructed to adopted and reproduce the production process this LOBIV.
Resumo
Este minicurso tem como objetivo apresentar aos participantes algumas ferramentas de
autoria e outros recursos virtuais que podem ser utilizados na Produção de Objetos de
Aprendizagem Baseados em Vídeos Interativos (OABVI) voltados para o ambiente da TV
Digital interativa (TVDi). Inicialmente é apresentado o conceito de objeto de aprendiza-
gem (OA), descrevendo o cenário atual e como objetos podem ser produzidos e utilizados
no ambiente da TVDi. O minicurso tem uma abordagem prática onde, a partir de um
OABVI de referência desenvolvido pelos proponentes, os participantes são orientados a
reproduzi-lo visando apropriarem-se do processo de produção do OABVI e, em seguida,
são convidados produzirem os seus próprios conteúdos interativos.
5.1. Introdução
O processo de ensino e aprendizagem tem sido impactado pela explosão de informações
hipermídias que são produzidas e disponibilizadas diariamente na internet. Tais informa-
ções são compostas muitas vezes por mídias de áudio, vídeo, textos, imagens e outras
702
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mídias, cujo sincronismo entre elas possibilita dispor de uma experiência individualizada
ao usuário.
A geração de nativos digitais [Sobrinho 2017] é naturalmente atraída por esse tipo
de conteúdo, pois com o avanço de tecnologias como smartphones que são lançados no
mercado cada vez robustos em termos de processamento e com recursos de captura e re-
produção de vídeo, e de áudio, com excelentes níveis de qualidade. Além disso, as pessoas
dessa geração de nativos digitais têm acesso instantâneo a conteúdos interativos. Soma-se
a isso o acesso mais popularizado também à internet, conectando-os com uma infinidade
de conteúdos educacionais e, consequentemente tem-se uma revolução no processo de
ensino e aprendizagem.
A partir das ações realizadas neste minicurso, espera-se formar um conjunto de
novos multiplicadores desta proposta mediante a utilização da linguagem audiovisual
que cada vez mais presente em plataformas online de ensino como, por exemplo, Cour-
sera (https://www.coursera.org/),EDX (edx.org), Udemy (https://www.udemy.com), Mi-
riada (miriada.net), Eduk (https://www.eduk.com.br/),Udacity (https://br.udacity.com/),
Veduca (http://veduca.org) e inúmeros canais no Youtube (youtube.com).
É importante informar que Objetos de Aprendizagem são quaisquer tipo de enti-
dades físicas ou digitais que podem ser utilizados no processo de ensino [Busson 2016],
enquanto que Objetos de Aprendizagem Baseados em Vídeos Interativos ( OABVI )
[Edwin 2012] podem ser consideradas como um tipo de especialização dos OAs, cujo
sincronismo se baseia geralmente em uma mídia de vídeo.
Por meio de ferramentas de autoria são adicionados recursos de sincronismo com
(ou sem) interatividade às mídias de vídeo educativos, isto é, outras mídias como texto,
imagem, áudio, etc. - comumente presentes em OABVIs - podem ser sincronizadas junto
ao vídeo com o intuito de torná-lo não linear e proporcionar uma melhor experiência
de consumo aos usuários desse OABVI, empoderando-os ainda mais de um consumo
personalizado de informações.
Esses recursos consistem de programas de computadores ou aplicativos criados
em Nested Context Language (NCL) [Soares 2009] que são interpretados e exibidos pelo
middleware Ginga [Soares 2010], o qual pode estar presente em diferentes dispositivos
como, por exemplo, TV ou celular, representando uma forma diferente de se produzir e
consumir vídeos interativos, mais especificamente, Objetos de Aprendizagem Baseados
em Vídeos Interativos (OABVIs), por se tratarem de conteúdos inerentes a educação.
Por uma questão de organização didática e visando um melhor acompanhamento
do documento, o roteiro das principais atividades deste minicurso foi disposto conforme
é apresentado a seguir.
Parte 1: Introdução a OA/OABVI e ambientação sobre vídeos lineares e não-
lineares
- Objetos de Aprendizagem e Objetos de Aprendizagem Baseados em Vídeos In-
terativos
- Cenário Atual (ambientes para disponibilização e consumos de Objetos de Apren-
dizagem Baseados em Vídeos interativos para o ambiente TVDi)
703
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Essa ferramenta foi desenvolvida pelo Laboratory of Advanced Web Systems (LAWS),
da Universidade Federal do Maranhão (UFMA), e atualmente é mantida pelo Telemídia/Puc-
Rio. Essa ferramenta tem como foco principal a criação de OAs para a TVDi / Web e pos-
sibilita a criação de aplicativos multiplataforma [Damasceno 2014]. É possível instalar a
ferramenta acessando a página http://www.telemidia.puc-rio.br/tools/ca curia.html.
A interface dessa ferramenta é composta por seis visões para manipulação das suas
704
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mídias como mostra a Figura 5.1, em quê a Visão de Menu (1) é usada para adicionar e
remover mídias e cenas, visualizar o projeto e publicar OAs; a Visão de Cenas (2) é usada
– como o nome sugere – para visualizar das cenas e indicar qual a cena que está em foco;
a Visão de Leiaute (3) é usada para visualizar o posicionamento e dimensionamento da
mídia de acordo com tempo; a Visão Temporal (4) é usada para executar e manipular o
tempo de cada cena; a Visão de Propriedades (5) é usada para visualização e edição das
propriedades da mídia em foco; e, por sua vez, a Visão de Biblioteca (6) é usada para
listar as mídias da cena atual.
705
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
706
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Nessa tabela os objetivos foram extraídos das páginas web oficiais dos autores das
ferramentas de autoria Cacuriá e NCL Eclipse. Em relação ao ambiente de apresenta-
ção, é possível conferir, na Tabela , que a ferramenta Cacuriá disponibiliza duas formas
para visualização do OA ou aplicativo que está sendo desenvolvido, enquanto que, com
a ferramenta NCL Eclipse, é possível obter uma pré-visualização do que está sendo feito
apenas se o middleware Ginga estiver instalado no dispositivo.
Ainda de acordo com a Tabela 5.1 é possível verificar que ambas as ferramentas
possibilitam a realização de sincronismo com ou sem interatividade, isto é, as duas fer-
ramentas possibilitam que o autor explore interatividade ou não em seu documento. Por
outro lado, as ferramentas se diferem quanto a metáfora de programação. Nesse quesito,
a ferramenta Cacuriá possui uma abordagem de programação visual - baseado em WY-
SIWYG (What You See Is What You Get) - em que o autor pode organiza as mídias nas
cenas do documento sem a necessidade de conhecer previamente alguma linguagem de
programação.
Em relação a possibilidade de realizar sincronismo simultâneo de mídias, ambas
as ferramentas permitem isso para diferentes mídias como, por exemplo, texto e imagem
(Tabela 5.1). Todavia, em relação à mídia de vídeo, a ferramenta Cacuriá não permite que
o autor trabalhe com mais de um vídeo simultaneamente, enquanto que a ferarmenta NCL
Eclipse empodera o autor do documento NCL de mais liberdade neste quesito.
Por fim, ainda na Tabela 5.1, é possível notar que nenhuma das duas ferramentas
é capaz de gerar diagramas (ou visões) específicos da NCL - o que poderia ser últil para a
fase de planejamento do aplicativo e, posteriormente, à sua documentação.
707
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Vida Maria é o título de um vídeo que foi premiado no 3o Prêmio Ceará de cinema e
vídeo, lançado em 2006, realizado pelo Governo do Estado do Ceará. O curta-metragem
foi produzido em computação gráfica 3D e mostra personagens e cenários modelados
com texturas e cores pesquisadas e capturadas no Sertão Cearense, no nordeste do Brasil.
A Figura 5.5 é um recorte de uma cena inicial dessa animação, que foi produzida pelo
animador gráfico Márcio Ramos.
Figura 5.5. Cena inicial do vídeo Vida Maria (sem a adição do aplicativo)
Essa animação narra a história de Maria José, uma menina de 5 anos de idade que
é induzida pela mãe a largar os estudos para começar a cuidar dos afazeres domésticos
e trabalhar na roça. Enquanto trabalha, ela cresce, casa-se, tem filhos, envelhece e a sua
morte recomeça um ciclo que continua a se reproduzir com as outras "Marias"(mulheres)
da família. A animação está disponível gratuitamente na internet desde o dia 01 de julho
de 2017 para o público.
O projeto do OABVI Vida Maria é fundamentado no vídeo Vida Maria, sendo
este último escolhido por ser uma narrativa linear - com começo, meio e fim imutáveis
- e conter diversas questões socioeducacionais que pudessem ser enriquecidas com sin-
cronismo (com e sem) interatividade reprodutíveis por diferentes ferramentas de autoria.
708
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Assim, saltos temporais e informações adicionais foram utilizadas para compor o OABVI
de referência.
709
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
710
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
o intuito de facilitar o seu desenvolvimento. É válido informar que cada mídia (info) sem
interatividade apresentada na time code, da Tabela 2, possui um tempo de vida de 15
segundos, isto é, cada informação dessas é mantida por 15 segundos na tela a partir do
instante em que é exibida.
Para complementar o planejamento de sincronização das mídias do OABVI Vida
Maria, conferindo-lhe maior precisão temporal, é apresentada a Tabela 2 que contém um
mapeamento de todos os momentos de sincronismo que esse objeto deve conter. Essa
?time code é um artefato que pode ser usado durante o ?processo? produção do OABVI
com o intuito de facilitar o seu desenvolvimento e também conferir-lhe maior coesão
aos momentos de sincronização entre informação adicional e janela espaço-temporal das
mídias de vídeo.
É válido informar que cada mídia sem interatividade apresentada na time code
(Tabela 2) possui um tempo de vida de 10 segundos (terceira coluna), isto é, cada infor-
mação é mantida por 10 segundos na tela a partir do instante em que começa a ser exibida
(segunda coluna).
A primeira coluna, da Tabela 2, usa como referência os nomes das mídias que fo-
ram utilizadas empregadas no OABVI Vida Maria. Desse modo, visando tornar mais mais
compreensível o entendimento dessa tabela, apresenta-se a seguir uma breve descrição de
cada referência citada.
Informação "Pular abertura": representa a informação visual (um botão inte-
rativo) que indica para o usuário a possibilidade de saltar a parte inicial do vídeo Vida
Maria, a qual contém informações como, por exemplo, patrocínio e apoio na produção
desse vídeo. Essa mídia representa o primeiro momento de interatividade.
Início do título do vídeo: representa o momento seguinte a apresentação da aber-
tura e consiste no momento em que surge no vídeo, pela primeira vez, o título da anima-
ção.
Informação 1, Informação 2, Informação 3, Informação 4 e Informação 5:
são mídias textuais ou objetos de mídia contendo textos com informações sobre temas
como, por exemplo, educação, saúde, taxa de alfabetização e taxa de natalidade acerca da
região nordeste.
Informação "Pular créditos": refere-se ao segundo momento de sincronismo
com interatividade. É também uma mídia que permite ao usuário saltar a parte do vídeo
que contém informações sobre a direção do vídeo, produção, elenco, assistententes, etc.
711
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
712
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
tacado pela seta branca, Figura 18(a), e, em seguida, selecione uma dentre as diversas
opções.
713
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
guida o autor digita a informação desejada e a arrasta para cima da forma que foi inserida
previamente. Por fim, o resultado dessa inserção é apresentado na tela da ferramenta -
Figura 5.10(c).
Nesta seção considera-se que as mídias a serem utilizadas (vídeo Vida Maria, imagem
do botão de interatividade e balões de informação) já foram todas produzidas as configu-
rações do ambiente de desenvolvimento/apresentação já estão configurados e que alguns
elementos básicos do documento NCL já foram declarados (i.e. base de regiões, base de
descritores e base de conectores).
Inserindo o vídeo Vida Maria
Para inserir o vídeo Vida Maria, o autor do documento pode informar no contexto
principal dele - tag <body> - o elemento port (<port>) que deve ser o componente a ser
iniciado quando o documento for executado - nesse caso, a mídia a ser iniciada é a mídia
chamada de "videoPrincipal".
714
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A Figura 5.12 representa uma instância da relação onBeginStart fazendo com que,
quando começar o componente videoPrincipal (que representa o objeto de vídeo Vida
Maria), então o componente botaoPulaIntro que contém uma mídia de foto - uma alterna-
tiva equivalente à junção das mídias de texto e forma apresentado na Seção 1.3.2.1 - deve
ser iniciado. Em outras palavras, esse relacionamento (link) faz com que um botão de
interatividade seja apresentado na tela do aparelho do usuário quando o vídeo principal
começar. Os detalhes dessa implementação - inclusive o delay na exibição do referido
botão.
Dado que o botão pular introdução é apresentado então é possível que o usuário
possa acioná-lo usando a tecla ENTER, conforme é apresentado na Figura 5.13.
Esse link indica que se o botão ENTER for selecionado nos primeiros segundos
715
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
716
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
[Azevedo 2008] Azevedo, R. G. A. (2008). NCL Eclipse: editor textual para desenvolvi-
mento de programas Hipermídia interativos em NCL. 2008,(Monografia apresentada
como requisito parcial para obtenção do título de Bacharel em Ciência da Computa-
ção).
717
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
718
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Chapter
6
Uma Introdução ao Go: A Linguagem Performática
do Google
Abstract
Over time, software development has been improving and the tools used for its composi-
tion evolve according to the needs that the technology tends to solve. We can then define
Programming Languages as the main artifact of this medium because it is the intermedi-
ate where the computer processes information in order to generate outputs for beneficial
use. In this scenario, the Go programming language has become a viable alternative for
the development of applications focused on high performance without losing readability
and simplicity. The sections in this chapter introduce language to its concepts and aspects
of greater relevance.
Resumo
6.1. Introdução
O ato de criar um novo software pode requerer paciência, atenção e proatividade por parte
do desenvolvedor e, devido à isso, as Linguagens de Programação estão sempre se reno-
vando e buscando a maior proximidade com o programador tornando-se mais portáveis.
719
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
O maior exemplo disso são as linguagens rotuladas como de alto nível, das quais podemos
citar Python, PHP, Ruby, C++, Java, entre outras.
As linguagens de alto nível tem como característica principal o poder elevado de
abstração aproximando sua sintaxe à linguagem humana, diferentemente das linguagens
de baixo nível, que por sua vez se assemelham ao código utilizado por máquina [6].
Golang – como também é abreviada – fica entre as linguagens de alto nível, assim como
colabora para facilitar o desenvolvimento sem perder o alto desempenho [3].
As próximas seções deste capítulo detalham a linguagem desde seus conceitos
principais, passando pela instalação, preparação do ambiente e sintaxe básica. Alguns
elementos exclusivos da linguagem serão apresentados com devido foco ao decorrer das
seções.
6.1.2. Go atualmente
Devido seu diferencial, Golang está em plena ascenção. O reflexo de seu crescimento é
representado pela sua utilização nos dias atuais, tanto por empresas internacionais como
nacionais. Além da própria Google, outras companhias usam Go em suas infraestruturas,
estando entre elas: Adobe, BBC, Canonical, Dell, DigitalOcean, Dropbox, Facebook,
IBM, Mozilla, SoundCloud, Twitter, Yahoo, entre outras.
No Brasil não é diferente, muitas companhias estão aderindo ao Go. Entre as
empresas e instituições com maior respaldo estão: Globo.com, Magazine Luiza, Mercado
Livre, Dafiti, PagSeguro, Pagar.me, Jusbrasil, Hotel Urbano, Walmart, Nuveo, Nic.br,
entre outras. A lista completa de companhias que usam Go pelo mundo está no repositório
720
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.2.1. Linux
Para efetuar a instalação no ambiente Linux, basta ir até o site oficial da linguagem na
seção de downloads3 e escolher a opção Linux. Após fazer o download, navegue pelo ter-
minal até a pasta onde está o arquivo compactado e descompacte-o com o comando sudo
tar -zxvf "nome_do_arquivo".tar.gz. Com a extração concluída, mova o
arquivo para o diretório /usr/local com o comando sudo mv go /usr/local.
Agora edite o arquivo /etc/profile adicionando as variáveis de ambiente
para o Go:
export GOPATH=$HOME/GO
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
É necessário criar uma pasta dentro do diretório $HOME4 com o nome "GO" de
acordo com a variável de ambiente descrita em GOPATH e executar o comando source
/etc/profile para finalizar a instalação. O próximo passo é estender a pasta $GOPATH
criando as pastas pkg, bin e src. Preferencialmente crie seus programas dentro do di-
retório $GOPATH/src.
Por último, verifique a instalação executando o comando go version. O re-
torno deve ser algo como:
go version go1.8.3 linux/amd64
6.2.2. Windows
Para o Windows, o download do Go pode ser feito através do mesmo link3 . Selecione a
opção Windows e faça o download. No ato da instalação é importante que os arquivos se-
jam inseridos no diretório C:\Go. Feita a instalação, é necessário configurar as variáveis
de ambiente. No Windows é possível encontrá-la em dois lugares:
721
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Para compilar o código acima, basta executar go run hello.go. A saída para
este programa será:
Hello World
Neste primeiro exemplo pode-se notar algumas caraterísticas da linguagem. A
primeira delas é que Go não possui ponto-e-vírgula ou quaisquer ponto e acentuações ao
final das instruções, diferentemente de linguagens como C ou Java. Outra característica é
que todo código em Go é dividido em três seções principais:
722
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
3. Código: Por último, temos o código de fato. Nele é onde aplicamos a lógica e é a
parte central de um programa em Go.
6.3.2. Variáveis
Go tem tipagem forte e estática, isso quer dizer que o tipo das variáveis declaradas du-
rante a execução de um programa não podem ser alterados. Apesar deste conjunto de
características, Go traz em sua sintaxe uma forma de declaração limpa, o que facilita e
torna rapido o desenvolvimento das aplicações. A declaração de variáveis em Go pode
ser feita de quatro maneiras principais, como apresenta o código abaixo:
1 package main
2
3 import "fmt"
4
5 func main() {
6 var variavel_a int // tipo 1
7 variavel_b := 5 // tipo 2
8
9 var variavel_c int = 45 // tipo 3
10 var x, y int = 1, 2 //tipo 4
11 }
O tipo 1 é usado quando não se sabe qual valor será alocado para a variável, en-
quanto o tipo 2 é uma maneira mais sucinta exclusiva do Go que força o tipo da variável
de acordo com o valor recebido (note que o tipo não foi declarado). É importante con-
siderar que o compilador só obtem sucesso em sua execução quando todas as variáveis
instanciadas são devidamente usadas. Outros tipos de declaração são os tipos 3 e 4. Entre
os tipos de variáveis suportados por Go estão bool, int (8, 16, 32, 64), float (32, 64),
string, byte, rune e complex (64, 128).
Com o pacote fmt é possível interagir com o usuário em modo texto no estilo input/out-
put. As funções principais de fmt tem por finalidade a entrada e saída de valores. O
código abaixo mostra as funções de saídas mais comuns:
1 package main
2
3 import "fmt"
723
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
4
5 func main() {
6 str := "Gopher"
7
8 fmt.Print("Ola ", str, "\n")
9 fmt.Println("Ola", str)
10 fmt.Printf("Ola %s\n", str)
11 }
Para receber uma entrada de valor, o pacote fmt nos disponibiliza a funcão Scan().
A leitura de um valor para uma variável é estabelecido colocando a variável precedida do
caractere & entre os parênteses de Scan(). Como exemplo temos:
1 var variavel string
2 fmt.Scan(&variavel)
724
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2
3 switch {
4 case t.Hour() < 12:
5 fmt.Println("Bom dia!")
6 case t.Hour() < 17:
7 fmt.Println("Boa tarde.")
8 default:
9 fmt.Println("Boa noite.")
10 }
6.4.1. Arrays
Os Arrays são listas com valores do mesmo tipo, sendo que cada valor possui um índice
que indica a posição dentro da lista. A contagem dos índices são delimitados pelo tamanho
do array que deve ser fixo e invariável. O primeiro elemento do array possui índice 0,
e o último elemento é sempre len(array) - 1. Podemos declarar um array em Go
utilizando as seguintes formas:
1 var lista [3]int
2 pares := [3]int{2,4,6}
3 impares := [...]int{3, 5, 7}
4 nomes := [2]string{}
5
6 fmt.Println(colecao, pares, impares, nomes)
725
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• float: 0.0;
• strings: "";
6.4.2. Slices
Os slices são uma abstração que se baseiam em arrays para possibilitar mais flexibilidade
na coleção de dados encadeados. A principal característica de um slice é a ausência de
limites permitindo maior dinamicidade para a coleção de dados. Para declarar uma slice
podemos utilizar quase a mesma sintaxe de um array. A diferença é que não especifi-
camos seu tamanho:
1 var sliceA []int
2 sliceB := []int{10, 20, 30}
3 SliceC := []string{}
4
5 fmt.Println(sliceA, sliceB, sliceC)
726
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.4.3. Maps
Os maps são uma estrutura de conjunto de dados organizado em chave-valor. Em outras
linguagens como Ruby e Python, os maps se assemelham aos Dict’s e Hashes respecti-
vamente. Podemos declarar um map em Go usando a forma de declaração simples ou
usando a função make(), assim como nos exemplos usados para os slices. No exemplo
a seguir temos declarados maps com chaves do tipo int e valores strings.
1 map1 := map[int]string{}
2 map2 := make(map[int]string)
727
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
foi Sociedade Esportiva de Picos, e logo após foi escrito o seguinte código:
timesDoPiaui["PEC"] = "Piaui Esporte Clube", ele permite que os val-
ores sejam atualizados diretamente no em uma chave especifica de um map. Logo após a
saída o valor que antes era Sociedade Esportiva Picos foi trocado por "Piaui
Esporte Clube".
6.4.4. Loops
A estrutura básica de repetição em Go é o comando for. Ele é comumente usado para fazer
iterações com listas, slice, maps e outros objetos iteráveis. Em sua forma mais comum
é especificado uma condição lógica e o bloco código se repetirá até que a condição seja
satisfeita com verdadeiro:
1 valor1, valor2 := 0, 20
2
3 for valor1 < valor2 {
4 valor1 += 1
5 }
O código acima será repetido em 20 iterações, ou seja, a variável valor1 que re-
cebe 0 na primeira linha será incrementado com mais um até que ele satisfaça a condição
for do valor1 ser menor que o valor2. Há a possibilidade de fazer iterações da forma
mais tradicional:
1 for i := 0; i < 10; i++ {
2 ...
3 }
O código acima também executa qualquer bloco de código até que a condição
de verdadeiro seja satisfeita, então o comando fará 10 iterações. Outra forma de fazer
uma iteração com for sobre determinado objeto iterável é constituída com o auxilio do
comando range:
1 for indice, valor := range slice {
2 ...
3 }
No código acima é retornado o índice de cada elemento do slice. Para obter acesso
e modificar valores desse slice podemos utilizar os índices. Dessa forma, basta omitir o
segundo valor na atribuição e acessar cada elemento através de seu índice:
1 numeros := []int{1, 2, 3, 4, 5}
2
3 for i := range numeros {
4 numeros[i] *= 2
5 }
6
7 fmt.Println(numeros)
728
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Como último exemplo, podemos usar o laço for como um loop infinito como o
while em outras linguagens:
1 for {
2 ...
3 }
Para a parada do loop basta instanciar algum comando de seleção como o if com break
interno.
6.5. Funções
Um dos pontos fortes da linguagem Go é a variedade de formas em que podemos es-
crever funções. Go permite que suas funções possam receber parâmetros, assim como
também retornar valores podendo ser múltiplos. Até este momento neste capítulo us-
amos funções, pois a rotina de um código em Go deve iniciar da função main(). Nas
subseções seguintes detalhamos alguns dos tipos de funções mais usados.
Agora iremos passar alguns argumentos para esta função, fazendo que ela imprima
um valor do tipo string e outro do tipo int:
1 func imprimirString(nome string, idade int) {
2 fmt.Printf("Ola, meu nome eh %s e eu tenho %d anos.\n",
3 nome, idade)
4 }
Para retornar valores em uma função é necessário definir seu tipo logo após a
passagem de parâmetros. Além disso, também é necessário fazer o uso do return:
1 func simplesSoma(x, y int) int {
2 return x + y
3 }
729
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
O retorno de funções em Go também podem retornar vários valores. Para que isso
seja possível devemos adicionar os tipos retornados na sequencia correta entre parênteses.
O return também deve estar de acordo:
1 func sucessorEAntecessor(x int) (int, int) {
2 return x + 1, x - 1
3 }
730
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.5.5. Defer
O defer define uma função que sempre será executada ao fim de uma rotina atual. O
comando é ideal para programas em que se usa I/O onde deve haver abertura e fechamento
de arquivos ou conexões, pois garante a execução de determinada função ao final. O
exemplo a seguir apresenta a função defer que imprime a string Segunda acao logo
após a impressão de Primeira acao:
1 func main() {
2 defer func() {
3 fmt.Println("Segunda acao")
4 }()
5
6 fmt.Println("Primeira acao")
7 }
731
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
13
14 for i := 0; i < len(times); i++ {
15 fmt.Println(times[i])
16 }
17 }
Á primeira vista, esta estrutura pode não fazer muito sentido. Porém a grande
vantagem em usar tipos customizados é a possibilidade de estendê-lo. Usaremos como
exemplo uma função que mostre se o time "Parnahyba Sport Club" está no slice. Observe
que não passamos nenhum parâmetro, porém o Go entende que esta função é do tipo
TimesDoPiaui e a trata como um "método" para este tipo.
1 func (time TimesDoPiaui) TemPhb() {
2 for _, value := range time {
3 if value == "Parnahyba Sport Club" {
4 fmt.Println("Tem Parnahyba Sport Club!")
5 }
6 }
7 }
6.6.2. Structs
As structs ou tipos estruturados de dados seguem um princípio de criar tipos a partir
de conjuntos de outros tipos. É uma abstração muito utilizada em linguagens como C
e C++. Structs facilitam o agrupamento de dados criando a noção de registros. Com
fim de demonstrar um exemplo de struct, usaremos o mesmo tema da seção anterior
onde será um tipo estruturado de nome TimeDoPiaui onde teremos o atributos nome,
n_vitorias, n_derrotas e classificado.
1 package main
2
3 import "fmt"
4
5 type TimeDoPiaui struct {
6 nome string
7 n_vitorias int
8 n_derrotas int
9 classificado bool
10 }
11
12 func main() {
13 river := TimeDoPiaui{
14 nome: "River",
15 n_vitorias: 23,
16 n_derrotas: 6,
17 classificado: true,
18 }
19
732
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
20 fmt.Println(river)
21 }
1 func main() {
2 river := TimeDoPiaui{
3 nome: "River",
4 n_vitorias: 23,
5 n_derrotas: 7,
6 classificado: true,
7 }
8
9 picos := TimeDoPiaui{
10 nome: "SEP",
11 n_vitorias: 18,
12 n_derrotas: 12,
13 classificado: false,
14 }
15
16 river.MostraSituacao()
17 picos.MostraSituacao()
18 }
19
20 func (t TimeDoPiaui) MostraSituacao() {
21 situacao := "nao esta"
22 if t.classificado {
23 situacao = "esta"
24 }
25
26 fmt.Printf("%s tem %d vitorias,"+
27 " %d derrotas e %s "+
28 "classificado.\n", t.nome,
29 t.n_vitorias,
30 t.n_derrotas,
31 situacao)
32 }
733
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Vimos na subseção anterior que podemos criar estruturas e interagir com elas por meio
de funções. Porém, a função MostraSituação() apenas faz uma exibição de val-
ores. Nesta seção evoluiremos a estrutura da seção anterior criando um slice para o tipo
TimeDoPiaui com as funções AdicionarTime(), RetirarTime() e Mostrar
Times().
É válido ressaltar que, assim como nas linguagens C e C++, Go usa ponteiros.
Em tipos estruturados, os ponteiros são necessários caso quisermos alterar elementos
de estruturas. Portanto para o exemplo projetado usaremos ponteiros nas funções de
AdicionarTime() e RetirarTime(), deste modo poderemos modificar a lista de
objetos.
Na mesma seção do código em que se encontra o type TimeDoPiaui struct,
incluiremos outro tipo que será um slice. Algo como:
1 type TimeDoPiaui struct {
2 nome string
3 n_vitorias int
4 n_derrotas int
5 classificado bool
6 }
7
8 type Times []TimeDoPiaui
Como a manipulação é feita no tipo Times, então as funções são estendidas neste
tipo. Na funções de adição e remoção usamos o comando append() para fazer recri-
ações modificadas do slice original. As funções ficam organizada deste modo:
1 func (t *Times) AdiconarTime(nome string,
2 n_vitorias int,
3 n_derrotas int,
4 classificado bool) {
5 novoTime := TimeDoPiaui{
6 nome,
7 n_vitorias,
8 n_derrotas,
9 classificado,
10 }
11
12 *t = append(*t, novoTime)
13 fmt.Printf("\n%s adicionado!", nome)
14 }
15
16 func (t *Times) RetirarTime(indice int) {
17 times := *t
18 time_retirado := times[indice]
19 *t = append(times[0:indice], times[indice+1:]...)
734
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Com essa estrutura, podemos deixar a função main() mais limpa, assim deixando
apenas chamadas de funções nela, veja um exemplo:
1 func main() {
2 times := Times{}
3 times.AdiconarTime("River", 23, 7, true)
4 times.AdiconarTime("Parnahyba Sport Club", 25, 5, true)
5 times.AdiconarTime("SEP", 20, 10, false)
6 times.MostrarTimes()
7 times.RetirarTime(0)
8 times.MostrarTimes()
9 }
**Times:**
River, 23, 7, true
Parnahyba Sport Club, 25, 5, true
SEP, 20, 10, false
River removido!
**Times:**
Parnahyba Sport Club, 25, 5, true
SEP, 20, 10, false
735
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.6.2.2. Interfaces
A melhor definição para interfaces é que elas são um "contrato" para outros tipos de
dados. Com interfaces é possível criar conjuntos de métodos que servem para n tipos
estruturados, pois ele consegue orientar uma mesma ação para tipos diferentes de dados,
mesmo que permitindo que o tipo possa ser direcionado a um método apropriado.
Vamos a um exemplo hipotético imaginando duas structs: TimeFutebol e
TimeBasquete. Apesar de serem tipos diferentes, as duas tem métodos estendidos
com a mesma finalidade que serve para fazer o calculo de pontos do time em determinado
campeonato baseado na quantidade de vitórias. Definimos regras de negócios diferentes
para basquete e futebol, onde, para o basquete cada vitória vale 2 pontos e para o futebol
cada vitória vale 3:
1 type TimeFutebol struct {
2 n_vitorias int
3 }
4
5 type TimeBasquete struct {
6 n_vitorias int
7 }
8
9 func (t TimeFutebol) PontosEmVitorias() int {
10 return t.n_vitorias * 3
11 }
12
13 func (b TimeBasquete) PontosEmVitorias() int {
14 return b.n_vitorias * 2
15 }
A função Pontos() recebe como parâmetro uma interface podendo ser um tipo
TimeFutebol ou TimeBasquete. Já o retorno da função Pontos() é a chamada
do método PontosEmVitorias() em que foram feitas uma implementação para cada
tipo. Dependendo do tipo recebido a função Pontos() irá direcionar a chamada para o
método PontosEmVitorias() adequado.
A mágica acontece quando usamos o mesmo método para os dois tipos. Vejamos
como fica a função main():
736
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
1 func main() {
2 time_futebol := TimeFutebol{20}
3 time_basquete := TimeBasquete{20}
4
5 fmt.Println(Pontos(time_futebol))
6 fmt.Println(Pontos(time_basquete))
7 }
Podemos observar que a função leva um parâmetro int em seu escopo, ela verifica
se o número é par ou ímpar. Como retorno ela envia para a função principal (bool,
error), ou seja, um parâmetro de resposta correta ou errada se é um par ou ímpar
consecutivamente e um valor de erro de função.
Caso seja passado um número abaixo de 0 ela entrará no primeiro if e retornará
um false, err. Se for ímpar ela passará do primeiro e segundo if e retornara
false. Por último, caso entre no segundo if ela retorna true e om valor de erro
nil.
6.8. Concorrência
Todas as Linguagens de Programação tem foco em determinada resolução de problema.
Com Go não é diferente. Um dos pontos fortes da linguagem é a forma com que ela
lida com a programação concorrente. As goroutines, por exemplo, demostram que não
há dificuldade na implementação de processos independentes. As seguintes subseções
apresentam os elementos básicos da concorrência na linguagem Go.
737
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.8.1. Goroutines
As goroutines são similares as threads comuns, porém elas são gerenciadas pelo ambiente
de execução, ou seja, a linguagem decide quando elas iram ser interligadas as threads prin-
cipais do sistema. Por esse fator elas se tornam extremamente leves por ter um controle
sobre qual execução realmente é necessária estar sendo executada pelo Sistema Opera-
cional.
Para dar início a uma goroutine se utiliza uma palavra-chave go antes da chamada
da função. Isso permite que a execução do processo principal rode em parelelo a função
sem a necessidade de bloquear principal uma delas. A seguir a função sequencia()
recebe um número inteiro e imprime uma sequencia que vai do 0 até o valor passado como
argumento:
1 func sequencia(n int) {
2 for i := 0; i < n; i++ {
3 fmt.Printf("%d ", i+1)
4 time.Sleep(200 * time.Millisecond)
5 }
6 fmt.Printf(" ...Sequencia de %d terminou... ", n)
7 }
738
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.8.2. Waitgroups
Usando o mesmo exemplo da subseção anterior, façamos o seguinte experimento: ao
invés de acionar a goroutine levando o valor 5 como argumento, iremos então inverter
os valores das suas funções sequencia(), que agora contará com os valores 10 e 5,
respectivamente. O escopo da função main() agora é este:
1 func main() {
2 go sequencia(10)
3 sequencia(5)
4 }
739
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.8.3. Channels
As goroutines ultilizam de uma melhor abordagem em alta performance e eficiência no
uso de recursos de processamento. Porém a capacidade de executar diferentes goroutines
concorrentes pode ser uma situação muito complicada porque geralmente irá se fazer a
necessidade de fazer comunicações entre elas.
Os channels são responsáveis por abstrair essa comunicação. Ou seja, eles abrem
um canal para servir de ponte e conduzir as informações de qualquer tipagem em Go.
A função make() é responsável de criar um canal para trafegar os valores. Vamos ao
seguinte exemplo com um tipo int. Depois Utilizamos o operador <- – arrow operator
ou operador seta – para interagir com o cana criado. A seta permite a direção correta do
fluxo da comunicação, vamos enviar valores int para o canal ch:
1 ch := make(chan int)
2 ch <- 33
1 valor := <-c
A seguir está um exemplo mais completo para maior entendimento da real função
dos channels:
1 func main() {
2 ch := make(chan int)
3 go induzir(ch)
4 recebido := <-ch
5 fmt.Println(recebido)
6 }
7
8 func induzir(ch chan int) {
9 ch <- 33
10 }
740
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
6.9. Pacotes Go
A modularizarão do código permite ao desenvolvedor uma série de benefícios. A im-
portância de um projeto bem organizado reflete no tanto no poder de manutenção do
código, como na sua abstração. Para que esta característica se concretize, existem na
maioria das Linguagens de Programação a possibilidade da associação entre arquivos de
uma mesma pasta, ou até mesmo a criação de novos módulos. No Go esses módulos são
chamados de pacotes (packages). Abordaremos sua utilização nas seguintes subseções.
Vamos agora construir nosso pacote criando outra pasta dentro de "meu-projeto".
Para este caso, a denominaremos como "operacoes". Dentro da pasta criaremos um ar-
quivo Go chamado "matematica.go" e nele vamos fazer duas funções: uma de soma de
dois números inteiros e outra para subtração desses números. O conteúdo seguirá a rep-
resentação abaixo:
1 package operacoes
2
3 func Soma(x, y int) int {
4 return x + y
5 }
6
7 func Subtracao(x, y int) int {
8 return x - y
9 }
Note que denominamos o nome do pacote logo no início com o package opera
coes. Este pacote atenderá por este nome quando for chamado externamente. As funções
741
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
de um pacote obrigatoriamente devem iniciar com letra maiúscula, pois esta característica
as deixam acessíveis fora do próprio arquivo. Voltaremos então para o arquivo main.go
onde já foi desenvolvida uma estrutura inicial. Agora podemos fazer a importação e a
utilização das funções do pacote recém-criado:
1 package main
2
3 import (
4 "fmt"
5 "meu-projeto/operacoes"
6 )
7
8 func main() {
9 fmt.Println(operacoes.Soma(10, 3))
10 fmt.Println(operacoes.Subtracao(10, 3))
11 }
742
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7
8 func main() {
9 fmt.Println("Info do Evento:")
10 fmt.Println(distanceToEnucomp.Info())
11
12 fmt.Println("\nMinicursos do Evento:")
13 for _, value := range distanceToEnucomp.ShortCourses() {
14 fmt.Println(value)
15 }
16
17 fmt.Printf("\nA distancia ate o Evento eh de %f Km.\n",
18 distanceToEnucomp.DistanceTo(-7.079602, -41.433254))
19 }
References
[1] CODAL. (2016) “Do You Need to Learn Google’s Programming Language?”,
https://medium.com/@gocodal/do-you-need-to-learn-googles-programming-
language-b7df74d6a06b, Outubro de 2017.
743
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
7
Uma Introdução à Robótica Móvel
Francisco Bruno de Sousa Rocha, Diego Porto Rocha, Ranulfo Plutarco Be-
zerra Neto, Karoline de Moura Farias e André Macedo Santana
Abstract
This short course aims to present an introduction of the main topics about Mobile Ro-
botics, focusing on the autonomous navigation of robots. Navigation is one of the major
challenges in this area and can be subdivided into five levels: Mapping Environments,
Localization, Path Generation, Trajectory Generation and Trajectory Execution. The re-
levance of this short course is to provide a greater interest in the field of Robotics as well
as to disseminate relevant concepts studied and researched by several universities, com-
panies and researchers around the world. From these concepts, the participant will learn
the main topics and studies currently carried out in the field of Autonomous Navigation
and thus will be able to study more advanced in the subject.
Resumo
Este minicurso tem como objetivo apresentar uma introdução dos principais tópicos que
permeiam a Robótica Móvel, tendo como foco a navegação autônoma de robôs. A na-
vegação é um dos grandes desafios desta área e pode ser subdividido em cinco níveis:
Mapeamento de Ambientes, Localização, Geração de Caminho, Geração de Trajetória e
Execução de Trajetória. A relevância deste minicurso é proporcionar um interesse maior
na área de Robótica bem como disseminar conceitos relevantes estudados e pesquisados
por diversas universidades, empresas e pesquisadores em todo mundo. A partir desses
conceitos, o participante aprenderá os principais tópicos e estudos realizados atualmente
no campo da Navegação Autônoma e assim estará apto a estudos mais avançados no
tema.
7.1. Introdução
A Robótica é uma área de pesquisa que trouxe diversos avanços para a sociedade, segundo
[Thrun et al. 2005] a Robótica é uma ciência que busca perceber e manipular o mundo
744
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
físico por meio de dispositivos mecânicos controlados por computador. Esses dispositivos
mecânicos são comumente chamados de robôs e qualquer sistema que vise este objetivo
é cunhado de sistema robótico. [Craig 2005] classifica os robôs em duas grandes classes:
robôs manipuladores e robôs móveis.
Os robôs manipuladores são comumente representados de maneira que se asseme-
lhem a braços mecânicos com muitos graus de liberdade capazes de realizar tarefas repeti-
tivas com muita velocidade e precisão no movimento. Esses robôs são um grande exemplo
de como a Robótica tem se tornado bem sucedida, isso pode ser comprovado pelo grande
investimento industrial na área, cerca de 2 bilhões de dólares [Siegwart et al. 2011]. Além
disso, é por meio desta tecnologia que a manufatura de produtos como smartphones e lap-
tops se tornou possível da maneira que ela é hoje. Apesar de todo esse sucesso, esses robôs
comerciais sofrem com um problema fundamental: a falta de mobilidade, que depende de
onde ele está fixado (Figura 7.1a).
A classe de robôs móveis é constituída por robôs que têm a capacidade de loco-
moção no espaço tridimensional (robôs aeroespaciais e subaquáticos) ou no espaço planar
(robôs terrestres), como visto em (Figura 7.1b). A aplicação prática dos robôs móveis
junto a diferentes atividades em nossa sociedade vem demonstrando o quão promissor é
o futuro desta área. Por exemplo, seu uso em aplicações domésticas (e.g. robô aspirador
de pó), industriais (e.g. transporte automatizado de cargas), militares (e.g. robôs para
desarmamento de bombas) e em segurança (e.g. robôs vigilantes) .
745
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Modelagem do ambiente: neste nível o robô utiliza sensores para coletar informa-
746
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
747
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
tação por grade de ocupação consiste em usar um sensor para retornar a distância de um
obstáculo dentro de um ambiente fechado, assim, cada medida coletada traz uma infor-
mação associada sobre a existência ou não de um obstáculo, essa informação é então
projetada num mapa bidimensional considerando o conhecimento da pose do robô.
Um problema da representação métrica é o armazenamento das informações mé-
tricas que dependendo da dimensionalidade do ambiente e da resolução para representá-
lo, a quantidade dados pode ser muito grande.
No mapa de características são armazenados dados que descrevem alguma forma
geométrica que podem ser encontrados no ambiente a ser mapeado, como pontos, retas ou
figuras geométricas, por exemplo, triângulos, retângulos e círculos. Por isso, este tipo de
mapeamento é mais usado em ambientes indoor [Amigoni et al. 2004] [Pfister et al. 2003].
(d) (e)
Figura 7.4: Construção de um mapa topológico [de Santana Souza et al. 2014].
748
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
A Figura 7.4 [de Santana Souza et al. 2014] ilustra intuitivamente o processo de constru-
ção de um mapa topológico de um determinado ambiente representado por uma planta
baixa.
7.2.2. Localização
O problema da Localização, no que diz respeito a robôs móveis, trata-se de determinar
a pose do robô relativo a um determinado mapa do ambiente. Esse tipo de problema é
também conhecido como estimação da pose, sendo assim, a Localização pode ser vista
como um problema de transformação de coordenadas. Saber suas coordenadas permite
ao robô expressar a localização dos objetos baseada em sua pose. A pose é descrita da
seguinte forma xt = (x, y, θ )T , onde x, y são suas coordenas baseadas no mapa, e θ a sua
orientação também em relação ao mapa [Thrun et al. 2005].
O grande problema, em se tratando de localização de robôs móveis, é que a pose
não pode ser acessada diretamente, ou seja, não existe um sensor que possa calcular a
pose de forma precisa. Esse processo é realizado a partir da inferência dos dados retorna-
dos pelos sensores, e essa informação só é obtida após várias iterações onde os dados são
integrados a partir de uma medida de tempo. Nas próximas seções serão discutidas o es-
quema geral do processo de Localização, onde serão destacados a influência dos sensores,
os principais problemas envolvendo Localização, as principais técnicas de Localização
conhecidas na literatura e uma breve introdução ao SLAM (Simultaneous Localization
and Mapping).
Um dos cenários mais aprazíveis para o problema da Localização, como foi anterior-
mente mencionado, seria a existência de um sensor que conseguisse em uma única leitura
predizer a pose do robô independente do ambiente. Atualmente temos o GPS (Global Po-
sitioning System), que é capaz de informar o posicionamento de um dispositivo como um
smartphone em qualquer parte do planeta. A desvantagem desta tecnologia é que a sua
acurácia é dada em metros e o uso desse tipo de sensor em robôs pequenos em ambiente
indoor é impraticável devido ao erro atrelado a ele. O GPS ainda possui a limitação de
fornecer apenas a posição absoluta em relação à Terra, e, para o robô, mais do que conhe-
cer sua posição absoluta é necessário saber sua posição relativa aos objetos do ambiente,
para que possa interagir com eles[Siegwart et al. 2011].
[Borenstein and Feng 1996] classificam os métodos de localização em duas grande
categorias: métodos de localização relativa, que dão a pose do robô em relação a uma pose
inicial e métodos de localização absoluta, que dão a pose global do robô e não necessitam
das posições calculadas anteriormente.
O modelo mais simples de localização envolve apenas parâmetros internos do
robô, e por isso, não depende da obtenção de informações do ambiente ao seu redor. A
odometria é um exemplo desse modelo. O método da odometria consiste em determinar
a pose do robô por meio dos deslocamentos incrementais de suas rodas, medidos a partir
de um referencial fixo. A Figura 7.5 exemplifica como se dá esse processo. De acordo
com a imagem, é possível perceber que a posição atual do robô pode ser inferida a partir
749
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
750
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Predição.
Os sensores são a principal forma de os robôs perceberem o mundo. E como foi men-
cionado anteriormente, todo sensor possui um erro característico conhecido na literatura
como ruído. Um dos grandes problemas do ruído é que ele se acumula e se não for tratado,
gera uma localização errônea do robô. A forma mais eficaz de se tratar esse problema é
por meio da robótica probabilística. Esta abordagem consiste em representar uma deter-
minada configuração do robô por meio de uma distribuição probabilística que descreva,
com o máximo de fidelidade possível, a sua posição baseado no conjunto de todas as suas
possíveis poses.
A Figura 7.7 demonstra como a robótica probabilística funciona. O cenário des-
creve um robô se movimentando por um corredor com três portas, junto às imagens do
corredor há duas linhas que representam respectivamente o grau de confiança (bel(x)) do
estado corrente do robô (probabilidade do robô estar em uma determinada posição x), e
o p(z|x) é a probabilidade do robô estar no estado x dada uma medida z. Onde é consi-
derando um posicionamento unidimensional ao longo do eixo das abscissas e o valor da
confiança de uma probabilidade no eixo das ordenadas.
Os algoritmos de localização são uma variação do modelo da Figura 7.7, que por
sua vez é baseada no modelo do filtro de Bayes [Thrun et al. 2005]. Makov Localization
e EKF (Extended Kalman Filter) Localization são os principais exemplos de algoritmos
clássicos de Localização e mais detalhes sobre o seu funcionamento podem ser encontra-
dos em [Thrun et al. 2005] e [Siegwart et al. 2011].
751
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
752
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
O termo SLAM é uma abreviatura para processo que realiza Localização e Mapeamento
Simultaneamente [Smith and Cheeseman 1986][Leonard and Durrant-Whyte 1991], e pode
ser descrita com uma técnica para a construção de um mapa de um ambiente desconhecido
por um robô móvel que ao mesmo tempo utiliza as informações do mapa para calcular
sua pose.
Este problema é significantemente mais difícil que todos os outros discutidos até
aqui. Ele pode ser pensado como um “problema do ovo e da galinha” (chicken or egg
problem) pois: para a localização é necessário o conhecimento do mapa enquanto que
uma estimativa exata da pose do robô é necessária para construir esse mapa. A Figura 7.8
ilustra o problema de SLAM.
Algumas técnicas utilizadas para resolver esse problema são o SLAM com Ex-
tended Kalman Filter e o GraphSLAM, ambas abordagens podem ser encontradas em
[Thrun et al. 2005].
753
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Início
Destino
Caminho
Objetos
754
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Objetos
Objetos
755
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Obstáculos
Menor caminho Objetivo
Início
pares de vértices que podem se ver. A tarefa do gerador de caminho é encontrar o menor
caminho entre a posição inicial até a posição final ao longo das rotas definidas pelo grafo
de visibilidade (Figura 7.13).
Contrastando com a abordagem do grafo de visibilidade, o diagrama de Voronoi é
um método completo de mapa de rotas que tende a maximizar a distancia entre um robô e
um obstáculo no mapa. O diagrama de Voronoi consiste de linhas construídas a partir de
todos os pontos que são equidistantes de dois ou mais obstáculos (Figura 7.14).
Figura 7.14: Exemplo de diagrama de Voronoi, onde start é o ínicio e goal é o objetivo
[Siegwart et al. 2011].
756
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Início
Destino
Caminho
Trajetória
757
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Início
Destino
A simulação garante uma maior segurança à integridade física do robô, dos objetos
758
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
do local em que ele está inserido e até mesmo de seres humanos ou outros seres vivos,
pois tudo acontece no computador, não há perigo de o robô se chocar com uma obstáculo
e danificar sua estrutura ou causar ferimentos a alguém em caso de erro. Ela permite o
aperfeiçoamento dos algoritmos testados na simulação, visto que podemos verificar se os
resultados são satisfatórios no simulador, antes de aplicar em um robô real.
A aplicação V-REP [E. Rohmer 2013] (Figura 7.18) é uma ferramenta que permite
que o usuário monte cenários com diversos objetos simuláveis como robôs, obstáculos e
sensores. Ele oferece vários modelos de robôs existentes no mundo real, como o NAO e o
Pioneer p3dx, disponíveis para uso bem como ferramentas para editá-los e sua funcionali-
dade ou para criar novos. O simulador permite a utilização de quatro bibliotecas conheci-
das de simulação das físicas do ambiente: ODE (Open Dynamics Engine) [Smith 2016],
Bullet [Coumans 2016], Vortex [Simulations 2016] e Newton [Jerez and Suero 2016].
O V-REP se apresenta como uma poderosa solução gratuita, em sua versão para
estudantes, para a simulação de projetos robóticos. Apesar da proposta robótica do si-
mulador ele não se limita somente a este caso. É possível utilizar programas externos
ao simulador que através da API de comunicação do V-REP, podem interagir e realizar
simulações para didáticas em áreas como física e matemática.
759
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
7.4. Conclusão
A partir dos conteúdos apresentados, percebe-se que a Robótica é uma área rica em co-
nhecimento. Nesta breve introdução à Robótica Móvel, foram abordados os principais
tópicos da Navegação Autônoma, ou seja, o que é necessário para que um robô possa se
locomover autonomamente sem a interferência direta de um ser humano na tomada de
decisões. Todas as etapas necessárias para realização da Navegação: Mapeamento, Loca-
lização, Geração de Caminho, Geração de Trajetória e Execução da Trajetória, trabalham
utilizando algoritmos baseados em conceitos estatísticos e de otimização, cada etapa pode
ser subdividida em inúmeras outras com vários desafios a serem trabalhados e a união de
todas estas etapas, mesmo com todo o aparato literário disponível atualmente, não é uma
tarefa trivial. Além disso, a Robótica também encara o grande desafio do custo aquisi-
tivo dos robôs de alto nível. Atualmente várias propostas de arquiteturas e plataformas
de baixo custo vêm se tornando populares, grande parte delas permitem implementar as
funcionalidade necessárias para a Navegação. Esses sistemas de baixo custo, aliados ao
uso de simuladores permitem ampliar o interesse educacional pela Robótica.
O grande objetivo deste minicurso é despertar o interesse de novos estudantes e
pesquisadores para uma área tão desafiadora, quanto é a Robótica. Para os já familiariza-
dos com tema, espera-se que os conhecimentos aqui expostos possam ampliar ainda mais
o interesse pelo estudo e pesquisa em Robótica.
Referências
[Alsina et al. 2002] Alsina, P. J., Gonçalves, L. M. G., Medeiros, A. A. D., Pedrosa, D.
P. F., and Vieira, F. C. (2002). Navegação e controle de robôs móveis. XIV Congresso
Brasileiro de Automática.
[Amigoni et al. 2004] Amigoni, F., Gasparini, S., and Gini, M. (2004). Map building
without odometry information. In Robotics and Automation, 2004. Proceedings. ICRA
’04. 2004 IEEE International Conference on, volume 4, pages 3753–3758 Vol.4.
[Borenstein and Feng 1996] Borenstein, J. and Feng, L. (1996). Measurement and cor-
rection of systematic odometry errors in mobile robots. IEEE Transactions on robotics
and automation, 12(6):869–880.
[Craig 2005] Craig, J. J. (2005). Introduction to robotics: mechanics and control, vo-
lume 3. Pearson Prentice Hall Upper Saddle River.
[Crowley 1985] Crowley, J. (1985). Navigation for an intelligent mobile robot. IEEE
Journal on Robotics and Automation, 1(1):31–41.
[de Santana Souza et al. 2014] de Santana Souza, A. A., Santana, A. M., Gonçalves, L.
M. G., and de Medeiros, A. A. D. (2014). Mapeamento, volume 1, pages 161–175.
LTC.
760
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[E. Rohmer 2013] E. Rohmer, S. P. N. Singh, M. F. (2013). V-rep: a versatile and scalable
robot simulation framework. In Proc. of The International Conference on Intelligent
Robots and Systems (IROS).
[Hahnel et al. 2012] Hahnel, D., Schulz, D., and Burgard, W. (2012). Temporary maps
for robust localization in semi-static environments. In Advanced Robotics, pages 579–
597.
[Jerez and Suero 2016] Jerez, J. and Suero, A. (2016). Newton dynamics.
http://newtondynamics.com. Online; Acessado em 25/10/2017.
[Leal et al. 2016] Leal, W., Medeiros, D., Silva, W. A. S., Machado, R., Neto, J. B., and
Rabelo, R. A. L. (2016). O estudo da aplicabilidade de controladores distintos para
um robô seguidor de parede autônomo em um ambiente estático. Revista de Sistemas
e Computação, 6(1):1–6.
[Leonard and Durrant-Whyte 1991] Leonard, J. J. and Durrant-Whyte, H. F. (1991). Mo-
bile robot localization by tracking geometric beacons. IEEE Transactions on robotics
and Automation, 7(3):376–382.
[Meyer-Delius et al. 2010] Meyer-Delius, D., Hess, J., Grisetti, G., and Burgard, W.
(2010). Mobile robot mapping in populated environments. In Intelligent Robots and
Systems (IROS), 2010 IEEE/RSJ International Conference on, pages 5750–5755.
[Moravec and Elfes 1985] Moravec, H. and Elfes, A. (1985). High resolution maps from
wide angle sonar. In Robotics and Automation. Proceedings. 1985 IEEE International
Conference on, volume 2, pages 116–121.
[Pfister et al. 2003] Pfister, S. T., Roumeliotis, S. I., and Burdick, J. W. (2003). Weighted
line fitting algorithms for mobile robot map building and efficient data representation.
In Robotics and Automation, 2003. Proceedings. ICRA ’03. IEEE International Con-
ference on, volume 1, pages 1304–1311 vol.1.
[Robotics 2010] Robotics, C. (2010). V-REP. http://www.coppeliarobotics.
com/. [Online; Acessado em 24/10/2017].
[Romero et al. 2014] Romero, R. A. F., Prestes, E., Osório, F., and Wolf, D. (2014). Ro-
bótica Móvel. LTC.
[Siegwart et al. 2011] Siegwart, R., Nourbakhsh, I. R., and Scaramuzza, D. (2011). In-
troduction to autonomous mobile robots. MIT press.
[Simulations 2016] Simulations, C. L. (2016). Vortex. http://www.cm-labs.com/. Online;
Acessado em 25/10/2017.
[Smith 2016] Smith, R. (2016). Open dynamic engine (ode). http://www.ode.org/. On-
line; Acessado em 25/10/2017.
[Smith and Cheeseman 1986] Smith, R. C. and Cheeseman, P. (1986). On the repre-
sentation and estimation of spatial uncertainty. The international journal of Robotics
Research, 5(4):56–68.
761
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Thrun et al. 2005] Thrun, S., Burgard, W., and Fox, D. (2005). Probabilistic robotics.
MIT Press.
762
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
8
Construindo Microsserviços em Ambiente de
Computação em Nuvem
Abstract
In this work, a research was conducted on the topic of microservice that has been
adopted as a natural solution in the substitution of monolithic systems for applications
in the cloud computing environment. The construction of microservices must be based
on the standards adopted by the software industry. This chapter presents the results of
the research carried out. The presentation addresses security and privacy issues as well
as an architectural standard for deployment.
Resumo
Neste trabalho foi realizada uma pesquisa sobre o tema de microsserviço que tem sido
adotado como uma solução natural na substituição de sistemas monolíticos para
aplicações em ambiente de computação em nuvem. A construção de microsserviços
deve ser baseada em padrões adotados pela indústria de software. Este capítulo
apresenta o resultado da pesquisa realizada. Na apresentação são abordados questões
de segurança e privacidade bem como um padrão arquitetural para implantação.
8.1. Introdução
Microsserviço é uma tendência arquitetural e tem sido adotado como uma solução
natural na substituição de sistemas monolíticos. O conceito foi definido em 2014 por um
artigo escrito por Martin Fowler [Fowler 2014]. Microsserviços [Almeida et al. 2017]
são pequenos serviços autônomos que trabalham juntos e consiste em um estilo de
arquitetura de software na quais grandes e complexas aplicações são compostas por um
ou mais serviços.
763
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Giessler et al. 2016] tem sido utilizados em grande escala para implementação desse
padrão. O objetivo deste trabalho é realizar uma apresentação sobre a arquitetura de
microsserviços levando em consideração aspectos de segurança, privacidade e
padronização em ambientes de computação em nuvem, o conteúdo está baseado na
pesquisa de mestrado do C.E.S.A.R1 realizada pelos autores e no artigo publicado no
The Twelfth International Conference on Software Engineering Advances – ICSEA
2017 com o título Survey on Microservice Architecture - Security, Privacy and
Standardization on Cloud Computing Environment.
Em meados da década de 1980, o modelo espiral foi proposto por Barry Boehm
para utilização no desenvolvimento de software no qual não havia o conhecimento
completo dos requisitos a serem implementados. O modelo espiral é considerado um
modelo incremental porque suas atividades são organizadas em ciclos com o objetivo de
construir uma parte do software a cada iteração, sendo evoluída nos ciclos subsequentes
1
Centro de Estudos e Sistemas Avançados do Recife – C.E.S.A.R http://www.cesar.edu.br/
764
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
765
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
que podiam “pular” de um ponto a outro por meio das instruções GOTO. Essa forma de
organizar as instruções dos programas era denominada programação não-estruturada.
766
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Código Uma base de código única para Múltiplas bases de código. Cada um tem
todo o aplicativo. sua própria base de código.
Legibilidade Muitas vezes confuso e difícil de Muito melhor legibilidade e muito mais
do Código manter. fácil de manter.
A implantação simples como cada
Implantações complexas com
Implantações microsserviço pode ser implantada
janelas de manutenção e horários de
individualmente, com um tempo de
indisponibilidade.
inatividade mínimo, se não zero.
Normalmente, totalmente Cada microsserviço pode ser
Linguagem desenvolvido em uma linguagem de desenvolvido em uma linguagem de
programação. programação diferente.
Requer que você dimensione toda a
Escala Permite que você escale os serviços com
aplicação mesmo que os pontos de
gargalos sem escalar a aplicação toda.
estrangulamento sejam localizados.
767
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
768
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
769
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
770
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mais de 100 vezes nos últimos seis anos, enquanto que empregos em áreas de tecnologia
semelhantes como SOAP e XML permaneceram quase idênticos. As soluções para
microsserviços procuram implementar algoritmos simples que atendam necessidades
específicas com os elementos apresentados nesta seção [Almeida et al. 2017].
8.5 Ambiente de Computação em Nuvem
A arquitetura de desenvolvimento de microserviço está diretamente relacionada com
duas tecnologias Cloud Computing e Contêiner, cloud computing parte-se do
pressuposto que para proporcionar um ambiente seguro e descentralizado utilizam-se os
datacenters já existentes, considerando até mesmo o aspecto financeiro para
disponibilidade da aplicação.Cloud Computing é conceituado por [Veras 2012] como
um conjunto de recursos virtuais facilmente utilizáveis acessíveis, tais como hardware,
software, plataformas de desenvolvimento e serviços. Esta arquitetura possui 03 (três)
modelos disponíveis Software como Serviço (SaaS), Plataforma como Serviço (PaaS) e
Infraestrutura como Serviço (IaaS), [Richter et al. 2017] descreve estes modelos como:
8.5.1 Docker
771
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
O LXC ainda possui como componentes: CGROUP que tem como objetivo
limitar os recursos de hardware, como isolar a memória para cada contêiner,
NAMESPACE cria um grupo de processos proporcionando um isolamento de
aplicações e CHROOT disponibiliza um diretório raiz para cada contêiner, a imagem
8.1, apresenta esta arquitetura.
772
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
773
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Abaixo segue, imagem 8.3 e 8.4, um demonstrativo de como o servidor principal provia
o serviço antes da construção do microsserviço.
774
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
775
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
776
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
777
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
778
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
779
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
780
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
781
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
782
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
8.7. Conclusões
A arquitetura de microsserviço é o padrão arquitetural em voga no mercado de software
atualmente, a constante necessidade de evolução das aplicações e sistemas tem levado
as empresas a migrar suas soluções monolíticas para essa nova arquitetura.
8.8. Referências
Almeida, W. H. C., Monteiro, L. D. A., Hazin, R. R., Lima, C. De and Ferraz, F. S.
783
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Bracci, F., Corradi, A. and Foschini, L. (2012). Database security management for
healthcare SaaS in the Amazon AWS Cloud. Proceedings - IEEE Symposium on
Computers and Communications, p. 000812–000819.
Gadea, C., Trifan, M., Ionescu, D. and Ionescu, B. (2016). A reference architecture for
real-time microservice API consumption. Proceedings of the 3rd Workshop on
CrossCloud Infrastructures & Platforms - CrossCloud ’16, p. 1–6.
Giessler, P., Steinegger, R., Abeck, S. and Gebhart, M. (2016). Checklist for the API
Design of Web Services based on REST. v. 9, n. 3, p. 41–51.
Krylovskiy, A., Jahn, M. and Patti, E. (2015). Designing a Smart City Internet of Things
Platform with Microservice Architecture. Proceedings - 2015 International
Conference on Future Internet of Things and Cloud, FiCloud 2015 and 2015
International Conference on Open and Big Data, OBD 2015, p. 25–30.
Romero, D. [Ed.] (2016). Containers com Docker. 1. ed. São Paulo: Casa do Código.
Veras, M. (2012). Cloud Computing: Nova Arquitetura da TI. São Paulo: Brasport. v. 1
Veras, M. [Ed.] (2013). Arquitetura de Nuvem: Amazon Web Services (AWS). Rio de
Janeiro: .
784
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
785
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
9
Deep Learning: Uma Introdução às Redes Neurais
Convolucionais
Marcos Vinícius dos Santos Ferreira, Kelly Maria da Silva Oliveira, Antonio
Oseas de Carvalho Filho e Alcilene de Sousa
Abstract
Convolutional networks have played an important role in the history of deep learning.
They are a key example of a successful decomprehension application obtained by studying
the brain for machine learning applications. Convolutional networks were also some
of the first neural networks to re-solve important commercial applications and remain
at the forefront of today’s deep learning applications. In this chapter, deep learning
will be introduced into convolutional neural networks in theory and practice since the
understanding of how convolutional neural networks work with images are not trivial
tasks.
Resumo
9.1. Introdução
O Aprendizado de Máquina (AM), são explorações que estudam o desenvolvimento de
métodos capazes de extrair conhecimento a partir de amostras de dados. Existem diversos
algoritmos de aprendizado de máquina cuja finalidade é admitir que, após um determinado
786
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
treinamento com certo conjunto de dados cujas instâncias têm classificação conhecida,
uma máquina seja capaz de interpretar novos dados e classificá-los de maneira apropriada
a partir de uma generalização do que lhe foi oferecido [Libralão et al. 2003]. Existem três
paradigmas referentes à forma de aprendizagem:
787
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Bias: ou viés, cujo propósito é permitir uma melhor adaptação da função de ativa-
ção, ao qual possui dependência quanto a seu valor ser positivo ou negativo, e que
poderá aumentá-lo ou diminuí-lo.
788
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
arestas, regiões com um formato particular, etc. Algumas representações são melhores
do que outras para simplificar a tarefa de aprendizagem. Uma das promessas da apren-
dizagem profunda é a substituição de características feitas manualmente por algoritmos
eficientes para a aprendizagem de características supervisionada ou semi-supervisionada
e extração hierárquica de características [Song e Lee 2013]. A Figura 9.3 faz um breve
resumo sobre o surgimento.
789
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
pagation. Nesta arquitetura existem múltiplas camadas de neurônios, sendo que cada um
deles está conectado a todos os neurônios da camada seguinte.
1995 – Ascensão da Support Vector Machines (SVM).
2006 – Hinton, Simon Osindero e Yee-Whye Teh publicaram um artigo em 2006
que foi visto como um avanço significativo o suficiente para reavivar o interesse em re-
des neurais. O artigo "Um Algoritmo de Aprendizado Rápido para Redes de Crença
Profunda"[Hinton et al. 2006], foi responsável por lgo que mais tarde se transformaria o
termo “Deep Learning”.
O Aprendizado Profundo permite modelos computacionais que compõem múlti-
plas camadas de processamento aprender representações de dados com múltiplos níveis
de abstração. Esses métodos melhoraram drasticamente o estado da arte no reconheci-
mento de fala, reconhecimento de objetos visuais, detecção de objetos e muitos outros
domínios, como descoberta de medicamentos e genômica. Um dos tipos mais ampla-
mente utilizados de Deep Learning são as redes neurais convolucionais ou Convolutional
Neural Network (CNN) proposta por [LeCun et al. 1990].
As CNNs são uma arquitetura treinável, biologicamente inspirada que possui a ca-
pacidade de aprendizado no que se refere a características invariantes [LeCun et al. 2010].
As CNNs são variantes de MLPs inspiradas biologicamente e que consistem em um con-
junto de camadas que extraem características de imagens de entrada, fazendo sucessivas
convoluções e redimensionando de modo que no final consiga ter apenas a marca da classe
a que a imagem de classe pertence.
A arquitetura de uma CNN é um paradigma extremamente versátil, porém con-
ceitualmente simples, que pode ser aplicada a uma extensa gama de tarefas perceptivas.
Embora a CNN tradicional treinada com a aprendizagem supervisionada seja muito eficaz,
o treinamento pode exigir uma grande quantidade de amostras de treinamento rotuladas
[LeCun et al. 2010].
Uma CNN é composta por uma ou mais camadas convolucionais, muitas vezes
seguidas de camadas de Pooling, e depois seguidas por uma ou mais camadas totalmente
conectadas como em uma rede neural multicamada padrão. A arquitetura de uma CNN foi
projetada para aproveitar a estrutura 2D de uma imagem de entrada, ou outra entrada 2D,
como um sinal de fala. Isto é conseguido com conexões locais e pesos ligados, seguidos de
alguma forma de agrupamento que resulta em características invariantes. Outro benefício
da CNN é que são mais fáceis de treinar e têm muitos parâmetros menos do que redes
totalmente conectadas com o mesmo número de unidades escondidas.
A CNN é uma rede neural que implementa várias camadas distintas, sendo que as
principais são as: convolucionais, de Pooling e totalmente conectadas ou Fully-connected.
A camada convolucional tem por funcionalidade extrair atributos dos volumes de entra-
das. A camada de Pooling é responsável por reduzir a dimensionalidade do volume re-
sultante após as camadas convolucionais, ajudando a tornar a representação invariante a
pequenas translações na entrada. Por fim, a camada totalmente conectado é responsável
pela propagação do sinal por meio da multiplicação ponto a ponto e uso de uma função
de ativação. A Figura 9.4 ilustra as três principais camadas da CNN descrita.
790
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
791
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
792
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
9.2.4. Arquiteturas
Nos últimos anos, as áreas de aplicação de redes neurais profundas foram rapidamente
expandidas. Várias trabalhos envolvendo arquiteturas com uma única abordagem para di-
ferentes problemas, entre as quais podemos destacar: AlexNet (2012), GoogleNet (2014),
VGGNet (2014), ResNet (2015).
Após o sucesso da AlexNet em 2012, vários modelos baseados em CNN foram submeti-
dos para o ILSVRC 2013. O vencedor em 2013 foi a rede construída por Zeiler e Fergus,
2013 com um modelo que obteve uma taxa de erro de 11,2%. Esta arquitetura foi con-
cebida a partir de modificações na arquitetura AlexNet, e desenvolveu algumas idéias
básicas sobre como o seu desempenho poderia ser melhorado. A maior contribuição de
Zeiler e Fergus foi o detalhamento do modelo proposto e o desenvolvimento da técnica
DeConvNet (Deconvolutional Network), que consiste na forma de visualização dos ma-
pas de características da rede [Zeiler e Fergus 2014]. A Figura 9.7 ilustra exemplos de
imagens de entrada e das regiões que ativam os filtros.
A ideia básica de como isso funciona é que, em todas as camadas da CNN treinada,
é anexado uma “DeConvNet” que possui um caminho de volta aos pixels da imagem. A
técnica permite operações reversas de pooling até o momento em que a imagem atinja seu
tamanho original. Esta operação possibilita a verificação de como cada camada presente
na CNN, ler a imagem de entrada e quais regiões ativam os filtros.
793
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Figura 9.7. Exemplos de imagens de entrada e das regiões que ativam os filtros.
Modificada [Deshpande 2016a]
GoogLeNet proposto por [Szegedy et al. 2015], foi o primeiro modelo que introduziu a
ideia de que as camadas das CNNs poderiam ser executadas paralelamente. A arquitetura
do módulo Inception, uma rede de 22 camadas profundas, iniciou um patamar elevado
de classificação e detecção no que diz respeito a recursos de reconhecimento visual 3D
WideNet 2014 (ILSVRC14) da ImageNet, com uma taxa de erro de 5 maiores de 6,7%.
794
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Foi proposto por Simonyan e Zisserman, 2014 um modelo de CNN com até 19 camadas
que utilizava filtros 3 × 3 , obtiveram o segundo lugar do ILSVRC 2014 com taxa de erro
de 7,3% [Simonyan e Zisserman 2014]. Os autores concluíram que o modelo generaliza
bem uma ampla gama de tarefas e conjuntos de dados, combinando ou superando as
tubulações de reconhecimento mais complexas construídas em torno de representações
de imagem menos profundas. Os resultados confirmaram a importância da profundidade
nas representações visuais.
Foram testadas 6 arquiteturas diferentes, especificadas na Figura 9.10 , e a arqui-
tetura que apresentou o melhor desempenho foi a de rótulo D, que possuía 13 camadas
convolucionais, 5 de max-pooling e 3 totalmente conectadas.
A rede ResNet proposta por [He et al. 2016], com 152 camadas era a rede mais profunda
já treinada no ImageNet. O sistema de rede residual profunda foi 8x vezes maior em pro-
fundidade que o VGG Net, utilizou o princípio de “aprendizagem residual” para orientar
os projetos de arquitetura de rede.
O desempenho dessa rede foi superior ao de seres humanos, conforme suas habili-
dades e área de conhecimento, normalmente obtém top-5 erro entre 5 e 10%. Tal façanha
795
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
9.3. Experimentos
Um dos primeiros problemas a ser tratado por CNN foi o reconhecimento de dígitos
em imagens. Para por em prática os conceitos visto sobre CNN afim de aumentar o
aprendizado, utilizaremos uma Rede Neural Convolucional Sequencial de 5 camadas para
796
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• X_train: São os valores dos pixeis das imagens, que servem de entrada para a rede
neural aprender características e ajustar os pesos com o treinamento a partir desses
dados.
• Y_train: São os valores dos rótulos das imagens, ou seja, de 0 a 9, que servem
de saída desejada para a rede ajustar os pesos com o algoritmo backpropagation ao
longo das épocas no treinamento.
• X_test: São os valores dos pixeis das imagens, mas esses servem para teste, ou
seja, quando a rede esta treinada ela utiliza essas matrizes de pixeis para classificar
qual rótulo pertence. É utilizado exemplos diferentes dos treinados para testar a
capacidade de generalização da rede, o quanto ela consegue classificar amostras
diferentes das que foram treinadas.
• Y_test: São os valores dos rótulos das imagens, ou seja, de 0 a 9, mas esses também
são para teste, os chamadas rótulos verdadeiros, são os rótulos do conjunto de teste
797
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
X_test. Ele é utilizado para comparar com a saida da classificação da rede e calcular
a acurácia da classificação.
13 # P r e p a r a c a o dos dados
15 # m a n i p u l a c a o de g r a f i c o s com m a t p l o i t
sns . s e t ( s t y l e = ’ white ’ , c o n t e x t = ’ notebook ’ , p a l e t t e = ’ deep ’ )
17
# n o r m a l i z a o s d a d o s e n t e 0 e 1 v i s t o que a CNN t r a b a l h a m e l h o r n e s s e
intervalo
19 def normalizacao ( data ) :
r e t u r n data / 255.0
21
23 def c r e a t e _ t r a i n _ d a t a ( ) :
25 # l e o s d a d o s de t r e i n o do a r q u i v o
t r a i n = pd . r e a d _ c s v ( o s . g e t c w d ( ) + " / MNIST / d a t a / i n p u t / t r a i n . c s v " )
27
# r o t u l o s para teinamento , saida desejada
29 Y_train = t r a i n [ " label " ]
31 # d e l e t a o s r o t u l o s de t r a i n
X _ t r a i n = t r a i n . drop ( l a b e l s =[ " l a b e l " ] , a x i s =1) # (42000 , 784)
33
# l i b e r a n d o mais espaco
35 del t r a i n
37 # e x i b e a q u a n t i d a d e de c l a s s e s que s e r a o e x i b i d a s
Y_train . value_counts ()
39 g = sns . countplot ( Y_train )
p l t . show ( )
41
# v e r i f i c a n d o os v a l o r e s n u l o s e a u s e n t e s
43 X _ t r a i n . i s n u l l ( ) . any ( ) . d e s c r i b e ( )
798
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
45
# Normaliza os dados
47 X_train = normalizacao ( X_train )
49
# muda a f o r m a em 3 d i m e n s o e s
51 X_tr ain = X_tr ain . v a l u e s . r esha pe ( −1 ,28 ,28 ,1) # (42000 , 28 , 28 , 1)
53
# C o d i f i c a a o de r o t u l o
55 Y _ t r a i n = t o _ c a t e g o r i c a l ( Y_train , num_classes =10)
57 # e x i b e g r a f i c a m e n t e a q u a n t i d a d e de i m a g e n s que contm c a d a c l a s s e
g = p l t . imshow ( X _ t r a i n [ 1 ] [ : , : , 0 ] )
59 p l t . show ( )
61 # s e t a sementes a l e a t o r i a s
random_seed = 2
63
# d i v i d e o s d a d o s de t r e i n o e v a l i d a c a o p a r a s e t a r no t r e i n a m e n t o
65 X_train , X_test , Y_train , Y_test = t r a i n _ t e s t _ s p l i t ( X_train ,
Y_train , t e s t _ s i z e =0.1 , r a n d o m _ s t a t e =random_seed )
67 # s a l v a o s d a d o s de treino e teste
np . s a v e ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / X _ t r a i n . npy ’ , X_train )
69 np . s a v e ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / X _ t e s t . npy ’ , X_test )
np . s a v e ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / Y _ t r a i n . npy ’ , Y_train )
71 np . s a v e ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / Y _ t e s t . npy ’ , Y_test )
75
# c a r r e g a o s d a d o s de t r e i n o a p a r t i r de a r q u i v o s s a l v o s
77 def l o a d _ t r a i n _ d a t a ( ) :
X _ t r a i n = np . l o a d ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / X _ t r a i n . npy ’ )
79 Y _ t r a i n = np . l o a d ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / Y _ t r a i n . npy ’ )
r e t u r n X_train , Y_train
81
def l o a d _ t e s t _ d a t a ( ) :
83 X _ t e s t = np . l o a d ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / X _ t e s t . npy ’ )
Y _ t e s t = np . l o a d ( o s . g e t c w d ( ) + ’ / d a t a _ n p y / Y _ t e s t . npy ’ )
85 r e t u r n X_test , Y_test
87 i f __name__ == ’ __main__ ’ :
create_train_data ()
799
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
e 64 filtros para as duas últimas. Cada filtro transforma uma parte da imagem (definida
pelo tamanho do kernel) usando o filtro do kernel. A matriz do filtro do kernel é aplicada
em toda a imagem. Os filtros podem ser vistos como uma transformação da imagem.
A CNN pode isolar recursos que são úteis em todos os lugares a partir dessas imagens
transformadas (mapas de características).
A segunda camada importante na CNN é a camada de pooling (MaxPool2D). Esta
camada simplesmente atua como um filtro de amostragem descendente. Observa os 2
pixels vizinhos e escolhe o valor máximo. Estes são usados para reduzir o custo compu-
tacional e, em certa medida, também reduzem a superposição. Nós temos que escolher o
tamanho da pooling (ou seja, o tamanho da área agrupado a cada vez) mais a dimensão
da pooling é alta, mais importante é o downsampling. Combinou-se camadas convoluti-
vas e de agrupamento, pois a CNN é capaz de combinar recursos locais e aprender mais
recursos globais da imagem.
O Dropout é um método de regularização, onde uma proporção de nós na ca-
mada é ignorada aleatoriamente (definindo seus pontos como zero) para cada amostra de
treino. Isso gera aleatoriamente uma proposta da rede e força a rede a aprender recursos
de forma distribuída. Esta técnica também melhora a generalização e reduz a superpo-
sição. ’RELU’ é o retificador (função de ativação max (0, x). A função de ativação do
retificador é usada para adicionar não linearidade à rede.
A camada Flatten é usada para converter os mapas de recursos finais em um único
vetor 1D. Este passo de achatamento é necessário para que você possa usar camadas to-
talmente conectadas após algumas camadas convolutionais / maxpool. Combina todas as
características locais encontradas das camadas convolutivas anteriores. No final, usou-se
os recursos em duas camadas (densas) completamente conectadas, que é apenas um clas-
sificador de rede neural (ANN). Na última camada (Dense (10, activation = "softmax")),
a distribuição de saídas líquidas da probabilidade de cada classe.
# pacotes essencias
2 from k e r a s . c a l l b a c k s i m p o r t ReduceLROnPlateau , M o d e l C h e c k p o i n t
from k e r a s . l a y e r s i m p o r t Conv2D , MaxPool2D , Dropout , F l a t t e n , Dense
4 from k e r a s . m o d e l s i m p o r t S e q u e n t i a l
from k e r a s . o p t i m i z e r s i m p o r t RMSprop
6 from k e r a s . p r e p r o c e s s i n g . image i m p o r t I m a g e D a t a G e n e r a t o r
from m a t p l o t l i b i m p o r t p y p l o t a s p l t
8 from d a t a i m p o r t c r e a t e _ t r a i n _ d a t a
10 # f u n c a o que c r i a r a a r q u i t e t u r a da r e d e
d e f CNN( w e i g h t s _ p a t h =None ) :
12
model = S e q u e n t i a l ( ) # d e f i n e o model
14 # a d i c i o n a a s camadas de c o n v o l u c a o , max−p o o l i n g e D r o p o u t − camada
e x z t r a t o r a de c a r a c t e r i s t i c a s
model . add ( Conv2D ( f i l t e r s =32 , k e r n e l _ s i z e = ( 5 , 5 ) , p a d d i n g = ’ Same ’ ,
a c t i v a t i o n = ’ r e l u ’ , i n p u t _ s h a p e =(28 , 28 , 1) ) )
16 model . add ( Conv2D ( f i l t e r s =32 , k e r n e l _ s i z e = ( 5 , 5 ) , p a d d i n g = ’ Same ’ ,
activation=’ relu ’ ) )
model . add ( MaxPool2D ( p o o l _ s i z e = ( 2 , 2 ) ) )
18 model . add ( D r o p o u t ( 0 . 2 5 ) )
800
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
26 # camadas de c l a s s i f i c a c a o
model . add ( F l a t t e n ( ) )
28 model . add ( Dense ( 2 5 6 , a c t i v a t i o n = " r e l u " ) )
model . add ( D r o p o u t ( 0 . 5 ) )
30 model . add ( Dense ( 1 0 , a c t i v a t i o n = " s o f t m a x " ) )
32 # c o n d i c a o p a r a l e i t u r a de p e s o s c a s o s e j a p a s s a d o p o r p a r a m e t r o
i f weights_path :
34 model . l o a d _ w e i g h t s ( w e i g h t s _ p a t h )
36 r e t u r n model
38
40 i f __name__ == ’ __main__ ’ :
42 model = CNN ( )
44 # Define o optimizador
o p t i m i z e r = RMSprop ( l r = 0 . 0 0 1 , r h o = 0 . 9 , e p s i l o n =1e −08 , d e c a y = 0 . 0 )
46
# Compila o model
48 model . c o m p i l e ( o p t i m i z e r = o p t i m i z e r , l o s s = " c a t e g o r i c a l _ c r o s s e n t r o p y " ,
m e t r i c s =[ " a c c u r a c y " ] )
52 # e p o c h s = 1 # numeros de e p o c a s − q u a n t i d a d e v e z e s que s e r e p e t e o
terinamento
b a t c h _ s i z e = 86 # tamanho do l o t e − q u a n t i d a d e de i m a g e n s a s e r e m
p r o c e s s a d a s por vez
54
# o n t e n d o o s d a d o s de t r e i n o e t e s t e
56 X _ t r a i n , X_val , Y _ t r a i n , Y_val = c r e a t e _ t r a i n _ d a t a ( )
58 # g e r a mais dados p a r a o t r e i n a m e n t o
datagen = ImageDataGenerator (
60 f e a t u r e w i s e _ c e n t e r = F a l s e , # s e t i n p u t mean t o 0 o v e r t h e
dataset
s a m p l e w i s e _ c e n t e r = F a l s e , # s e t e a c h s a m p l e mean t o 0
62 f e a t u r e w i s e _ s t d _ n o r m a l i z a t i o n = F a l s e , # d i v i d e i n p u t s by s t d o f
the dataset
s a m p l e w i s e _ s t d _ n o r m a l i z a t i o n = F a l s e , # d i v i d e e a c h i n p u t by i t s
std
64 zca_whitening=False , # a p p l y ZCA w h i t e n i n g
801
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
# e x i b e p o r g r a f i c o s o s v a l o r e s de p e r d a no t r e i n a m e n t o
78 f i g , ax = p l t . s u b p l o t s ( 2 , 1 )
ax [ 0 ] . p l o t ( h i s t o r y . h i s t o r y [ ’ l o s s ’ ] , c o l o r = ’ b ’ , l a b e l = " T r a i n i n g l o s s
")
80 ax [ 0 ] . p l o t ( h i s t o r y . h i s t o r y [ ’ v a l _ l o s s ’ ] , c o l o r = ’ r ’ , l a b e l = "
v a l i d a t i o n l o s s " , a x e s = ax [ 0 ] )
l e g e n d = ax [ 0 ] . l e g e n d ( l o c = ’ b e s t ’ , shadow= T r u e )
82
ax [ 1 ] . p l o t ( h i s t o r y . h i s t o r y [ ’ a c c ’ ] , c o l o r = ’ b ’ , l a b e l = " T r a i n i n g
accuracy " )
84 ax [ 1 ] . p l o t ( h i s t o r y . h i s t o r y [ ’ v a l _ a c c ’ ] , c o l o r = ’ r ’ , l a b e l = " V a l i d a t i o n
accuracy " )
l e g e n d = ax [ 1 ] . l e g e n d ( l o c = ’ b e s t ’ , shadow= T r u e )
86 p l t . show ( )
9.3.3. Predição
Após o treinamento, o aprendizado da CNN é salvo os pesos, para ser possível realizar a
predição apenas carregando os pesos sem a necessidade de treinar novamente para realizar
a classificação. Para realizar a predição, primeiramente é carregado os dados de teste os
quais já estão normalizados. Em seguida é carregado o modelo da CNN pelos pesos
salvos no treinamento. Após essas etapas a CNN faz a predição sobre os dados de teste
classificando entre os dígitos de 0 a 9, para que, com o resultado da classificação, seja
confrontado com o verdadeiro rótulo da imagem testada para calcular métricas estatísticas
como acurácia.
1 from k e r a s . o p t i m i z e r s i m p o r t RMSprop
from s k l e a r n . m e t r i c s i m p o r t c o n f u s i o n _ m a t r i x
3 from d a t a i m p o r t l o a d _ t e s t _ d a t a
from t r a i n i m p o r t CNN
5 i m p o r t numpy a s np
from MNIST . f u n c t i o n s i m p o r t p l o t _ c o n f u s i o n _ m a t r i x
7 from u t i l i m p o r t m a i n _ v a l i d a c a o
from s k l e a r n . m e t r i c s i m p o r t a c c u r a c y _ s c o r e
802
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
9
def load_model_network ( ) :
11
# c a r r e g a o s d a d o s de t e s t e p a r a a p r e d i c a o
13 X_test , Y_test = l o a d _ t e s t _ d a t a ( )
15 # c a r r e g a o modelo e o s p e s o s j a t r e i n a d o s
model = CNN( ’ d i g i t o s . h d f 5 ’ )
17 o p t i m i z e r = RMSprop ( l r = 0 . 0 0 1 , r h o = 0 . 9 , e p s i l o n =1e −08 , d e c a y = 0 . 0 )
model . c o m p i l e ( o p t i m i z e r = o p t i m i z e r , l o s s = " c a t e g o r i c a l _ c r o s s e n t r o p y " ,
m e t r i c s =[ " a c c u r a c y " ] )
19
# f a z a p r e d i c a o s o b r e a s i m a g n e s de t e s t e
21 Y_pred = model . p r e d i c t ( X _ t e s t )
23 # C o n v e r t e a s c l a s s e s d a s p r e d i c o e s p a r a v a l o r e s de 0 a 9
Y _ p r e d _ c l a s s e s = np . argmax ( Y_pred , a x i s = 1 )
25
# C o n v e r t e o s c l a s s e s c o r r e t a s d a s p r e d i c o e s p a r a v a l o r e s de 0 a 9
27 Y _ t r u e = np . argmax ( Y _ t e s t , a x i s = 1 )
29 # c a l c u l a a m a t r i z de c o n f u s a o
confusion_mtx = c o n f u s i o n _ m a t r i x ( Y_true , Y _ p r e d _ c l a s s e s )
31
35 # e x i b e g r a f i c a m e n t e a m a t r i z de c o n f u s a o
p l o t _ c o n f u s i o n _ m a t r i x ( confusion_mtx , c l a s s e s =range (10) )
37
39
41
43
i f __name__ == ’ __main__ ’ :
45 """ """
load_model_network ( )
Por fim, para melhor análise dos dados é gerada graficamente a matriz de confusão
o qual demostra a predição feita pela CNN. A Figura 9.12 ilustra a matriz de confusão
gerada pela classificação sobre o conjunto de dados de Teste. As linhas representam os
rótolos verdeiros sobre as imagens testadas, e as colunas representam os rótulos classifi-
cados pela CNN, mas é na diagonal que é representado a quantidade de predições feitas
pela CNN corretas. Na primeira linha, de 415 imagens do digito 0 testadas, a CNN clas-
sificou corretamente 409 como corretas, 1 como o dígito 2, duas como 3, duas como 6, e
uma como 9.
803
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
[ker 2017] (2017). Keras: The python deep learning library.
[Araújo et al. ] Araújo, F. H., Carneiro, A. C., e Silva, R. R. Redes neurais convolucionais
com tensorflow: Teoria e prática.
[Beam 2017] Beam, A. L. (2017). Deep learning 101 - part 1: History and back-
ground. https://beamandrew.github.io/deeplearning/2017/02/
23/deep_learning_101_part1.html.
804
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Deng 2012] Deng, L. (2012). The mnist database of handwritten digit images for
machine learning research [best of the web]. IEEE Signal Processing Magazine,
29(6):141–142.
[Deshpande 2016a] Deshpande, A. (2016a). The 9 deep learning pa-
pers you need to know about (understanding cnns part 3). https:
//adeshpande3.github.io/adeshpande3.github.io/
The-9-Deep-Learning-Papers-You-Need-To-Know-About.html.
[Deshpande 2016b] Deshpande, A. (2016b). A beginner’s guide to
understanding convolutional neural networks part 2. https://
adeshpande3.github.io/adeshpande3.github.io/A-Beginner’
s-Guide-To-Understanding-Convolutional-Neural-Networks-Part-2/.
[Ferreira 2017] Ferreira, A. d. S. (2017). Redes neurais convolucionais profundas na
detecção de plantas daninhas em lavoura de soja. Master’s thesis.
[Haykin 2001] Haykin, S. (2001). Redes neurais: princípios e prática. Bookman Edi-
tora.
[He et al. 2016] He, K., Zhang, X., Ren, S., e Sun, J. (2016). Deep residual learning for
image recognition. In Proceedings of the IEEE conference on computer vision and
pattern recognition, pages 770–778.
[Hinton et al. 2006] Hinton, G. E., Osindero, S., e Teh, Y.-W. (2006). A fast learning
algorithm for deep belief nets. Neural computation, 18(7):1527–1554.
[Kim 2014] Kim, Y. (2014). Convolutional neural networks for sentence classification.
arXiv preprint arXiv:1408.5882.
[Krizhevsky et al. 2012] Krizhevsky, A., Sutskever, I., e Hinton, G. E. (2012). Imagenet
classification with deep convolutional neural networks. In Advances in neural infor-
mation processing systems, pages 1097–1105.
[LeCun et al. 1990] LeCun, Y., Boser, B. E., Denker, J. S., Henderson, D., Howard, R. E.,
Hubbard, W. E., e Jackel, L. D. (1990). Handwritten digit recognition with a back-
propagation network. In Advances in neural information processing systems, pages
396–404.
[LeCun et al. 2010] LeCun, Y., Kavukcuoglu, K., e Farabet, C. (2010). Convolutional
networks and applications in vision. In Circuits and Systems (ISCAS), Proceedings of
2010 IEEE International Symposium on, pages 253–256. IEEE.
[Libralão et al. 2003] Libralão, G. L., Oshiro, R. M., Netto, A. V., Carvalho, A., e Oli-
veira, M. (2003). Técnicas de aprendizado de máquina para análise de imagens oftal-
mológicas. São Paulo. Universidade de São Paulo.
[Morais 2017] Morais, L. (2017). Introdução Às re-
des neurais artificiais. http://www.lmtech.info/
index.php/tecnologia/inteligencia-artificial/
129-introducao-a-redes-neurais-artificiais.
805
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Rosenblatt 1958] Rosenblatt, F. (1958). The perceptron: A probabilistic model for in-
formation storage and organization in the brain. Psychological review, 65(6):386.
[Rumelhart et al. 1985] Rumelhart, D. E., Hinton, G. E., e Williams, R. J. (1985). Lear-
ning internal representations by error propagation. Technical report, California Univ
San Diego La Jolla Inst for Cognitive Science.
[Song e Lee 2013] Song, H. A. e Lee, S.-Y. (2013). Hierarchical representation using
nmf. In International Conference on Neural Information Processing, pages 466–473.
Springer.
[Spark 2017] Spark, C. (2017). Deep learning for complete beginners: convolutional
neural networks with keras. https://cambridgespark.com/content/
tutorials/convolutional-neural-networks-with-keras/index.
html.
[Szegedy et al. 2015] Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D.,
Erhan, D., Vanhoucke, V., e Rabinovich, A. (2015). Going deeper with convolutions.
In Proceedings of the IEEE conference on computer vision and pattern recognition,
pages 1–9.
806
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
10
Introdução ao Desenvolvimento de Aplicativos
Android Utilizando Conceitos de Geolocalização
Abstract
In Brazil, mobile devices have been gaining a lot of space in front of the population,
while the Android operating system is gaining more space in the market. A geolocation
is a mechanism widely used today, mainly to generate public utility and assist in deci-
sion making. This chapter aims to promote knowledge about the development of Android
applications using Geolocation mechanisms from a practical and theoretical content.
Resumo
10.1. Introdução
Nos últimos anos o número de smartphones cresceu, conforme mostrado nos relató-
rios da Ericsson de 2013 à 2016 [Ericsson 2013], [Ericsson 2014], [Ericsson 2015] e
[Ericsson 2016]. Somado a isso, o Android tornou-se o sistema operacional dominante
nesses aparelhos no mundo, ultrapassando o Windows [Stats 2017]. Isso significa mais
oportunidades para desenvolvedores de software que desejam atender a esse mercado.
No Brasil os dispositivos móveis também vêm ganhando grande espaço diante
da população. De acordo com a Opus Software1 , os brasileiros estão usando mais os
smartphones para acessar a Internet do que o computador pessoal. Aliando essas informa-
ções com o grande número de funcionalidades que esses aparelhos vêm disponibilizando
1 www.opus-software.com.br/estatisticas-uso-celular-brasil/
807
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
10.2. Android
A tecnologia Android surgiu em 5 de novembro de 2007, anunciada por um consórcio de
empresas na área de tecnologia chamado Open Handset Alliance (OHA)[Alliance 2007].
A plataforma surgiu com o objetivo de ser um padrão aberto para vários tipos de dispo-
sitivos, garantindo a interoperabilidade entre os aplicativos e o sistema operacional. Isso
proporciona que sistemas se comuniquem da forma mais transparente possível.
Como mencionado na introdução deste capítulo, o Android é um SO (Sistema
Operacional) criado inicialmente para smartphones, mas que atualmente já abrange ou-
tros tipos de dispositivos como televisores, receptores, relógios inteligentes, etc. Apesar
de ter sido lançado em 2007 pela OHA, o seu desenvolvimento foi iniciado muito an-
tes pela empresa Android Inc. no ano de 2003, sendo esta adquirida pela Google em
2005[Elgin 2005].
O Android já se encontra em sua versão 8.0 (Android Oreo), sendo a Google a
empresa responsável pelas atualizações. Embora seja alta a frequência de atualização do
SO, a maior parte dos usuários ainda estão concentrados em versões anteriores, conforme
mostra os gráficos presentes no site Android Developers4 .
geolocalizacao-na-america-latina-diz-pesquisa.ghtml
4 https://developer.android.com/about/dashboards/index.html
808
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Kotlin: é uma linguagem desenvolvida pela JetBrains e que vem recebendo suporte
da Google.
10.4.1. Manifest
O manifest consiste de um arquivo .XML no qual estão contidas as informações essenciais
para a execução do aplicativo. O manifest é o primeiro arquivo que o sistema Android
interpreta, nele o sistema obtém as informações de funcionamento da aplicação como
qual tela o sistema deve executar quando o aplicativo é aberto; quais permissões são
requeridas pelo aplicativo (câmera, armazenamento, localização, Bluetooth, etc.); o nome
do aplicativo, dentre outras informações. Abaixo, um exemplo de arquivo manifest.
1 <?xml version="1.0" encoding="utf-8"?>
5 https://coronalabs.com/
809
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
2 <manifest xmlns:android="http://schemas.android.com/apk/res/
android"
3 package="com.example.vitorio.exemplominicursoenuncomp2017">
4 <uses-permission android:name="android.permission.INTERNET"
/>
5 <uses-permission android:name="android.permission.CAMERA" />
6 <uses-permission android:name="android.permission.
ACCESS_FINE_LOCATION" />
7 <uses-permission android:name="android.permission.
ACCESS_COARSE_LOCATION" />
8
9 <application
10 android:allowBackup="true"
11 android:icon="@mipmap/ic_launcher"
12 android:label="@string/app_name"
13 android:roundIcon="@mipmap/ic_launcher_round"
14 android:supportsRtl="true"
15 android:theme="@style/AppTheme">
16 <activity android:name=".ActivityPrincinpal">
17 <intent-filter>
18 <action android:name="android.intent.action.MAIN
" />
19
20 <category android:name="android.intent.category.
LAUNCHER" />
21 </intent-filter>
22 </activity>
23 <meta-data
24 android:name="com.google.android.geo.API_KEY"
810
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
25 android:value="@string/google_maps_key" />
26
27 <activity
28 android:name=".Mapa"
29 android:label="@string/title_activity_mapa"/>
30 <activity android:name=".TelaCadastro"/>
31 </application>
32
33 </manifest>
Activity
Activity é uma entidade que representa uma tela dentro de um aplicativo. Nos projetos
atuais de Android, por padrão, cada activity é organizada por uma classe Java e um arquivo
.XML correspondente. A classe Java contém a logica da activity, enquanto que o arquivo
6 https://developer.android.com
811
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
XML contém os layouts, isto é, os elementos gráficos que aparecem na tela (botões,
campos de texto, imagens, dentre outros).
A classe Java correspondente à sua activity deve estender a classe "Activity"ou
"AppCompatActivity"do Android, a depender do grau de compatibilidade exigido no pro-
jeto. Ambas possuem uma variedade de métodos de callback que notificam o SO à me-
dida que certos eventos acontecem. Esses callbacks são ativados quando o sistema está
criando, interrompendo, retomando ou destruindo o processo no qual a activity existe. O
código abaixo é um exemplo de uma classe Java correspondente à uma activity.
1 public class ActivityTelaInicial extends AppCompatActivity {
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.activity_tela_inicial);
7 }
8 }
Qualquer activity em Android tem um ciclo de vida bem definido. O desenvolvedor pode
inserir ações e funcionalidades nos métodos que correspondem às fases do ciclo de vida,
porém cabe ao sistema decidir quando executá-los. Esses métodos são listados a seguir:
812
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• onStart(): é invocado pelo sistema quando a activity já está criada e possui o estado
de "iniciada". O método é responsável por tornar a activity visível ao usuário. Ele é
executado e finalizado rapidamente, o que faz a activity sair do estado de "iniciada"e
entrar em estado de "retomada", chamando assim o método onResume().
• onPause(): a partir do momento que a activity está saindo do primeiro plano, devido
à algum evento, o método onPause() é invocado pelo sistema. Animações, áudios e
outras ações que não necessitam estar em execução são suspensas até que a activity
retome o foco.
• onStop(): é chamado sempre que a activity não está mais visível ao usuário. Isso
pode ocorrer porque outra activity foi criada e iniciada ou quando a activity em
questão já foi finalizada e está encerrando.
10.4.3. Resources
A seção de Resources é composta por várias subpastas contendo arquivos importantes que
podem ser acessados pela activity, como imagens, textos, valores padrão de cores, estilos
gráficos, etc. Abaixo estão listadas as principais pastas do grupo Resources:
• Drawable: contém as imagens do projeto. Não apenas imagens nos formatos mais
conhecidos, mas também arquivos de XML estão presentes.
• Values: contém os valores padrão de cores, estilos e textos (strings). Manter to-
dos os textos armazenados externamente ao código facilita na portabilidade e na
tradução para outras línguas.
10.5. Geolocalização
A geolocalização é um esquema que consiste em localizar um indivíduo ou objeto a partir
de suas coordenadas em um plano [QueConceito 2017]. Nos últimos anos, esse conceito
vem sendo usado em nosso dia a dia para diversas finalidades, seja para o entretenimento,
segurança, comunicação e até mesmo para a tomada de decisões [TecMundo 2017]. Um
exemplo típico é o GPS, que serve como meio de localizar um determinado lugar e guiar
o usuário até o local desejado.
813
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Instalar componentes do SDK: uma vez instalado o Android Studio, uma tela será
mostrada exigindo a instalação dos componentes do Android SDK que faltam.
Criação do Projeto
Depois de instalado o IDE, conforme mostrado no tópico anterior, chegou a hora de criar
seu projeto Android. Após abrir o Android Studio pela primeira vez será exibida uma tela
com algumas opções. Clique na opção Start a new Android Studio project.
A próxima tela a ser exibida é onde definiremos o nome do aplicativo, seu domínio
e também onde o projeto será salvo. O nome do projeto não deve conter espaços em
branco. Após isso avance para próxima tela. Logo em seguida será exibido a tela onde
escolhemos os tipos de dispositivos que a aplicação atenderá, que em nosso caso será a
opção Telefone e Tablet (Phone and Tablet). Outra configuração importante é escolher
a versão mínima do SO para o qual você deseja que sua aplicação ofereça suporte, que no
nosso caso será a partir da API 16. Feito isso, clique em avançar.
O próximo passo será definir a activity que será criada inicialmente. Clicamos no
tipo Blank Activity e avançamos para escolher o nome da activity, de preferência digite
ActivityPrincipal. Dependendo do processamento de sua máquina, o projeto demorará
alguns minutos para ser criado.
7 https://github.com/svitorio/AndroidEnucomp2017
814
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Depois de criado nosso projeto, observe a estrutura de sua aplicação, assim como
na figura 10.4. É de suma importância que você já tenha lido a parte referente à estrutura
do projeto, o que foi explicado logo no inicio deste capítulo.
10 <TextView
11 android:layout_width="match_parent"
12 android:layout_height="0dp"
13 android:layout_weight="5"
14 android:gravity="center"
15 android:textAppearance="@style/TextAppearance.AppCompat.
Display1"
16 android:text="@string/app_name_tela_principal"
17 android:textStyle="bold"/>
18
19 <LinearLayout
20 android:layout_width="match_parent"
21 android:layout_height="0dp"
22 android:layout_weight="10"
23 android:orientation="vertical">
24
25 <Button
26 android:id="@+id/cadastroButton"
27 android:layout_width="match_parent"
28 android:layout_height="wrap_content"
29 android:layout_weight=".5"
30 android:layout_gravity="center"
31 android:drawableLeft="@mipmap/ic_launcher"
32 android:text="Cadastrar Local"/>
33
34 <Button
35 android:id="@+id/mapaButton"
815
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
36 android:layout_width="match_parent"
37 android:layout_height="wrap_content"
38 android:layout_weight=".5"
39 android:layout_gravity="center"
40 android:drawableLeft="@mipmap/ic_launcher"
41 android:text="Mostrar Mapa"/>
42 </LinearLayout>
43 </LinearLayout>
9 findViewById(R.id.mapaButton).setOnClickListener(new View.
OnClickListener() {
10 @Override
11 public void onClick(View view) {
12 Intent intent = new Intent(ActivityPrincinpal.
this, Mapa.class);
13 intent.putExtra("coordenadas","0");
14 startActivity(intent);
15
16 }
17 }); findViewById(R.id.cadastroButton).
setOnClickListener(new View.OnClickListener() {
18 @Override
19 public void onClick(View v) {
20 Intent intent = new Intent(ActivityPrincinpal.
this, TelaCadastro.class);
21 intent.putExtra("nome","");
22 startActivity(intent);
23
24 }
25 });
26
27 }
28 }
816
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Classe Ponto
Agora vamos criar a Classe Ponto, a qual conterá três atributos: nome, latitude e longi-
tude. Para isso, clique no diretório Java com o botão direito e insira um nova classe com
o nome "Ponto". Abra a classe e em seguida modifique seu conteúdo pelo código abaixo.
1 public class Ponto {
2
6 public Ponto(){}
7 public Ponto(String nome, double latitude, double longitude)
{
8 this.nome = nome;
9 this.latitude = latitude;
10 this.longitude = longitude;
11 }
12
817
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
9 <LinearLayout
10 android:orientation="vertical"
11 android:layout_width="match_parent"
12 android:layout_height="wrap_content"
13 android:padding="12dp">
14
15 <TextView
16 android:layout_width="match_parent"
17 android:layout_height="wrap_content"
18 android:text="Nome do Local:"
19 android:textAppearance="@style/TextAppearance.
AppCompat.Title"/>
20
21 <EditText
22 android:id="@+id/cadastroNomeLocal"
23 android:layout_width="match_parent"
24 android:layout_height="wrap_content"
25 android:inputType="textCapWords"/>
26
27
28 <TextView
29 android:layout_width="match_parent"
30 android:layout_height="wrap_content"
31 android:text="Latitude:"
32 android:textAppearance="@style/TextAppearance.
AppCompat.Title"/>
33
34 <EditText
35 android:id="@+id/cadastroLatitude"
36 android:layout_width="match_parent"
37 android:layout_height="wrap_content"
38 android:inputType="textUri"/>
39
818
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
40
41 <TextView
42 android:layout_width="match_parent"
43 android:layout_height="wrap_content"
44 android:text="Longitude:"
45 android:textAppearance="@style/TextAppearance.
AppCompat.Title"/>
46
47 <EditText
48 android:id="@+id/cadastroLongitude"
49 android:layout_width="match_parent"
50 android:layout_height="wrap_content"
51 android:inputType="textUri"/>
52
53 <TableRow
54 android:layout_width="wrap_content"
55 android:layout_height="wrap_content">
56
57 <Button
58 android:id="@+id/botaoCadastrar"
59 android:layout_width="wrap_content"
60 android:layout_height="wrap_content"
61 android:layout_gravity="center"
62 android:layout_marginTop="12dp"
63 android:text="Cadastrar Local"/>
64
65 <Button android:id="@+id/botaoCoordenadas"
66 android:layout_width="wrap_content"
67 android:layout_height="wrap_content"
68 android:layout_gravity="center"
69 android:layout_marginTop="12dp"
70 android:text="Inserir Coordenads Mapa"/>
71
72 </TableRow>
73 </LinearLayout>
74
75 </ScrollView>
5 @Override
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
819
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
8 setContentView(R.layout.activity_tela_cadastro);
9
10 findViewById(R.id.botaoCadastrar).setOnClickListener(new
View.OnClickListener() {
11 @Override
12 public void onClick(View v) {
13 cadastrar();
14 }
15 });
16 Intent intentm = getIntent();
17 String nome,latitude,longitude;
18
23 if(intentm.getStringExtra("nome").equals("")){
24 Log.i("tag","ta fazio");
25
26 findViewById(R.id.botaoCoordenadas).
setOnClickListener(new View.OnClickListener() {
27 @Override
28 public void onClick(View view) {
29 coordenadas(nomeEditText);
30 }
31 });
32 }else{
33 nome = intentm.getStringExtra("nome");
34 latitude = intentm.getStringExtra("latitude");
35 longitude = intentm.getStringExtra("longitude");
36 nomeEditText.setText(nome);
37 latitudeEditText.setText(latitude);
38 longitudeEditText.setText(longitude);
39 }
40 }
41
820
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
51 finish();
52 }
53
59 if (nomeLocal.equals("")) {
60 nomeLocal = "Sem nome";
61 }
62
65 try {
66 longitudeFloat = Double.parseDouble(longitude);
67 Log.i("i","Antes:: "+longitudeEditText.getText().
toString()+"\nDepois:: "+latitudeFloat);
68 } catch (Exception ignored) {
69 longitudeEditText.setError("Longitude Invalida");
70 }
71 try {
72 latitudeFloat = Double.parseDouble(latitude);
73 } catch (Exception ignored) {
74 latitudeEditText.setError("Latitude Invalida");
75 }
76
821
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
OnMapReadyCallback,
2 GoogleMap.OnMapClickListener, LocationListener {
3
9 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_mapa);
13 SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager()
14 .findFragmentById(R.id.map);
15 mapFragment.getMapAsync(this);
16
22 @Override
23 public void onMapReady(GoogleMap googleMap) {
24
25
26 try {
27 locationManager = (LocationManager)
getApplicationContext().getSystemService(Context.
LOCATION_SERVICE);
28
35 mMap = googleMap;
36
37 mMap.setOnMapClickListener(this);
38
39 mMap.getUiSettings().setZoomControlsEnabled(true);
40
41 mMap.setMyLocationEnabled(true);
42 } catch (SecurityException ex) {
43
822
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
50 return;
51 }
52 laslocation = locationManager.getLastKnownLocation(
LocationManager.NETWORK_PROVIDER);
53 Toast.makeText(getApplicationContext(),"Lati:"+
laslocation.getLatitude()+"\nLong:: "+laslocation.
getLongitude(),Toast.LENGTH_SHORT).show();
54
59 if(escolha==0) {
60 LatLng posicao=new LatLng(laslocation.getLatitude(),
laslocation.getLongitude());
61 mMap.moveCamera(CameraUpdateFactory.newLatLng(
posicao));
62 mMap.animateCamera(CameraUpdateFactory.newLatLngZoom
(posicao,(float)17.5));
63 for (int i = 0; i < lista.size(); i++) {
64 LatLng sydney = new LatLng(lista.get(i).
getLatitude(), lista.get(i).getLongitude());
65
66
823
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
getStringExtra("longitude"));
79 LatLng posicao=new LatLng(lat,lon);
80 MarkerOptions marker = new MarkerOptions();
81 marker.position(posicao);
82 marker.title(intent.getStringExtra("nome"));
83 mMap.addMarker(marker);
84 mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
posicao, (float)17.5));
85 }
86 }
87 public void onMapClick(LatLng latLng) {
88
89 if(1 == escolha){
90 showMessageDialog(""+latLng.latitude,""+latLng.
longitude);
91 }
92 else {
93 Toast.makeText(getApplicationContext(),"Latitude: "+
latLng.latitude+"\nLongitude"+latLng.longitude,
Toast.LENGTH_LONG).show();
94 Log.i("Aaa","Latitude: "+latLng.latitude+"\
nLongitude"+latLng.longitude);
95 }
96 }
97 private void showMessageDialog(final String lat,final String
lon) {
98 AlertDialog alertDialog = new AlertDialog.Builder(this).
create();
99 alertDialog.setTitle("Coordeanadas");
100 alertDialog.setMessage("Tem certeza que sao essas as
Coordenadas?");
101 alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "
Comfirmar",
102 new DialogInterface.OnClickListener() {
103 public void onClick(DialogInterface dialog,
int which) {
104 Intent intentcad = new Intent(Mapa.this,
TelaCadastro.class);
105 intentcad.putExtra("latitude",lat);
106 intentcad.putExtra("longitude",lon);
107 intentcad.putExtra("nome", nome);
108 startActivity(intentcad);
109 dialog.dismiss();
110 onBackPressed();
111 finish();
112 }
113 });
114 alertDialog.show();
115 alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "
824
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Cancelar",
116 new DialogInterface.OnClickListener(){
117 public void onClick(DialogInterface dialog,
int which){
118 dialog.dismiss();
119 onBackPressed();
120 }
121 });
122 }
123
124 @Override
125 public void onLocationChanged(Location location) {
126
127 }
128
129 @Override
130 public void onStatusChanged(String s, int i, Bundle bundle)
{
131
132 }
133
134 @Override
135 public void onProviderEnabled(String s) {
136
137 }
138
139 @Override
140 public void onProviderDisabled(String s) {
141
142 }
143 }
Agora iremos autorizar a nossa aplicação a utilizar a API do Google Maps, entre no
google_maps_api.xml( res->values), e copie a cole a url gerada no seu navegador e siga
os procedimentos para ativar a API, após gerar uma chave retorne ao arquivo e substitua
a parte escrita "ADD_API_KEY_HERE"pela chave gerada, observe o exemplo abaixo:
1 <resources>
2
825
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
15 @Override
16 public void onCreate(SQLiteDatabase db) {
17 db.execSQL("Create table "+TABLE+"("+ID+" integer
primary key autoincrement,"+NAME_LOCAL+" text not
null,"+LATITUDE+" double not null,"+LONGITUDE+"
double not null);");
18 }
19
20 @Override
21 public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
22 db.execSQL("DROP TABLE IF EXISTS " + TABLE);
23 onCreate(db);
24 }
25 }
826
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
13 db = database.getWritableDatabase();
14 valores = new ContentValues();
15 valores.put(CreateDatabase.NAME_LOCAL,ponto.getNome());
16 valores.put(CreateDatabase.LATITUDE, ponto.getLatitude()
);
17 valores.put(CreateDatabase.LONGITUDE, ponto.getLongitude
());
18
19
23 if (resultado ==-1)
24 return "Erro ao inserir registro";
25 else
26 return "Registro Inserido com sucesso";
27
28 }
29 public ArrayList<Ponto> carregaDados(){
30 Cursor cursor;
31 ArrayList<Ponto> list = new ArrayList<Ponto>();
32 String[] campos = {database.ID,database.NAME_LOCAL,
database.LATITUDE,database.LONGITUDE};
33 db = database.getReadableDatabase();
34 cursor = db.query(database.TABLE, campos, null, null,
null, null, null, null);
35
45 }while(cursor.moveToNext());
46 }
47
48 db.close();
49 return list;
50 }
51
827
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
56 db = database.getReadableDatabase();
57 cursor = db.query(CreateDatabase.TABLE,campos,where,
null, null, null, null, null);
58
59 if(cursor!=null){
60 cursor.moveToFirst();
61 }
62 db.close();
63 return cursor;
64 }
65 public void alteraRegistro(int id, String name,float lat,
float lon){
66 ContentValues valores;
67 String where;
68
69 db = database.getWritableDatabase();
70
78 db.update(CreateDatabase.TABLE,valores,where,null);
79 db.close();
80 }
81 public void deletaRegistro(int id){
82 String where = CreateDatabase.ID + "=" + id;
83 db = database.getReadableDatabase();
84 db.delete(CreateDatabase.TABLE,where,null);
85 db.close();
86 }
87 }
8 https://developer.android.com/studio/run/index.html?utm_source=android-studio
828
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
[Alliance 2007] Alliance, O. H. (2007). Industry leaders announce open platform for
mobile devices.
[Djuknic and Richton 2001] Djuknic, G. M. and Richton, R. E. (2001). Geolocation and
assisted gps. Computer, 34(2):123–125.
[Elgin 2005] Elgin, B. (2005). Google buys android for its mobile arsenal.
[Ericsson 2013] Ericsson (2013). Ericsson mobility report: On the pulse of the networked
society. Technical report.
[Ericsson 2014] Ericsson (2014). Ericsson mobility report: On the pulse of the networked
society. Technical report.
[Ericsson 2015] Ericsson (2015). Ericsson mobility report: On the pulse of the networked
society. Technical report.
[Ericsson 2016] Ericsson (2016). Ericsson mobility report: On the pulse of the networked
society. Technical report.
[Java 2017b] Java (2017b). What is java and why do i need it?
[Stats 2017] Stats, S. G. (2017). Android overtakes windows for the first time. Technical
report.
829
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
11
Monitoramento de tráfego em redes de Internet
das Coisas
Resumo
11.1. Introdução
Nos últimos anos houve um significativo crescimento da adoção de dispositivos sem fio,
tais como smartphones, tablets, câmeras, notebooks e sensores de saúde. As projeções
da empresa Cisco sugerem que esse crescimento continuará, e entre os anos de 2016 e
2021 ocorrerá um crescimento de 7,3 vezes na quantidade de dispositivos inteligentes
conectados [Cisco, 2017]. Tais dispositivos, associados com as novas tecnologias de co-
municação da Internet atual e futura, compõem o que muitas vezes é classificada como
Internet das Coisas (IoT, do inglês Internet of Things).
Conceituar Internet das Coisas não é uma tarefa fácil. O termo foi utilizado pela
primeira vez pelo britânico Ashton e seus colegas de laboratório, no trabalho “I made at
Procter & Gamble” publicado em 1999 [Ashton, 2009]. Contudo, IoT também pode ser
compreendida como uma infraestrutura de rede que liga objetos físicos e virtuais atra-
vés da captura de dados e comunicação a uma plataforma que possibilita a execução de
830
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
uma aplicação [Gubbi et al., 2013]. Essa infraestrutura de comunicação inclui a Internet,
outras redes existentes e em desenvolvimento.
Os sistemas IoT geralmente possuem a identificação específica do objeto e a capa-
cidade de interconexão como princípios para o desenvolvimento de serviços cooperativos
independentes. Em razão disso, algumas vezes os termos Machine-to-Machine (M2M) e
IoT são utilizados de forma intercambiável, no entanto, a característica diferencial e mais
importante de IoT é a informação que os objetos conectados podem fornecer, e como
essas informações podem ser combinadas e apresentadas por uma aplicação.
Neste trabalho, serão apresentadas as definições e motivações para as pesquisas
de Internet of Things, com atenção especial às aplicações, que serão descritas a fim de
despertar o interesse do participante acerca das técnicas utilizadas. Também serão discu-
tidos os elementos que compõem a IoT e os seus principais protocolos de comunicação.
A parte prática do minicurso ficará na Seção Análise de Tráfego, onde serão apresenta-
das as técnicas de monitoramento de tráfego em redes IoT, bem como será detalhada a
utilização de softwares para o monitoramento.
Como visto acima, um ambiente IoT, do mais básico ao mais complexo, é formado
por seis elementos: identification, sensing, communication, computation, services e se-
mantics [Al-Fuqaha et al., 2015]. Cabe ressaltar que alguns autores condensam os seis
elementos em três: hardware, middleware e presentation [Gubbi et al., 2013]. A seguir,
cada um desses blocos será analisado mais detalhadamente.
831
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
11.2.1. Identification
O processo de identificação (identification) é importante, pois é responsável por
atribuir um identificador aos objetos e serviços ofertados. Dessa forma, reconhecer que
determinada solicitação ocasionou uma tarefa qualquer torna-se um processo mais sim-
ples. Além disso, esse procedimento permite diferenciar o ID (nome) de um objeto de seu
endereço (valor atribuído dentro da rede de comunicação), o que permite solucionar até
mesmo problemas ocasionados pela utilização de redes públicas [Al-Fuqaha et al., 2015].
A etapa identification é equivalente, por exemplo, ao Electronic Product Code (EPC),
uCode e ao Digital Object Identifier (DOI), que são, respectivamente, padrões para iden-
tificar unicamente objetos físicos no mundo real, objetos/lugares no mundo real e docu-
mentos digitais. Para realizar esse processo em ambientes IoT, são utilizados, sobretudo,
cabeçalhos de protocolos, como por exemplo IPv4, IPv6 e 6LoWPAN [Ferreira, 2013].
11.2.2. Sensing
Comumente chamados de sensores ou atuadores, são dispositivos capazes de co-
letar os dados dos objetos contidos em uma rede de comunicação. Eles são capturados
e enviados de volta a um data warehouse (sistema de armazenamento de dados digitais),
banco de dados ou nuvem, para que possam ser armazenados, analisados e para que ações
necessárias sejam executadas. Atualmente, muitas empresas estão investindo em produtos
para realização dessa etapa, como a WeMo, ZigBee, entre outras.
11.2.3. Communication
O objetivo das redes de comunicação de Internet of Things é conectar diferen-
tes objetos, para que sejam capazes de fornecer serviços inteligentes. Comumente, es-
sas redes são de baixas frequências e operam em ambientes onde há perdas e ruídos
[Al-Fuqaha et al., 2015]. A etapa communication consiste em estudar a utilização de pro-
tocolos e tecnologias capazes de realizar as tarefas acima citadas, com perdas e ruídos re-
duzidos. Entre as tecnologias mais populares, encontram-se: WiFi, Bluetooh,
IEEE 802.15.4, Z-wave, NFC (Near Field Communication), UWB (Ultra-wide bandwish),
RFID (Radio-frequency identification) e LTE-advanced. As tecnologias utilizadas na re-
alização desse minicurso serão melhor descritas na Seção 11.3.
11.2.4. Computation
Essa etapa é definida como o “cérebro físico” da Internet of Things. É responsável
por realizar o processo descrito na Subseção 11.2.2. Atualmente, muitos microcontrola-
dores e Single Board Computers (SBCs) são capazes de simular ambientes IoT. Entre
os mais comuns estão: Arduino, Raspberry Pi® - utilizado na produção do minicurso -,
BeagleBone, Galileo Gen 2, entre outros. Além dos hardwares, os softwares também
se encontram mais refinados. Ações como sistemas operacionais com funcionalidades
nativas para ambientes IoT ou até mesmo empresas desenvolvendo softwares específicos
(Contiki RTOS, TinyOS, LiteOS, RiotOS e OAA) estão se difundindo. Cabe ressaltar
que a evolução dos serviços em nuvem também representou um grande avanço para a
Internet of Things, pois permitiu armazenamento e processamento em tempo real de um
volume considerável de dados, o que acarretou em mais informações para que os usuários
aperfeiçoem suas redes de comunicação IoT [Al-Fuqaha et al., 2015].
832
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
11.2.5. Services
Ambientes IoT podem ser classificados em quatro classes: identity-related ser-
vices, information aggregation services, collaborative-aware services e ubiquitous ser-
vices [Al-Fuqaha et al., 2015]. Essas classes definem as funcionalidades e aplicações de
uma rede de comunicação de Internet of Things, como, por exemplo: smart grids, smart
city, smart healthcare, industrial automation, entre outras. O bloco services diz respeito
ao que uma rede de comunicação IoT é capaz de aprovisionar. Explorar cada uma das
classes foge do escopo do minicurso. Entretanto, esses exemplos são suficientes para
entendermos o poder e importância da Internet of Things.
11.2.6. Semantics
A etapa de semântica (semantics) consiste em extrair conhecimento de uma rede
de comunicação de Internet of Things - composta por diversos componentes/objetos -,
para que as solicitações realizadas possam ser atendidas, ou seja, para fornecer os ser-
viços mínimos necessários. Um ambiente IoT realiza esse procedimento através da des-
coberta, utilização, análise e modelagem dos recursos fornecidos. Uma equivalência da
semantics seria a utilização de uma Inteligência Artificial (IA) na automatização de um
procedimento.
De forma análoga à definição de communication da Subseção 11.2.4, o processo
de semantics pode ser analisado como as sinapses do “cérebro físico”. Ademais, pode-
se citar algumas tecnologias utilizadas nessa etapa: Resource Description Framework
(RDF), Web Ontology Language (OWL), Efficient XML Interchange (EXI).
Por fim, na Tabela 11.1 é exibido um resumo do que foi exposto na Seção 11.1.
833
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
834
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
835
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
uma resposta de erro do servidor (5). Já os cinco bits menos significativos desse campo,
representam uma subclasse de mensagem. Por exemplo, para uma mensagem de requisi-
ção que utiliza o método GET, o campo código seria representado por “0.01”, em que o
primeiro dígito indica a classe (nesse caso requisição) e os dois dígitos depois do ponto
representam a subclasse (nesse caso GET) [Shelby et al., 2014]. Na tabela 11.4 estão
representados todos os códigos de resposta CoAP.
Na Figura 11.2 são exibidas duas situações de uma comunicação CoAP. Na es-
querda (Figura 11.2a) é mostrado um exemplo de uma transmissão de mensagem com
confirmação (ACK). Neste caso, o transmissor continua retransmitindo a mensagem de
acordo com um timeout padrão até que receba uma mensagem ACK com o mesmo ID
da mensagem enviada (neste caso 0x7d34). Já na Figura 11.2b é mostrado um exem-
plo simples de uma transmissão não confiável (sem confirmação), em que o transmissor
simplesmente envia uma mensagem e não requer nenhum tipo de confirmação. Em am-
bas as situações quando o destinatário não é capaz de processar a mensagem, ou seja,
nem mesmo é capaz de fornecer uma resposta de erro adequada, ele responde com uma
mensagem reset (RST).
Existem quatro métodos de requisição CoAP que foram definidos em
[Shelby et al., 2014], sendo eles GET (código 0.01), POST (código 0.02), PUT (código
0.03) e DELETE (código 0.04). As requisições podem ser realizadas em mensagens do
tipo confirmable (CON) ou non-confirmable (NON). No caso de a resposta a uma requi-
sição CoAP do tipo confirmable estar disponível imediatamente, esta é enviada junto à
mensagem de confirmação (ACK), ocasião em que é chamada de resposta piggy-backed.
Na Figura 11.3a são ilustradas duas situações onde ocorre uma resposta piggy-backed. Na
836
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
primeira, a requisição obteve uma resposta satisfatória e no segundo caso uma resposta
de 4.04 (Not found). Por outro lado, a Figura 11.3b mostra uma requisição GET do tipo
confirmable com respostas separadas. Neste caso, o servidor não estava disponível para
responder imediatamente a requisição. Dessa forma, para que o cliente fique ciente de
que a requisição foi recebida corretamente e pare de retransmitir a mensagem, é enviada
uma confirmação (ACK) vazia. Após algum tempo, quando a resposta estiver disponível,
o servidor a envia com solicitação de confirmação. Cabe ressaltar que, neste caso, a dis-
tinção entre as respostas esperadas pelo cliente é feita a partir do Token (não confundir
com ID da mensagem) que, apesar de ter sido abstraído nos exemplos anteriores, está
em todas as mensagens CoAP. No caso de uma requisição sem confirmação (NON), a
comunicação ocorrerá de forma parecida, porém todas as respostas também serão do tipo
non-confirmable (não existirão mensagens de ACK na comunicação).
837
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
838
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
disso, precisam se inscrever no tópico “temperatura”. Dessa forma, toda vez que o dispo-
sitivo A publicar a temperatura no tópico de interesse, o broker se encarregará de enviar
a informação para todos os subscribers deste tópico. Na Figura 11.4b é mostrado um
exemplo de publish, em que o dispositivo A publica uma temperatura de 25 °C.
O protocolo MQTT funciona através da troca de uma série de pacotes de controle.
Um pacote de controle MQTT pode conter até três partes, sendo elas o cabeçalho fixo
(fixed header), o cabeçalho variável (variable header) e o payload, sempre nesta ordem
[Standard, 2014]. Todo pacote de controle MQTT deve conter, pelo menos, o cabeçalho
fixo. O tamanho deste cabeçalho varia de 2 a 5 bytes, onde o primeiro byte contém
o tipo de mensagem (do bit 7 ao 4) e algumas flags (do bit 3 ao 0), que, entre outras
informações, podem indicar o nível de QoS (qualidade de serviço) da transmissão (bits 1
e 2), divididos em três: (i) QoS 0, (ii) QoS 1 e (iii) QoS 2. Em (i) a mensagem é entregue,
no máximo, uma vez; já em (ii) a mensagem é entregue, pelo menos, uma vez; por fim,
em (iii), a mensagem é entregue exatamente uma vez. A segunda parte do cabeçalho fixo,
chamada “comprimento restante”, codifica a quantidade de bytes restantes no pacote (não
considera o tamanho do cabeçalho fixo) e contém entre 1 e 4 bytes. Neste caso, os sete
bits menos significativos de cada byte codificam a informação e o bit mais significativo
indica continuação, ou seja, caso seja “1”, indica que existe, pelo menos, mais um byte
de “comprimento restante”. Pode existir, ainda, um cabeçalho variável e um payload no
pacote, dependendo do tipo de mensagem. A estrutura básica de um pacote MQTT é
representada na Tabela 11.5.
839
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Tabela 11.6. Tipos de pacotes de controle do MQTT versão 3.1.1 [Standard, 2014].
Nome Código Direção de Fluxo Descrição
Reservado 0 Proibido Reservado
CONNECT 1 Cliente → Servidor Requisição de conexão
CONNACK 2 Cliente ← Servidor ACK de conexão
PUBLISH 3 Cliente Servidor Publicação de mensagem
PUBACK 4 Cliente Servidor ACK de publicação
PUBREC 5 Cliente Servidor Publicação recebida (QoS 2, parte 1)
PUBREL 6 Cliente Servidor Publicação liberada (QoS 2, parte 2)
PUBCOMP 7 Cliente Servidor Publicação completa (QoS 2, parte 3)
SUBSCRIBE 8 Cliente → Servidor Requisição de subscribe
SUBACK 9 Cliente ← Servidor ACK de subscribe
UNSUBSCRIBE 10 Cliente → Servidor Requisição de cancelamento de subscribe
UNSUBACK 11 Cliente ← Servidor ACK de cancelamento de subscribe
PINGREQ 12 Cliente → Servidor Requisição PING
PINGRESP 13 Cliente ← Servidor Resposta PING
DISCONNECT 14 Cliente → Servidor Solicitação de desconexão
Reservado 15 Proibido Reservado
840
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
11.3.3.1. 6LoWPAN
O acrônimo 6LoWPAN significa IPv6 Over Low Power Wireless Personal Network.
Ele foi criado com a intenção de manter as especificações que nos permitem usar o IPv6
em redes IEEE 802.15.4, pois o IPv6 suporta uma alta quantidade de endereçamentos de
dispositivos, porém seu tamanho é de 128 bits, o que gera um grande problema, pois se o
dispositivo tiver uma baixa capacidade de memória e baixa potência ele não o suportará.
O 6LoWPAN contém RFC (Request For Comments). Cada RFC define standards
de métodos, comportamentos, pesquisas ou inovações capazes de definir a compressão,
encapsulação e fragmentação do cabeçalho dos pacotes IPv6 em frames IEEE 802.15.4,
permitindo que os mesmos sejam enviados e recebidos nessas redes [Ferreira, 2013].
Este protocolo se fundamenta na concepção de que a Internet é construída em IP,
ou seja, cada dispositivo deverá possuir um IP fazendo, assim, parte da Internet of Things
(IoT).
Cada rede de 6LoWPAN compartilha o mesmo prefixo de endereço. A capacidade
total de cada rede é de 64.000 dispositivos, devido aos limites impostos pelo endereça-
mento utilizado pelo IEEE 802.15.4, que usa 16 bits de endereços para cada dispositivo
na rede, obtendo uma identificação IPv6 única. O 6LoWPAN, sem dúvida, apresenta-se
como a melhor alternativa para a integração das WPANs à Internet e às redes IP.
O protocolo IEEE 802.15.4, mais conhecido como ZigBee, foi criado pelo IEEE
em parceria com a ZigBee Alliance. Foi desenvolvido com a intenção de disponibilizar
uma rede de baixa potência de operação, que acarreta em um baixo consumo de energia
nos dispositivos, prolongando a vida útil das baterias desses dispositivos. IEEE 802.15.4
é um padrão que especifica a camada física e efetua o controle de acesso para redes sem
fio pessoais de baixas taxas de transmissão. A rede tem mais utilidade em dispositivos
que não precisam de taxas de transmissão de dados altíssimas.
Quando o protocolo IEEE 802.15.4 foi criado, suas principais aplicações eram:
controle remoto e automação. Hoje em dia, além dessas duas finalidades, ele também é
utilizado nas áreas de redes e de compartilhamento de dados. Suas principais caracterís-
ticas são:
• Diferentes frequências de operação e taxa de dados: 868 MHz e 20 Kbps; 915 MHz
e 40 Kbps; 2.4 GHz e 250 Kbps;
841
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
As comunicações por ZigBee são feitas na faixa das frequências ISM (Industrial
Scientific and Medical), são elas: 2.4 Ghz (mundialmente), 915 Mhz (na América) e
868 Mhz (na Europa). Nesse contexto, a taxa de transferência dos dados é de até 250kbps
na frequência de 2.4 Ghz operando com 16 canais; 40 kbps na frequência de 915 Mhz
operando com 10 canais; 20 kbps na frequência de 868 Mhz operando com 1 canal
[DesmontaCia, 2011].
O padrão IEEE 802.15.4 foi fragmentado em duas camadas: uma desenvolvida
pela IEEE (camada inferior) e outra pela ZigBee Alliance (camada superior), como pode
ser observado na Tabela 11.7.
842
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• 1 Roteador Wireless
• Arduino IDE
Se tudo correr bem, neste ponto a implementação libcoap estará instalada e configurada.
Para o segundo experimento será necessária a instalação de um broker MQTT.
Assim como para o CoAP, existem diversas implementações do MQTT para diferentes
plataformas. Neste experimento será utilizada uma das implementações mais famosas
e estáveis do protocolo, o Mosquitto. O Mosquitto suporta as versões 3.1 e 3.1.1 do
5 http://coap.technology/impls.html
6 https://github.com/obgm/libcoap
843
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
MQTT e pode ser facilmente instalado no Raspberry Pi. Antes da instalação é importante
certificar-se que será instalada a versão mais recente do broker, para isso basta abrir o
terminal do seu Raspberry (ou fazer login via SSH) e digitar a seguinte sequência de
comandos:
$ s u d o wget h t t p : / / r e p o . m o s q u i t t o . o r g / d e b i a n / m o s q u i t t o −r e p o . gpg . key
$ s u d o a p t −key add m o s q u i t t o −r e p o . gpg . key
$ cd / e t c / a p t / s o u r c e s . l i s t . d /
$ s u d o wget h t t p : / / r e p o . m o s q u i t t o . o r g / d e b i a n / m o s q u i t t o − s t r e t c h . l i s t
$ s u d o a p t −g e t u p d a t e
Feito isso, seu Raspberry já estará pronto para a instalação do broker, bastando
digitar:
$ s u d o a p t −g e t i n s t a l l m o s q u i t t o
844
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Com o servidor CoAP instalado e corretamente configurado, para que seja possí-
vel verificar como a comunicação ocorre, a instalação de um cliente CoAP é necessária.
Existem diversos clientes CoAP para diferentes plataformas, dentre eles pode-se citar a
Aneska7 para plataforma Android, a própria libcoap (projetada para dispositivos com re-
cursos computacionais limitados) e o Copper8 (extensão para o Firefox que habilita o
acesso aos recursos CoAP diretamente do navegador). Além dessas, existem diversas
outras implementações deste protocolo. Com o intuito de tornar a comunicação mais pró-
xima da prática em uma rede IoT, uma implementação simples do protocolo CoAP para
a plataforma Arduino será utilizada como cliente. Para isso deve-se baixar a biblioteca
CoAP-simple-library disponibilizada no GitHub9 e instalá-la no Arduino IDE (a própria
página web do Arduino disponibiliza um tutorial passo a passo de como fazer a instala-
ção10 ). Todos os exemplos encontrados na biblioteca são direcionados para a utilização de
uma placa Arduino em conjunto com uma Arduino Ethernet Shield. Entretanto, como as
implementações do CoAP para Arduino ainda são bastante limitadas, o experimento não
se restringirá a esta plataforma. Para analisar outros aspectos relevantes da comunicação,
a extensão Copper, para Firefox, será utilizada em um notebook.
No Raspbian, para iniciar a captura com o Wireshark abra o terminal e digite
sudo wireshark, após isso uma tela como a da Figura 11.6 deve ser mostrada. Esco-
lha a interface na qual o Raspberry está conectado na rede e inicie a captura de pacotes.
Após iniciar a captura de pacotes no Wireshark abra novamente o terminal, nave-
gue até o diretório libcoap (criado no momento da instalação) e digite o seguinte comando:
cd libcoap/examples. Em seguida, para iniciar o servidor coap digite o seguinte
comando: ./coap-server, este comando irá iniciar o servidor coap de exemplo. Por
padrão o servidor é iniciado na porta 5683.
No servidor de exemplo da libcoap existem alguns “recursos” que podem ser re-
quisitados. No notebook abra o Firefox e, caso ainda não tenha a extensão Copper, siga os
procedimentos de instalação de add-ons11 no navegador e instale-a. Feito isso, na barra
de endereços digite: coap://IPdoRasp:5683/, em que “IPdoRasp” deve ser substi-
tuído pelo endereço IP da interface utilizada no Raspberry. Feito isso, deve aparecer uma
tela como a da Figura 11.7. Vale ressaltar que para a comunicação ocorrer, todos os nós
devem estar na mesma sub-rede.
O primeiro recurso a ser explorado é a descoberta de serviços e recursos, para isso
click em core, a barra de endereços deve mudar para algo como coap://192.168.0.2:5683/
.well-known/core, em seguida click em GET. Feito isso, todos recursos disponíveis no
servidor serão mostrados, neste caso os recursos disponíveis são o “/time”, que retorna
a data e a hora local do servidor, o “/async”, que simula uma requisição/resposta as-
síncrona e o “/”, que simplesmente retorna algumas informações relativas à biblioteca
libcoap com uma resposta piggy-backed. Neste momento alguns pacotes CoAP já foram
capturados pelo Wireshark, para filtrar apenas os pacotes CoAP, no Wireshark pressi-
7 https://play.google.com/store/apps/details?id=pl.sixpinetrees.aneska
8 http://people.inf.ethz.ch/mkovatsc/copper.php
9 https://github.com/hirotakaster/CoAP-simple-library
10 https://www.arduino.cc/en/Guide/Libraries
11 https://support.mozilla.org/en-US/kb/find-and-install-add-ons-add-features-to-firefox
845
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
one as teclas “Ctrl+/”, esse comando levará o cursor até a barra de filtros, então digite
udp.port == 5683 ou simplesmente “coap”, ambos os filtros mostraram apenas os
pacotes CoAP que estão transitando pela rede. Na Figura 11.8 pode-se observar o fluxo de
mensagens CoAP na requisição, feita através do método GET, em “/.well-known/core”.
Alguns detalhes importantes da comunicação CoAP podem ser destacados a partir
da Figura 11.8:
846
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Toda mensagem do tipo CON espera uma confirmação de recebimento (ACK) com
o mesmo ID da mensagem enviada.
• Uma mensagem CoAP pode ser dividida em blocos caso a requisição ou resposta
sejam grandes.
Para realizar uma comunicação simples entre o Arduino e o servidor CoAP será
utilizado o código de exemplo “coaptest” da biblioteca CoAP-simple-library. No Arduino
IDE, após a correta instalação da biblioteca, será possível, no menu “Arquivo->Exemplos-
>CoAP simple library”, encontrar um código de exemplo chamado “coaptest”. Para que
seja possível observar a comunicação entre o Arduino e o Raspberry através do protocolo
CoAP é necessário realizar algumas modificações no código de exemplo. Para realizar a
comunicação de forma adequada, na linha 54, altere o “(XXX, XXX, XXX, XXX)” pelo
endereço IP do servidor CoAP. A função loop deve ficar como no Algoritmo 1. Após
as alterações, carregue o código para o microcontrolador e, com o Arduino devidamente
conectado à rede e à Arduino Ethernet Shield, observe o tráfego de mensagens CoAP no
Wireshark.
No Arduino IDE é possível ver as respostas do servidor através do monitor serial.
Para abrir o monitor serial, no Arduino IDE, basta clicar na lupa localizada no canto supe-
rior direito da tela ou através do atalho “CTRL+SHIFT+M”. Para que não ocorra nenhum
erro na interpretação dos dados é importante certificar-se de que o baud rate está em 9600.
Na Figura 11.9a é mostrado o resultado no serial monitor, nele pode-se perceber que a co-
municação ocorreu da forma esperada, já que a cada dez segundos o servidor CoAP está
respondendo a requisição do Arduino com a data e hora. Esta comunicação pode ser vista
por outra perspectiva, através do Wireshark, mostrado na Figura 11.9b. Enquanto no serial
847
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
52
53 void loop ( ) {
54 / / Envia r e q u i s i c a o
55 i n t msgid = c o a p . g e t ( I P A d d r e s s ( 192 , 168 , 0 , 2 ) , 5683 , " t i m e " ) ;
56
57 / / Aguarda 10 s e g u n d o s
58 d e l a y ( 10000 ) ;
59 coap . loop ( ) ;
60 }
monitor existem cinco resultados de data e hora, no Wireshark são mostradas dez mensa-
gens CoAP. Na mensagem número 8 o Arduino, com IP 192.168.0.100, realiza a primeira
requisição através do método GET com uma mensagem do tipo CON (que necessita de
uma confirmação), em seguida o servidor CoAP do Raspberry, com IP 192.168.0.2, envia
uma resposta piggy-backed, na mensagem número 9. Este padrão se repete durante todas
as outras requisições.
Outras formas de transmissão podem ser testadas de forma fácil através do Copper.
O cliente CoAP para Firefox permite o envio de todos os tipos de requisições definidas
para o protocolo, ficando a cargo do leitor realizar testes e analisar a coerência do fluxo
de mensagens com o conteúdo teórico exposto na Seção 11.3.
848
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
mqtt_publish_in_callback
O endereço do “server”, na linha 24, deve ser substituído pelo endereço IP atri-
buído ao broker (neste caso o endereço do Raspberry Pi). Feito isso, inicie a captura de
pacotes no Wireshark (filtrando por “mqtt”), carregue as alterações para a placa Arduino
e ligue-a à rede através da Arduino Ethernet Shield. Neste momento, já será possível
observar alguns pacotes no Wireshark, como é mostrado na Figura 11.10.
12 https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=pt_BR
13 https://github.com/knolleary/pubsubclient
849
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
850
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
tópico “inTopic”. Para criar o botão basta acessar a conexão criada e clicar novamente no
botão (+), em seguida algumas opções serão exibidas, selecione a opção “Switch/button”
e dê um nome ao botão, em seguida, no campo “Topic (pub)” digite o tópico no qual o cli-
ente Arduino está inscrito, neste caso “inTopic”. Feito isso, clique no botão salvar (canto
superior direto) e em seguida pressione o botão criado. Neste momento a informação “0”
deverá ser publicada no tópico “inTopic”. Na Figura 11.12 é mostrado o fluxo de pacotes
MQTT gerado por este comando.
Como pode ser visto na Figura 11.12, a mensagem foi inicialmente publicada do
smartphone (IP 192.168.0.182) para o servidor (IP 192.168.0.2), em seguida o servidor
enviou a mensagem para todos os inscritos (subscribers) do tópico “inTopic”, que neste
caso é apenas o cliente Arduino (IP 192.168.0.100). O cliente Arduino, por sua vez, re-
publicou a mensagem para o servidor informando o tópico “outTopic”. Entretanto, como
não havia nenhum inscrito neste tópico nenhum novo pacote do tipo PUBLISH foi envi-
ado pelo broker, a não ser uma resposta a um pacote Ping Request, enviado pelo cliente
Arduino aproximadamente quinze segundos após o envio do último pacote de controle
(devido ao tempo de Keep Alive visto anteriormente). Perceba que em nenhuma das men-
sagens houve confirmação de recebimento, isso ocorre porque o nível de qualidade de
serviço utilizado na comunicação foi o QoS 0 (Fire and Forget). Para ilustrar os três ní-
veis de QoS providos pelo protocolo MQTT foi instalado um cliente Moquitto em um
ambiente Windows.
Na plataforma Windows, os procedimentos de instalação são um pouco diferen-
tes. Após a instalação do arquivo executável, que pode ser baixado no site oficial do
broker14 , será necessário seguir os procedimentos especificados em um arquivo chamado
“ readme-windows.txt”, localizado no diretório onde o software foi instalado. Após a
conclusão do processo de instalação o cliente MQTT já estará pronto para ser utilizado.
Para testar os três níveis de QoS providos pelo MQTT foram enviados três pacotes do tipo
PUBLISH para o broker através do comando “mosquito_pub -q <QoS> -h <endereço> -t
<tópico> -m <mensagem>”. Para o envio do primeiro pacote com o nível de QoS mais
baixo (QoS 0), por exemplo, no Prompt de Comando do Windows, dentro do diretório de
instalação do Mosquitto, foi utilizado o comando “mosquito_pub -q 0 -h 192.168.0.2 -t
teste -m “Teste de QoS”. Este comando está dizendo explicitamente para o cliente Win-
dows enviar um pacote MQTT do tipo PUBLISH com nível de QoS 0 para o endereço
“192.168.0.2” no tópico “teste” com a mensagem “Teste com QoS 0”. Além disso, im-
plicitamente outras informações estão sendo enviadas, como a porta TCP, que em caso de
não ser informada de forma explicita é utilizada a porta padrão 1883. Todos os parâmetros
14 https://mosquitto.org/download/
851
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
aceitos pelo broker podem ser visto através do comando “mosquitto_pub –help”. O fluxo
gerado pelo envio de um pacote PUBLISH para o mesmo tópico, no mesmo broker e com
a mesma mensagem, mudando apenas o nível de QoS é mostrado na Figura 11.13.
Na primeira situação, em que o nível de QoS é igual a zero (Figura 11.13a), é pos-
sível perceber que nenhum retorno do broker foi recebido em relação ao comando publish.
Após a conexão ser estabelecida com o servidor (ser recebido o pacote Connect Ack) o
cliente Windows simplesmente envia o pacote a ser publicado e, em seguida, solicita a
desconexão, já que nenhum retorno é esperado. Já na segunda situação (Figura 11.13b),
com nível de QoS igual a um, é esperado um pacote de confirmação de recebimento da
publicação (Publish Ack). Nesta situação, caso o transmissor não receba uma mensagem
de confirmação dentro de um timeout padrão, o pacote publish é retransmitido periodica-
mente até que a confirmação seja recebida. Por fim, quando o nível de QoS mais alto é
utilizado (QoS 2) é garantida a entrega de um, e somente um, pacote do tipo PUBLISH.
Neste caso a confirmação de entrega é feita em três partes. Como ilustrado na Figura
11.13c, após o envio do pacote de publicação, o transmissor irá aguardar o recebimento
da primeira confirmação (Publish Received), ao receber este pacote, o transmissor envia
um segundo pacote (Publish Release) e novamente aguarda a confirmação do receptor,
que deve responder com um pacote Publish Complete, indicando que a publicação foi
bem sucedida.
852
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
11.5. Conclusão
Este capítulo apresentou as definições e motivações para as pesquisas de Internet
of Things (IoT), bem como um breve panorama histórico. O foco ficou para o monitora-
mento prático das redes de Internet das Coisas. Foram utilizados softwares sniffers para a
análise de tráfego em tempo real de um sistema de IoT, este prototipado usando Arduinos
e Raspberry.
Os trabalhos futuros poderão contemplar cenários mais desafiadores e realísticos,
com vários equipamentos transmitindo entre si, bem como novas práticas e estratégias
para análise de tráfego. Outros protocolos utilizados em sistemas IoT, alguns discutidos
superficialmente neste trabalho, também poderão ser abordados com mais detalhes.
Referências
[Al-Fuqaha et al., 2015] Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M.,
and Ayyash, M. (2015). Internet of things: A survey on enabling technologies, proto-
cols, and applications. IEEE Communications Surveys & Tutorials, 17(4):2347–2376.
[Ashton, 2009] Ashton, K. (2009). In the real world, things matter more than ideas. RFID
Journal.
[Chen et al., 2014] Chen, W.-J., Gupta, R., Lampkin, V., Robertson, D. M., Subrah-
manyam, N., et al. (2014). Responsive Mobile User Experience Using MQTT and
IBM MessageSight. IBM Redbooks.
[Cisco, 2017] Cisco (2017). Global mobile data traffic forecast update, 2016-
2021. http://www.cisco.com/assets/sol/sp/vni/forecast_
highlights_mobile/index.html.
[Desai, 2015] Desai, P. (2015). Python Programming for Arduino. Packt Publishing Ltd.
[Ferreira, 2013] Ferreira, S. (2013). Ipv6 nas redes de sensores sem fio.
https://comum.rcaap.pt/bitstream/10400.26/17524/2/
SergioFerreira_Tese_Mestrado_2012-2013.pdf.
[Gubbi et al., 2013] Gubbi, J., Buyya, R., Marusic, S., and Palaniswami, M. (2013). In-
ternet of Things (IoT): A vision, architectural elements, and future directions. Future
Generation Computer Systems, 29(7):1645–1660.
[Joshi and Kaur, 2015] Joshi, M. and Kaur, B. P. (2015). Coap protocol for constrained
networks. International Journal of Wireless and Microwave Technologies, 5(6):1–10.
[Kuladinithi et al., 2011] Kuladinithi, K., Bergmann, O., Pötsch, T., Becker, M., and
Görg, C. (2011). Implementation of coap and its application in transport logistics.
Proc. IP+ SN, Chicago, IL, USA.
853
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
[Shelby et al., 2014] Shelby, Z., Hartke, K., and Bormann, C. (2014). The constrained
application protocol (coap).
854
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Capítulo
12
Introdução a análise de dados com Python e Pan-
das
Abstract
Companies are investing in quantity and generation of information, but few companies are
devoting themselves to data analysis and focusing on better positioning in the market. Le-
verage a large mass of information generated in the planning stages can aid in reducing
losses and without increasing billing. Among the most diverse emerging areas of com-
puting, a particular theme has drawn attention and aroused community interest, a data
science, and the ability to extract valuable information from large masses of raw data.
This chapter is an introduction to the use of Pandas, a Python library for data analysis,
which plays a great role and has numerous functions for this purpose. They will be made
available through the transparency portal of the federal government for demonstration
and removal of important information.
Resumo
855
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
12.1. Introdução
Estamos vivendo em um mundo globalizado e sedento por informação, hoje a maioria das
atividades cotidianas estão sendo monitoradas e consequentemente gerando dados, porém
segundo [Becker 2015] os dados são apenas a matéria-prima da informação, ou seja, os
dados precisam ser interpretados e assim gerar, de fato, a informação.
Segundo [Grus 2016] o mundo está soterrado por dados, desde uma compra que
um usuário realiza pela internet, um filme que é assistido online ou até os registros da lo-
calização de um smartphone geram dados que podem ser resposta para inúmeras questões
como por exemplo um sistema de recomendação. É exatamente aí onde entra a área de
ciência de dados, o cientista de dados é o profissional responsável por extrair informações
de dados brutos, [Grus 2016] define em forma de piada que um cientista de dados é um
profissional que sabe mais de estatística do que um cientista da computação e mais sobre
ciência da computação do que um estatístico. Este capítulo trata de uma introdução a
utilização do Pandas, uma biblioteca Python para análise de dados, que desempenha um
papel grandioso e possui inúmeras funções para esse propósito.
12.2. Python
A linguagem de programação Python embora simples e clara é uma linguagem extrema-
mente poderosa, segundo [Menezes 2016] é uma linguagem que vem crescendo em áreas
da computação, como inteligência artificial, banco de dados, biotecnologia, animação 3D,
aplicativos móveis, jogos e plataforma web. para [Oliphant 2007] Python se destaca como
uma plataforma de computação científica, e cita as seguintes razões:
12.2.1. Instalação
O interpretador Python não vem instalado por padrão no Microsoft Windows, já no Mac
OS X e Linux sua instalação é nativa, porém não conta com a sua versão mais recente.
Pode-se contornar este problema e instalar a versão atual das seguintes formas:
856
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Anaconda2 : É uma plataforma de software que integra o Python com vários paco-
tes que podem ser úteis no desenvolvimento de aplicações científicas. Essa integra-
ção facilita a instalação e a manutenção desse software na sua máquina através do
conda, um aplicativo que ajuda a gerenciar a instalação e manutenção de pacotes.
No site do desenvolvedor está disponível o download para as principais plataformas.
Após instalado, o Anaconda ocupa aproximadamente 4GB de espaço em disco.
12.3. Pandas
O Pandas4 é uma biblioteca licenciada com código aberto que oferece estruturas de dados
de alto desempenho e de fácil utilização voltado a análise de dados para a linguagem de
programação Python. É amplamente utilizado para a preparação e visualização de dados e
tem sido fundamental para impulsionar a utilização de Python na comunidade científica de
dados. Contém estruturas de dados de alto nível e ferramentas de manipulação projetadas
para tornar a análise de dados rápida e fácil em Python. O Pandas é construído em cima
do NumPy, responsável pelo alto desempenho, e facilita a sua utilização em aplicativos
baseados no NumPy.
12.3.1.1. Séries
857
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
12.3.1.2. Dataframes
Segundo [McKinney 2012], um Dataframe representa uma estrutura de dados tabular, se-
melhante a uma planilha, contendo uma coleção de colunas ordenadas, cada uma das
quais pode ser um tipo de valor diferente (numérico, string, booleano, etc.) Para se criar
um Dataframe a partir das estruturas de dados nativas em Python, pode-se passar um dici-
onário de listas para seu construtor. Usando-se o parâmetro columns, define no construtor
como as colunas serão ordenadas. Por padrão, o construtor do Dataframe irá ordernar as
colunas em ordem alfabética.
858
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• CSV: para ler um arquivo CSV basta chamar uma função nativa da biblioteca Pan-
das específica para esse fim, função read_csv.
• EXCEL: Pandas permite leitura e escrita no formato Excel. Ler a partir de arquivos
Excel requer a biblioteca xlrd, pode-se instalar via pip (pip install xlrd).
• db.py: é uma maneira mais fácil de interagir com bancos de dados. Facilita a pes-
quisa de tabelas, colunas, visualizações, etc. Ele coloca a ênfase na interação do
usuário, na exibição de informações e no fornecimento de funções auxiliares fáceis
de usar. Suporta PostgreSQL, MySQL, SQLite, Redshift, MS SQL Server e Oracle.
• Clipboard: tendo dados tabulados, então pode-se copiar para o clipboard e colar
direto no Dataframe. A função realiza um bom trabalho identificando qual é o
delimitador, mas pode-se usar o parâmetro sep para ser explicito.
• URL: Pode-se usar a biblioteca StringIO de Python para ler diretamente dados de
uma URL. StringIO permite tratar uma string como um objeto do tipo arquivo.
859
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
• Filtro booleano: É possível filtrar qualquer coluna a partir de uma comparação re-
lacional, por exemplo: pode-se recuperar apenas as capitais que tenham população
acima de 1 milhão no exemplo visto na figura 12.2;
• Método loc: É utilizado para seleção através de índices rotulados, mas também
aceita uma matriz booleana;
• Método iloc: É utilizado para seleção através de índices inteiros, mas também aceita
uma matriz booleana;
• Método ix: Pode decidir indexar posicionalmente ou através de etiquetas depen-
dendo do tipo de dados do índice. Está em desuso desde a versão Pandas 0.20.0.
• dropna: Utilizado para excluir linhas ou colunas que possuam dados perdidos;
• fillna: Utilizado para preencher dados perdidos com base em critérios. Exemplo:
Em uma coluna de idade de um Dataframe pode-se utilizar essa função para onde
tiver dado perdido substituir pela média das idades da coluna;
• isnull: Retorna objeto booleano indicando quais valores são nan5 ;
• notnull: Negação de isnull.
860
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
12.3.5.1. Grouping
12.3.5.2. Merge
Geralmente em uma análise, precisa-se fazer merge/join de dados que geralmente são
armazenados de forma relacional. Como a clausula JOIN no SQL, pandas.merge permite
que 2 Dataframes possam ser agrupados por meio de uma ou mais chaves. A função provê
uma série de parâmetros (on, left_on, right_on, left_index, right_index) permitindo que
você possa especificar sobre quais colunas ou índices deseja-se realizar o join. Por padrão,
861
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
pandas.merge opera como um inner join, que pode ser alterado usando o parâmetro how.
A partir do docstring: how : ’left’, ’right’, ’outer’, ’inner’, default ’inner’
• left: usa apenas chaves do frame da esquerda (SQL: left outer join)
• right: usa apenas chaves do frame da direita (SQL: right outer join)
• outer: usa a união das chaves de ambos frames (SQL: full outer join)
• inner: usa a interseção das chaves de ambos frames (SQL: inner join)
12.4. Matplotlib
É a biblioteca Python mais popular para a visualização de dados, geração de gráficos e
permite que seja facilmente criado gráficos, histogramas e outras visualizações profissi-
onais. Possui suporte a todos os sistemas operacionais e também pode exportar gráficos
para vetor comum.
Segundo [Matplotlib 2017], tenta facilitar coisas fáceis e difíceis. Pode gerar grá-
ficos, histogramas, espectros de poder, gráficos de barras, gráficos de erros, diagramas de
dispersão, etc., com apenas algumas linhas de código. Para o usuário avançado, possui
controle total de estilos de linha, propriedades de fontes, propriedades de eixos, etc., atra-
vés de uma interface orientada a objetos ou através de um conjunto de funções familiares
aos usuários do MATLAB.
862
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Python, o conda e suas dependências. Se você preferir ter o conda e mais de 720 pacotes
de código aberto, recomenda-se a instalação da Anaconda.
Por questões de espaço em disco optou-se pela instalação do Miniconda, que
ocupa pouco mais de 400Mb de espaço em disco após instalado.
863
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
independência dos outros. Isso permite que cada ambiente tenha autonomia para instalar
plug-ins e bibliotecas de forma que a configuração de um não impacte nos restantes.
A figura 12.5 apresenta duas imagens que ilustram a criação e ativação do am-
biente virtual. A imagem 12.5(a) mostra o comando para fazer a criação de um novo
ambiente, o parâmetro -n refere-se a name, onde passa-se como argumento o nome do
ambiente a ser criado. Após criado, para efeito de instalações e execuções referentes
a um ambiente, é necessário que o mesmo esteja ativo. A imagem 12.5(b) apresenta a
ativação do ambiente recentemente criado e após comando verifica-se que o ambiente
está ativo, representado pelo nome do ambiente entre parênteses antes do cursor, a partir
desse momento, qualquer processo de instalação ou execução realizado no terminal será
executado pelo ambiente ativo.
864
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
865
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
866
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
867
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
campus, a segunda seria o valor mínimo de diária por campus, a terceira refere-se ao valor
máximo que um campus recebeu e a última coluna é referente a quantidade de diárias que
o campus recebeu no mês. A imagem 12.9(c) mostra o quanto é simples gerar um gráfico
utilizando o matplotlib. O próprio Pandas possui uma função que utiliza os recursos da
biblioteca de gráfico, ainda pode-se optar por qual tipo de gráfico utilizar através do parâ-
metro kind, Usuários mais experientes podem utilizar recursos da biblioteca seaborn para
deixar os gráficos com aspecto mais profissional.
868
Anais Eletrônicos ENUCOMP 2017 - X Encontro Unificado de Computação - www.enucomp.com.br/2017 - ISBN: 978-85-8320-201-1 331
Referências
[Becker 2015] Becker, J. L. (2015). Estatística básica: transformando dados em infor-
mação. Bookman Editora.
[Grus 2016] Grus, J. (2016). Data Scince do Zero: Primeiras regras com Python. Alta
Books Editora.
[McKinney 2012] McKinney, W. (2012). Python for data analysis: Data wrangling with
Pandas, NumPy, and IPython. "O’Reilly Media, Inc.".
[Pandas Library 2017] Pandas Library (2017). Python data analysis library. Dispo-
nível em: http://pandas.pydata.org/pandas-docs/stable/. Acesso
em: 18 Outubro 2017.
869