Você está na página 1de 154

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação

ISSN: 2447-0767 1
ENCOINFO 2020
22º Congresso de Computação e Tecnologias da
Informação

03 a 06 de Novembro de 2020
Palmas – Tocantins

ANAIS
22º CONGRESSO DE COMPUTAÇÃO E
TECNOLOGIAS DA INFORMAÇÃO

Realização

Curso de Bacharelado em Sistemas de Informação


Curso de Bacharelado em Ciência da Computação
Curso de Bacharelado em Engenharia de Software

2 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Nota: Os conceitos e a redação contidos nos resumos dos artigos são de exclusiva responsabilidade de seus
autores, pois os mesmos foram transcritos na íntegra para esta publicação.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 3
ENTIDADE MANTENEDORA
AELBRA Educação Superior - Graduação e Pós-Graduação S.A.

Presidente
Paulo Augusto Seifert

CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS

Reitor
Marcelo Müller

Diretora Acadêmica
Parcilene Fernandes de Brito

Coordenador da Educação Continuada


Luiz Gustavo Santana

Procuradora Institucional
Diêmy Sousa Freitas

Assessora de Comunicação
Letícia Bender

Secretária Geral
Driéli Drívela Cabral Araújo

Capelão
Pastor Heitor Stahnke

4 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Bacharelado em Sistemas de Informação
Bacharelado em Ciência da Computação
Bacharelado em Engenharia de Software

Coordenadora dos Cursos


Parcilene Fernandes de Brito

Coordenadora Adjunta de Sistemas de Informação


Madianita Bogo Marioti

Coordenador Adjunto de Ciência da Computação


Fabiano Fagundes

Coordenador Adjunto de Engenharia de Software


Fabiano Fagundes

Coordenador de Estágios e de Trabalhos de Conclusão de Curso


Fabiano Fagundes

Coordenador do Projeto Informática & Sociedade


Madianita Bogo Marioti

Coordenador da Fábrica de Software


Jackson Gomes de Souza

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 5
ENCOINFO 2020

Comissão Organizadora
Fabiano Fagundes
Fábio Castro Araújo
Fernanda Pereira Gomes
Jackson Gomes de Souza
Madianita Bogo Marioti
Parcilene Fernandes de Brito

Arte e Capa
Jackson Gomes de Souza

Digramação
Fernanda Pereira Gomes

Site do Evento
Fábrica de Software

Fábrica de Software
Jackson Gomes de Souza
Augusto Cavalcanti
Dionnys Marinho
Giovanna Filipakis
Murillo Roseno

6 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Equipe Editorial

Editora Chefe
Parcilene Fernandes de Brito

Editores Assistentes
Jackson Gomes de Souza
Fabiano Fagundes

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 7
Comitê Técnico

Allan Mori - Universidade de São Paulo (USP)


Bruno Vilar - Universidade Estadual de Campinas (UNICAMP)
Caio Henrique Tonetti - Universidade Federal de Minas Gerais (UFMG)
Daniel Paiva - Universidade Federal Fluminense (UFF)
Edilson Ferneda - Universidade Católica de Brasília (UCB)
Eliane Pozzebon - Universidade Federal de Santa Catarina (UFSC)
Felipe Rezende - Banco do Brasil
Flavius Gorgônio - Universidade Federal do Rio Grande do Norte (UFRN)
Heloise Tives - Instituto Federal do Paraná (IFPR - Campus Palmas)
Italo Santos - Universidade de São Paulo (USP/ICMC)
James Chaves - Universidade de Brasília (UnB)
João Choma Neto - Universidade de São Paulo (USP)
Kalil Bispo - Universidade Federal de Sergipe (UFS)
Leandro Maciel Almeida - Universidade Federal de Pernambuco (UFPE)
Leandro Pasa - Universidade Tecnológica Federal do Paraná (UTFPR)
Leo Natan Paschoal - Universidade de São Paulo (USP)
Luciana Rech - Universidade Federal de Santa Catarina (UFSC)
Luciano Cabral - Instituto Federal de Pernambuco (IFPE)
Matheus Leal - Universidade Federal de Minas Gerais (UFMG)
Paulyne Jucá - Universidade Federal do Ceará (UFC)
Raul Wazlawick - Universidade Federal de Santa Catarina (UFSC)
Rômulo Palmeira -Universidade de Brasília (UnB)
Ricardo Vilela - Universidade de São Paulo (USP)
Ronaldo Vieira - Universidade Federal de Minas Gerais (UFMG)
Sebastião Santos - Universidade Federal do Maranhão (UFMA)
Simone Souza - Universidade de São Paulo (USP/ICMC)

8 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
APRESENTAÇÃO

Estávamos nos organizando para realizar a 22ª edição do nosso Encoinfo quando tudo mudou.
E esta mudança não foi daquelas as quais estamos acostumados e nos adaptamos rapidamente.
Não foi uma nova tecnologia computacional, uma nova técnica de desenvolvimento, um novo
padrão que surgiu. Foi algo totalmente alheio aos nossos costumes e que nos deixou,
realmente, perdidos.

De uma hora para outra nos vimos sem poder retornar aos nossos laboratórios de pesquisa, as
nossas salas de aula, ao nosso universo acadêmico-científico. Não podíamos mais nos ver
pessoalmente nem tampouco nos reunirmos em pequenos grupos, quiçá grupos maiores como
os que se juntam em torno de um evento científico.

De início ainda tínhamos esperanças, em março, de que até maio – data original do evento –
tudo estaria resolvido e poderíamos prosseguir nossos trabalhos. Mas maio chegou vendo
nosso evento cancelado. Sim, porque naquele momento não víamos como levar à frente, de
alguma forma, todo o grande trabalho que gira em torno da realização do Encoinfo.

Porém, as aulas continuaram, de forma remota, como também continuaram as orientações, as


pesquisas, os esforços de professores e alunos para não parar no tempo. E, com a garra e a
coragem dos fortes, conseguimos superar um sem número de dificuldades que nos permitiu
parar e ver que poderíamos dar continuidade também a este compromisso que assumimos,
desde 1999, com a pesquisa nas áreas de Computação e Tecnologias da Informação,
especialmente aqui no Tocantins.

Os clamores de nossos alunos também nos incentivaram. Tudo bem que seria sem o tão
aguardado e amado coffee break, mas eles teriam a oportunidade de submeter seus trabalhos e
apresentá-los, de participar de cursos de atualização tecnológica e de assistir grandes
palestras. E assim nasceu este Encoinfo.

Divirtam-se.

Comissão Organizadora.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 9
10 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
SUMÁRIO

Palestrantes ............................................................................................................................. 14

Minicursos ............................................................................................................................... 16

Artigos Completos

Blockchain aplicado na cadeia de comercialização de produtos rurais ..................................18


Augusto Cavalcanti, Dionnys Santos Marinho, Giovanna Filipakis, Ronicley Silva de Sa,
Madianita Bogo Marioti

Desenvolvimento de um aplicativo mobile para navegação interna no CEULP/ULBRA.......28


Lucas Costa da Silva, Fábio Castro Araújo

Desenvolvimento de uma ferramenta para validação de Fórmulas Proposicionais usando o


método de Árvore de Refutação ............................................................................................... 36
Danilo Saraiva Vicente, Parcilene Fernandes de Brito

Desenvolvimento de uma gramática para auxílio no processo de criação e validação de


fórmulas proposicionais estruturada em XML do Logic Live ................................................45
Danilo Saraiva Vicente, Emanoel Mendes Magalhães, Nalberthy Sousa da Silva, Jackson
Gomes de Souza

Desnormalização na otimização da estrutura de dados da SentimentALL .............................. 56


Dionnys Santos Marinho, Parcilene Fernandes de Brito

Extração e armazenamento de dados de teses e dissertações sobre saúde mental presentes em


repositórios de universidades do Brasil .................................................................................... 66
Danilo Saraiva Vicente, Dionnys Santos Marinho, Giovanna Biagi Filipakis, Mateus
Rodrigues Costa, Nalberthy Sousa da Silva, Parcilene Fernandes de Brito

GraphLive: um sistema interativo para a criação de grafos ..................................................... 76


Pedro Sousa Silva Cantuária, Fabiano Fagundes

Implementação de um Data Mart e Automatização do Processo ETL para o Sistema de


Procedimentos Extrajudiciais do MPE/TO ..............................................................................87
Thiago Aparecido da Silva, Fábio Castro Araújo

OSLIVE: Módulo de Exercícios de Escalonamento de Processos ..........................................93


Gabriel Fernandes da Silva, Madianita B. Marioti, Fabio Castro Araújo

Otimização da Localização das Unidades Básicas de Saúde Utilizando o Modelo p-Centro:


Um estudo de caso................................................................................................................. 102
Isaac Jordan Coutinho Lopes, Luis Eduardo Costa Laurindo
Rumo a conformidade da segurança cibernética em sistemas de controle industriais: estudo de
caso com a planta MecatrIME ............................................................................................... 112
Christiana Couto, Gustavo Claudio Karl Couto, Antonio Eduardo Carrilho da Cunha
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 11
Um sistema mobile de apoio ao profissional de Educação Física para a realização da avaliação
física, periodização de treino e prescrição dos exercícios ..................................................... 122
Claison Marques da Nóbrega, Fabiano Fagundes, Jackson Gomes de Souza, Pierre Soares
Brandão

Uma Plataforma para Autoria de Chatbots como Auxílio no Processo de Ensino ............... 132
Allyson Martins, Luis Eduardo Costa Laurindo, Ivan Rodrigues de Moura, Carleandro de
Oliveira Nolêto

White Hat Hacking: Securing networks with offensive strategy - A systematic literature
review .................................................................................................................................... 142
Thiago F. Costa, André R. da Cruz

Programação ........................................................................................................................ 152

12 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
PALESTRANTES

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 13
Paulo Caroli
Palestra: Lean Inception: Como Alinhar Pessoas e Construir o Produto Certo

Mini CV: Autor do best-seller Lean Inception: Como Alinhar Pessoas e Construir o Produto Certo, que
compartilha o segredo por trás do sucesso do movimento Lean Startup, do Vale do Silício. É consultor
principal da Thoughtworks e co-fundador da AgileBrazil, Paulo Caroli possui mais de vinte anos de
experiência em desenvolvimento de software, trabalhando em diversas corporações no Brasil, Índia, EUA e
América Latina. Ele ingressou na ThoughtWorks em 2006 e ocupou os cargos de Agile Coach, Trainer,
Project e Delivery Manager. Ele recebeu um Bacharel em Informática e MS em Engenharia de Software,
ambos da PUC-Rio.

Sergio Gama
Palestra: Transformação Digital e Inovação com Inteligência Artificial

Mini CV: Engenheiro mecatrônico com mais de 25 anos de experiência em TI, com projetos para bancos e
seguradoras no Brasil, China e Índia. Atualmente é Senior Developer Advocate Líder na IBM América
Latina, membro da IBM Academy of Technology e Technical Leadership Council. É especialista em
desenvolvimento de software, ciência de dados, Inteligência Artificial, big data e IoT, CTO e co-fundador
do Instituto D’Vinci3, co-fundador e coordenador da comunidade AI Brasil, Associado honorário da I2AI -
International Association of Artificial Intelligence, palestrante e professor.

14 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
MINICURSOS

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 15
Análise de Dados com o Opendistro for Elastisearch
Flavio Henrique Moura Stakoviak – Instituto de Pesquisas Eldorado
Egresso de Sistemas de Informação do CEULP

Desenvolvendo aplicações com Domain Driven Design


Douglas José Ramalho Araujo – Squadra Tecnologia/Membro fundador do
RoadToAgility
Egresso de Sistemas de Informação do CEULP

Desenvolvimento de aplicativos móveis com ReactNative


Valdirene da Cruz Neves Júnior – Nato-Digital
Egresso de Sistemas de Informação do CEULP

Desenvolvimento de Single Page Applications com ReactJS


Djonathas Carneiro Cardoso – CESAR (Centro de Estudos e Sistemas
Avançados do Recife)
Egresso de Sistemas de Informação do CEULP

Extração de dados da Web com Scrapy


Dionnys Santos Marinho – CEULP/ULBRA
Egresso de Ciência da Computação do CEULP

Testes automatizados com Cypress


Jhemeson Silva Mota – Wipro Technologies
Egresso de Ciência da Computação do CEULP

Trabalhando ideias inovadoras com o framework strateegia


Alexandre Henrique Kavalerski Teixeira – CIn - UFPE e TDS Company
Egresso de Ciência da Computação do CEULP

16 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
ARTIGOS COMPLETOS

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 17
Blockchain aplicado na cadeia de comercialização de produtos
rurais
Augusto Cavalcanti1, Dionnys Santos Marinho1, Giovanna Filipakis1, Ronicley Silva
de Sa¹, Madianita Bogo Marioti¹
¹
Departamento de Computação – Centro Universitário Luterano de Palmas
(CEULP/ULBRA)
{cardoso0guto, dionnys.marinho, giovannafilipakis, ronicleysantossilva,
madianitab} @gmail.com
Resumo.Este trabalho apresenta o desenvolvimento do protótipo de uma
aplicação P2P com o uso de blockchain e smart contracts para o
gerenciamento de transações na cadeia de comercialização de produtos
rurais no Brasil. A proposta dispõe do uso da tecnologia blockchain como
uma forma segura para manter um histórico completo de produtos
comercializados. O protótipo desenvolvido permite que um stabelecimento ou
pessoa física possa criar, listar e finalizar vendas de seus produtos, sendo que
as transações são finalizadas com a garantia e segurança oferecidas pela
tecnologia de blockchain.
1. Introdução
O comércio de produtos rurais é extremamente importante no cenário econômico
brasileiro. De acordo com os dados divulgados pelo Ministério da Economia (2020), a
previsão do Valor Bruto da Produção Agropecuária em 2020 é de 674 bilhões. Mesmo
levando-se em conta apenas o quadro do estado do Tocantins, os produtos rurais ainda
configuram um mercado muito ativo e valioso, que inclui desde produtos agropecuários
como bovinos, soja e milho até produtos produzidos em menor escala como queijo,
remédios naturais e peças artesanais.
Segundo o Censo Agropecuário do IBGE (2017), há 63.808 estabelecimentos
agropecuários no estado do Tocantins, o que inclui mais de 200.000 pessoas envolvidas
nesse mercado. As transações que ocorrem dentro desse contexto contêm informações
básicas como preço da unidade do produto, produtor, comprador e quantidade do produto.
Além disso, também, existem dados importantes para os comerciantes que atuam nesse
mercado, referentes ao modo de produção do produto. Por exemplo, no caso de um animal,
há a informação adicional de ele ter sido criado livre ou em cativeiro.
Considerando esse cenário, é possível utilizar a tecnologia de rede Blockchain P2P
(Peer-to-Peer) para estruturar uma arquitetura de rede segura, distribuía e que permite que a
carga de trabalho em cada nó seja sempre igual (RAHMADIKA et al., 2020).
Segundo a Microsoft (2019), blockchain é uma estrutura de dados à prova de
violações que rastreia algo de valor ou interesse à medida que passa de proprietário para
proprietário. Ela foi desenvolvida e introduzida por Satoshi Nakamoto para ser utilizada na
criptomoeda Bitcoin e servir como um sistema de pagamento eletrônico baseado em prova
criptográfica em vez de confiança, permitindo que duas partes negociem diretamente entre
si sem a necessidade de terceiros (NAKAMOTO, 2008). Posteriormente, o blockchain
passou a ser aplicado a vários outros contextos além do financeiro, como o da saúde,
imobiliário e governamental.
Já P2P é um tipo de arquitetura chamada de distribuída, caracterizada por particionar
tarefas ou cargas de trabalho entre nódulos sem a necessidade de uma autoridade confiável
(HE et al., 2018), ou seja, um servidor central.

18 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
O presente trabalho propõe a aplicação da tecnologia de blockchain junto com a
arquitetura P2P no cenário da comercialização de produtos rurais. Desse modo, o histórico
de transações de produtos realizadas pode ser registrados e finalizado tendo a garantia de
segurança e integridade proporcionada pelas tecnologias de blockchain e P2P.
Este trabalho é organizado segundo as seguintes seções: 2) apresenta o embasamento
teórico necessário para a produção do sistema proposto; 3) demonstra as etapas seguidas no
decorrer do trabalho e descreve as ferramentas e materiais utilizados; 4) apresenta os
resultados obtidos; 5) são expostas as considerações finais e discussões acerca dos
resultados e possíveis trabalhos futuros.
2. Fundamentação teórica
2.1. Comercialização de serviços e produtos rurais
A Agência de Defesa Agropecuária (2020) é “uma autarquia com autonomia técnica,
administrativa e financeira, diretamente vinculada à Secretaria Estadual da Agricultura com
a finalidade de promover a vigilância, normatização, fiscalização, inspeção e a execução das
atividades ligadas à defesa animal e vegetal”. Este órgão também é responsável por
fiscalizar a venda e troca de produtos de origem animal e vegetal, comercialização e
aplicação de medicamentos veterinários tanto quanto o uso de pesticidas e inseticidas.
No site oficial estão disponíveis textos e arquivos com informações pertinentes à
comercialização de produtos e serviços relacionados ao meio rural, diretrizes para garantir
que ela seja regularizada, registros de estabelecimentos, formalização de propriedades rurais
e registro de produtores rurais.
Como um exemplo mais específico, têm-se o passo-a-passo descrito por Sebrae
(2016) sobre como se formalizar como produtor rural e registrar a sua atividade
agropecuária. No documento estão inclusos passos obtenção do Cadastro Nacional de
Pessoa Jurídica Rural (CNPJ Rural), ou da Declaração de Aptidão ao Pronaf (DAP), e o que
é o Programa Nacional de Apoio à Agricultura Familiar (Pronaf), assim como quais são os
benefícios que eles oferecem.
Desse modo, manter um registro de comercialização de produtos rurais, seja ela entre
pessoas físicas ou jurídicas, pode permitir um fácil acesso a dados informativos que
garantem a regularidade de produtos, serviços e transações.
2.2. Blockchain
Um blockchain é um banco de dados distribuído que mantém registros públicos de
todas as transações ou eventos digitais que foram executados e compartilhados entre as
partes participantes (CROSBY et. al, 2016). A aplicação mais conhecida dessa tecnologia é
no processamento de moedas digitais como o Bitcoin, que nasceu de um conceito de uma
versão ponto a ponto de moedas eletrônicas, usada principalmente para diminuir gastos em
micro transações.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 19
Figura 1. Cadeia de blocos em uma BlockChain.
Fonte: Expert (2018).

A Figura 1 apresenta a forma com que os blocos são validados em uma blockchain.
Segundo Waldman (2018), à partir do bloco inicial, chamado gênese, a cadeia de blocos é
construída, e cada bloco mantém um vínculo regressivo criptográfico para a transação
anterior na cadeia de hash. Como estes blocos são vinculados ao seu antecessor e são
validados usando um algoritmo de prova de trabalho ou algoritmo do consenso1, isso torna
cada transação segura e inviolável.
Segundo Böhme (2015), Bitcoins são registros de transações, por exemplo, um
indivíduo não possui moedas, antes de possuir uma moeda ele precisa participar de uma
transação com outro usuário, que anteriormente recebeu uma transação de um terceiro
usuário e segundo os registro desse segundo usuário, após receber essa transação não fez
nenhum repasse das moedas recebidas. Os blocos de transações que compõem esse sistema
de Bitcoins são conhecidos como Blockchain.
Além do uso mais comum que é a validação de transações monetárias, o blockchain
possui outras versões que suportam uma grande variedade de aplicações, entre ela está o
Moedas Coloridas (do inglês Colored Coins). Moedas coloridas são descritas como um
protocolo que descreve uma classe de métodos para desenvolvedores utilizem os conceitos
do blockchain para criar ativos digitais em cima do Bitcoin blockchain, usando suas
funcionalidades além da moeda digital. Neste trabalho esse conceito de moedas coloridas é
explorado para o uso de transações em bloco para o controle de qualidade e rastreabilidade
de produtos vendidos por produtoras de palmas.
O conceito e aplicação do Blockchain está diretamente ligado ao conceito e
implementação de tecnologias Peer-to-Peer (P2P). A junção de Blockchain com arquitetura
P2P possibilita um cenário em que juntas elas garantem a segurança e integridade tanto das
transações que são executadas por um sistema quanto do sistema em si.
2.3. Peer-to-Peer
Peer-to-Peer é uma arquitetura de rede distribuída onde os participantes compartilham uma
parte de seu próprio hardware para fornecer o serviço e conteúdo pela rede, ou seja, os
usuário são fornecedores e consumidores de um serviço compartilhado (KELLERER, 1998).
Um sistema P2P é altamente adaptável, onde a queda de um nó dessa rede, não afeta o
desempenho ou o funcionamento da rede como um todo (ANDROUTSELLIS-

20 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
THEOTOKIS; SPINELLIS, 2004). A Figura 2 apresenta um comparativo entre a tecnologia
Cliente-Servidor e os sistemas P2P.

Figura 2. Rede P2P.


Fonte: John-EE (2020).

Redes P2P possuem algumas vantagens em comparação aos sistemas Client-


Servidor comuns. Segundo Rocha (2004), escalabilidade e disponibilidade de dados, são
vantagens desse tipo de aplicação, que podem ser servidas por uma grande quantidade de
nodos na rede ao invés de um único servidor central como apresentado. Outra vantagem de
redes Peer-to-Peer é a possibilidade do processamento de grandes volumes de dados sem o
uso de grandes data centers, devido ao fato de cada nó da rede ser um processador de dados.
Blockchains são um exemplo de sistema que utiliza o conceito de P2P para o processamento
de transações.
3. Materiais e métodos
Nesta seção do trabalho serão discutidos materiais e métodos utilizados no protótipo
de um sistema que aplica conceitos de Blockchain na cadeia de comercialização de produtos
rurais, mais precisamente quanto a produtos vendidos por produtoras próximas a Palmas.

3.1. Materias
Ethereum é uma plataforma global de código aberto para aplicativos
descentralizados, em que os usuários têm acesso a um sistema financeiro aberto e podem
realizar transações utilizando a criptomoeda nativa, chamada de ETH (ETHEREUM.ORG,
2020). Segundo Rouhani e Deters (2017), para que possam realizar transações todos os
usuários devem possuir contas, definidas por uma chave pública e uma privada, que podem
ser de dois tipos: Extremely Owned Accounts (EOA) em que os usuários realizam transações
diretamente entre as contas, e Contract Accounts, que são baseadas nos códigos de smart
contracts. Por sua vez, smart contracts são programas armazenados dentro da Ethereum e
relacionadas ao endereço de uma blockchain, e serve como uma maneira de implementar
automaticamente as restrições acordadas anteriormente entre duas partes (PINNA et al.,
2019).
A ferramenta Ganache, propriedade da Truffle Suite (2020), possibilita a criação de
uma blockchain pessoal usada para implantar contratos, desenvolver aplicativos e executar

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 21
testes. Com ela é possível ter acesso à endereços de contas e realizar transações com a
criptomoeda da Ethereum.
Node.js é uma ferramenta para construção de aplicações de rede escaláveis em
JavaScript (NODEJS.ORG, 2020), e teve como base o projeto de código aberto
desenvolvido por Mccubbin (2020) que usa essa tecnologia.
A extensão do GoogleChrome Metamask, permite que os usuários gerenciem contas
virtuais e suas chaves (METAMASK.IO, 2020).

3.2. Métodos
Esta seção descreve os métodos para o desenvolvimento do trabalho. A Figura 3
apresenta os passos da metodologia de desenvolvimento do protótipo de um sistema
blockchain a ser usado na cadeia de comércio de produtos rurais.

Figura 3. Metodologia.

O primeiro passo da metodologia foi o estudo de tecnologias e do contexto, para isso


foram utilizados trabalhos acadêmicos que abordam assuntos como Blockchain, Tecnologia
P2P, smart contracts, Ethereum e dados governamentais sobre o comércio de animais e
sumos da agricultura no Brasil.
O segundo passo foi gerar a blockchain de teste com o Ganache, sendo que ela era
hospedada localmente. Essa aplicação permite a criação de uma rede P2P local e o uso de
smart contracts para controle e gerenciamento de transações com blockchain.
A terceiro passo consistiu no processo de desenvolvimento das funcionalidades da
aplicação com o Node.js, sendo que esse desenvolvimento foi subdividido em partes.
Primeiro foi implementada a funcionalidade que listava as transações existentes. Depois, a
funcionalidade de criar uma nova transação, sendo que cada uma contém as informações:
identificador, local de origem, nome do comprador, nome do vendedor, nome do produto,
preço, quantidade, informações adicionais e a informação de se a transação havia sido
finalizada ou não. Então, foi implementada a funcionalidade que permite confirmar que a
transação foi executada e finalizada. A parte de front-end da aplicação foi desenvolvida
utilizando-se HTML5, CSS3 e Bootstrap.

22 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Por último, no quarto passo da metodologia, uma conta Metamask foi usada para
conectar a aplicação à blockchain local, tornando possível executar as transações referentes
às funcionalidades da aplicação. Para isso, foi necessário importar uma nova conta para o
Metamask, utilizando-se da chave primária de uma conta criada pelo Ganache.
4. Resultados e discussões
Um script escrito na linguagem Solidity, semelhante ao C ++ e JavaScript, foi criado
para definir o formato e a lógica dos smart contracts usados nas funcionalidades de criação,
listagem e finalização de transações. A Figura 4 exemplifica o construtor da classe que
define o modelo de contrato utilizado no protótipo desenvolvido.

Figura 4 - Definição de contratos


O script solidity define um contract como uma classe que agrega todas as
informações de contratos gerenciados pela aplicação. A instrução Transacao define o
formato de quais dados deverão ser mantidos para cada transação criada, os dados salvos
são: id único da transação, nome do comprador, nome do produto, unidade de medida para a
venda, preço unitário, quantidade de produtos comprados, informações adicionais e o valor
que armazena se a transação foi finalizada ou não. Após definir o modelo em que os dados
serão armazenados foram definidas funções para controle de criação de transações e
listagem de dados. Em seguida a interface de gerenciamento de transações foi criada, a
Figura 5 detalha essa tela do protótipo.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 23
Figura 5. Protótipo da aplicação.

O protótipo da aplicação possibilita que transações sejam cadastradas com os


campos demarcado pelo Item 1 da Figura 5, e para cada transação cadastrada é possível
informar o comprador, nome do produto, unidade de medida, preço por unidade e
quantidade (é comum nesse contexto da agricultura que os produtos sejam vendidos em
quantidades maiores). O campo de produtos é do tipo select, e nele estão contidos os tipos
de produtos que o usuário vende e que foram informados no momento do cadastro na
plataforma. A informação de preço total da transação é obtida multiplicando-se as
informação preço por unidade e quantidade.
O protótipo exibido na Figura 5 também mostra duas listagens, o Item 2 da Figura 5
apresenta a lista de informações para transações não finalizadas, ou seja, é possível iniciar
uma transação e esta será finalizada apenas quando ambas as partes envolvidas aceitarem a
transferência. O Item 3 da 2 da Figura 5 mostra a listagem de transações finalizadas,
exibindo um histórico de movimentação de produtos e valores. Com essas listagens, é
possível acompanhar o andamento de negociações para cada produto, oferecendo
transparência para o processo e garantindo a integridade de negociações de toda a cadeia de
produtos rurais e derivados.

5. Conclusões
O trabalho desenvolvido teve como objetivo implementar uma aplicação que
possibilitasse aplicar a tecnologia de blockchain e descentralização de bases de dados ao
contexto da comercialização de produtos rurais. Essas transações podem variar de pequenas
quantias de produtos comuns até grandes quantias de produtos, que compõem uma parte
significativa do poder de exportação do Brasil. Por poderem possuir tamanha importância, a
segurança e validação de dados oferecidas por tais tecnologias são características muito
benéficas.
Com a ferramenta desenvolvida, foi possível entender sobre como utilizar
tecnologias blockchain aplicadas ao contexto da comercialização de produtos rurais. A visão
geral do protótipo exemplifica como diversas partes envolvidas podem acompanhar o
histórico de compras e vendas de produtos, permitindo que todo o processo seja ainda mais

24 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
transparente e íntegro. O uso de carteiras digitais também é uma possibilidade para que
produtores e comerciantes tenham mais controle do processo.
Para trabalhos futuros, é sugerido que a aplicação seja incrementada com mais
informações para o cadastro de transações, para que esse cadastro possa abranger um
número maior de situações reais. Também seria interessante possibilitar que um produto que
foi revendido seja rastreado até a primeira transação da qual fez parte.

Referências
ANDROUTSELLIS-THEOTOKIS, Stephanos; SPINELLIS, Diomidis. A survey of
peer-to-peer content distribution technologies. Acm Computing Surveys, [s.l.], v. 36, n. 4,
p. 335-371, 1 dez. 2004. Association for Computing Machinery (ACM).
http://dx.doi.org/10.1145/1041680.1041681.

BÖHME, Rainer et al. Bitcoin: Economics, technology, and governance. Journal


of economic Perspectives, v. 29, n. 2, p. 213-38, 2015.

CROSBY, Michael et al. Blockchain technology: Beyond bitcoin. Applied Innovation, v. 2,


n. 6-10, p. 71, 2016. Disponível em:
h ttps://j2-capital.com/wp-content/uploads/2017/11/AIR-2016-Blockchain.pdf. Acesso em:
09 de maio de 2020.

ETHEREUM.ORG. What is Ethereum? 2020. Disponível em:


https://ethereum.org/pt-br/what-is-ethereum/. Acesso em: 16 jun.
2020.

EXPERT, Blockchain. How Does Blockchain Work. 2018. Disponível em:


https://www.blockchainexpert.uk/blog/how-does-blockchain-work. Acesso em: 15 jun.
2020.

HE, Yunhua; LI, hong; CHENG, Xiuzhen; LIU, Yan; YANG, Chao; SUN, Limin.
A Blockchain Based Truthful IncentiveMechanism for Distributed P2P
Applications. IEEEAccess, v. 6, n. 2, p. 27324-27335, 2018.

IBGE. Censo Agropecuário. 2017. Disponível em:


https://cidades.ibge.gov.br/brasil/to/pesquisa/24/0. Acesso em: 09 maio 2020.

JOHN-EE. Internet Protocols: Peer-To-Peer & Video Streaming. Disponível


em: http://john-ee.com/internet-protocols-p2p-streaming/. Acesso em: 17 jun.
2020.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 25
MCCUBBIN, Gregory. How to Build Blockchain App - Ethereum Todo List 2019. 2020.
Disponível em: https://www.dappuniversity.com/articles/blockchain-app-tutorial. Acesso
em: 16 jun. 2020.

KELLERER, Wolfgang. Dienstarchitekturen in der Telekommunikation-


Evolution, methoden und vergleich. Technical Report TUM-LKN-TR-9801.
1998, 1998.

METAMASK.IO. Introduction. 2020. Disponível em:


https://docs.metamask.io/guide/#blockchain-connection. Acesso em: 16 jun.
2020.

MICROSOFT. Blockchain Fundamentals. 2019. Disponível em:


https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/march/blockchain-blockchain
-fundamentals. Acesso em: 13 maio. 2020.

MINISTÉRIO DA ECONOMIA. VBP – Valor Bruto da Produção Agropecuária.


2020. Disponível em:
http://www.fazenda.gov.br/centrais-de-conteudos/publicacoes/conjuntura-economica/agricola
/2020/2020-02-14-vbp-janeiro_2020.pdf. Acesso em: 10 maio 2020.

MOTA, Jhemeson Silva; SANTOS, Ian Macedo Maiwald; TEIXEIRA, Alexandre


Henrique Kavalerski; TORRES, Kennedy Santos; MARIOTI, Madianita Bogo. TDChain:
uso de blockchain na cadeia de distribuição de medicamentos. : uso de blockchain na
cadeia de distribuição de medicamentos. In: ENCOINFO – CONGRESSO DE
COMPUTAÇÃO E TECNOLOGIAS DA INFORMAÇÃO, 21., 2019, Palmas. Anais [...] .
Palmas: Ceulp/ulbra, 2019. p. 120-128. Disponível em:
h ttp://ulbra-to.br/encoinfo/artigo/tdchain-uso-de-blockchain-na-cadeia-de-distribuicao-de-
me dicamentos/. Acesso em: 13 maio 2020.

NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. [s.l.]:


Bitcoin, 2008. 9 p. Disponível em: https://bitcoin.org/bitcoin.pdf. Acesso em: 24 nov.
2018.

NODEJS.ORG. About Node.js. Disponível em: https://nodejs.org/en/about/. Acesso em:


16 jun. 2020.

PINNA, Andrea; IBBA, Simona; BARALLA, Gavina; TONELLI, Roberto; MARCHESI,


Michele. A Massive Analysis of Ethereum Smart Contracts Empirical Study and Code
Metrics. Ieee Access, [s.l.], v. 7, p. 78194-78213, 2019. Institute of Electrical and
Electronics Engineers (IEEE). http://dx.doi.org/10.1109/access.2019.2921936.

26 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
RAHMADIKA, Sandi et al. The Dilemma of Parameterizing Propagation Time in
Blockchain P2P Network. Journal Of Information Processing Systems. p. 699-717. jun.
2020. Disponível em:
https://www.researchgate.net/publication/343099173_The_Dilemma_of_Parameterizing_Pr
o pagation_Time_in_Blockchain_P2P_Network. Acesso em: 01 out. 2020.

ROUHANI, Sara; DETERS, Ralph. Performance analysis of ethereum transactions in


private blockchain. In: IEEE International Conference on Software Engineering and
Service Science (ICSESS), 8., 2017, Beijing. Proceedings [...] . Beijing: IEEE, 2017. p. 70-
74.

SEBRAE (Brasília). Orientações sobre a formalização rural. 2016. Disponível em:


h
ttps://www.sebrae.com.br/Sebrae/Portal%20Sebrae/Anexos/orientacoes%20formalizacao%2
0rural.pdf. Acesso em: 10 jun. 2020.

TOCANTINS. AGÊNCIA DE DEFESA AGROPECUÁRIA. Quem Somos. 2020.


Disponível em: https://adapec.to.gov.br/quem-somos/. Acesso em: 10 jun. 2020.

TRUFFLE SUITE. Ganache: one click blockchain. One Click Blockchain. Disponível
em: https://www.trufflesuite.com/. Acesso em: 16 jun. 2020.

ROCHA, J., DOMINGUES, M. A., CALLADO, A., SOUTO, E., SILVESTRE G.,
KAMIENSKI, C. A., SADOK, D. Peer-to-Peer: Computação Colaborativa na Internet
Minicursos SBRC2004 (capítulo de livro) p. 3-46, Maio 2004.

WALDMAN, Jonathan. Blockchain: conceitos básicos do blockchain. Conceitos básicos


do Blockchain. 2018. Disponível em:
https://docs.microsoft.com/pt-br/archive/msdn-magazine/2018/march/blockchain-
blockchain- fundamentals. Acesso em: 17 jun. 2020.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 27
Desenvolvimento de um aplicativo mobile para navegação
interna no CEULP/ULBRA
Lucas Costa da Silva¹, Fábio Castro Araújo¹
1
Sistemas de Informação - Centro Universitário Luterano de Palmas - CEULP/ULBRA,
Avenida Teotônio Segurado, 1501 SUL, CEP 77.019-900, Palmas – TO, Brasil
olucascosta98@gmail.com, fabiocastro@rede.ulbra.br

Resumo. Este artigo apresenta o processo de desenvolvimento de um aplicativo


mobile que utiliza conceitos de grafos e algoritmo de Dijkstra para calcular e
informar o caminho mínimo entre dois pontos localizados no ambiente interno do
CEULP/ULBRA. Para o desenvolvimento do aplicativo foi utilizado o framework
Flutter para criação da interface interativa, Dart para implementação dos códigos e
SVG para desenhar as imagens para construção do mapa interativo. O aplicativo
foi desenvolvido tendo como objetivo principal auxiliar alunos, funcionários e
visitantes da instituição a localizarem pontos de interesse na área interna do
campus, permitindo definir um ponto de origem e destino para calcular a menor
rota entre eles.
1. Introdução
Dentre as inúmeras inovações tecnológicas provenientes com a popularização dos
dispositivos móveis, os mapas digitais é um instrumento que está cada vez mais presente no
cotidiano das pessoas. Atualmente, aplicativos de mobilidade urbana ou os de delivery
utilizam esse recurso para a navegação em ambientes externos, auxiliando na criação de rotas
otimizadas entre um ponto de origem e destino, geralmente com instituto de reduzir a
distância, tempo ou recursos no caminho percorrido.
Apesar de não haver muitos obstáculos relativos à exploração ambientes externos,
resultado oriundo do mapeamento de diversas áreas ao redor do mundo. Ainda assim, pode
existir impedimentos para pessoas descobrirem seus destinos em ambientes internos, em
locais extensos como aeroportos, estádios, shoppings, hospitais entre outros. Isso pode ocorrer
principalmente quando não se conhece a área, quando não tem placas informativas no local ou
não há pessoas para solicitar alguma informação.
OHRT (2013) apresenta uma ferramenta web para criação mapas internos que podem
ser incorporados em aplicativos mobile, além de utilizar grafos para armazenar dados dos
pontos de interesse e mapeamento das rotas. Descreve uso de tecnologias como imagens SVG
(Scalable Vector Graphics) e linguagem XML (eXtensible Markup Language) para
construção dos mapas internos. Além disso, analisou o desempenho de renderização e
manipulação de imagens SVG em diferentes aparelhos. Conclui que mesmo mapas sendo
grandes podem ser exibidos em dispositivos móveis, tendo um desempenho satisfatório no
uso de aplicativos de navegação interna.

O Centro Universitário Luterano de Palmas possui uma infraestrutura ampla, com


diversos blocos, setores e salas, ambiente que a descoberta de um determinado local pode ser
tornar um desafio. Nesse contexto, o objetivo geral deste trabalho é desenvolver um aplicativo
para auxiliar à localização de visitantes, funcionários e acadêmicos no ambiente interno do
CEULP/ULBRA. Através do uso de grafos e Algoritmo de Dijkstra para calcular o caminho
mínimo entre um dado ponto de origem e destino. E utilizando o framework Flutter e SVG
para desenvolver a interface para visualização desse caminho sobre um mapa digital
interativo.
28 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
2. Referencial Teórico

2.1 Grafos
De acordo com Negri (2017), um grafo consiste em um conjunto finito e não vazio
de elementos denominados de vértices (nós) e um conjunto de pares não
ordenados de arestas (arcos), podendo ser demonstrado como , sendo
e . Os grafos são habitualmente representados através de diagramas, onde cada
vértice de são equivalentes aos pontos do desenho e as linhas que conectam os vértices
correspondentes equivalem as arestas de .
O grau de cada vértice de de um grafo , é definido pelo número de
arestas incidentes ao vértice (COSTA, 2011). Um grafo valorado (rotulado ou ponderado) é
definido como G onde é o conjunto de vértices, o conjunto de arestas e
um conjunto de números reais associados às arestas ou vértices do grafo (SOUZA, 2014).
Conceito normalmente utilizado para representar um custo, peso ou distância entre dois
vértices.
Um digrafo (grafo orientado) é um par ordenado , onde cada aresta de
contêm uma orientação específica a ser seguida entre um vértice de origem e destino
(SOUZA, 2014). Por exemplo, ser possível ir de um vértice para um vértice , mas não o
oposto. Um percurso (passeio) em um grafo , é uma sequência de vértices ,
conectados por uma sequência de arestas (SOUZA, 2014). Já um caminho é um passeio entre
e , sendo todos os seus vértices diferentes uns dos outros, sendo a origem e o
destino (COSTA, 2011).

2.2 Algoritmo de Dijkstra


O algoritmo de Dijkstra criado por um cientista da computação holandês, Edsger
Dijkstra, solucionou o problema do caminho mínimo entre um vértice origem e destino em
grafos valorados, em outras palavras, o algoritmo encontra o caminho que possui a menor
distância, custo ou peso entre dois vértices, e (MENDONCA, 2017). Dado um grafo
, o algoritmo aplica-se somente se o conjunto possuir apenas arestas de peso
não negativo (NEGRI, 2017).
Segundo Osta (2019) o algoritmo utiliza uma técnica denominada de “relaxamento”,
que consiste em verificar a cada iteração se existe alguma possibilidade de melhorar a
distância mínima descoberta até um determinado vértice. Esse procedimento é aplicado
vezes, com a complexidade . Visto que nesse procedimento o algoritmo sempre opta
pelo vértice de “mais leve”, devido a esse fato, fica evidente a utilização de uma estratégia
gulosa (CORMEN, 2012).
O tempo computacional do algoritmo de Dijkstra é onde é o
número de arestas e é o número de vértices, mas o desempenho depende principalmente da
implementação da priority queue (CORMEN, 2012).

3. Materiais e Métodos
Para o desenvolvimento das funcionalidades aplicação mobile foram usadas as
seguintes tecnologias:
● Dart: Linguagem de programação open source, multiparadigma e fortemente tipada,
embora as declarações de tipo serem opcionais. Criado pela Google, inicialmente para
criação de scripts para web, atualmente também pode ser utilizado para o
desenvolvimento de aplicações mobile, desktop e back-end.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 29
● Flutter: Framework open source construído pela Google para o desenvolvimento de
aplicativos multiplataforma a partir de um único código-fonte. Utiliza o Dart como
principal linguagem de programação.
● SVG: Formato de imagem que utiliza a sintaxe do XML para criação de gráficos
vetoriais bidimensionais. O SVG tem como principal vantagem o modo que as
imagens são criadas, como as imagens vetoriais utiliza expressões matemáticas
desenhar as formas geométricas, quando redimensionadas não sofre perda de
qualidade em relação ao conteúdo original.
O processo de desenvolvimento do aplicativo mobile foi divido em cinco etapas,
seguidas na ordem apresentada pela Figura 1.

Figura 1. Etapas do desenvolvimento do aplicativo


A etapa inicial consistiu em mapear (1) a área interna do CEULP/ULBRA e desenhar
as imagens SVG do ambiente, passando para criação do grafo (2) com informações das
distâncias e localizações dos pontos de interesses. Para o desenvolvimento da interface (3) foi
utilizado o framework Flutter para a construção do mapa interativo com as imagens SVG. Em
seguida, foi aplicado o Algoritmo de Dijkstra (4) sobre o grafo construído, por fim, foi
desenhado o menor caminho (5) sobre o mapa interativo, manipulando os parâmetros da
estrutura XML do formato SVG.
4. Desenvolvimento
O processo desenvolvimento do aplicativo mobile iniciou com o mapeamento do
campus, para essa finalidade foram solicitadas as plantas baixas à Fábrica de Software do
CEULP/ULBRA. As plantas baixas foram disponibilizadas em arquivos no formato PDF
(Portable Document Format), sendo composta de toda a infraestrutura da instituição. A
criação do mapa digital no formato SVG seguiu as dimensões e distâncias entre cada
construção de acordo com as proporções reais do campus disponíveis nas plantas baixas.
A partir do estudo das plantas, foi escolhido dois prédios para a construção do mapa.
Os prédios foram desenhados utilizando o editor de imagens vetoriais Adobe Illustrator, as
plantas correspondentes a cada prédio foram importadas para a ferramenta e então desenhado
as construções contornando as estruturas dos prédios. Ao finalizar, o desenho foi exportado
como um arquivo no formato SVG, para mais tarde ser utilizado na aplicação mobile.

30 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 2. Desenho do Grafo
Em seguida, para o entender, visualizar e desenvolver o grafo, foi criado um
desenho na ferramenta web Draw.io, conforme a prévia apresentada na Figura 2. O grafo da
figura exibe pontos de cor cinza são denominados de vértices auxiliares que representam o
acesso ao corredor, e os demais são correspondes aos pontos de interesses.

Figura 3. Estrutura do arquivo JSON


Para armazenar as informações dos pontos de interesse foi criado um arquivo
JSON (JavaScript Object Notation) para estruturar os dados do grafo, conforme exibe a
Figura 3. O arquivo foi organizado seguindo a seguinte estrutura em que os pontos de
interesses estão localizados em andares e os andares estão contidos em prédios, e levando em
consideração os elementos do grafo, onde os vértices são os pontos de interesses e os vértices
possui um conjunto de arestas que conecta dois pontos.
A interface do aplicativo mobile foi desenvolvido com o framework Flutter, a imagem
criada no formato SVG foi compilada na aplicação utilizando o flutter_svg, uma biblioteca
nativa da linguagem Dart. Para acrescentar as principais funcionalidades de um mapa
interativo, foi utilizado a biblioteca photo_view, que transforma imagens estáticas em
interativas, fornece um widget sensível a gestos do usuário podendo ampliar e reduzir o zoom,
girar e arrastar a imagem.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 31
Figura 4. Algoritmo de Dijkstra
O Algoritmo de Dijkstra foi implementado na linguagem Dart, como ilustrado na
Figura 4. A iniciação do algoritmo depende do carregamento dos dados do arquivo JSON para
geração do grafo, como apresenta o trecho entre as linhas 8 a 13, o construtor nomeado
Dijkstra fromJSON é o encarregado a realizar o processo, as informações dos pontos de
interesse são adicionadas a uma lista de vértices(nós), um Node possui dados como: nome,
distância, coordenadas e um conjunto de nós vizinhos que representam as arestas com suas
respectivas distâncias.
O cálculo do menor caminho é apresentado no construtor nomeado Dijkstra
fromGraph, entre as linhas 15 a 55, que recebe como parâmetro o grafo com as informações
dos pontos de interesse. A fila de prioridade do algoritmo foi implementada utilizando a
classe PiorityQuere da biblioteca nativa Dart collection. A função pathTo recebe a origem o
destino como parâmetros e retorna o menor caminho entre eles.

32 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 5. Desenho do menor caminho
Após a construção do grafo e a aplicação do algoritmo de Dijkstra, foi implementado a
função para o desenho do caminho mínimo sobre o mapa interativo, conforme apresentado na
Figura 6. A função recebe a imagem SVG do campus em forma de texto e a lista de nós que
compõe o menor caminho. Para desenhar o caminho sobre o mapa interativo foi utilizado o
DOM (Document Object Model), que manipula os objetos da estrutura XML da imagem
SVG.
O DOM representa o documento SVG como uma árvore lógica composta de nós e
objetos, dessa forma, possibilita a manipulação da estrutura, estilo ou conteúdo do
documento. Para desenhar a rota, é adicionado um elemento line na árvore de objetos, criando
uma linha entre o ponto de origem e destino. O elemento é criado usando os atributos x1, x2,
y1 e y2 para criar um caminho entre as coordenadas x e y de dois pontos de interesse. Cada
ponto de interesse mantém uma coordenada (x, y), x representa a posição horizontal e y a
posição vertical da imagem SVG.

Figura 6. Tela do Aplicativo


A Figura 6 apresenta a tela do aplicativo mobile desenvolvido com framework Flutter,
o mapa interativo foi construído utilizando as plantas baixas dos blocos 2 e 3 do
CEULP/ULBRA. A linha exibida no aplicativo representa o caminho entre o “Hall” e a “Sala
217”, parâmetros utilizados na aplicação do algoritmo Dijkstra no grafo construído.
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 33
5. Considerações Finais
O presente trabalho teve o objetivo de desenvolver um aplicativo mobile para ser
utilizado como um guia de navegação para alunos, funcionários e visitantes do Centro
Universitário Luterano de Palmas que não conhecem a infraestrutura interna do campus. O
aplicativo ajudará esses usuários a encontrarem seus pontos de interesse mais facilmente, com
o auxílio de um mapa interativo que exibe rotas calculadas pelo algoritmo de Dijkstra.
No desenvolvimento do mapa interativo foi dada uma atenção especial as proporções
reais da instituição, para esse fim, as dimensões dos prédios e salas e as distâncias entre os
pontos de interesses foram definidas seguindo as informações disponíveis nas plantas baixas.
Outro ponto que demandou atenção foi na construção do grafo, especialmente na organização
vértices e arestas, a forma com que as informações desses elementos estão organizadas
influenciam diretamente na aplicação do algoritmo de Dijkstra e no desenho do menor
caminho.
Para trabalhos futuros, novas funcionalidades podem ser adicionadas na aplicação para
melhorar a experiência do usuário, como por exemplo: Integração com sistemas da
instituição; utilizar métodos de microlocalização; adicionar a possibilidade de mudar o andar
de um prédio; criar um a API para gerenciar as informações dos pontos de interesse; integrar
o mapa interno com área externa do campus; adicionar recursos de acessibilidade.

Referências
CORMEN, T. H. et al. Algoritmos: Teoria e Prática. Tradução de Arlete Simille Marques. 3º.
ed. Rio de Janeiro: Elsevier, 2012. 944 p.

COSTA, P. P. Teoria dos Grafos e suas Aplicações. 2011. 77 p. Dissertação (Mestrado em


Matemática Universitária) - Universidade Estadual Paulista Júlio de Mesquita Filho, Instituto
de Geociências e Ciências Exatas, Rio Claro, 2011. Disponível em:
<https://repositorio.unesp.br/bitstream/handle/11449/94358/costa_pp_me_rcla.pdf>. Acesso
em: 20 set. 2020.

MENDONCA, P. F.; KESTRING, F. B. F; SILVA, F. P. Um estudo sobre algoritmos para


roteirização. Revista Eletrônica Científica Inovação e Tecnologia, Edição Especial Cadernos
Matemática, E – 5122, 2017. Disponível em:
<https://periodicos.utfpr.edu.br/recit/article/view/e-5122/pdf_1>. Acesso em: 21 set. 2020.

NEGRI, M. A. S. Caminhos em um grafo e o algoritmo de Dijkstra. 2017. 75 p.


Dissertação (Mestrado Profissional em Matemática) – Universidade Federal de Santa
Catarina, Centro de Ciências Físicas e Matemáticas, Programa de Pós Graduação em
Matemática, Florianópolis/SC, 2017. Disponível em:
<https://repositorio.ufsc.br/xmlui/bitstream/handle/123456789/183409/349816.pdf>. Acesso
em: 20 set. 2020.

OHRT, J.; TURAU, V. Simple indoor routing on svg maps. International Conference on
Indoor Positioning and Indoor Navigation. IEEE, p. 1-6, 2013. Disponível em:
<https://ieeexplore.ieee.org/document/6851432>. Acesso em: 19 set. 2020.

OSTA, C. Z. Análise comparativa de algoritmos de caminho de custo mínimo aplicado


em rede de fibra óptica. 2019. 47p. Trabalho de Conclusão de Curso (Graduação) – Curso
de Sistemas de Informação, Centro Tecnológico da Universidade Federal de Santa Catarina,
Florianópolis/SC, 2019. Disponível em:
34 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
<https://repositorio.ufsc.br/bitstream/handle/123456789/202485/Monografia_Christian_Zirke
_Osta.pdf>. Acesso em: 21 set. 2020.

SOUZA, R. F. Resolução de problemas via teoria de grafos. 2014. 48 p. Dissertação


(Mestrado Profissional em Matemática) – Instituto de Ciências Matemáticas e de Computação
- Universidade de São Paulo, São Carlos, 2014. Disponível em:
<https://www.teses.usp.br/teses/disponiveis/55/55136/tde-06072015-
103319/publico/Dissertacao_RenatoFdeSouza_Revisada.pdf >. Acesso em: 20 set. 2020.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 35
Desenvolvimento de uma ferramenta para validação de
Fórmulas Proposicionais usando o método de Árvore de
Refutação
Danilo Saraiva Vicente1, Parcilene Fernandes de Brito1

Centro Universitário Luterano de Palmas (CEULP/ULBRA) – Palmas, TO – Brasil


1

danilo.sarai@@rede.ulbra.br,parcilene.brito@ulbra.br

Resumo. Este trabalho se propõe a apresentar o módulo desenvolvido para


realizar a verificação da validade de fórmulas da lógica proposicional por meio do
método denominado “árvore de refutação”. Esse método verifica se uma dada
fórmula é válida ou inválida pela tentativa de redução ao absurdo, ou seja,
verifica se a negação da conclusão resulta em uma contradição. Para tanto, a
ferramenta permite a verificação da validade de fórmulas de maneira automática e
conforme a interação do usuário.

1. Introdução

A lógica apresenta conceitos que abrangem permeiam diferentes áreas de estudo. Neste
trabalho, será feito o uso da Lógica Proposicional, que compreende uma das partes da
Lógica Clássica. Segundo Murcho (2003), o estudo da Lógica Proposicional permite a
avaliação e a demonstração da validade de argumentos a partir de um conjunto de regras.
Ou seja, é por meio da Lógica Proposicional que é analisada a relação entre proposições na
busca da formalização e validação do raciocínio lógico.

Uma forma de verificar a veracidade da fórmula proposicional é através do método


de árvore de refutação. Segundo Fendt (200, p.40), “esse método consiste em um processo
de prova por refutação, que busca provar um teorema pelo insucesso na tentativa de
construção sistemática de um modelo para sua negação”. Tal método é aplicado por um
conjunto de regras e resulta numa representação visual em árvore.

Após o estudo da lógica proposicional e do método “Árvore de refutação” foi


possível construir a ferramenta para validação e demonstração de fórmulas lógicas baseada
no método de “Árvore de refutação”. A ferramenta desenvolvida permite realizar um
processo automático de derivação ou a derivação através da interação do usuário.
Todas as fórmulas lógicas lidas pela ferramenta devem possuir uma estrutura que possibilite
a identificação de todos os elementos da fórmula, para isso a ferramenta utiliza uma
estrutura em XML apresentada em Brito (2003), e modificada para atender somente as
fórmulas da lógica proposicional. Mas para que não seja necessário o entendimento do
usuário da estrutura XML, a ferramenta utiliza ainda de uma gramática para criação das
fórmulas. Tal gramática foi desenvolvida para criação e validação de fórmulas da lógica
proposicional, criada com o auxílio do ANTLR( ANother Tool for Language Recognition),
um gerador de analisadores utilizado para ler, processar, executar arquivos binários ou texto
e transformá-los em uma estrutura organizada.
Após a aquisição do XML gerado pela gramática, são realizadas outras duas etapas.
A primeira tem o objetivo de fazer a leitura das fórmulas estruturadas em XML e criar uma
representação da fórmula proposicional. A segunda etapa é encarregada de aplicar as
36 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
derivações método de Árvore de Refutação na fórmula criada na etapa anterior. Ainda na
segunda etapa, a ferramenta possibilita realizar a derivação automática ou com a interação
do usuário. No processo de derivação automático a árvore de refutação é construída
instantaneamente pela ferramenta e segue algumas heurísticas de otimização. A derivação
com a interação do usuário permite que a derivação ocorra a partir de ações executadas por
ele , ou seja, não existe restrição de qual elemento da árvore deve ser derivado antes do
outro. A árvore gerada pelo método de árvore de refutação é representada graficamente no
browser após um processo de transformação onde cada nó da árvore assume uma posição X
e Y dentro de uma determinada área de desenho no browser. Dessa forma, com o uso da
ferramenta é possível realizar validações das fórmulas proposicionais e visualizar o
resultado.

2. Método de Árvore de Refutação

O método de Árvore de Refutação é um dos métodos práticos de avaliação e demonstração


da validade de argumento, feito através da aplicação de regras a uma fórmula bem estrutura.
Segundo Buchsbaum e Pequeno (1990), é um método que possui fundamento semântico,
pois ao tentar provar que “α” é um teorema lógico, o que o método realmente faz é verificar
a impossibilidade da negação de “α”. Para Fendt (2003, p 40), a aplicação das regras da
árvore de refutação consiste em um método de prova por refutação, no qual prova-se um
teorema pelo insucesso da tentativa de construção sistemática de um modelo para a
negação. A figura 1 a seguir ilustra as dez regras de derivação do método.

Figura 1 - Regras de derivação.

As regras apresentadas na Figura 1 são baseadas dos conectivos lógicos, e para cada um dos
conectivos existe um par de regras que determinam como derivar e inserir um novo
elemento na árvore de refutação. Esse provador busca realizar a validação de fórmulas da
lógica proposicional.

3. Trabalhos Relacionados

Nesta seção serão apresentados trabalhos que utilizaram o método de Árvore de Refutação
para criação de provadores de fórmulas lógicas. Em Brito (2003) é apresentado a
implementação de um desses provadores de teoremas baseado no método de Árvore de
Refutação. Para o desenvolvimento do trabalho, foi utilizado pela a autora as tecnologias
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 37
Java e XML. Segundo a autora, o XML foi utilizado para a definição de uma estrutura para
representar as fórmulas quantificacionais para fornecer uma base para realizar o tratamento
adequado de cada um dos elementos que compõe a fórmula. E após a criação da fórmula no
documento XML e sua validação pelo DTD foi possível realizar o tratamento através do
provador desenvolvido em Java (BRITO, 2003). Com o objetivo de aumentar a eficiência, a
autora acrescenta em seu provador “refinamentos” para simplificar a árvore e
consequentemente diminuir a quantidade de nós. Tal provador possui um estrutura de
classes, dessa forma existe uma classe responsável pela abertura do documento XML e
geração do DOM em memória. Uma classe para manipular e apresentar a árvore.

Foi apresentado por Cravo (2015) a continuação do desenvolvimento de um


provador de fórmulas para a Lógica clássica de primeira ordem. Segundo o autor trata-se de
um provador interativo, pois permite realizar configurações nos processos de prova da
validade da fórmula. O provador foi desenvolvido inicialmente por um grupo de estudantes
no evento “Projekt Symbolische Künstliche Intelligenz”. O provador permite, através de
uma base de conhecimento disponibilizada pelo usuário, provar ou contradizer as
expressões lógicas (CRAVO, 2015). Segundo o autor, esse provador também utiliza de
heurísticas de “refinamentos” para realizar o processo de prova, diz ainda que foi utilizado
de um parser e uma gramática para a lógica de primeira ordem, mas infelizmente o autor
não demonstra como são estruturadas as fórmulas lógicas no provador. O provedor
apresentado por Cravo (2015) foi desenvolvido na linguagem java e também possui uma
estrutura de hierarquia de classe.

4. Materiais e Métodos

Para o desenvolvimento da ferramenta, foi necessário aprimorar os conhecimentos da lógica


proposicional, principalmente em relação ao método de validação “árvore de refutação”.
Em seguida, foi necessário estudar as metodologias de ensino aplicadas na matéria de
Lógica de Predicados referente a esse conteúdo com a especialista do domínio e professora
da citada disciplina. Com esses conhecimentos adquiridos, foi então possível escolher os
materiais de desenvolvimento que melhor se adequam às necessidades do projeto, para
posteriormente realizar implementação, a figura 2 a seguir, ilustra separadamente cada uma
dessas cinco etapas para desenvolvimento da ferramenta.

Figura 2 - Fluxo de etapas.

A figura 2, ilustra as etapas necessárias para alcançar o objetivo deste trabalho. Na


etapa 1 foi feito a revisão dos conceitos e aplicações da lógica, mais especificamente o
cálculo proporcional e o estudo direcionado ao método de Árvore de Refutação. A etapa 2
aconteceu por meio de reuniões com professora da disciplina de Lógica de Predicados.
Após as reuniões, foi possível compreender os processos de ensino teóricos e práticos

38 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
aplicados pela mesma. o que permitiu compreender os requisitos para criar um protótipo
mais próximo do modelo final.

Após a prototipação da ferramenta na etapa 3 foi compreendido quais materiais


eram necessários para o desenvolvimento, são eles; Laravel: Utilizado para o
desenvolvimento do Back-end, trata-se de um framework da linguagem PHP que possui
recursos para construção de API Rest. Angular: Utilizado para o desenvolvimento
desenvolvimento do Front-end, é um framework baseado na linguagem TypeScript. O uso
do framework permitiu uma construção organizada da ferramenta e agilizou o processo de
desenvolvimento. SVG: é uma linguagem de marcação para descrever imagens gráficas
bidimensionais, e foi utilizado para representação gráfica da Árvore de Refutação. XML: é
uma linguagem de marcação de texto que permite a criação de elementos de marcação para
criação de documentos organizados hierarquicamente, o XML foi utilizado para estruturar
as fórmulas proposicionais. GramLogic: Seu uso permite a criação e validação da estrutura
de fórmulas da lógica proposicional através de uma gramática própria. O GramLogic é
criado com a ferramenta ANTLR.

Com os resultados obtidos nas etapas anteriores, foi possível na etapa 4 construir
uma representação computacional das fórmulas proposicionais, o que permitiu a
manipulação para realizar o processo de resolução do método árvore de refutação de forma
automatizada, e também com a interferência do usuário nas escolhas das derivações.

5. Resultados

O desenvolvimento da ferramenta foi dividido em Back-end e Front-End. Para a criação do


Back-End foi utilizado o framework Laravel, especificamente os recursos que facilitam a
criação de uma API Rest. Já para o Front-End, foi utilizado o framework Angular. A figura
4 a seguir ilustra simplificadamente essa estrutura.

Figura 3 -Back-end.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 39
A figura 3 apresenta a estrutura simplificada do back-end e Front-End. No back-end
são apresentados três domínios. O primeiro, Routes API engloba recursos do framework
Laravel para construção de rotas com padrão de API’s Rest, que serão consumidas pelo
Front-end da ferramenta. O segundo, Controllers API, é responsável por executar as ações
que se espera de cada uma das rotas e criar a mensagem de resposta. O arquivo
“OtimizadaController” (número 2 do back-end da figura 3) possui todos os recursos para
criar a Árvore de Refutação Otimizada. O arquivo “PassoController” (número 3 do back-
end da figura 3) possui todos os recursos para que a Árvore de Refutação seja construída
conforme as ações do usuário.

No terceiro domínio do back-end, Módulo , está presente a estrutura responsável


pela interpretação da fórmula e aplicação do método de Árvore de Refutação. Esse domínio
está dividido em Models e Controllers. É no Models que estão os arquivos que definem a
estrutura da Fórmula e da Árvore. A estrutura da Fórmula é composta por três elementos:
premissa, conclusão e predicados; Cada um desses elementos é representado por uma classe
de objetos PHP (numero 4 a 6 do back-end da figura 3). A estrutura da Árvore é composta
por um elemento chamado “nó”, que também é representado por uma classe de objeto PHP
(numero 6 do back-end da figura 4). Na outra parte do domínio estão os Controllers. Nesta
parte do domínio existe dois arquivos chamados “gerador.php” (numero 7 e 8 do back-end
da figura 3) que são responsáveis por interpretar a estrutura da fórmula em XML e
transformá-la nos models, e criar a árvore de refutação. Existe ainda um arquivo chamado
“regras.php” (numero 10 do back-end da figura 3), que é responsável por aplicar a
derivação. Este arquivo é chamado pelo controller “gerador.php” toda vez que existe a
intenção de derivar um nó.

A figura 4 ilustra também o Front-end de forma simplificada. Nela são apresentados


três domínios. O primeiro, Components, é responsável pela exibição da interface para o
usuário. Ele contém um outro componente, chamado “Árvore” (número 4 a 6 do Front-
end da figura 3). Neles estão descritas as interfaces e a lógica de negócio. O recurso
SVG é utilizado neste domínio para desenhar a Árvore de Refutação. O segundo,
GramLogic, refere-se a gramática para criação da estrutura XML. Quando o usuário insere
a fórmula (conforme as regras da gramática), ela é enviada ao GramLogic para que seja
validada a escrita da fórmula e criada a estrutura XML. E o terceiro domínio do Front-end,
Service, é responsável pela comunicação com o Back-end. Desse modo todas as requisições
ao servidor Back-end passam por esse domínio.

Figura 4 -Tela - criando ramo inicial

40 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A figura 4 apresenta a tela carregada após o usuário inserir uma fórmula válida
(conforme a gramática). Essa tela contém três áreas: a área 1 é reservada para desenho da
Árvore de Refutação, na área 2 ficam localizados os controles para interação com a
ferramenta e, na área 3, um console para exibir todas as informações referentes às ações do
usuário, ou seja, o console informa mensagens de erro e de sucesso. A área de controles (2)
é separada em duas etapas, que estão ilustradas na figura 6 a seguir.

Figura 5 -Telas -controles.

A figura 5 apresenta as informações contidas na área de controles citada na figura 5.


Essas informações são separadas em dois momentos. O primeiro momento (número 1 da
figura 5) é apresentado ao usuário assim que o processo de validação é iniciado. Esse
primeiro momento tem a finalidade de reconhecer todas as premissas e a conclusão da
fórmula, e disponibilizar para inserção na árvore, ou seja, o primeiro momento está
relacionado com a criação do ramo inicial. Desse modo, a ferramenta exige o
posicionamento de todas as premissas e conclusão como nós da árvore antes de iniciar o
processo de derivação. O segundo momento (número 2 da figura 5) é exibido somente com
a finalização do momento anterior. Nele o usuário realiza todas as ações pertinentes à
derivação, por exemplo, fechar um ramo ou derivar um nó. Mas para que essas ações sejam
realizadas, é necessário realizar a seleção dos nós de interesse, tal processo é apresentado na
figura 6 a seguir.

Figura 6 -Tipos de Derivações.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 41
A figura 6 apresenta os três tipos de seleção da ferramenta, que possibilitam realizar
todos os tipos de derivações na árvore. A seleção dos nós funciona da seguinte forma: o
usuário deve realizar a ação de click no nó que deseja derivar. Após clicar no nó de
interesse, o mesmo será destacado em vermelho. Em seguida o usuário deve clicar em um
ou mais nós que receberão a derivação. Após clicar nos nós de interesse, estes serão
destacados em amarelo, os números 1 e 2 da figura 6 apresentam esse dois tipo de seleção.
O terceiro tipo de seleção ocorre quando o usuário deseja derivar um nó folha e inserir os
nós resultantes da derivação no mesmo nó que se deseja derivar. Desse modo, o usuário
deve realizar um duplo click no nó de interesse. Após realizar o duplo click, o nó será
destacado em amarelo e vermelho, o número 3 da figura 6 apresenta esse tipo de seleção.

Figura 7 -Fechando ramo e destacando nó.

A figura 7 apresenta outras duas maneiras de realizar seleções. Essas seleções são
utilizadas pela ferramenta para fechar um ramo e marcar um nó como já derivado. Para
fechar um ramo deve-se primeiro selecionar o nó que deseja fechar, desse modo ele ficará
destacado em vermelho. Em seguida deve ser selecionado o nó de contradição, que ficará
destacado em amarelo. Para marcar um nó como utilizado, deve-se apenas realizar a seleção
do nó de interesse, desse modo ele ficará destacado em vermelho. Após realizar alguma
uma seleção, o passo seguinte é informar no “área de controle” a ação desejada.
Figura 8 -Tela Derivação Automática.

42 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A figura 8 apresenta a tela do ambiente de derivação automático. Esta tela é
semelhante a da derivação pela interação do usuário, pois ela apresenta uma área para
exibição da fórmula gerada (letra A da figura 8) e um console para exibição de mensagem
em caso de erro ou sucesso (letra C da figura 8). Entretanto, a área B da figura 8 é destinada
ao evento relacionado a escrita da fórmula a ser derivada. O campo de entrada (número 1
da figura) recebe a fórmula no formato texto que é validada automaticamente pela
Gramlogic. Após a gramática validada, o botão para visualização da árvore de refutação é
liberado ( número 2 da figura). Então basta clicá-lo para obter o resultado da derivação.
Existe ainda outro botão ( número 3 da figura) que direciona o usuário para uma janela que
ensina os usuários a escreverem a fórmula de acordo com as regras da gramática.

6. Considerações finais

A ferramenta apresentada neste artigo busca auxiliar o entendimento do processo de


validação e possibilita a aplicação do método a partir da leitura de fórmulas proposicionais
estruturadas em XML. Atualmente a ferramenta permite a verificação e construção da
árvore de refutação por um processo automático de derivação, e através da participação do
usuário. A construção da ferramenta foi possível após o cumprimento de etapas de estudo
do método de Árvore de Refutação para validação de fórmula proporcionais e de reuniões
com a especialista do domínio para compreensão das dinâmicas realizadas na disciplina de
Lógica

Desse modo, a ferramenta resultante deste trabalho é capaz de auxiliar os usuários a


verificarem a construção da árvore de refutação por meio de criação automática da árvore,
como também o entendimento das regras, visto a possibilidade do usuário validar a fórmula
construindo a árvore de acordo com sua escolha de derivação. A ferramenta traz ainda uma
interface que se preocupa em mostrar os

resultado de maneira amigável para os usuários. Para isso, apresenta de maneira


simplificada o processo de derivação com o objetivo de facilitar a compreensão. Como
trabalhos futuros, podem ser adicionados elementos da lógica quantificacional, como os
quantificadores universal e existencial. Para tanto, será necessário criar métodos para lidar
com variáveis e letras nominais relacionadas aos quantificadores, bem como definir
elementos na interface que auxiliem no entendimento das derivações.

Referências

BRITO, Parcilene Fernandes de. Dedução Automática por Tableaux estruturada em


XML. 2003. 123 f. Dissertação (Mestrado) - Curso de Ciência da Computação,
Universidade Federal de Santa Catarina, Florianópolis, 2003. Disponível em:
<https://repositorio.ufsc.br/handle/123456789/84615>

BUCHSBAUM, Arthur Ronald de Vallauris. O método de tableaux generalizado e sua


aplicação ao raciocínio automático em lógicas não clássicas , Artigo, Disponível em:
<http://www.inf.ufsc.br/~arthur.buchsbaum/publicacoes/artigos_revistas/OMetododo
sTableauxGeneralizado.pdf>

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 43
FENDT, Letícia Carvalho Pivetta. Refinamentos para o método dos tableaux. 2000.
Dissertação (Mestrado), Universidade Federal de Santa Catarina, Florianópolis.
Disponível em:
<https://repositorio.ufsc.br/bitstream/handle/123456789/78215/152854.pdf>

MURCHO Desidério. O lugar da Lógica na Filosofia. 2003

NOLT, John; ROHATYN, Dennis. Lógica. São Paulo: Mcgraw-Hill, 1991. 596 p.
Disponível
em:<https://racionalistasusp.files.wordpress.com/2010/01/nolt-john-rohatyn-dennis-l
c3b3gica.pdf>

RAVO, Diogo Raphael. Continuação do desenvolvimento de um provador de teoremas


para a lógica clássica de primeira ordem e criação de um raciocinador com o
método analítico de Tableau para uma lógica de descrição. 2015. 138 f. TCC
(Graduação) - Curso de Curso de Ciência da Computação, Universidade Federal do Rio
Grande do Sul, Porto Alegre, 2015. Disponível em:
https://lume.ufrgs.br/handle/10183/126062. Acesso em: 30 set. 2020

SILVESTRINI, Luiz Henrique da Cruz. Tableaux e Indução na Lógica do Plausível.


2005 Dissertação (Mestrado), Universidade Estadual Paulista, São Paulo 2013.
Disponível em:
<https://repositorio.unesp.br/bitstream/handle/11449/91404/silvestrini_lhc_me_mar.
pd>.

44 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Desenvolvimento de uma gramática para auxílio no processo
de criação e validação de fórmulas proposicionais estruturada em
XML do Logic Live
Danilo Saraiva Vicente¹, Emanoel Mendes Magalhães¹, Nalberthy Sousa da
Silva¹, Jackson Gomes de Souza²

¹Acadêmico do curso de Ciência da Computação no CEULP/ULBRA


²Mestre em Ciência da Computação e Professor dos cursos de Sistemas de
Informação, Ciência da Computação e Engenharia de Software do CEULP/ULBRA
{danilo.saraiva, emmmagalhaes, nalberthy}
@rede.ulbra.br, jackson.souza@ulbra.br

Resumo. O LogicLive é uma plataforma criada para auxiliar no processo de ensino


e aprendizagem de entusiastas e acadêmicos que estudam a lógica proposicional,
atualmente a plataforma conta com módulos gamificados que disponibilizam
conceitos e objetivos a serem cumpridos. Ao analisar os módulos presentes na
plataforma, verificou-se que utilizam entradas de fórmulas proposicionais
estruturadas em documentos XML criados de forma manual pelos desenvolvedores
dos módulos. Para automatização do processo de criação das fórmulas
proposicionais, foi desenvolvido a ferramenta GramLogic que possui uma
gramática e um parser capaz transformar a fórmula inserida pelo usuário em um
arquivo XML estruturado com a fórmula inserida e validada.

Palavras-chave: Fórmula Proposicional, XML, Gramática, ANTLR4

1. Introdução

Para apoiar entusiastas e acadêmicos nos estudos da lógica pesquisadores dos cursos
de Ciência da computação, Sistemas de Informação e Engenharia de Software do
CEULP/ULBRA (Centro Universitário Luterano de Palmas) desenvolveram o Logic Live,
uma plataforma gamificada que segundo Brandão (2019, p.13)“O projeto Logic Live [...] é
composto por uma série de módulos que visam auxiliar os acadêmicos no processo de
ensino-aprendizagem da disciplina de Lógica, promovendo o acompanhamento pedagógico
por meio de plataforma gamificada online”. A plataforma conta com módulos que abordam
segmentos da Lógica, mais especificamente da Lógica Proposicional. Segundo Fassbinder
(2010, p.43 ) “a Lógica Proposicional estuda certas relações externas entre fórmulas,
expressas pelos conectivos”. Desse modo, pôr em prática o uso da Lógica Proposicional é
comprovar a veracidade de um argumento para um determinado contexto, através da análise
de um conjunto de hipóteses relacionadas.
A gamificação realizada em cada módulo da plataforma Logic Live auxilia o
processo de aprendizagem. Os módulos disponibilizam aos acadêmicos e entusiastas
objetivos a serem seguidos, e para cada atividade realizada de maneira correta são
acumulados pontos em um rank geral da Plataforma.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 45
Para cada módulo criado na plataforma são elaborados diversos de exercícios, e para
cada um desses exercícios existe uma fórmula da lógica proposicional que precisa
ser interpretada pelo módulo para realizar as ações referentes ao desafio. A maneira
utilizada para compreender as fórmulas é através de uma representação em XML. No
entanto, o processo de construção da fórmula em XML é realizado manualmente para cada
um dos exercícios, o que dificulta a criação de novos exercício e limita a utilização do
módulo a usuários que compreendam a estrutura e o formato XML.
Segundo Ferreira (2018) “a gramática adotada no projeto de uma linguagem é
essencial, pois é através dela que os sistemas de tradução identificam as entradas válidas e
são capazes de extrair as informações necessárias”. O parser é um elemento do processo de
tradução no desenvolvimento de compiladores e pode ser aplicado a linguagens de
programação e, em sentido geral, a uma Linguagem de Domínio Específico (DSL).
Segundo Nunes (2009)“ o objectivo de uma LDE é especificar e modelar conceitos de um
determinado domínio.”
O presente trabalho apresenta como resultado uma ferramenta intitulada GramLogic
para automatização do processo de criação de fórmulas proposicionais por meio do
desenvolvimento de uma gramática e um parser, baseados em ANTLR4, e aplicado na
validação das fórmulas a partir da entrada em formato texto e geração do arquivo XML
utilizado do LogicLive.

2. Gramáticas com ANTLR4

O ANTLR é um gerador de analisadores e pode ser utilizado para ler, processar,


executar ou traduzir texto estruturado ou arquivos binários. Este analisador transforma em
uma estrutura organizada pedaços de textos. Segundo Kerezi (2017) “o ANTLR é, portanto,
uma ferramenta para a construção dessas ferramentas de reconhecimento de linguagens, que
proporciona diversas facilidades e geração automática de transformações”.
A gramática é um arquivo com extensão .g4 que contém as regras da linguagem que
está sendo analisada, através da qual o sistema de tradução identifica as entradas e saída e a
orientação do processo de tradução. A Figura 1 ilustra um trecho de uma gramática.

Figura 1: Gramática.

Fonte: Gomes, p.12, 2019

A gramática “Hello”, ilustrada na Figura 1, é composta por regras de estruturas de


símbolos terminais e não-terminais. Essas regras, chamadas regras de produção,
determinam, no sentido do analisador, ou parser, em questão, quais entradas são válidas
léxica, sintática e semanticamente. Na análise léxica, o parser verifica se os símbolos
corretos estão sendo utilizados (como letras, números e símbolos especiais). Na análise
sintática, o parser verifica se a sequência de símbolos está correta (como “hello” seguido de
um nome). Por fim, na análise semântica o parser verifica se o símbolo correto está sendo
utilizado adequadamente (como “hello” ser seguido de um nome próprio).
No ANTLR gramática inicia com a palavra “grammar” e cada regra de produção é
representada pela estrutura:

46 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Não terminal : definições ;

Por exemplo, na regra de produção:

hi : “hello” ID ;

o não terminal é “hi” e as definições, do lado direito do símbolo “:”, são compostas por
símbolos terminais (“hello”) e não terminals (“ID”).
As definições de cada não terminal adotam composições de símbolos terminais,
não-terminais, e símbolos próprios do ANTLR, como “*”, que indica repetição de zero ou
mais vezes, “+”, que indica repetição de uma ou mais vezes”, “|”, que indica opção e
parênteses, que representam agrupamentos.
Na gramática “Hello” o símbolo não-terminal “prog” é definido como possuindo
zero ou mais instâncias do não-terminal “hi”, seguido de EOF, uma constante que indica o
final da entrada. Por sua vez, o não-terminal “hi” é composto pelo terminal “hello” seguido
do não-terminal “ID”, que é representado por uma ou mais letras de “a” a “z”. Desta forma,
uma sentença válida seria a seguinte:

hello john

Ao realizar a análise da entrada o parser reconhece os tokens de acordo com as


definições da gramática. Assim, é possível identificar que, após o token “hello” está o token
“john”, que representa um identificador.
A utilização de ANTLR4 permite a geração de parsers em diversas linguagens de
programação, como Java, JavaScript e Python, o que permite sua utilização em variadas
plataformas de programação e desenvolvimento de software.

3. Estrutura XML da Fórmula Proposicional

XML (Extensible Markup Language) segundo Gazzola (2011, p.7)“são arquivos de


comportamento e características peculiares, possuindo uma estrutura hierárquica formada
pela organização de marcadores, também chamados de tags, que são definidas
arbitrariamente pelo desenvolvedor, possibilitando assim uma enorme flexibilidade de
representação de informações.”

Com o uso da estrutura XML é possível criar representação de fórmulas


proposicionais utilizando o DTD (Document Type Definition) desenvolvido por Brito
(2003) para atender fórmulas proposicionais.
Figura 2: DTD do documento XML.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 47
Fonte: Brito, p.26, 2003, com modificação
O DTD da estrutura XML representado pela Figura 2, define regras de estruturação
e sintaxe. A primeira regra define o elemento ARGUMENTO como elemento raiz do
documento XML, que deve ser composto por zero ou mais PREMISSAS, e
obrigatoriamente uma CONCLUSÃO. Que por sua vez são compostos por uma fórmula
atômica (LPRED), um condicional (CONDICIONAL), uma disjunção (DISJUNCAO), uma
conjunção (CONJUNCAO) ou por um bicondicional (BICONDICIONAL). O elemento
LPRED deve conter obrigatoriamente um PREDICATIVO. O PREDICATIVO possui
dados de caracteres (#PCDATA) que armazenam a informação. O CONDICIONAL é
constituído por dois elementos denominados ANTECEDENTE e CONSEQUENTE,
compostos pelas mesmas estruturas dos elementos de conclusão e premissa apresentadas
anteriormente. Já os conectivos lógicos, disjunção (DISJUNCAO), conjunção
(CONJUNCAO) e bicondicional (BICONDICIONAL), são constituídos pelos elementos
PRIM e SEG, que seguem o mesmo padrão da regra de constituição da conclusão e
premissa. Para indicar a negação dos predicados da fórmula proposicional é usado o atributo
NEGACAO, representado no DTD pelo identificador CDATA. A Figura 2 apresentada a
estrutura de uma fórmula validada pelo DTD.

Figura 3: Estrutura XML.

A Figura 3 representa a estrutura do XML para representar uma fórmula que possui
duas letras predicativas e nenhuma premissa. Para que a ferramenta possa fazer uma leitura
correta dessa fórmula, a mesma deve seguir todas as regras de estrutura definida pelo DTD.

4. Materiais e Métodos

Nesta seção serão apresentados os materiais utilizados para o desenvolvimento do


trabalho e os método seguidos para realizar a construção da gramática e do parser.
4.1. Materiais

Além do DTD definido por Brito (2003) foram utilizados os seguintes materiais para
desenvolver o presente trabalho:
● ANTLR4;
● JavaScript;
● XML; e
● FileSaver.js.
48 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
A ferramenta ANTLR é um gerador de parser para leitura, processamento e
execução. É amplamente utilizado para construir linguagens, ferramentas e frameworks. A
partir de uma gramática, o ANTLR gera um analisador (parser) que pode construir e andar
por árvores. A ferramenta ANTLR é escrito em Java, no entanto, é capaz de gerar
analisadores em várias linguagens.
O JavaScript é uma linguagem de programação interpretada, orientada a objetos,
que permite a criação de conteúdos dinâmicos e interativos no ambiente do navegador web.
Segundo Cruz(2018, p.41)“o javaScript nasceu com a finalidade de programar e dinamizar
as páginas web, ao qual até então eram estáticas, e partir disto começou seu crescimento
como linguagem de programação.”
XML (Extensible Markup Language) consiste em uma linguagem de marcação de
texto simples e flexível que define um conjunto de regras para codificação e criação de
documentos com dados organizados hierarquicamente, tais como textos e banco de dados.
A XML é recomendada pela W3C (World Wide Web Consortium), uma grande organização
internacional contando com empresas, órgãos governamentais e associações independentes,
que são responsáveis pelos protocolos e padronização da rede mundial de computadores.
O FileSaver.js é uma biblioteca JavaScript que possibilita gerar qualquer tipo de
arquivo desejado no navegador. “o FileSaver.js é a solução para salvar arquivos no lado do
cliente e é perfeito para aplicativos da web que precisam gerar arquivos ou para salvar
informações confidenciais que não devem ser enviadas para um servidor externo.”(GRAY,
2020).
4.2. Métodos

Para realizar o presente trabalho as seguintes etapas foram seguidas: escolha do


tema, entendimento do tema, definição das ferramentas necessárias, desenvolvimento da
gramática e resultados. A Figura 4 ilustra tais etapas.
Figura 4: Etapas da metodologia.

Para o Entendimento do Problema foram realizados reuniões com pesquisadores do


LogicLive acerca da presente dificuldade na criação de fórmulas proposicionais encontrada
durante o desenvolvimento dos módulos “Cálculo Proposicional” e “Árvore de Refutação”.
Devido à dificuldade da criação manual das fórmulas, através de estudos foi encontrado

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 49
umaforma de automatizar o processo de criação das fórmulas proposicionais. A proposta
referente a este foi definido de acordo com o auxílio do professor orientador.

Na Definição das ferramentas, foram escolhidas aquelas que deram base para o
desenvolvimento do trabalho. A utilização do ANTLR4 se deu pelo fato de ser uma das
ferramenta para a construção de reconhecedores e analisadores de linguagens, que
proporciona de maneira facilitada a geração de gramáticas bem definidas, o XML por ser
uma linguagem de marcação de texto simples e flexível, e por ser um requisito dos
módulos desenvolvidos para a plataforma Logic Live.

4.3. Desenvolvimento da gramática

Para a definição da gramática, foi utilizado o antlr4 com ferramenta de construção


das regras léxicas e regras do parser. O uso do antlr4 permitiu uma construção ágil deste
processo, que resultou em um grupo de arquivos gerados automaticamente pelos antlr4
responsáveis por realizar as análises gramaticais. A segunda etapa do desenvolvimento foi
responsável pela criação da análise semântica da gramática, que é feita através do percurso
da Árvore de Sintaxe Abstrata (AST) fornecida pelo antlr4. Esta análise foi feita através de
um recurso chamado de “Listener” que percorre a AST. Segundo Gomes (2019) “O Listener
contém vários pares de funções ‘enter/exit’, que são executadas quando uma parte da
entrada combina com uma regra da gramática.”. A Figura 6 a seguir ilustra a árvore
construída pelo Antlr de uma determinada fórmula, essa árvore será percorrida pelo recurso
Listeners para realizar a análise semântica da gramática.
Figura 6: Parser Tree

A Figura 6, ilustra a árvore de sintaxe da fórmula “P,(~P^Q)|-Q” que foi construída


pela ferramenta Antlr. Nessa etapa o que o Antlr o faz é fornecer um parser que recebe
como entrada um texto (a fórmula) e o estrutura de maneira organizada em uma Árvore de
Sintaxe Abstrata (AST), que é percorrida pelo Listeners (GOMES, 2019)

O recurso Listeners percorre esta árvore, realizando uma busca em profundidade dos
nós não-terminais, quando um desses nós é encontrado a função “enter” é chamada. E é
dentro desta função que é realizada a construção semântica da gramática, neste caso a
semântica é própria a estrutura XML da fórmula. E durante o percurso do Listener, são
realizadas as chamadas das funções “enter/exit” que realiza a criação da estrutura do XML,

A estrutura XML é criada com a utilização do objeto XMLDocument da linguagem


de programação JavaScript. A imagem abaixo apresenta um trecho do código de criação da
50 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
tag XML após o reconhecimento do conectivo lógico da conjunção dentro da função
“enter”.
Figura 7: criação do xml.
switch (conect) {
case '^':
newElement = this.xmlDoc.responseXML.createElement("CONJUNCAO");
newElementPrim = this.xmlDoc.responseXML.createElement("PRIM");
newElementPrim.appendChild(left.value);
newElement.appendChild(newElementPrim);

Os métodos createElemnt e appendChild, foram os principais recursos absorvidos


da classe XMLDocument, e facilitaram o processo que criação do documento XML. Após o
término do percurso da árvore de análise é tido uma estrutura completa da representação da
fórmula anteriormente inserida por um campo de texto. Com o uso da biblioteca
FileSaver.js é possível criar e salvar arquivos no lado do cliente, dessa forma toda a
aplicação desenvolvida é executada no lado Cliente, não necessitando de um servidor para
realizar as operações.
5. Resultados
Como resultado obteve-se uma ferramenta que permite a criação e validação de
fórmulas da lógica proposicional através de uma gramática própria, criada com auxílio do
antr4. Com o uso dessa ferramenta é possível ler, analisar, processar e criar documento
XML para representar a fórmula proposicional. Para a criação da gramática, foi necessário a
limitação dos caracteres permitidos e a definição da sintaxe. A Figura 5 a seguir ilustra a
gramática criada de acordo com a sintaxe da ferramenta Antlr.

Figura 5: Sintaxe da gramática.

Foi definido caracteres permitidos pela gramática e após estudos a gramática foi
limitada pela utilização de letras maiúsculas para representar letras predicativas da fórmula
proposicional, podendo ser qualquer letra de "A" a "Z", essa definição é ilustrada na linha 4
e 6 da Figura 5.

Na criação de uma fórmula lógica são utilizados conectivos lógicos para conexão
entre dois ou mais argumentos no intuito de criar fórmulas complexas a partir de
argumentos mais simples, na sintaxe do Antlr o argumento é definido na linha 3 da figura x,
nesta linha ainda é definido os caracteres para os quatro conectivos lógicos. O “conjunção”
será representado pelo caractere “^”. O caractere “v” será utilizado para representar o
conectivo lógico “disjunção”, os conectivos lógicos “condicional” e “bicondicional” serão
representados pelos caracteres “->” “<->” respectivamente.

Existe ainda a possibilidade da representação da negação de um argumento, que se


refere a mudança do seu valor lógico. Nesta gramática, a negação será representada pelo
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 51
caractere “~” e seguida de uma letra predicativa ou um argumento, essa definição é
ilustrada na linha 3 da figura x. Ainda na linha 3, é definido o uso dos parênteses, que são
utilizados pela gramática para definir o grau de prioridade na análise semântica da
gramática.
A lógica permite uma fórmula composta por zero ou mais premissas e
obrigatoriamente uma conclusão, tal regra é ilustrada na linha 2 da figura x, esta linha ainda
ilustra o elemento de conclusão, que é definido através do caractere "|-" que deve sempre
ser seguido de um argumento. Para a definição de várias premissas deve-se utilizar a
vírgula entre elas para determinar a separação, essa regra também está definida na linha 2.
Um exemplo válido de uma fórmula com várias premissas; “P->Q, PvQ |- P” ou “~(P->Q),
Q |- P”. Esta gramática desenvolvida está disponível em uma plataforma web, que tem suas
seções apresentadas nas imagens seguintes.
Figura 8: Descrição da gramática.

A Figura 8, ilustra a seção de ensino da gramática desenvolvida neste trabalho. E foi


desenvolvida de maneira a permitir uma boa compreensão da estrutura gramatical da
fórmula, com o uso de introdução e exemplos reais para todos os tópico.

Figura 9: Validação da fórmula e geração do XML.

52 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A Figura 9, ilustra a seção que permite ao usuário inserir a fórmula desejada.
Após a fórmula inserida basta clicar no botão “Validar” para que a fórmula seja validada.
Em caso de erros na escrita da fórmula é apresentado uma mensagem de erro indicando a
linha e a coluna em que o erro ocorreu, bem como o valor que era esperado. E em caso de
escritas válidas, é apresentado ao usuário uma mensagem de validação da fórmula, é
também disponibilizado um link para download do arquivo XML.

Figura 10: XML Gerado.

A Figura 10 ilustra a estrutura XML de uma fórmula gerada pela ferramenta


desenvolvida, o XML foi criado a partir da inserção da fórmula no formato texto, para o
exemplo da Figura 10 a entrada utilizada foi a Q->P|-~Q, que passou pelo processo de
validação das regras de sintaxe e semântica.
6. Considerações finais

A partir da análise realizadas nos módulos desenvolvidos no Logic Live foi


verificado que para realizar a entrada de fórmulas proposicionais era necessário o
desenvolvedor criar manualmente documentos XML com as fórmulas para que pudessem
ser utilizadas pelos módulos. Foi verificado que seria possível automatizar este processo
desenvolvendo uma gramática que realizaria a validação das fórmulas e posteriormente
geraria o arquivo em XML.
Esta gramática utilizou tanto o Antlr4 como o listener para que fosse possível
alcançar o objetivo tratado neste trabalho. O Antlr é amplamente usado para construir
linguagens, ferramentas e estruturas onde é utilizado para ler, processar, executar ou
traduzir texto estruturado. Já o listener está sempre verificando se uma entrada combina
com uma regra utilizada na gramática assim ativando suas funções.
Seguindo dessa análise foi desenvolvido o GramLogic que é um software que possui
uma gramática própria para geração e validação de fórmulas da Lógica Proposicional assim
auxiliando na inserção das fórmulas proposicionais nos módulos desenvolvidos. Como
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 53
projeto futuro propõe-se a substituição da utilização do XML como requisito de entrada de
dados nos módulos do Logic Live e fazer a utilização direta das fórmulas no formato de
texto.

Referências
BRANDÃO, José Henrique Coelho. DESENVOLVIMENTO DE UMA PLATAFORMA
GAMIFICADA PARA O LOGIC LIVE. 2019. 75 f. TCC (Graduação) - Curso de Ciência da
Computação, Centro Universitário Luterano de Palmas (Ceulp/ulbra), Palmas, 2019.

BRITO, Parcilene Fernandes de. Dedução Automática por Tableaux Estruturada em XML.
2013. 123 f. Dissertação (Mestrado) - Curso de Ciência da Computação, Universidade Federal de
Santa Catarina, Florianópolis, 2003.
Disponível
em:<https://repositorio.ufsc.br/xmlui/handle/123456789/84615>. Acesso em: 15 maio 2020.

CRUZ, V. da S.; PETRUCELLI, E. E.; SOTTO, E. C. S. A LINGUAGEM JAVASCRIPT COMO


ALTERNATIVA PARA O DESENVOLVIMENTO DE APLICAÇÕES MULTIPLATAFORMA.
Revista Interface Tecnológica, [S. l.], v. 15, n. 2, p. 39-49, 2018. DOI: 10.31510/infa.v15i2.476.
Disponível em: https://revista.fatectq.edu.br/index.php/interfacetecnologica/article/view/476.
Acesso em: 1 out. 2020.

FERREIRA, Leandro Vagner Arcebispo. GTK: UMA FERRAMENTA DE AUXÍLIO NA


CONSTRUÇÃO DE GRAMÁTICAS LL(1). 2018. 83 f. TCC (Graduação) - Curso de Ciência da
Computação, Instituto Federal Minas Gerais - Campus Formiga, Formiga - Mg, 2018. Disponível
em:
<https://www.formiga.ifmg.edu.br/documents/2018/Biblioteca/TCCs_e_Artigos/Leandro_Arcebisp
o- 2.pdf>. Acesso em: 07 dez. 2019.

FASSBINDER, Aracele Garcia de Oliveira. Uma Apresentação dos Principais Sistemas


Relacionados à Lógica Clássica. 2010. 307 f. Dissertação (Doutorado) - Curso de Ciência da
Computação, Universidade Federal de Santa Catarina, Florianópolis, 2012. Disponível em:
<https://repositorio.ufsc.br/handle/123456789/94116>. Acesso em: 15 abr. 2020.

GOMES, Jackson. Criação de compiladores com ANTLR. 1. ed. Palmas-to: Departamento de


Computação Compiladores, 2019. 35 p.

GRAY, Eli. FileSaver.js. Disponível em: https://github.com/eligrey/FileSaver.js. Acesso em: 30


set. 2020.

GAZZOLA, Pedro Otávio Lima. Inferência em Documentos XML utilizando Prolog. 2011. 65 f.
TCC (Doutorado) - Curso de Ciencia da Computacão, Universidade Federal de Juiz de Fora, Juiz de
Fora, 2011. Disponível
em: https://www.ufjf.br/getcomp/files/2013/03/Inferencia-em-
Documentos-XML-utilizando-Prolog-Pedro
-Otavio-Lima-Gazzola.pdf. Acesso em: 30 set. 2020.

NUNES, Carlos Miguel Marques Martins Simões. Uma Linguagem de Domínio Específico para
a Framework i*. 2009. 101 f. Dissertação (Mestrado) - Curso de Ciências e Tecnologia,
Universidade Nova de Lisboa, Lisboa, 2009.
54 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Disponível em: https://run.unl.pt/bitstream/10362/1984/1/Nunes_2009.pdf. Acesso
em: 30 set. 2020.

KEREZI, Gustavo. Gerador de Código para Definição de Classes de Equipamentos. 2017. 67 f.


Monografia (Especialização) - Curso de Engenharia de Controle e Automação, Universidade
Federal de Santa Catarina, Florianópolis, 2017. Disponível
em:
https://repositorio.ufsc.br/bitstream/handle/123456789/197607/PFC%20Gustavo%20Kerezi_2017-
1.p df?sequence=1&isAllowed=y. Acesso em: 22 set.s 2020.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 55
Desnormalização na otimização da estrutura de dados da
SentimentALL
Dionnys Santos Marinho1, Parcilene Fernandes de Brito¹
¹
Departamento de Computação – Centro Universitário Luterano de Palmas
(CEULP/ULBRA)
{dionnys.marinho,parcilene} @gmail.com

Resumo.
Este trabalho apresenta a desnormalização do banco de dados da ferramenta
SentimentALL como forma de otimização do processo de consulta de
informações. A partir da análise e identificação de possíveis tabelas alvo desse
processo, foi possível aplicar técnicas de desnormalização para que fosse
gerado um novo modelo da estrutura de dados. Em seguida o novo modelo foi
construído e ambas as versões do banco de dados passaram por testes de
performance com base em consultas complexas. Esses testes comprovaram que
o novo modelo proposto mostrou uma melhoria de 56,3% em relação ao tempo
de consulta de dados do modelo anterior.
1. Introdução
A ferramenta SentimentALL realiza a análise de sentimentos (AS) de um grande
volume de dados compostos por comentários oriundos do site TripAdvisor. No terceiro
trimestre de 2019, o site somava um total de 830 milhões de avaliações sobre uma grande
listagem de atrações, hotéis e restaurantes no mundo todo (TRIPADVISOR, 2019). O
resultado do processo de AS também é responsável pela geração de uma quantidade de
informação considerável. Visto isso, formas otimizadas de armazenar e recuperar essas
informações são essenciais para sistemas que buscam apresentar e extrair conhecimentos
dessa grande concentração de dados.
Bancos de dados (BD) relacionais, como o utilizado pela SentimentALL, são
geralmente construídos utilizando técnicas de normalização. A normalização é utilizada com
o objetivo de criar um conjunto de tabelas relacionais com quantidade mínima de dados
redundantes que podem ser modificados de maneira consistente e correta (BAHMANI;
NAGHIBZADEH; BAHMANI, 2008). Porém, o modelo normalizado pode gerar padrões que
dificultam a obtenção dos dados. Por conter muitas tabelas relacionadas entre si e criar a
necessidade de utilização de várias junções ao construir instruções SQL que recuperam essas
informações, a técnica de normalização nem sempre apresentam bons resultados quanto a
performance de consultas.
A desnormalização de um banco de dados é uma das técnicas que podem ser
utilizadas para melhorar a performance do banco de dados em consultas. “A
desnormalização é um esforço que busca otimizar desempenho, mantendo a integridade dos
dados” (PINTO, 2009, pág. 44). De forma sucinta, a desnormalização é um conjunto de
técnicas que se propõe a aplicar o processo inverso à normalização com o objetivo de
melhorar a performance de um modelo de dados em relação ao tempo de execução de
consultas sem afetar a integridade de dados que pode causar perdas de informação. Com
base neste conceito, este trabalho apresenta a desnormalização do BD da ferramenta
SentimentALL como forma de otimização no tempo de consulta a dados, e utiliza testes de
performance para comprovar que as técnicas aplicadas foram de fato eficazes.

1.1. SentimentALL

56 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A SentimentALL é uma ferramenta de análise de dados que realiza o processamento de
comentários oriundos do site TripAdvisor (www.tripadvisor.com) escritos em português
brasileiro, e tem como resultado a definição da polaridade (positivos ou negativos) de
sentimentos expressados sobre aspectos de hotéis, restaurantes ou atrações avaliadas. Segundo
Brito (2018) e Araújo (2017), a ferramenta SentimentALL tem como objetivo realizar a
Análise de Sentimentos (AS) de opiniões de sites da internet escritos na língua portuguesa.
Araújo (2017) apresenta a segunda versão da ferramenta desenvolvida em python.

O armazenamento de dados obtidos do processo de AS foi criado utilizando uma estrutura


altamente normalizada desenvolvida utilizando o gerenciador SQL Server. Para melhor
entender essa estrutura as tabelas e relacionamentos do BD são apresentados na Figura 1 a
seguir.

Figura 1 - Modelo de Dados SentimentALL v2

A Figura 1 mostra um modelo simplificado do banco de dados da segunda versão da


SentimentALL apresentada por Araújo (2017). No modelo apresentado técnicas de
normalização foram aplicadas para que o modelo se tornasse o mais coeso possível,
representando cada identidade do sistema em uma tabela específica. As tabelas de Usuario,
Objeto, Cidade, Estado e Avaliacao representam dados que foram obtidos e estruturadas do
site TripAdvisor, são importantes por armazenar o contexto da avaliação, guardando quem
avaliou (Usuario), qual o local do objeto avaliado (Cidade e Estado), qual o objeto avaliado,
este sendo de três tipos: atração, hotel ou restaurante (Objeto), e o texto e dados da avaliação
(Avaliacao).

Além disso, o sistema também armazena os dados obtidos no processo de processamento


de linguagem natural (PLN). Técnicas de PLN são utilizadas para que computadores possam
se comunicar com os seres humanos e para adquirir informação a partir da linguagem escrita
(RUSSELL; NORVIG, 2013). O NLP é composto de diversas etapas de análise, gerando
dados estruturados, como, por exemplo, a divisão do texto em sentenças e palavras ou tokens,
esses dados são armazenados nas tabelas Sentenca e Token como apresentados na Figura 1.

Outro processo importante do PLN é a definição de PoS Tags (Part-of-Speech tags), que
representam principalmente as classes gramaticais de palavras do comentário. PoS Tags são
úteis, pois revelam muito sobre a palavra analisada e palavras vizinhas (JURAFSKY e
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 57
MARTIN, 2000). As informações desse processo são guardadas na tabela PoS_Tag. Por fim,
após aplicadas diversas etapas de PLN que estruturam a informação, os dados são analisados,
gerando a definição de polaridade de determinado aspecto avaliado no comentário. Essas
informações são armazenadas na tabela Análise. Uma das tarefas básicas do processo de AS é
a detecção de polaridade, que é responsável pela classificação (geralmente binária) de um
aspecto ou corpus, produzindo resultados como “positivo” ou “negativo” (CAMBRIA et al.,
2017).

Armazenar quantidades volumosas de dados textuais pode criar problemas quanto a


melhor forma de recuperar essas informações. Nesse sentido, técnicas de estruturação e
melhoria para o banco de dados da SentimentALL são necessárias, permitindo que as
informações geradas sejam recuperadas de forma eficiente e rápida. Na seção seguinte a
desnormalização é apresentada como uma técnica utilizada na otimização da estrutura de
dados e melhoria de consultas em BDs.

1.2. Desnormalização e Testes de Performance


A normalização é utilizada com o objetivo de criar um conjunto de tabelas relacionais
com quantidade mínima de dados redundantes que podem ser modificados de maneira
consistente e correta (BAHMANI; NAGHIBZADEH; BAHMANI, 2008). O modelo
normalizado de um BD busca, através da criação de tabelas e relacionamentos, diminuir a
redundância de dados. A normalização pode causar ineficiências significativas em cenários
onde são feitas poucas atualizações e muitas consultas, que poderão envolver um grande
número de joins (Junções) (SHIN; SANDERS, 2006).
“A desnormalização pode ser descrita como um processo de redução do grau de
normalização de um Banco de Dados com o objetivo de melhorar o desempenho do
processamento de consultas” (SHIN; SANDERS, 2006, pág. 1). De forma sucinta, a
desnormalização é um conjunto de técnicas que se propõe a aplicar o processo inverso à
normalização com o objetivo único de melhorar a performance de um modelo de dados em
relação ao tempo de execução de consultas. Segundo Shin e Sanders (2006), existem duas
formas básicas para a desnormalização, a redução de tabelas intermediárias através da
modificação inicial do diagrama entidade relacionamento e a criação de atributos redundantes.
Para comprovar que o uso da desnormalização como técnicas de otimização O uso de
testes de performance oferece medidas quantitativas para comprovar, por exemplo, se a
alteração de um modelo de dados teve resultados positivos ou negativos em relação ao tempo
de consultas. O teste de performance é um tipo de teste que visa determinar a capacidade de
resposta, a confiabilidade, o throughput, a interoperabilidade e a escalabilidade de um sistema
e/ou aplicação operando com uma carga de trabalho específica (ERINLE, 2017).

2. Materiais e métodos

2.1. Materiais
O Sistema de gerenciamento de bancos de dados (SGBD) SQL Server desenvolvido
pela Microsoft, foi utilizado como gerenciador das versões do modelo do BD da
SentimentALL, esse sistema foi escolhido por já ter sido usado na segunda versão apresentada
por Araújo (2017), manter SGBD garante que as alterações feitas sobre o modelo ao passar
pelo processo de desnormalização serão as únicas variáveis consideradas. JMeter é um
software de código aberto totalmente escrito em Java, projetado para carregar o
comportamento funcional de teste e medir o desempenho de sistemas. Essa ferramenta de
testes foi utilizada por oferecer uma interface simples e eficiente para simular vários acessos e
avaliar as versões do BD. A estrutura de dados da segunda versão da SentimentALL
58 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
apresentada por Araújo (2017) foi utilizada como base para o processo de desnormalização
apresentado no trabalho. Para o processo de testes, 6 milhões e 300 mil avaliações extraídas
entre o início de fevereiro e o final de março obtidos e analisados por Araújo (2017) também
foram utilizados.

2.2. Métodos
Está seção apresenta os métodos utilizados no desenvolvimento do trabalho. A Figura
2 apresenta o diagrama detalhado de etapas realizadas durante a execução do processo de
desnormalização e testes da estrutura de dados apresentada por Araújo (2017) denominada
aqui por v2 e o novo modelo proposto, v3.

Figura 2 - Fluxograma de etapas do trabalho

A etapa 1 da Figura 2 ilustra o processo de análise do modelo atual da ferramenta


SentimentALL. O modelo foi apresentado em Araújo (2017) e teve como foco principal a
definição de um modelo lógico e físico normalizado, evitando redundância de dados. Nessa
primeira etapa, a análise teve como objetivo identificar tabelas e atributos acessados
frequentemente em consultas, identificando assim os pontos de gargalo que poderiam causar
lentidão no momento da execução dessas consultas.

A etapa 2 da Figura 2 mostra a construção de um novo modelo lógico desnormalizado.


Nessa etapa, as tabelas e atributos selecionados anteriormente passaram por técnicas de
desnormalização, gerando um novo modelo menos normalizado e que mantém a integridade
dos dados armazenados pelo modelo anterior.

A etapa 3 mostra a construção do modelo físico com base no novo modelo lógico
definido. Nessa etapa, também foram feitas importações e adaptações de dados existentes no
modelo prévio. Preparando o novo modelo para as etapas seguintes, que envolvem testes e
comparativos entre modelos.

A Etapa 4 mostra a criação de testes de performance com JMeter para testar os dois
modelos. A construção dos testes envolveu definir consultas equivalentes para cada um dos
modelos. Cinco consultas equivalentes foram criadas, totalizando 10 consultas SQL (do inglês
Structured Query Language) para os modelos testados. Assim, foi possível através de um
comparativo direto entender se o tempo de resposta do modelo desnormalizado teve uma
melhora em comparação ao modelo anterior.
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 59
Na etapa 5, os testes foram executados e os resultados dos testes analisados. As SQL
equivalentes foram executadas em ambientes idênticos e as consultas foram feitas em uma
máquina local, dessa forma o resultado do teste representa os tempos de consulta de forma
justa para ambos os modelos. Os tempos resultados foram analisados e serão apresentados na
seção de resultados do trabalho.

3. Resultados e discussões

Para a construção de um novo modelo desnormalizado, primeiramente foi preciso uma


análise do modelo normalizado. Assim, além de entender o modelo do BD da SentimentALL
v2, foi possível identificar nessa estrutura as principais tabelas que poderiam representar
problemas ao recuperar informações e dados gerados pela ferramenta. A Figura 3 ilustra o
modelo original da SentimentALL e quais tabelas foram identificadas como alvo para o
processo de desnormalização.

Figura 3 - Análise do modelo normalizado da SentimentALL


A Figura 3 mostra um modelo simplificado do BD da SentimentALL v2. Os itens em
vermelho demarcam as tabelas mais utilizadas durantes processos que recuperam informações
geradas pela ferramenta, por isso foram marcadas como candidatas ao processo de
desnormalização. O item 1 da Figura 3 apresenta a tabela Objeto que representa o item
avaliado, nessa tabela o atributo Tipo classifica os dados nos três objetos avaliados que são:
Atrações, Hotéis e Restaurantes, essa tabela é essencial, pois representa o contexto da
informação. Ligado a esse contexto, há duas tabelas relacionadas que armazenam a cidade e o
estado do objeto avaliado apresentados nos itens 2 e 3 da figura 3.
O item 4 da Figura 3 ilustra o comentário avaliativo, o processo de AS realiza a
definição de polaridade de aspectos contidos nos textos, os dados gerados são armazenados
nesta tabela. O Item 5 da Figura 3 apresenta a tabela Analise, esta é responsável por
armazenar o resultado do processo de AS realizado pela SentimentALL. As 5 tabelas
identificadas no processo de análise passaram por processos de desnormalização resultando
no modelo apresentado na Figura 4 a seguir.

60 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 4 - Modelo proposto com o uso de técnicas de desnormalização
Os itens marcados em verde na Figura 4 mostram as principais alterações feitas no
novo modelo do BD da SentimentALL. O item 1 da Figura 4 mostra a criação de um
relacionamento direto entre avaliação e análise. Anteriormente, no modelo normalizado, esse
relacionamento era feito através da tabela intermediária “Sentenca”, a definição de um novo
relacionamento permite que consultas sejam feitas sem a necessidade de junção com essa
tabela.
O Item 2 da Figura 4 demarca três novas tabelas criadas no modelo desnormalizado. A
técnica de desnormalização utilizada é chamada de “Fragmentação de Tabelas”, de forma
sucinta essa técnica é usada para separar uma entidade em grupos menores e mais
significativos, dessa forma ao consultar dados sobre um contexto específico outros tipos de
objetos avaliados não serão considerados na busca, diminuindo a quantidade de linhas
avaliadas e melhorando a performance. A Figura 5 A seguir exemplifica o que essa alteração
representa para o modelo.

Figura 5 - Comparativo modelo Normalizado e Desnormalizado


A Figura 5 exemplifica o técnica de desnormalização chamada de fragmentação de
tabelas, nesse exemplo a tabela Objeto que pertence a versão não normalizada (v2) foi
utilizada para a definição de três novas tabelas usadas na versão desnormalizada apresentada
neste trabalho (v3), a principal diferença é que na versão anterior os objetos avaliados
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 61
estavam aglomerados na tabela objeto sendo identificados apenas pelo atributo tipo. O modelo
desnormalização mostra a criação de tabelas específicas para cada tipo de objeto, reduzindo o
escopo no momento de consultas.
O Item 3 da Figura 4 identifica novos atributos de cidade e estado criados para as
tabelas de objetos avaliados divididos entre atração, restaurante e hotel. Na versão anterior do
modelo, esses atributos eram definidos pelas tabelas Cidade e Estado, porém essas entidades
individualmente fazem pouco sentido ao consultar os dados, por isso incluir essa informação
como um atributo das tabelas permite que os dados estejam diretamente ligados a informação,
fazendo também com que seja desnecessário as junções no momento da consulta. A técnica
de desnormalização utilizada nesse processo é chamada de Pré-junção de tabelas, e tem o
objetivo realizar a junção natural existente entre as informações das tabelas alvo e tem como
resultado uma única tabela que mantém todos os registros antes separados em entidades
diferentes do BD.
Após definir o novo modelo da estrutura aplicando técnicas de desnormalização, o
modelo físico foi criado, em seguida dados existentes da versão anterior da SentimentALL
foram importados e adaptados para esse novo modelo. O gerenciamento e instalação dos
bancos teste foi feita pelo SGBD Microsoft SQL Server na versão 14.0.1000.169. A máquina
utilizada como ambiente de testes utiliza o sistema Operacional Windows 10 Pro 64Bits, com
armazenamento HDD de 1TB e 8GB de memória, rodando no processador Intel Pentium
G4560 de 3.5Ghz. Para que a performance do modelo normalizado (v2) e o modelo
desnormalizado (v3) fosse testada, foi essencial que o ambiente de teste fosse equivalente
para ambas as versões, assim, o resultado do tempo de consulta dos testes comprova de forma
quantitativa qual o efeito a aplicação das técnicas de desnormalização.
Após preparar os dados e ambientes de testes, consultas foram criadas para serem
usadas em casos de teste aplicados com o JMeter. A Figura 6 mostra de forma descritiva as
consultas criadas.

Figura 6 - Descrição de consultas usadas nos testes de performance

62 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
O primeiro passo para a criação de testes com o JMeter foi criar consultas que
pudessem ser executadas em ambos os modelos, essas consultas estão descritas na Figura 6.
Cada consulta foi adaptada de uma versão para outra, permitindo que uma busca equivalente
fosse feita, com isso os resultados dos testes ofereceram um comparativo justo de tempo de
recuperação da mesma informação. A ferramenta JMeter permitiu a simulação com 1 usuário
simultâneo e, para cada SQL usado no teste, 10 requisições foram realizadas, o resultado final
foi uma média geral do tempo de recuperação para 10 requisições feitas em cada teste.
No relatório das execuções dos testes foi possível notar que a primeira execução para a
consulta teste teve um tempo consideravelmente maior se comparado a outros tempos da
execução. Isso é resultado do processo de armazenamento de dados em buffer feito de forma
automática pelo SGBD Microsoft SQL Server. Por ter esse comportamento nativo, para que
os resultados tenham dados mais uniformes, o tempo de execução do primeiro loop de teste
foi desconsiderado no processo de análise de resultados. A Figura 7 apresenta a análise final
entre as execuções de cada SQL Teste apresentado.

Figura 7 - Análise dos resultados de testes com JMeter


Ao analisar o gráfico da Figura 7, é possível perceber que os resultados dos testes
mostram uma redução considerável no tempo médio de resposta, assim como a melhora de
performance é consistente e ocorre em todos os testes aplicados para o modelo do Banco de
Dados na SentimentALL versão 3 (Após o processo de desnormalização) e na sua versão 2.
No teste onde a discrepância de tempo foi maior, a instrução SQL do Teste #4 teve resultado
favorável ao novo modelo com uma redução de 99,2% do tempo de resposta em relação a
mesma consulta executada para a versão 2.
A média de tempo no Teste #2 apresentou o menor percentual de melhora entre os
modelos, ainda assim, o modelo desnormalizado reduziu o tempo de consulta aos dados em
42,3%. Considerando todos os testes, em média o tempo de resposta da versão 3 em relação a
versão 2 do BD apresentou uma melhora de 56,3%. Por utilizar consultas complexas e dados
reais durante o processo de teste, os resultados demonstram efetivamente que as técnicas de

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 63
desnormalização tiveram um efeito positivo quanto a eficiência na consulta de dados da
SentimentALL.

4. Conclusões
A aplicação de técnicas de desnormalização permitiu uma redução considerável no
tempo de consulta de dados da ferramenta SentimentALL. É possível inferir que apesar de
modelos altamente normalizados terem pontos positivos, como evitar redundância e ter uma
modelagem funcional prática, a desnormalização dessas estruturas oferece velocidade e
eficiência em consulta, isso é essencial principalmente em sistemas que trabalham sobre
grandes volumes de dados. Outro ponto positivo da desnormalização dessas estruturas é
permitir a construção de instruções SQL simplificadas, evitando uma grande quantidade de
junções. Sistemas que utilizam avaliações e comentários da internet são caracterizados pelo
aumento constante de dados disponíveis, por isso também é importante que a estrutura de
dados e o sistema que executa essas análises evolua e se torne mais robusto e escalável.
Para trabalhos futuros, a utilização e testes em outros SGBDs podem ser realizados
como uma das formas de aprimorar a estrutura de dados da SentimentALL, pois cada SGBD
oferece um nível diferente de configuração e personificação que não foi abordado neste
trabalho. O estudo de armazenamentos não relacionais também é um dos pontos que pode
ajudar a otimizar o processo de consulta de dados da ferramenta. A pesquisa de Jantana et. al
(2012) oferece um bom comparativo entre os modelos relacionais e não relacionais de bancos
de dados, mostrando que a flexibilidade, escalabilidade e rapidez na consulta a dados são
pontos positivos a favor de modelos não relacionais.

Referências

ARAÚJO, L. G. de A. SENTIMENTALL VERSÃO 2: Desenvolvimento de Análise de


Sentimentos em Python. 2019. 123 f. TCC (Graduação) - Curso de Ciência da
Computação, Centro Universitário Luterano de Palmas, Palmas, 2017.
BAHMANI, A. H.; NAGHIBZADEH, M.; BAHMANI, B. Automatic database normalization
and primary key generation. 2008 Canadian Conference On Electrical And Computer
Engineering, p.11-16, maio 2008. IEEE.
BRITO, P. F. de. RELATOS VERBAIS DE CONSUMIDORES EM AVALIAÇÕES ON-
LINE: PROSPECÇÃO COMPUTACIONAL E INTERPRETAÇÕES COM BASE NO
BEHAVIORAL PERSPECTIVE MODEL (BPM). 2018. 182 f. Tese (Programa de Pós-
Graduação STRICTO SENSU em Psicologia) - Pontifícia Universidade Católica de Goiás,
Goiânia-GO.
CAMBRIA, E; DAS, D; BANDYOPADHYAY, Si; FERACO, A. Affective Computing and
Sentiment Analysis. In: A Practical Guide to Sentiment Analysis. 5. ed. [s.l.]: Springer,
2017. Cap. 1. p. 1-10. (Socio-Affective Computing). Disponível em:
<http://ww.sentic.net/practical-guide-to-sentiment-analysis.pdf>. Acesso em: 14 set. 2020.
ERINLE, B. Teste de desempenho com JMeter 3: melhore o desempenho de sua aplicação
web. [s. L.]: Novatec, 2017.
JURAFSKY, Daniel; MARTIN, James H. Speech and Language Processing: An
Introduction to Natural Language Processing, Computational Linguistics and Speech
Recognition. Englewood Cliffs, New Jersey: Prentice Hall, 2000. 934 p.
JATANA, N. et al. A survey and comparison of relational and non-relational database.
International Journal of Engineering Research & Technology, v. 1, n. 6, p. 1-5, 2012.
64 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Disponível em: <https://www.ijert.org/research/a-survey-and-comparison-of-relationaland-
non-relational-database-IJERTV1IS6024.pdf> Acesso em: 19 Set. 2020.
LIU, Bing. Sentiment Analysis and Opinion Mining. [s.l.]: Morgan & Claypool Publishers,
2012. 167 p. Disponível em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.244.9480&rep=rep1&type=pdf
>. Acesso em: 12 de setembro de 2020.
PINTO, Yma. A framework for systematic database de-normalization. In: Global Journal of
Computer Science and Technology, 2009, p. 44-52.
RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.
1016 p. Tradução de: Regina Célia Simille.
SANDERS, G. Lawrence; SHIN, Seungkyoon. Denormalization effects on performance of
RDBMS. In: Proceedings of the 34th Annual Hawaii International Conference on
System Sciences. IEEE, 2001. p. 9 pp.
TRIPADVISOR, TripAdvisor Reports Third Quarter 2019 Financial Results. Needham,
MA. 2019. Disponível em: <http://ir.tripadvisor.com/static-files/7adc41a2-c5bb418b-bfc1-
3f3d12e8d075> Acesso em: 15 Set. 2020.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 65
Extração e armazenamento de dados de teses e dissertações
sobre saúde mental presentes em repositórios de universidades do
Brasil
Danilo Saraiva Vicente1, Dionnys Santos Marinho1, Giovanna Biagi Filipakis1,
Mateus Rodrigues Costa1, Nalberthy Sousa da Silva1, Parcilene Fernandes de
Brito1
1
Centro Universitário Luterano de Palmas (CEULP/ULBRA) – Palmas, TO – Brasil
{danilo.saraiva, dionnys, giovannafilipakis, mateusrodc,
nalberthy}@rede.ulbra.br,parcilene.brito@ulbra.br

Resumo. O presente trabalho foi desenvolvido com o objetivo de descrever os


processos de extração e armazenamento de dados realizados sobre repositórios
de teses e dissertações com o tema de saúde mental, assim como a implementação
de Crawlers para realizar a extração dessas informações. Foram obtidos dados
de doze universidades federais utilizando o framework Scrapy, que em seguida
foram armazenados utilizando o MongoDB.

1. Introdução

Os temas das teses e dissertações desenvolvidas por acadêmicos nas instituições de


ensino são um indicativo de quais são os assuntos mais atuais e relevantes que estão sendo
pesquisados e discutidos no âmbito das universidades. Dentre esses temas encontra-se o da
saúde mental, que tem recebido muita atenção nos últimos anos.

Ele se torna ainda mais importante considerando-se, por exemplo, o contexto


brasileiro desde a Reforma Psiquiátrica no ano de 1990. Foi durante essa reforma que o
Brasil, junto com outros países da América latina, assumiu compromissos como promover
a reestruturação da assistência psiquiátrica, salvaguardar os direitos civis, a dignidade
pessoal, os direitos humanos dos usuários e propiciar a sua permanência em seu meio
comunitário (HIRDES, 2009). As produções científicas ajudam no entendimento deste e
outros acontecimentos importantes, assim como suas causas e consequências. Segundo
Onocko-Campos (2019), depois de 30 anos desde a Reforma Psiquiátrica, a produção
científica brasileira possibilita que sejam apontados alguns resultados consolidados na
literatura.

Entretanto, essas produções estão dispersas em vários repositórios de trabalhos


acadêmicos, o que não possibilita uma visão mais abrangente desses temas de estudo no
território nacional.

Em adição a isso, outro importante fator que merece destaque quando se fala em
qualquer área de ensino e pesquisa atualmente, é a relevância de estudos interdisciplinares.
Dirsch-Weigand et al. (2015) concluem que alunos nesse contexto ganham tanto
competências técnicas como habilidades para colaboração interdisciplinar construtiva. Eles
aprendem sobre a metodologia própria da própria área, bem como os perfis de outras
disciplinas, tomam responsabilidade e desenvolvem habilidades de comunicação e trabalho
em grupo devido a um programa eficiente de assistência técnica e de equipe. Tendo isso
66 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
em foco, foi proposta uma integração entre as áreas da psicologia e da computação para
ajudar a resolver o problema do conhecimento disperso entre repositórios on-line no que
tange aos trabalhos com o tema de saúde mental.

Todos os trabalhos que são disponibilizados on-line nesses repositórios possuem


uma estrutura baseada em páginas HTML (Hypertext Markup Language). Desse modo,
elas são suscetíveis de serem analisadas por Web Crawlers, que oferecem recursos para
extração e estruturação de informações de páginas web. Mesmo considerando-se que a
estrutura de um repositório vai ser completamente diferente dos demais, crawlers são
flexíveis no sentido de que eles podem ser adaptados para obter informações específicas de
cada página utilizando elementos identificadores da estrutura HTML pré-determinadas,
como classes, tags e ids.

Desse modo, a proposta do presente trabalho é desenvolver crawlers para obter


amostras contendo informações de teses e dissertações com o tema saúde mental a partir de
repositórios de universidades brasileiras. Adicionalmente, para que essas informações
fossem armazenadas de maneira eficiente e considerando a grande quantidade de dados
gerada, foi proposta também a utilização do banco de dados distribuído e baseado em
tecnologia NoSQL (armazenamento não relacional), o MongoDB.

2. Web Crawlers

Sites e sistemas web nem sempre possuem uma maneira rápida para o
compartilhamento de dados de forma estruturada. Isso porque boa parte do conteúdo na
Web está disponibilizado ao público através de páginas HTML. A grande quantidade de
informação dificulta o processo de quem precisa obter, tratar e analisar esses dados. Nesse
sentido, Web Crawlers oferecem recursos para a extração e estruturação de informações
presentes em páginas da internet.

Crawlers são programas que visitam e analisam a estrutura de páginas web obtidas
a partir de uma lista inicial de links e funciona de forma recursiva a partir de novos links
encontrados (DIKAIAKOS; STASSOPOULOU; PAPAGEORGIOU, 2005). Esses
Crawlers, também conhecidos como Spiders ou Robôs, utilizam o HTML das páginas para
obter dados específicos de determinados contextos e armazená-los de forma estruturada
utilizando, por exemplo, um Banco de Dados.

Os Crawlers são a base de motores de busca como o google, mas também são
usados em muitos serviços especializados, como portais de investimento, ferramentas de
inteligência competitiva e repositórios de trabalhos científicos (MENCZER, et al., 2001).
Para acessar partes específicas de uma página, esses programas podem utilizar seletores
CSS ou Xpath. Ao explorar o modelo do CSS 2.0, algoritmos são capazes de acessar as
informações posicionais de qualquer elemento no HTML (FERRARA; DE MEO;
FIUMARA, 2014).
O segundo método de localização de informações no HTML é o XML Path
Language (Xpath). Segundo Wong et al. (2014), Xpath é uma linguagem de consulta usada
para localizar um nó em um documento XML (também usado em páginas HTML).

3. Banco de Dados Não relacionais


XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 67
Modelos relacionais utilizam tabelas para representar entidades do sistema,
tradicionalmente buscam diminuir redundâncias e retratar de forma simplificada os
relacionamentos entre essas entidades do Banco de Dados com a utilização de chaves
primárias e estrangeiras. Entretanto, de acordo com Secco et al.(2016), os bancos
relacionais possuem limitações quanto à escalabilidade de um sistema ao terem de lidar
com uma grande quantidade de dados. Segundo Codd (1970), o modelo relacional fornece
um meio de descrever dados apenas com sua estrutura natural (independente de
superestruturas de código externo).

Já as estruturas NoSQL (Not Only SQL) são capazes de lidar com um grande
volume de dados de forma eficiente e fornecem performance ao lidar com dados variados e
com complexidades diversas. Logo podem ser uma alternativa ao uso do bancos de dados
tradicionais (GUPTA et al., 2017).

NoSQL é um formato de armazenamento não relacional, ou seja, não utiliza o


padrão tabela/linha/coluna de bancos de dados relacionais. O modelo não relacional
utilizado neste trabalho é conhecido como modelo de documentos, e utiliza um formato de
JSON binário para armazenamento de dados.

Estruturas não relacionais oferecem um mecanismo para armazenamento e


recuperação de dados não estruturados, são compatíveis com sistemas onde há alguma
inconsistência de dados, como cenários que incluem Big Data e aplicações web (ZHAO et
al., 2014).

4. Trabalhos Relacionados

Yang (2019) apresenta o projeto de um sistema de aquisição de dados baseado no


framework Scrapy, que visa adquirir os dados desejados com eficiência e precisão. De
acordo com palavras-chave especificadas pelo usuário da rede principal e o tipo de dado,
os dados necessários podem ser rastreados, adquiridos, processados e classificados.
Figura 1 - Estrutura do sistema

Fonte: Adaptado de YANG (2019)


Para isso, é utilizada uma estrutura que conecta browser e servidor, dividida em
três partes: front-end, back-end e database. Na Figura 1 estão indicadas as tecnologias
específicas utilizadas em cada uma dessas partes.
O autor também apresentou as diferentes tarefas executadas pelos diferentes lados
do sistema. No lado do servidor, primeiro ocorre a execução do módulo que analisa a
página e extrai as informações contidas na estrutura HTML. Em seguida é executado o
módulo que processa essas informações, o que inclui, por exemplo, excluir dados
68 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
duplicados. Já do lado do browser há o módulo de login do cliente, o que permite que o
cliente crie uma nova tarefa de análise de página e obtenção de informações, o módulo de
gerenciamento de tarefas e o módulo de busca de dados obtidos por nome da tarefa
executada.
Almeida, Cirqueira e Lobato (2017) apresentam o projeto de um sistema que utiliza
o framework Scrapy na busca por alcançar as reclamações realizadas por usuários do site
web ReclameAqui. Logo, com os dados adquiridos, é possível realizar uma análise das
críticas direcionadas às instituições parceiras do trabalho.
A figura 2 apresenta os métodos realizados pelos autores na extração dos dados no
site web ReclameAqui. O primeiro passo consiste na análise da disponibilidade de
informação que poderão ser extraídas, após o JavaScript converter os dados em HTML
torna-se possível a seleção dos dados utilizando os seletores CSS ou XPath para realizar
extração das informações. No Scrapy é realizado mapeamento e extração das informações
através dos seletores, posteriormente é realizado o tratamento e armazenamento dos dados
em um arquivo CSV.
Figura 2 - Método para aquisição dos dados

Fonte: Almeida, Cirqueira e Lobato (2017)


Os autores também apresentaram os diferentes resultados obtidos para cada
empresa, ressaltando a importância de coletar o feedback do usuário e aprimorar os
serviços apontados na plataforma ReclameAqui.
Os trabalhos apresentados nesta seção utilizam recursos de raspagem web para
obter dados não estruturados presentes em páginas HTML. As raspagens web contam com
agentes que realizam o mapeamento, extração e armazenamento das informações de forma
estruturada, e no presente trabalho é utilizado uma estrutura similar de extração de dados
com a ferramenta Scrapy para obter e armazenar as informações.

5. Ambiente de Coleta de Dados


XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 69
Definir quais seriam os ambientes de coleta dos dados foi uma das primeiras fases
deste trabalho, na qual o profissional especialista do domínio em “Saúde Mental” teve a
tarefa de identificar repositórios de teses e dissertações referências de algumas das
principais universidades do país. Entretanto, para existir a possibilidade de extração dos
dados de forma eficiente e no padrão Web Crawlers foi considerada não apenas a
universidade, mas também a maneira que elas disponibilizam as informações dos trabalhos
em seus repositórios. Por exemplo, o repositório deve estar disponível na web de forma
pública e as informações de interesse devem estar disponíveis em suas páginas HTML de
forma estruturada.

Levando em consideração estes e outros outros requisitos, esta etapa de preparação


do ambiente de coleta resultou na escolha de doze repositórios, são eles: UFPE, USP,
UFRJ, UFMG, UFPB, UFRN, UNB, UFRGS, UFSC, UFAM, UFPA e
UFG. Desses repositórios foram extraídas as informações título, resumo/abstract, autor(es),
data do documento, url, tipo e palavras-chave.

6. Materiais e Métodos

Este trabalho foi desenvolvido utilizando-se como base a linguagem de


programação Python, que é uma linguagem simples e prática de se trabalhar, possui uma
biblioteca completa e extensa (PYTHON, 2020). No contexto do projeto, Python auxiliou
na construção da lógica de programação e ofereceu suporte ao framework utilizado para a
extração dos dados. Também foi utilizado o Scrapy, um framework de código aberto que
oferece suporte na extração de dados em sites de forma rápida e simples, com poucas linhas
de código (SCRAPY, 2020). O papel do Scrapy foi de realizar a extração dos dados de
teses e dissertações em repositórios de universidades federais. Por último, o MongoDB,
que é um banco de dados distribuído de uso geral, baseado em documentos, criado para
desenvolvedores de aplicativos modernos e para a era de armazenamento na nuvem
(MONGODB, 2020). Ele foi o banco de dados escolhido para armazenar as informações
obtidas com o Scrapy.

A Figura 3 apresenta os procedimentos para a definição do contexto e o


desenvolvimento do trabalho que são descritas após a imagem.

Figura 3 - Fluxo da Metodologia

● Reuniões: esta foi a primeira etapa do projeto, foram feitas reuniões com todos os
membros do grupo de pesquisa, entre eles, o profissional especializado no
70 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
domínio “Saúde Mental”. As reuniões tiveram o objetivo de definir o contexto do
projeto e as ferramentas a serem utilizadas durante todo o ciclo de
desenvolvimento da extração de dados;
● Análise de alvo: após a definição do contexto, partiu-se para a análise dos
repositórios de universidades no Brasil, sendo elas UFPE, USP, UFRJ, UFMG, UFPB,
UFRN, UNB, UFRGS, UFSC, UFAM, UFPA e UFG, com o objetivo de obter
informações sobre saúde mental em teses e dissertações;
● Codificação: com os alvos definidos, a continuidade do projeto constituiu-se em
desenvolver scripts para a construção de crawlers que aplicam a extração dos
dados através da estrutura do HTML;
● Extração: etapa em que os crawlers são executados, visitando os domínios dos
repositórios e buscando os dados através de seletores CSS especificados no
processo de Codificação, após a execução os dados são salvos em arquivos no formato
JSON (JavaScript Object Notation).
● Armazenamento: os dados obtidos são armazenados no MongoDB. A escolha de
um banco de dados não relacional foi feita por ele simplificar a criação de
estruturas de armazenamento, tornando a consulta da informação um
procedimento mais direto e eficiente quando comparado a abordagens mais
clássicas.

7. Desenvolvimento dos Módulos de Extração e Armazenamento


Os resultados do presente trabalho podem ser divididos em dois módulos distintos,
um deles caracterizado pela tarefa de extração de dados, e o outro pela de armazenamento.

Figura 4 - Módulo de extração e armazenamento

Como é mostrado na Figura 4, para cada um dos repositórios das universidades foi
criado um crawler que recebia a url inicial da página com os trabalhos filtrados pelo tema
“Saúde Mental”, e acessava cada um deles para fazer o scraping das páginas. Como as
consultas traziam mais de uma página como resultado, o crawler também era capaz de
acessar essas páginas sequencialmente. Os dados resultantes foram armazenados no
MongoDB.
Ao analisar a estrutura HTML das páginas de teses e dissertações dos repositórios
alvo da pesquisa, e com o auxílio do especialista de domínio, nove informações foram
destacadas como candidatas para o modelo de dados. Com base no modelo definido, foi
possível realizar a implementação dos módulos de scraping para extrair, processar e

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 71
armazenar as informações. A Figura 5 apresenta a tabela criada para manter registro dessas
informações com relação às universidades.

Figura 5 - Tabela para seleção das informações

Ao avaliar todos os repositórios, conclui-se que sete informações contidas nas


páginas são comuns em todos os repositórios e por esse motivo foram escolhidas para o
modelo de armazenamento proposto. Essas informações são: título, resumo/abstract,
autor(es), data do documento, url, tipo e palavras-chave.
Para que os crawlers conseguissem extrair todos os trabalhos de cada repositório
com o tema de saúde mental, foi necessário acessar o repositório e utilizar o campo de
buscas para filtrar os trabalhos por tema. O crawler recebeu a informação da URL da
página resultante.
Figura 6 - Função parse() para o repositório da UFMG

Em seguida, a partir da função parse() representada pela Figura 6, foi analisada


a estrutura HTML da página em busca do link de acesso para cada um dos trabalhos,
utilizando a informação dos elementos identificadores HTML que compõem esse link. No
caso de haver mais de uma página resultante da pesquisa, o crawler deve acessar todas elas
e reproduzir o mesmo procedimento.
Dentro da página do trabalho, o crawler busca cada informação utilizando os
identificadores HTML. Por exemplo, no repositório da UNB, ele encontrou o conteúdo do
resumo do trabalho buscando pela tag <div> que possuía a classe
DocumentoTextoResumo. Aplicando esse mesmo processo para todos os trabalhos de
cada repositório, foi iniciada a tarefa de armazenamento das informações obtidas.
Figura 7 - Exemplo da estrutura dos dados armazenados

72 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Na Figura 7 essas informações estão estruturadas no formato JSON (JavaScript
Object Notation), que é o formato utilizado para armazenamento no MongoDB. As
informações armazenadas foram definidas juntamente com a especialista do domínio a
partir da análise dos dados em comum presente em todos os repositórios sobre teses e
dissertações relacionadas ao tema "saúde mental". A estrutura de armazenamento conta
com as informações de “repositório”, “título”, “resumo”, “data”, “url”, “autores” e
“palavras-chaves”.
Tabela 1 - Quantidade de dados extraídos por universidade
Universidade Quantidade de dados Universidade Quantidade de dados
extraídos extraídos
UFAM 1.080 UFRJ 1.676

UFG 3.319 UFRN 3.722

UFMG 3.019 UFSC 4.109

UFPA 5.611 UNB 1.800

UFPE 15.733 USP 1.003

UFRGS 8.400 UFPB 3.141

Total 52,613

Média 4.385

Ao final, foram extraídas informações de um total de 52.613 trabalhos, com uma


média de 4.385 trabalhos por repositório, conforme apresenta a Tabela 1. Dessa forma, foi
criada uma base de dados de teses e dissertações relacionadas à saúde mental contidas em
repositórios online de universidades brasileiras. Essa base torna possível que se tenha uma
visão abrangente do que está sendo discutido sobre saúde mental no Brasil dentro das
universidades, e como está se desenvolvendo o conhecimento científico dessa área de
estudo.
8. Considerações finais

Este trabalho teve por objetivo realizar a extração dos dados de teses e dissertações
relacionados ao tema saúde mental de doze universidades e armazenar todas as
informações extraídas no MongoDB, que é um banco de dados não relacional.

A escolha de um banco de dados não relacional foi essencial, pois flexibilizou a


manipulação dos dados, sem a necessidade de alguma alteração crítica nas tabelas, fato que
aconteceria se a abordagem fosse em um banco de dados relacional.

Com todos os dados extraídos e armazenados, obtém-se uma base de dados de teses
e dissertações sobre saúde mental de uma amostra de universidades do Brasil. Como
trabalhos futuros há a possibilidade de se desenvolver uma plataforma de busca aberta ao
público que disponibilize as informações extraídas de maneira estruturada, aplicando
também o uso de filtros para facilitar a localização de trabalhos específicos. Também seria
interessante implementar um sistema com uma interface que permita o cadastro dos
elementos identificadores do HTML necessários para que se extraiam as informações de
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 73
outros repositórios, possibilitando que processo ocorra automaticamente, ao invés de
depender da execução manual do código.

Referências

ALMEIDA, Gustavo R. T. de ; CIRQUEIRA, Douglas Rocha ; LOBATO, Fábio


M. F.. Improving Social CRM through eletronic word-of-mouth: a case study of
ReclameAqui. In: WORKSHOP DE TRABALHOS DE INICIAÇÃO
CIENTÍFICA - SIMPÓSIO BRASILEIRO DE SISTEMAS MULTIMÍDIA E
WEB (WEBMEDIA) , 2017, Gramado. Anais [...] . Porto Alegre: Sociedade
Brasileira de Computação, 2017 . p. 107-110. ISSN 2596-1683.

CODD, Edgar F. A relational model of data for large shared data banks.
Communications of the ACM, v. 13, n. 6, p. 377-387, 1970. Disponível em
<http://db.dobo.sk/wp-content/uploads/2015/11/Codd_1970_A_relational_mo
del.pdf> . Acesso em: 28 ago. 2019.

DIKAIAKOS, Marios D.; STASSOPOULOU, Athena; PAPAGEORGIOU,


Loizos. An investigation of web crawler behavior: characterization and metrics.
Computer Communications, v. 28, n. 8, p. 880-897, 2005.

DIRSCH-WEIGAND, Andrea; KOCH, Franziska; PINKELMAN, Rebecca;


AWOLIN, Malte; VOGT, Joachim; HAMPE, Manfred. Looking Beyond One's
Own Nose Right from the Start: interdisciplinary study projects for first year
engineering students. In: INTERNATIONAL CONFERENCE ON
INTERACTIVE COLLABORATIVE LEARNING, 18., 2015, Florence.
Proceedings [...] . Florence: Ieee, 2015. p. 729-732.

FERRARA, Emilio; DE MEO, Pasquale; FIUMARA, Giacomo; et al. Web data


extraction, applications and techniques: A survey. Knowledge-Based Systems, v.
70, p. 301–323, 2014.

GUPTA, Adity et al. NoSQL databases: Critical analysis and comparison. 2017
International Conference On Computing And Communication Technologies For
Smart Nation (ic3tsn), p.293-299, out. 2017. IEEE.
http://dx.doi.org/10.1109/ic3tsn.2017.8284494.

HIRDES, Alice. A reforma psiquiátrica no Brasil: uma (re) visão. Ciência & Saúde
Coletiva. Rio de Janeiro, p. 297-305. fev. 2009. Disponível em:
https://www.scielo.br/scielo.php?script=sci_arttext&pid=S1413-81232009000
100036&lng=pt&tlng=pt. Acesso em: 21 set. 2020.

74 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
MENCZER, Filippo et al. Evaluating topic-driven web crawlers. In: Proceedings of
the 24th annual international ACM SIGIR conference on Research and
development in information retrieval. ACM, 2001. p. 241-249.

MONGODB. The database for modern applications. Disponível em:


https://www.mongodb.com/. Acesso em: 06 set. 2020.

ONOCKO-CAMPOS, Rosana Teresa. Saúde mental no Brasil: avanços, retrocessos


e desafios. Cadernos de Saúde Pública, Rio de Jnaeiro, v. 35, n. 11, p. 1-5, 31
out. 2019. FapUNIFESP (SciELO).
http://dx.doi.org/10.1590/0102-311x00156119. Disponível em:
https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0102-311X2019001
300501&tlng=pt. Acesso em: 21 set. 2020.

PYTHON. Sem título. 2020. Disponível em: https://www.python.org/. Acesso em:


05 set. 2020.

SCRAPY. Sem título. 2020. Disponível em: https://scrapy.org/. Acesso em: 05 set.
2020.

SECCO, Ricardo Ribeiro et al. Análise comparativa entre o banco de dados


cassandra (modelo nosql) e o postgresql (modelo relacional) em duas diferentes
organizações empresariais. Colloquium Exactarum, v. 8, n. 2, p.39-56, 20 jun.
2016. Associacao Prudentina de Educacao e Cultura (APEC).
http://dx.doi.org/10.5747/ce.2016.v08.n2.e154.

WONG, Chi-In et al. Design of a crawler for online social networks analysis.
WSEAS Transactions on Communications, v. 13, p. 263-274, 2014.

YANG, Hongxia. Design and Implementation of Data Acquisition System Based on


Scrapy Technology. In: INTERNATIONAL CONFERENCE ON SAFETY
PRODUCE INFORMATIZATION, 2., 2019, Chongqing. Proceedings [...] .
Chongqing: Ieee, 2019. p. 417-420.

ZHAO, Gansen et al. Schema Conversion Model of SQL Database to NoSQL. 2014
Ninth International Conference On P2p, Parallel, Grid, Cloud And Internet
Computing, p.355-362, nov. 2014. IEEE.
http://dx.doi.org/10.1109/3pgcic.2014.137.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 75
GraphLive: um sistema interativo para a criação de grafos
Pedro Sousa Silva Cantuária1, Fabiano Fagundes2
1
Acadêmico do curso de Ciência da Computação no CEULP/ULBRA
2
Professor do Departamento de Computação no CEULP/ULBRA
{pedrossc.88,thilfa} @gmail.com

Resumo. A Teoria dos Grafos é um conteúdo essencial nos cursos de computação


e, devido a sua complexidade e extensão, pode ser melhor explorada pelos
estudantes da área através de simulações computacionais. Visando auxiliar o
ensino desta disciplina, o presente trabalho aborda o desenvolvimento de uma
ferramenta com o objetivo de oferecer a professores e alunos uma forma mais
dinâmica de criação e visualização de grafos, a partir de uma linguagem própria
construída com este propósito.

1. INTRODUÇÃO

Na computação, Estruturas de Dados são formas de armazenar e organizar dados de modo


que possam ser acessados, analisados ou visualizados de forma eficiente. Por sua
importância fazem parte do eixo básico das grades curriculares dos cursos da área. Em
geral, o ensino da disciplina acontece de duas formas: inicialmente teórica, com
apresentação dos diversos conceitos e visualização de imagens estáticas das estruturas, e
em seguida, atividades práticas, com a implementação e validação dos resultados obtidos.
Estruturas de dados lidam com tipos abstratos de dados, acompanhando diversos
conceitos, dos mais simples, como listas, pilhas e filas, até os mais complexos, como
grafos, que possuem seu próprio ramo de estudo chamado Teoria dos Grafos.
O estudo de grafos se destaca pela quantidade de conceitos e conteúdos existentes,
como: grafos simples, completo, subgrafo, multigrafo, arvores, conjunto, e etc. Um
conteúdo tão extenso dificilmente é aplicado de forma plena, limitando o ensino aos
principais conceitos e utilizações. Apesar de seu uso computacional, a Teoria dos Grafos é
um ramo complexo da matemática que se utiliza de várias regras e fórmulas em seu
conteúdo didático. Esta complexidade pode dificultar o entendimento e abstração
necessária para o aprendizado de acadêmicos sem tanta familiaridade com conceitos
matemáticos.

A oportunidade de testar na prática os conhecimentos teóricos


adquiridos é essencial para um verdadeiro aprendizado do tema. Com
um sistema onde a própria implementação das animações gráficas é
facilitada a ponto de poder ser realizada pelo estudante, a absorção do
funcionamento dos algoritmos será ainda mais intensa (GARCIA et
al., 1997).

Existem diversas ferramentas disponíveis na internet para visualização de grafos,


mas raramente estão em português, são complexas de usar ou não apresentam muita
informação além do desenho do grafo. Como no ambiente acadêmico os alunos dos cursos
de computação são, desde o início, apresentados ao uso de linguagens de programação,
este trabalho propõe a utilização de uma linguagem de programação simplificada para
76 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
geração dos grafos. Neste contexto pedagógico mesmo que simplificado, o aluno pode ter
contato com uma linguagem com atributos léxicos e sintaxe diferente do habitual.

Assim, este trabalho tem como objetivo apresentar o desenvolvimento de um sistema


interativo para a visualização dos conceitos de grafos, o GraphLive, no qual será possível,
além da criação do grafo, a visualização de suas características, bem como as suas matrizes de
incidência e adjacência. Para tanto, o seguinte trabalho está dividido em: Referencial Teórico,
Metodologia, Desenvolvimento e Considerações Finais.

2 REFERENCIAL TEÓRICO

Teoria dos Grafos é um ramo da matemática que tem por objetivo estudar objetos
combinatórios. Para Bondy et al. (1976), muitas situações do mundo real podem ser
convenientemente descritas por um conjunto de pontos e linhas conectando certos pares
destes pontos, formando um grafo.

“A teoria está relacionada a outros diversos ramos da matemática


como a teoria de grupos, teoria de matrizes, análise numérica,
probabilidade, topologia e análise combinatória. O fato é que a teoria
dos grafos serve como um modelo matemático para qualquer sistema
envolvendo uma relação binaria.” (RABUSKE, 1992, p.2).

Para Dovicchi (2007, p. 77), a terminologia utilizada na teoria dos grafos compreende as
definições dos elementos, características e propriedades dos grafos, que são compostas por:
• Vértices (ou Nós): é a unidade fundamental das quais grafos são formados;
• Arestas: seguimento de linha que encontra dois vértices;
• Laços: são arestas que conectam apenas um vértice;
• Vértices Adjacentes: são dois vértices ligados por uma aresta;
• Arestas Paralelas: duas arestas que se conectam aos mesmos vértices;
• Vértice Isolado: um vértice que não se conecta a nenhum outro vértice;
• Grau (ou Valência): número de arestas que se conectam a um dado vértice;
• Caminho: sequência de vértices conectados por arestas que conectam
um vértice inicial a um vértice destino;
* A disposição, ou ausência, destes elementos em um grafo caracterizam
diferentes categorias ou tipos de grafos.

Existem diversos tipos de grafos que podem ser aplicados nas mais variadas situações,
portanto um bom conhecimento dos tipos existentes é essencial para encontrar a melhor
solução para problemas que podem ser resolvidos com esse tipo de estrutura de dados. A
seguir serão apresentados os tipos mais comuns de grafos:

Segundo Costa (2011), um grafo é G é formado por um par (V(G), A(G)), onde V(G) é
um conjunto não vazio e A(G) um conjunto de pares distintos não ordenados de elementos
distintos de V(G). A seguir está apresentado um modelo de grafo simples.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 77
Figura 1. Grafo simples e suas funções

Na Figura 1 pode-se identificar um grafo simples, composto por cinco vértices V(1, 2, 3,
4, 5) e quatro arestas A(a, b, c, d), onde cada uma das arestas é determinada por um par de
vértices. Podem-se identificar ainda outras características neste grafo, como por exemplo: o
grau dos vértices e a presença de um vértice isolado V(5).

Multigrafos são grafos que além das características de um grafo simples, podem possuir
arestas paralelas, ou seja, arestas com os mesmos vértices finais, além da utilização de laços,
conforme figura a seguir.

Figura 2. Um multigrafo

A Figura 2 apresenta um grafo com os mesmos vértices apresentado no grafo da Figura 2,


mas com a adição de uma aresta paralela A(e) e de um laço A(f). De acordo com Diestel
(2000, p 25) um grafo é essencialmente o mesmo que um multigrafo, mas sem laços ou
arestas paralelas, eles podem supreendentemente ser mais comuns que grafos simples para a
solução de problemas no mundo real.

Um grafo completo é um grafo simples em que todos os vértices são adjacentes aos outros
vértices, ou seja, existe pelo menos uma aresta ligando quaisquer dois vértices do grafo.

Figura 3. Grafo simples e um grafo completo

78 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Grafos direcionados ou orientados indicam em suas arestas a representação de seu sentido
ou a direção a qual se conectam. Este tipo de grafo pode ter duas arestas ligando o mesmo par
de vértices, mas em direções opostas, diferente de um grafo não-direcionado.

Figura 4. Um grafo direcionado com os graus de seus vértices

A Figura 4 apresenta um grafo direcionado com seus vértices indicando seus respectivos
graus. O primeiro número indica o grau de saída do vértice, enquanto o segundo indica o grau
de saída.

Embora a representação gráfica dos grafos seja muito útil na prática para modelar
problemas do mundo real, facilitando sua leitura, ela não é adequada para representar
computacionalmente sua estrutura. As formas mais comuns de se representar estruturas como
grafos computacionalmente são através de Listas de Adjacência, Matriz de Adjacência e
Matriz de Incidência.

Estes conceitos indicam informações que poderão ser obtidas a partir da própria
linguagem quando de sua utilização e serão apresentados no GraphLive junto com a
representação gráfica do respectivo grafo.

3. Metodologia

As subseções a seguir apresentam materiais e procedimentos planejados para o


desenvolvimento deste trabalho. Conforme sua execução, estas ferramentas podem ser
descartadas, substituídas, ou novas podem ser incluídas.

3.1 Materiais e Métodos

Abaixo são especificadas as linguagens de programação e os softwares que serão


utilizados no desenvolvimento do trabalho:
● HTML – (HyperText Markup Language) ou Linguagem de Marcação de
Hipertexto está atualmente em sua quinta versão e será utilizada para a
produção de páginas web e criação de documentos que possam ser lidos por
praticamente qualquer navegador;
● CSS – (Cascading Style Sheets) é um mecanismo para adicionar estilos
(cores, fontes, espaçamento, etc) a um documento web e, neste projeto, será
utilizado para formatação de documentos HTML;
● JQuery – biblioteca de código aberto de funções JavaScript/TypeScript que
interage com o HTML para simplificar os scripts interpretados pelo
navegador do cliente;
● Visual Studio Code – editor de código fonte desenvolvido pela Microsoft,
livre e de código aberto, com suporte para depuração, Git, realce de sintaxe,
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 79
complementação de código e muito mais;
● Live Server – Extensão do Visual Studio Code para criaçao de um servidor
local de desenvolvimento.
● JSON Viewer – extensão para o Chrome para visualização de formato
JSON, utilizado para testar os retornos do formato;
● Draw.io – software livre o online para criação de fluxogramas, diagramas de
processos, gráficos organizacionais, UML, entre outros. Utilizado para criar
diagramas utilizados na documentação do projeto;
● Graphviz – Pacote de ferramentas de código aberto para desenhar gráficos
especificados na linguagem DOT. Utilizado para gerar grafos a partir de uma
entrada de texto em DOT;
● ANTLR4 – (ANother Tool for Language Recognition 4) é um gerador de
parser (analisador) para criar linguagens. Neste contexto será utilizado para
converter o código de entrada do usuário em linguagem DOT;

4. Desenvolvimento

O primeiro passo foi o estudo da linguagem DOT da ferramenta GraphViz e o


desenvolvimento de uma linguagem própria para o GraphLive. O desenvolvimento dessa
nova linguagem teve como foco a simplicidade e instintividade, se comparando mais a outras
linguagens de alto nível do que a linguagem DOT, que apesar de ser versátil é muito verbosa,
pois contempla funcionalidades que não são necessárias para este projeto.

4.1 Estudo do GraphViz e Linguagem DOT

A imagem a seguir mostra um exemplo de código em DOT e o grafo gerado a partir deste
código pelo GraphViz.

Figura 5. Código em DOT e grafo correspondente

A figura 5 demonstra um exemplo de código na linguagem DOT, é possível identificar a


repetição de trechos, como nos nomes dos nós, determinação dos labels ou valores das arestas.
Não existem indicadores de variáveis, de modo que é necessário repetir o nome do nó várias
vezes, abrindo margem para erro como na imagem a seguir:

80 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 6. Código em DOT com erro de digitação e grafo
correspondente

A figura 6 apresenta um código com mesma sintaxe que o código anterior, portanto não
há erro léxico ou sintático, mas por conta de um erro de digitação do usuário, o grafo
resultante é totalmente diferente do esperado.

A utilização do GraphViz se limita apenas a criação dos grafos, sem trazer nenhuma
informação ou característica, mas este não é seu objetivo. O GraphViz (em conjunto com a
linguagem DOT) é uma ferramenta complexa com documentação extensa e funções que se
estendem muito além de grafos simples, como formato, cor, ordenação etc., demandando o
estudo da própria ferramenta, limitando o uso educacional para o estudo da Teoria dos Grafos.

4.2 Desenvolvimento da linguagem do GraphLive

Para o desenvolvimento da linguagem utilizada pelo GraphLive foram estabelecidas as


regras a serem utilizadas, chegando ao resultado abaixo:
• Iniciar o grafo com a palavra chave graph seguido do nome e o símbolo “:”;
• Indicar variáveis seguidas do símbolo de “=” e o nome do nó indicado,
repetir para cada nó que existir no grafo;
• Indicar a relação entre os grafos representando-os pela variáveis
indicadas na etapa anterior. A relação deve ser sempre entre pares de
nós.
• Utilizar esquema de traços indicar a aresta que fará o relacionamento
entre os nós, identificando o valor da aresta entre o traços, se houver;
o “--” para relacionamento simples;
o “-X-” para relacionamentos simples com valor, onde “X” pode
ser substituído por qualquer valor;
o “-->” para relacionamento direcionado ao nó à direita sem
valor de aresta;
o “-X->” para relacionamento direcionado ao nó à direita com
valor de aresta;
o “<-->” para relacionamento bidirecional sem valor de aresta;
o “<-X->” para relacionamento bidirecional com valor de aresta;

Exemplificando, de acordo com as regras estabelecidas, o mesmo código na linguagem


DOT deve ser convertido para a linguagem GraphLive da seguinte forma:

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 81
Figura 7: Comparativo de código em DOT com código em
GraphLive

Para alcançar o resultado apresentado na Figura 7 foi utilizado uma ferramenta de


reconhecimento de linguagem, o ANTLR4 para criar um compilador para a linguagem do
GraphLive.

4.2.1 Criação do Compilador

A metodologia para a criação do compilador foi realizada conforme figura abaixo:


Figura 8. Processo de desenvolvimento do compilador

82 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A criação do compilador utilizando o ANTLR4 se deu em três partes, a definição da
gramática contendo todas as regras da linguagem seguindo o padrão da ferramenta. A partir
desta linguagem é gerado um lexer (ou analisador léxico) e um parser (ou um analisador
sintático).

Figura 9. Gramática GraphG

A figura 12 apresenta a gramática GraphG utilizada na construção do compilador. O lexer


é responsável pela criação dos tokens (palavras-chaves) com base na gramática estabelecida,
que por sua vez são passados para o parser que recebe uma entrada e gera uma Arvore de
Sintaxe Abstrata (AST, do inglês Abstract Syntax Tree).

Figura 10. AST gerada a partir da gramática GraphG

A figura 10 apresenta um exemplo de AST gerada pelo parser com a entrada do código do
modelo GraphLive da figura 7. Com esta estrutura criada, é possível traduzir a entrada para
dando lógica ao código, ou seja criando um analisador semântico.

Com o ANTLR4 foi gerado um analisador semântico para JavaScript capaz de percorrer
toda a arvore com um conjunto de listeners em cada entrada e saída de um nó. Com isso foi
criado códigos em pontos chaves para traduzir a entrada em GraphLive para a linguagem
DOT, além de analisar gerar as características do grafo a ser desenhado.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 83
Figura 11. Trecho de código utilizado na entrada do nó
“declaração”

A figura 11 exemplifica essa metodologia de entrada e saída em cada nó. O trecho


apresentado prepara algumas variáveis e identifica os nós na relação, no caso “A--> B”. Estas
informações serão úteis na saída do nó, depois de ter percorrido os filhos.

Na figura 12 é apresentado o restante do processamento, que só pode ser feito após


percorrer todos os filhos do nó “declaração”. O retorno deste processamento é enviado para
seu nó pai e assim sucessivamente até o fim da arvore.

Após percorrer toda a árvore, fazendo as análises e verificações indicadas, é retornado o


código traduzido para DOT e as características do grafo. Foi criado um arquivo html simples
para utilização durante o processo de desenvolvimento, de forma a receber uma entrada e
retornar as informações e o grafo.

Figura 12. Trecho de código utilizado na saída do nó


“declaração”

84 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Por fim, o código traduzido é importado para a biblioteca do GraphViz que gera uma
imagem com o grafo descrito no código, e as informações do grafo, obtidas pelo
processamento no compilador, são apresentadas.
5. Resultados

Os grafos criados pelos usuários da ferramenta são processados e apresentados em um


documento HTML simples. A figura 13 apresenta a visualização que o usuário receberá na
tela, contendo inicialmente o código em DOT (que está sendo mantido para fins de
desenvolvimento) e as informações sobre o grafo descrito. As informações apresentadas
foram identificadas na execução do compilador, permitindo ao usuário revisar seus
conhecimentos.

Figura 13. Retorno de informações GraphLive

A figura 14 é a imagem do próprio grafo resultado da descrição do usuário via código.


Nele são apresentados os identificadores dos vértices, os valores e o direcionamento das
arestas, no caso de grafos direcionados, e as arestas são identificadas de forma crescente em
forma de número, independente de possuírem ou não um valor ou peso.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 85
Figura 14. Apresentações visuais

Por fim, a figura 14 apresenta a imagem as matrizes geradas a partir do grafo. São elas:
Matriz de Adjacência (não valorada) que indica quais os vértices estão conectados por arestas
respeitando seu direcionamento; Matriz de Adjacência (valorada) que indica quais os pesos
das arestas que conectam duas vértices; e Matriz de Incidência, que representa quais vértices
estão conectadas pelas arestas. O tamanho das matrizes pode variar, dependendo do tamanho
do grafo desenhado.

6. Considerações Finais
Este trabalho apresentou o desenvolvimento do GraphLive, uma ferramenta para o auxílio
ao ensino de Grafos em uma plataforma web que pode ser expandida para o ensino de
estrutura de dados em geral. Para sua implementação foi necessária a criação de um
compilador capaz de traduzir a linguagem personalizada do GraphLive para a linguagem
DOT do GraphViz enquanto analisa a entrada gerando as informações, sendo, por fim,
utilizado o código traduzido para gerar a imagem do grafo.

Mesmo com todas as informações disponibilizadas sobre os grafos, o GraphLive não


substitui o ensino teórico, mas pode agir como um facilitador para alunos e professores para
que o aprendizado flua de maneira mais eficiente.

Por se tratar de uma ferramenta Web, os requisitos para o usuário são mínimos, apenas
um navegador com conexão com a internet. A linguagem necessária é de simples aprendizado
e sua utilização bastante intuitiva. Considerando tudo o que foi produzido, o GraphLive tem o
potencial de se tornar uma base para o desenvolvimento um ambiente maior de auxilio ao
ensino de estrutura de dados.

REFERÊNCIAS
COSTA, Polyanna Possani da. Teoria dos grafos e suas aplicações. (2011): 77-p.
FEOFILOFF, Paulo; KOHAYAKAWA, Yoshiharu; WAKABAYASHI, Yoshiko.
Uma introdução sucinta à teoria dos grafos. 2011.
BONDY, John Adrian et al. Graph theory with applications. London:
Macmillan, 1976.
SILVA FILHO, José. Criação de uma Ferramenta Informativa sobre Teoria
dos Grafos. Trabalho de Conclusão de Curso (Graduação em Ciência da
Computação) – CEULP-ULBRA, 2017. Disponível em: <https://ulbra-
to.br/bibliotecadigital/publico/home/documento/338>.
MADEIRA, Maicon Francisco et al. Odin - Ambiente eeb de apoio ao ensino
de estruturas de dados lista encadeada. Anais SULCOMP, v. 1, 2012.
GARCIA, Islene C.; REZENDE, PJ de; CALHEIROS, Felipe C. Astral: um
ambiente para ensino de estruturas de dados através de animações de
algoritmos. Revista Brasileira de Informática na Educação, v. 1, n. 1, p. 71-80, 1997.
DOVICCHI, João. Estrutura de Dados. 2007. Disponível
em:<http://www.inf.ufsc.br/~joao.dovicchi/pos-ed/ebook/e-
book_estrut_dados_dovicchi.pdf>. Acessado em: 15 set. 2019.

86 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Implementação de um Data Mart e Automatização do Processo
ETL para o Sistema de Procedimentos Extrajudiciais do MPE/TO
Thiago Aparecido da Silva1, Fábio Castro Araújo1
1
Sistemas de Informação – Centro Universitário Luterano de Palmas (CEULP/ULBRA)
Avenida Teotônio Segurado, 1501 Sul, CEP 77.019-900, Palmas - TO - Brasil
thiagoaparecido97@rede.ulbra.br, fabio.castro@ceulp.edu.br

Resumo. O presente artigo apresenta o processo de desenvolvimento de um data mart e


automatização do processo ETL para o sistema de procedimentos extrajudiciais do MPE/TO.
A implementação e automatização tem como objetivo integrar os dados referentes a
processos extrajudiciais que estão armazenados em diversas fontes de dados da organização.
Deste modo, o presente trabalho tem como finalidade automatizar a integração desses dados
a partir do processo ETL e armazená-los em um data mart;

1. Introdução
Os procedimentos extrajudiciais são processos que visam resolver conflitos da
sociedade sem acionar o poder judiciário. Isto é, os conflitos podem ser resolvidos entre as
partes com a mediação de órgão responsável. O Ministério Público do Tocantins dispõe de
um sistema responsável pelo gerenciamento destes procedimentos. No entanto, os dados
produzidos no sistema são armazenados em base de dados distintas, ocasionando um esforço
para transformar os dados brutos e dispersos em um único ambiente.
Diante deste cenário, o termo Data Warehouse surge como uma alternativa a
organizações que buscam manipular e centralizar grandes volumes de dados. Segundo Inmon
(1997, p. 33), Data Warehouse “é um conjunto de dados baseado em assuntos, integrado, não
volátil e variável em relação ao tempo, de apoio às decisões gerenciais”. Em outras palavras,
consiste em um repositório de dados sólidos e consistente, oriundos de uma ou várias fontes
de dados, o qual demonstra uma nova forma de visualizar a organização no domínio
estratégico e estrutural.
Um ambiente de Data Warehouse compreende dados estruturados extraídos por meio
do processo de extração, transformações e carregamento (ETL). Este processo é composto por
três etapas: extração, responsável por extrair os dados; transformação, responsável por realizar
a limpeza e as transformações necessárias nos dados; carga, responsável por integrar os dados
no ambiente de Data Warehouse.
O Data Mart representa um segmento específico de um Data Warehouse completo. Por
exemplo, se uma organização possui o setor de recursos humanos e outro de vendas, cada
setor vai possuir um data mart para o armazenamento de seus dados, estruturados para
atender sua necessidade.
Tendo como base a necessidade de o MPE dispor de tecnologias que agregam valor no
desenrolar dos dados, o presente trabalho tem como objetivo construir e automatizar o
processo ETL para integrar e padronizar os dados referente ao sistema de Procedimento
Extrajudiciais do Ministério Público do Tocantins.

2. Referencial Teórico
O Data Warehouse é um grande banco de dados que armazena dados de múltiplas
fontes para o desenvolvimento de informações integradas, com base nos dados de uma
organização inteira. Conforme Shams (2001), o Data Warehouse é “uma plataforma que
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 87
contém todos os dados da organização, centralizados e organizados, de forma que os usuários
possam extrair relatórios analíticos complexos, contendo informações gerenciais para apoio à
decisão”.
As características principais de um Data Warehouse são (IMON, 1997): orientado a
assuntos, integrado, variável com o tempo e não volátil.
O Data Warehouse deve a corresponder a consultas avançadas de maneira rápida,
mostrando detalhes relevantes à resposta. Diante disso, sua arquitetura deve permitir coletar,
manipular e apresentar os dados de forma eficiente e rápida. A Figura 1 mostra os principais
componentes da arquitetura de um Data Warehouse.

Figura 1. Arquitetura de um Data Warehouse.


Segundo Machado (2004), a arquitetura define o modelo lógico, independente da estrutura
física do data warehouse. A arquitetura é constituída por um conjunto de ferramentas que
respondem desde a carga até o processamento de consultas, assim como por repositórios de dados,
como o data warehouse e os data marts.
Na arquitetura projetada existe o Data Mart, que segundo Laudon (2007) “é um
subconjunto de um Data Warehouse, no qual uma porção resumida ou altamente focalizada
dos dados da organização é colocada em um banco separado destinado a uma população
específica de usuários”. Conforme Inmon (2005), um Data Mart é uma estrutura de dados
dedicada em servir as necessidades de análise de um grupo de pessoas, tais como
departamento de finanças ou recursos humanos. A modelagem multidimensional, segundo
Machado (2000), “é uma técnica de concepção e visualização de um modelo de dados de
um conjunto de medidas que descrevem aspectos comuns de negócios”. Ela é utilizada para
prover uma visão que suporte a análise de informações de forma flexível e rápida.
Em um modelo multidimensional são encontrados três elementos básicos: fatos, dimensões
e medidas.
Segundo Dias(2009), o modelo estrela é um modelo que implementa os conceitos de
estrutura multidimensional onde, na sua composição típica, apresenta uma grande entidade
central denominada fato e um conjunto de entidades menores denominadas dimensões,
arranjadas ao redor da entidade fato, de forma que a representação gráfica do modelo se
pareça com uma estrela.
O processo ETL (Extração, Transformação e Carga) é o processo onde serão captados
os dados das diversas fontes existentes na organização para ser entregues ao Data Warehouse.

88 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 2. Processo ETL.

A etapa inicial consiste na extração dos dados de diversas fontes disponíveis, sejam
elas bases de dados, arquivo textos ou binários, páginas da web. Em seguida, os dados obtidos
são então transformados do ambiente operacional para o ambiente do Data Warehouse, onde
os dados são integrados, refinados, transformados e sumarizados. Na última etapa ocorre
processo de carga o volume de dados processado é levado ao Data Warehouse, onde estará
disponível para análise.

3. Materiais e Métodos
Dentre as ferramentas utilizadas para o desenvolvimento deste trabalho, destaca-se o
SGBD (Sistema de Gerenciamento de Banco de Dados) PostgreSQL utilizado para
armazenamento dos dados estruturados do data mart tal como o PDI (Pentaho Data
Integration) aplicado no desenvolvimento e automatização do processo ETL. O PDI é um
poderoso mecanismo de extração, transformação e carregamento (ETL) que usa uma
abordagem orientada a metadados (PENTAHO, 2020). O mecanismo fornece à migração de
dados entre aplicações ou base de dados, exportação de dados, integração de aplicações. A
figura abaixo demonstra como os softwares estão relacionados.

Figura 3. Relacionamentos das ferramentas


A figura 8 apresenta a base de dados do sistema E-ext, em que se referem aos dados
trabalhados neste projeto. Em seguida, através da ferramenta PDI (Pentaho Data Integration)
os dados foram extraídos das fontes de dados, passam por uma série de transformações para
padronizar o formato dos dados e foram carregados para o data mart construído por meio da
ferramenta PostgreSQL.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 89
Figura 4. Metodologia.
O processo de implementação foi iniciado com o entendimento do modelo de entidade
e relacionamento do sistema E-ext (1) do MPE/TO, passando para definição do modelo
abstrato do data mart (2). Para construção do modelo físico (3), foi implementado o modelo
abstrato para a armazenar os dados do data mart. Em seguida, foi realizada a integração dos
dados (4) utilizando o Pentaho Data Integration. Por fim, foi criado os jobs (5), responsáveis
pela automatização do processo ETL.

4. Resultados
Os conceitos estudados sobre Data Warehouse e Processo ETL promoveram suporte
referente a métodos de construir um ambiente formado por informações centralizadas,
decorrentes de uma ou mais fontes de dados, proporcionando a organização uma nova
maneira de realizar a integração dos dados de forma padronizada.
Como mencionado anteriormente, os dados trabalhados neste projeto referem-se ao sistema de
gerenciamento de processos extrajudiciais do MPE/TO (e-ext), sendo adotado como estudo de
caso. A partir de então, o intuito deste trabalho foi criar um ambiente para centralizar os
dados, apresentando suas estruturas e elementos.
Com base na análise e entendimento dos dados foram levantadas necessidades que
direcionaram a criação do modelo lógico:
● Em quantos procedimentos extrajudiciais da área X o promotor Y participou?
● No ano de 2018 a área criminal teve a instauração de quantos procedimentos em que o
promotor X atuou?
De acordo com as necessidades levantadas foi possível a identificação dos elementos do
modelo multidimensional do data mart. As necessidades abordadas apresentam a tabela fato
como os procedimentos e as tabelas dimensões como área, documento, região, promotor e
tempo.

Figura 5. Modelo lógico do data mart.

90 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
O modelo lógico apresentado na Figura 5, evidencia o fato e as dimensões do data
mart dispostas no modelo estrela.
Para o processo de ETL do Data Mart foi utilizada a ferramenta Pentaho Data
Integration – PDI. A seguir será mostrado e detalhado um fluxo de transformações da
ferramenta PDI para a carga da tabela de dimensão (DIM_PROMOTOR) do data mart.

Figura 6. Processo ETL.


No fluxo apresentado através da figura 6, exibe transformação da dimensão promotor,
que estabelece a execução das tarefas do processo ETL como: leitura, validação, refino,
transformação e gravação dos dados com destino a tabela de dimensão Promotor do data
mart. Todo o processo é repetido para as tabelas dimensões restantes.
O processo de integração da tabela fato Procedimento foi realizado executando a tarefa
de consulta dos dados das tabelas de dimensão, permitindo a pesquisa de valores de cada uma.
A Figura 7 ilustra o processo de carga da tabela fato Procedimento.

Figura 7. Processo de Carga.


No fluxo apresentado na Figura 7, exibe componentes que insere os valores, outros
modificam, e outros atualizam os dados na base de dados. A etapa de automatização do
processo ETL foi realizada com job na ferramenta Pentaho Data Integration, como apresenta a
Figura 8.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 91
Figura 8. Automatização do processo ETL
A automatização das transformações pode ser criada através de job, que executam
sequencialmente as transformações podendo ser agendado um horário para executarem
automaticamente. O job inicializou executando o processo ETL da dimensão área, ao concluir
a execução seguiu para próxima dimensão documento, processo se repetiu para as outras
sendo a do promotor, tempo e região e tabela fato Procedimento, finalizando na etapa sucess.

5. Considerações Finais
O presente trabalho teve como objetivo implementar um data mart e automatização do
processo ETL para integrar os dados referentes ao sistema de procedimentos extrajudiciais do
Ministério Público do Estado do Tocantins. Com base no estudo dos conceitos relacionados à
Data Warehouse, Data Mart e ETL, foi possível ter embasamento teórico para realização do
trabalho, bem como, o estudo e aprendizado das ferramentas necessárias para o
desenvolvimento.
A utilização da ferramenta Pentaho Data Integration para automatizar o processo de
extração, transformação e carga de dados no data mart foi essencial para agilizar e facilitar o
procedimento de integração dos dados. Além de oferecer uma interface intuitiva, de fácil
aprendizado, a ferramenta permite executar Jobs.

Referências
INMON, W. H. Como construir o Data Warehouse.2ª ed. New York: Editora Campus,
1997.

SHAMS K., Farishta M. (2001), “Data Warehousing: Toward knowledge Management”,


Topics in Health Information Management, v. 21, n. 3, p. 24-32

MACHADO, Felipe Nery Rodrigues. Tecnologia e Projeto de Data Warehouse: Uma visão
multidimensional. São Paulo: Editora Érica Ltda, 2004.

Inmon, W. H. Building the Data Warehouse. Fourth Edition. Wiley Publishing, Inc, USA,
2005.

Laudon, K. C.; Laudon, J. P. Sistemas de informação gerenciais. Pearson Prentice Hall,


São Paulo. 2007.

Machado, F. N. R. Projeto de Data Warehouse: Uma Visão Multidimensional. Érica, São


Paulo. 2000.

DIAS, Braian O. Projeto de Data Mart utilizando ferramentas Open Source. 2009.
Disponível em: <
http://fernandozaidan.com.br/cft/bi2012/Pentaho/Projeto%20de%20Data%20Mart%20utilizan
do%20ferramentas%20Open%20Source.pdf>. Acesso em: 19 set. 2020.

92 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
OSLIVE: Módulo de Exercícios de Escalonamento de
Processos
Gabriel Fernandes da Silva1, Madianita B. Marioti1, Fabio Castro Araújo1
1
Departamento de Computação - Centro Universitário Luterano de Palmas
(CEULP/ULBRA) Avenida Teotônio Segurado, CEP 77.019-900 – Palmas – TO –
Brasil
gabriel-fernandes@rede.ulbra.br, madianitab@ceulp.edu.br
fabio.araujo@ulbra.br

Resumo. O OSLive é um ambiente web que visa auxiliar no processo de ensino e


aprendizagem da disciplina de Sistemas Operacionais, tendo como objetivo
oferecer uma plataforma online com recursos que auxiliem os alunos a
compreender os conceitos vistos em sala de aula. Este trabalho tem como objetivo
apresentar o módulo de exercícios sobre os algoritmos de Escalonamento de
Processos, que possibilita a criação e resolução dos exercícios, bem como a
visualização da correção da resposta dos exercícios criados de uma forma
dinâmica, auxiliando assim no entendimento das políticas de escalonamento dos
sistemas operacionais.

1. Introdução
Sistemas Operacionais (SOs) é uma das disciplinas recomendadas nas diretrizes curriculares
nacionais dos cursos de graduação da área de Computação e Informática no Brasil, segundo
o Ministério da Educação - MEC (BRASIL, 2012). O SO consiste em um conjunto de
programas que atuam entre as camadas de aplicação do usuário (software) e de hardware da
máquina, tornando este utilizável (DEITEL, 2005), e a disciplina aborda conceitos
relacionados ao gerenciamento disponibilizado pelos SOs.
Na disciplina são estudados os conceitos relacionados às quatro áreas de gerência dos
SOs, que são: Gerência de Processos, que organiza a execução dos programas, visando
garantir o uso eficiente da CPU; Gerência de Memória, que determina como a memória é
alocada entre os processos concorrentes, decidindo quais recebem memória, quando recebem
memória e quanto de memória vai ser destinada a eles; Gerência de Arquivos, que é
responsável por realizar a manipulação de arquivos e diretórios no sistema, tendo com
principais funções armazenar, modificar e excluir arquivos, além de realizar o controle de
acesso; e Gerência de E/S, que é responsável por gerenciar os dispositivos de hardware
instalados em um computador, fornecendo uma interface uniforme para facilitar o acesso a
dispositivos com diferentes características físicas e otimizar o desempenho de dispositivos
individuais.
Todo esse gerenciamento que o SO realiza não é visível para o usuário. Por isso,
alguns conteúdos da disciplina de Sistemas Operacionais são complexos para o
entendimento por parte dos alunos, que precisam compreender como acontece na prática o
que é apresentado nos conceitos envolvendo as quatro áreas de gerência do SO. Conforme
Maziero (2002), “uma das principais características da disciplina de Sistemas Operacionais é
a relativa dificuldade em definir um sequenciamento didático claro entre seus diferentes
tópicos”. Pensando nisto, foi iniciado o projeto do OSLive, que é uma plataforma online que
oferece recursos, como simulação, exercício etc., para auxiliar na compreensão dos
conteúdos relacionados ao SO.
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 93
Atualmente, o OSLive possui, entre outros, o módulo de simulação dos algoritmos de
escalonamento de processos. Segundo Silberschatz; Galvin; Gagne (2004) o escalonamento
de processos trata do problema de decidir qual dos processos na fila de prontos (ready
queue) deve ser entregue à CPU. Para isso, são utilizados critérios que são definidos pelos
algoritmos de escalonamento.
Para complementar o módulo de simulação, foi desenvolvido o módulo de exercícios
sobre os algoritmos de Escalonamento de Processos. A aplicação permite a criação e
resolução de exercícios diversos, apresentando um feedback ao usuário, informando o
desempenho e, caso haja erros na resolução, apresentando os erros e a resposta correta.

2. Escalonamento de Processos
O objetivo da multiprogramação é ter vários processos em execução ao mesmo tempo,
compartilhando o uso da CPU. O gerenciamento é feito de forma que em alguns momentos,
um processo está ocupando a CPU e outros estão prontos para executar, esperando em uma
fila de processos de prontos.
O escalonamento de processos lida com o problema de decidir qual processo da fila
de processos prontos deverá ser alocado para executar na CPU a cada momento
(Silberschatz; Galvin; Gagne, 2001). Os algoritmos de escalonamento definem os critérios
de escolha.
Quando um processo está sendo executado na CPU ele pode ou não ser interrompido
para que outro processo possa ocupar a CPU, isso vai depender da política de escalonamento
do algoritmo. Os algoritmos de escalonamento em que os processos podem ser
interrompidos pelo SO para liberar a CPU para outros processos são chamados de
preemptivos. Já os algoritmos em que o processo ocupa a CPU até o encerramento de seu
ciclo de execução, são chamados de não-preemptivos.

2.1. Algoritmos de Escalonamento de Processos


Os livros didáticos costumam apresentar quatro algoritmos básicos, usados nas políticas de
escalonamento de processos dos Sistemas Operacionais, são eles: FIFO(First In First Out),
RR(Round Robin), SJF(Shortest Job First) e Prioridade. Esses algoritmos serão detalhados
mais a seguir.
First in First Out (FIFO) é não preemptivo e utiliza o conceito de execução em ordem
de chegada para ser implementado, ou seja, o primeiro que entra será o primeiro a sair, sendo
assim, os processos irão ocupar o processador na ordem em que foram inseridos na fila de
aptos.
Round Robin (RR) é um algoritmo preemptivo e semelhante ao algoritmo FIFO, os
processos são inseridos na fila de aptos em ordem de chegada. Porém, no RR atribui-se uma
fatia de tempo, denominada Quantum, para cada processo utilizar a CPU.
Independentemente do tempo de ciclo de cada processo, o algoritmo define uma parcela de
tempo de execução para todos. Ao atingir o fim desse tempo, o processo que está na CPU é
retirado e o processo seguinte ganha a CPU, formando uma execução circular dos processos,
até que todos os processos estejam finalizados (STUART, 2011).
De acordo com (SILBERSCHATZ; GALVIN; GAGNE, 2015), Shortest Job First
(SJF) é um algoritmo que associa a cada processo a duração do próximo pico de CPU do
processo. Quando a CPU está disponível, ela é atribuída ao processo que tem o próximo pico
de CPU mais curto.
O algoritmo SJF pode ter ou não ter preempção. A escolha é feita quando um
novo processo chega à fila de prontos enquanto um processo anterior ainda está
94 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
sendo executado. O próximo pico de CPU do processo recém-chegado pode ser
mais curto do que o tempo remanescente deixado pelo processo em execução
corrente. Um algoritmo SJF com preempção interrompe o processo em execução
corrente, enquanto um algoritmo SJF sem preempção permitirá que o processo
em execução corrente termine seu pico de CPU (SILBERSCHATZ, GALVIN,
GAGNE,2015, p. 312).
Prioridade é o algoritmo em que uma prioridade é associada a cada processo e a CPU
é alocada ao processo com a prioridade mais alta (SILBERSCHATZ, GALVIN, GAGNE,
2015). Processos com prioridades maiores são inseridos na fila antes dos processos de
prioridades menores, sendo que os processos com prioridades iguais são organizados na fila
de aptos em ordem FIFO.

3. Metodologia
Para a organização, desenvolvimento e execução do trabalho foi seguida a sequência de
atividades apresentada no fluxo do trabalho mostrado na Figura 1.

Figura 1. Fluxo do Trabalho.


Na fase de revisar a princípio foi necessário realizar uma revisão da disciplina de
Sistemas Operacionais, com ênfase nos algoritmos de escalonamento de processos. Para
tanto, foi necessário recorrer aos livros, slides e todo o material disponibilizado e
referenciado na disciplina do curso de Sistemas Operacionais do Ceulp/Ulbra.
Já na fase de compreender, após realizada a revisão do funcionamento dos
algoritmos de escalonamento de processos, o próximo passo foi então compreender o
funcionamento do código fonte da simulação dos algoritmos de escalonamento de processos
do OSLive, visto que a implementação do ambiente para a realização dos exercícios tem
como base o módulo em questão.
Em seguida na fase de definir, estabeleceu-se com a Prof. M.e Madianita Bogo
Marioti, professora da disciplina de SO do Ceulp/Ulbra, como seria a construção do
ambiente dos exercícios relacionados aos algoritmos de escalonamento de processos, de que
forma seria apresentando o exercício relacionado ao Diagrama de CPU e a Tabela de
Resultado ao usuário e como seriam as respostas caso ele acerte ou erre os exercícios.
Na fase de implementar, com a ideia do exercício já definida, iniciou-se então a
implementação do exercício de escalonamento de processos, para tal, foi necessário a
utilização de ferramentas como: Bootstrap(utilizado na construção do layout do ambiente de
criação e resolução dos exercícios), AngularJS(utilizado para a criação das funcionalidades
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 95
da aplicação), jQuery(utilizado para criar as notificações do sistema), HTML(utilizado para
estruturar a página web para exibir o conteúdo), JavaScript(utilizado para gerenciar as regras
lógicas da aplicação) e o Visual Studio Code(utilizado como principal editor dos códigos-
fonte).
Por fim, na fase de testes, a medida em que se ia implementando os exercícios, foram
feitos testes funcionais, para verificar se as funcionalidades estavam de acordo com o que foi
proposto.

4. Resultados
A Figura 2 apresenta a tela inicial da aplicação, que o usuário visualiza assim que acessa o
sistema. As únicas ações realizadas antes da captura de tela foram as expansões das áreas,
isto é, ao iniciar o sistema é apresentado apenas o título de cada área correspondente que, ao
serem selecionadas, apresentam as opções e os formulários apresentados na imagem. Nas
áreas 1, 2 e 3 são oferecidas as opções para criar os exercícios. A área 4 é onde os exercícios
e resoluções serão apresentados.

Figura 2. Tela Inicial.


Como visualizado na Figura 2, na área 1, para realizar a criação do exercício é
necessário primeiro que o usuário entre com as informações solicitadas para a criação dos
processos:
• selecionar algoritmo de escalonamento: permite que o usuário escolha um
algoritmo de escalonamento, sendo eles: FIFO (First In,First Out), SJF (Shortest
Job First), Prioridade(Não Preemptiva), Prioridade(Preemptiva) ou RR(Round
Robin); e
• criar processos: permite que o usuário cadastre os processos para que se realize o
exercício, nesta seção o usuário pode: realizar a inserção de vários processos de
forma automática (selecionando o checkbox abaixo de “Criar Processos” conforme
visualizado na Figura 2) ou cadastrar cada processo de forma manual.
Caso o usuário opte por cadastrar cada processo de forma manual ele terá que
informar os seguintes valores: Nome do Processo, Tempo de chegada e Tempo de Execução.
Se o usuário escolher o algoritmo de escalonamento por Prioridade seja ele preemptivo ou
não, ele deverá informar a prioridade do processo em questão. Caso o algoritmo de
escalonamento seja Round Robin, ele deverá informar o quantum (Fatia de Tempo) na área
de “Criar Processos”.
Após a criação dos processos, na área 2, “Tabela de Processos”, será apresentada
uma tabela com as informações dos processos que foram cadastrados e suas respectivas

96 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
informações, como: Nome, Tempo de Chegada e Tempo de Execução. Nessa tabela, são
oferecidas opções de edição, que permitem alterar ou excluir um determinado processo.
Em seguida, conforme destacado na Figura 2, na área 3, serão disponibilizadas ao
usuário duas opções de exercícios, o exercício da Tabela de Resultados e o exercício de
Diagrama de CPU. Se o usuário optar por responder o exercício da Tabela de resultados, será
criada uma tabela na área 4, para o usuário preencher, digitando o valor correspondente ao
Tempo de Espera e ao Tempo Total de cada processo. Caso o usuário opte por responder o
exercício de Diagrama de CPU, será criado, na área 4, um diagrama contendo um instante de
tempo e um local para que o usuário digite o nome do processo correspondente. Ainda na
área 3, é disponibilizado o botão “Cancelar”, que selecionado, limpará todos os dados
inseridos até o momento e a aplicação voltará para a interface inicial.
A seguir são apresentados dois exemplos de uso da aplicação, que demonstram a
resolução de um exercício da Tabela de Resultados e outro utilizando o diagrama de CPU.

4.1. Exemplo 1: Resolução de Exercícios – Preenchimento da Tabela de


Resultados
Neste exemplo é apresentado um exercício de preenchimento da Tabela de Resultados, no
qual o usuário cria os processos e responde os exercícios preenchendo a tabela de resultados.
Após isso, o sistema corrige a resposta informando se o usuário acertou e, caso haja erros,
indicando o que errou. A Figura 3 apresenta as áreas de configurações do sistema para a
criação do exercício da Tabela de Resultado.

Figura 3. Criação do Exercício da Tabela de Resultado.


Como pode ser observado na área 1 da Figura 3, o algoritmo escolhido pelo usuário
foi o algoritmo de escalonamento FIFO (área 1) e, o usuário optou por criar os processos
manualmente, inserindo todas as informações necessárias para a criação de cada um dos
processos (área 2), como: Nome do Processo, Tempo de Chegada e Tempo de execução. O
usuário cadastrou três processos, “A”, “B” e “C” como é mostrado na Tabela de Processos
(área 3). Em seguida, o usuário optou por resolver o exercício de preenchimento da Tabela
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 97
de Resultado, de forma que foi apresentada na tela a tabela de resultados a ser preenchida
pelo usuário, de acordo com a Figura 4.

Figura 4. Exercício da Tabela de Resultado.


Após a configuração e criação do exercício, o usuário preencheu a tabela
corretamente e selecionou a opção ‘Corrigir Resposta’, para conferir se a sua resolução está
certa ou errada. Assim, a aplicação apresentou a correção apresentada na Figura 5. Caso o
usuário quisesse visualizar a resposta mesmo sem ter respondido, poderia selecionar o botão
‘Visualizar Resposta’. O botão ‘Cancelar’ limpa todos os dados inseridos na tabela.

Figura 5. Tela Resposta Correta – Tabela de Resultados.


A Figura 5 apresenta a tela após o usuário inserir os valores corretos, referentes ao
Tempo de Espera e Tempo Total de cada processo, e selecionar a opção ‘Corrigir Resposta’.
Para demonstrar que os valores estão corretos, é apresentada uma borda verde sobre cada
valor. Caso o usuário acerte todos os valores, será apresentada a mensagem, no canto
superior direito, “Parabéns, você acertou!!!”, área 2 na Figura 5.
A Figura 6 apresenta como é o resultado apresentado pela aplicação caso o usuário
insira valores errados na Tabela de Resultados.

98 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 6. Tela Resposta Correta – Tabela de Resultados.
Caso haja erros no preenchimento da tabela, em cada valor errado a aplicação
apresenta uma borda vermelha. Nesse caso, é apresentada a mensagem “Verifique o
Processo <<NomeDoProcesso>>” no canto superior direito, para cada processo que está
com o(s) valor(es) errado(s), área 2 da Figura 6.

4.2. Exemplo 2: Resolução de Exercícios – Preenchimento do Diagrama de CPU


Para exemplificar a criação e resolução do exercício de preenchimento do Diagrama de
CPU, foi utilizada a mesma configuração apresentada na Figura 3. Para criar o exercício,
todas as etapas seguem exatamente o mesmo fluxo apresentado no exemplo 1, com a
exceção de que na área 4, em ‘Resolver Exercício’, o usuário optou por escolher o exercício
de ‘Diagrama de CPU’. A Figura 7 mostra o diagrama que foi apresentado ao usuário, no
qual ele deveria indicar o processo que estava executando na CPU a cada momento,
considerando o algoritmo FIFO e os dados dos processos criados .

Figura 7. Tela Exercício Diagrama de CPU


Figura 8 apresenta o resultado retornado ao usuário quando este preenche
corretamente o Diagrama de CPU.

Figura 8. Tela Resposta Certa - Diagrama de CPU

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 99
Na Figura 8, que apresenta a correção quando o usuário acertou todos os processos,
foi inserida uma borda verde em todos eles e foi apresentada uma mensagem no canto
superior direito, com a frase, “Parabéns, você acertou!!!”, conforme visualizado na área 2 da
Figura 8.
A Figura 9 apresenta o resultado retornado ao usuário quando ele inseriu alguns
valores errados no Diagrama de CPU.

Figura 9. Tela Resposta Errada - Diagrama de CPU


Após o usuário preencher o diagrama e selecionar em ‘Corrigir Resposta’, o sistema
inseriu uma borda verde nos processos corretos e uma borda vermelha nos processos
errados. Além disso, apresentou uma mensagem no canto superior direito, pedindo que ele
tente novamente, como visualizado na área 2 da figura 9.

5. Considerações Finais

Este trabalho teve como objetivo apresentar o desenvolvimento do módulo de criação e


resolução de exercícios do OSLive, que visa auxiliar no processo de aprendizagem dos
alunos que estão cursando a disciplina de Sistemas Operacionais ou de qualquer pessoa que
tenha interesse em exercitar seus conhecimentos sobre escalonamento de processos. Foi
desenvolvida uma aplicação web por ser mais prática e fácil de se trabalhar, já que não há
necessidade de instalação de qualquer programa (de terceiros ou não) e pode ser acessada em
qualquer computador que tenha conexão com a internet.
Ao realizar a implementação dos exercícios, buscou-se oferecer uma aplicação em
que a criação dos exercícios se dá de uma forma intuitiva e simples, bastando que o usuário
tenha um pouco de conhecimento do assunto. Além disso, a correção dos exercícios é
apresentada ao usuário de uma maneira clara e objetiva, com bordas e notificações
apontando onde o usuário acertou e onde errou.
Como trabalhos futuros sugere-se que sejam inseridas explicações de conteúdo, como
o funcionamento dos algoritmos, para ajudar o usuário a resolver exercícios. Ainda, seria
interessante atribuir notas e armazenar os resultados dos usuários, para que eles pudessem
acompanhar a sua evolução.

Referências
BRASIL. Ministério da Educação. Parecer CNE/CES No 136/2012, aprovado em 9 de
março de 2012. Diretrizes Curriculares Nacionais para os cursos de graduação em
Computação. Disponível em:
<http://portal.mec.gov.br/index.php?option=com_docman&view=download&alias=1
1205-pces136-11-pdf&category_slug=julho-2012-pdf&Itemid=30192 >. Acesso em: 29
março 2020.
DEITEL, H. M; DEITEL, P. J; CHOFFNES. Sistemas Operacionais. 3. ed. São Paulo:
Pearson Prentice Hall, 2005.
100 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
MAZIERO, C. A. Reflexões sobre o ensino prático de Sistemas Operacionais. In
WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO. 10. Florianópolis, 2002.
Anais. Porto Alegre: SBC, 2002.
SCHMITZ, D.; LIRA, D. AngularJS na prática. 1. ed. AngularJS. 2016. SILBERSCHATZ,
Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de Sistemas
Operacionais. 6o. ed. Teresópolis - RJ: Ltc, 2001. 580 p. Tradução de: Elisabete do
Rego Lins.
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Sistemas Operacionais
com Java. 6o. ed. Rio de janeiro - RJ: Ltc, 2004. 599 p. Tradução de: Daniel Vieira.
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de
Sistemas Operacionais. 9o. ed. Ltc, 2015. 524 p.
STUART, Brian L. Princípios de sistemas operacionais: Projetos e aplicações. São Paulo:
Cengage Learning, 2011. 655 p. Tradução de: All Tasks.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 101
Otimização da Localização das Unidades Básicas de Saúde
Utilizando o Modelo p-Centro: Um estudo de caso
Isaac Jordan Coutinho Lopes1, Luis Eduardo Costa Laurindo1
1
Faculdade Estácio | CEUT
Teresina – PI – Brasil
isaack_coutinho@hotmail.com, luiseduardocosta417@gmail.com

Resumo. O objetivo deste artigo é realizar um estudo utilizando o modelo de


localização p-Centro, aplicando-o na localização das Unidades Básicas de Saúde
(UBS) no bairro Lourival Parente, na cidade de Teresina, capital do estado
brasileiro, Piauí. Para o estudo foram abordados dois cenários, sendo que no
primeiro foram definidos novos locais para instalação das UBS’s, considerando
sua realocação dentro da região, já no segundo cenário, as UBS’s foram
localizadas de acordo com a já existente no bairro. Para obtenção dos dois
cenários foi construída uma representação do bairro utilizando teoria dos grafos
e em seguida foi realizada a implementação e aplicação do modelo de localização
p-Centro. No presente trabalho, foi utilizado como métrica de avaliação o custo
de deslocamento (distância em metros) do usuário mais longínquo até o centro
mais próximo. Também foram levados em consideração no artigo o tempo que o
algoritmo demora para determinar uma solução ótima, combinações e iterações
que o mesmo realiza para o problema abordado.

1. Introdução
A instalação de pontos emergenciais, na maioria dos casos, realiza-se de forma empírica,
sem a utilização de um método de otimização que possa vir auxiliar nesse processo.
Localização é um dos fatores mais importantes quando se trata de instalação de
unidades de saúde, pois a instalação das mesmas em um local adequado aumenta o nível de
acessibilidade da população com relação aos serviços disponíveis, consequentemente,
reduzindo os custos econômicos. De acordo com [Robert 1983] a localização de unidades de
saúde e a distância em relação aos seus usuários deve ser levada em consideração,
principalmente em países pobres e de regiões carentes.
O estudo da localização dos equipamentos urbanos (ex: Unidade Básica de Saúde,
delegacias, corpo de bombeiros, etc.) é de grande importância para a sociedade, pois buscam
estratégias para alocar esses equipamentos da melhor forma possível, porém sabemos que são
altos os investimentos para construção dessas unidades. Os modelos de localização
permitem identificar os pontos mais adequados para instalação desses equipamentos, dessa
forma ficam mais acessíveis aos usuários a partir de um conjunto de pontos candidatos.
Segundo [Galvão et al. 1999], "problemas de localização no setor público podem ser
classificados em duas categorias: localização de serviços não emergenciais e localização de
serviços de emergência. Na primeira categoria estão incluídos a localização de escolas,
agências de correio, edifícios públicos, alguns serviços de saúde pública e mesmo de serviços
relacionados ao meio ambiente como suprimento de água e facilidades para o depósito de
lixo. A categoria de serviços de emergência inclui por exemplo a localização de hospitais, de
102 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
serviços de atendimento de emergência por ambulâncias e de estações do corpo de
bombeiros".
Como as UBS’s são o primeiro contato que a comunidade tem com o Sistema Único
de Saúde (SUS), para que atenda a todos de forma eficiente, é necessário que haja um
planejamento para distribuição das mesmas, logo é preferível que estejam localizadas
próximas a todos da comunidade, facilitando o acesso.
O presente trabalho utiliza o modelo p-Centro para obter uma melhor distribuição das
UBS’s, logo o objetivo do estudo é alocar as unidades de tal modo a minimizar o custo de
deslocamento até uma unidade mais próxima.
As demais seções do artigo, além da introdução, estão organizadas da seguinte
maneira: A Seção 2 apresenta a base teórica para o desenvolvimento do trabalho; A Seção 3
apresenta os trabalhos relacionados; Na Seção 4 é apresentada a metodologia utilizada para
realização da pesquisa; Na Seção 5 são apresentados os resultados; Por fim a Seção 6 é
formada pela conclusão do artigo e trabalhos futuros.
2. Fundamentação Teórica
2.1. Teoria dos Grafos
É um ramo da matemática que tem como finalidade resolver problemas reais da área
de otimização combinatória. O surgimento da teoria foi graças a um problema conhecido
como problema das pontes de Königsberg que foi resolvido por Euler em 1736, foi o
primeiro resultado formal de teoria dos grafos, onde o problema consistia em quatro regiões
A, B, C e D onde as mesmas eram interligadas por sete pontes, a dúvida era, determinar uma
possível rota passando somente uma vez por todas as pontes onde se possa retornar a região
de partida [Szwarcfiter 1986].
Um grafo é definido como sendo um par ordenado (X, A), onde X é um conjunto
finito não vazio de vértices {x1, x2, ..., xn} e A um conjunto de arestas {a1, a2, ..., am}
[Rabuske 1992]. É definido |X| = n como sendo a quantidade de vértices do grafo e A = m
a quantidade de arestas. São considerados grafos orientados aqueles onde suas arestas
possuem uma direção.

2.2. Modelos de Localização


É uma área de estudo da pesquisa operacional relacionada à determinação da
localização ou posicionamento ótimo de instalações que otimiza uma função objetivo
[Samed and Gonçalves 2013]. Em relação aos modelos matemáticos proposto para a
abordagem do problema, é necessário que os mesmos respondam perguntas como [Daskin
2013]:

• Quantas instalações são necessárias?


• Onde cada instalação deve ser instalada?
• Qual o tamanho e como devem ser alocadas?
Essas perguntas são respondidas de acordo com o contexto do problema a ser
abordado. Há uma classificação com relação aos modelos de localização. Nos modelos
planar, as instalações podem ser alocadas em qualquer região do plano. Nos modelos de
rede, as instalações podem ser alocadas nos vértice e arcos ou arestas, rede essa que
dependendo do problema, pode ser representada por árvores ou grafos em geral. Já nos
modelos discretos, só é possível fazer a alocação nos vértices [Daskin 2013].
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 103
O motivo pelo qual foi escolhido o modelo p-Centro para realização deste estudo, foi
pelo fato de que o objetivo principal do trabalho era reduzir a máxima distância que o
usuário percorre até uma unidade mais próxima, fazendo com que o usuário mais longínquo
não fique tão desfavorecido.
A questão mais importante levantada em consideração no processo de resolução de
problemas de localização é a seleção de um critério adequado ou função objetiva. A
formulação de uma função objetiva depende muito da propriedade da organização, tanto
pública quanto privada e a natureza das instalações [Rahman and Smith 2000].
Com relação ao critério de como devem ser alocados as instalações, como a distância
entre as mesmas e a demanda é definido valores dos raios de distância para o acesso as
unidades, podendo ser considerados respectivamente ótima (700 m), boa (1000 m) e regular
(2000 m), partindo do raciocínio que o acesso as instalações é feita na maioria das vezes a pé
[Goudard et al. 2014].
2.3. Modelo de Localização p-Centro
Os modelos de p-Centro também conhecidos como minimax, buscam minimizar a máxima
distância necessária para atender toda a demanda para um determinado número p de
instalações a serem localizadas. Este tipo de modelo é usado quando se tem o objetivo de
atender toda a demanda, mas se tem um orçamento limitado.
Trata da categoria de problemas onde as instalações podem ser alocadas em qualquer
lugar da rede, pois podendo ocorrer em determinadas situações ser impossível realizar a
alocação nos vértices, nesse caso a localização ótima para a alocação do centro será em um
determinado local da aresta. A busca por esse ponto ótimo na aresta é conhecido como o
problema do p-Centro absoluto.
Seja Xp um subconjunto de X contendo p vértices de um grafo G = (X, A).
Definimos d(Xp, xi) a menor distância entre qualquer um dos vértices no conjunto Xp e os
vértices xi [Christofides 1975]:
d(Xp, xi) = min[d(xj, xi)], ∀xj ∈ X p (1)
Na segunda etapa do modelo é definida a separação dos números de vértices do conjunto de
X p , onde S0 (X p ) e St (X p ) são considerados os conjuntos de vértices de entrada e saída de G
respectivamente e vj como sendo o peso associado ao vértice xj.
S0 (X p ) = max[vjd(Xp, xj)], ∀xj ∈ X (2)
e
St(Xp) = max[vjd(xj, Xp)], ∀ xj ∈ X (3)
E por último são escolhidos os p vértices na qual seu custo é mínimo, ou seja, são os vértices
onde serão instaladas as facilidades de tal modo, que a máxima distância seja minimizada.
S0(Xp ∗) = min[S0(Xp)], ∀ Xp ⊆ X (4)

O modelo para localização de centros nos vértices pode ser formulado da seguinte
maneira:

104 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
em que:

hi = demanda no nó i;
P = número de instalações a se localizar;
dij = distância entre a demanda i e a instalação j;
W = máxima distância entre a demanda e a instalação mais próxima;
X j = 1 se existe a instalação em j e 0 caso contrário;
Y ij = fração da demanda i atendida pela instalação j.
Uma proposta de algoritmo em pseudocódigo para o problema do p-Centro pode ser
visto na figura 1. Tem como entrada a matriz D de custo mínimo, o número p de centros a
serem localizados e a quantidade de vértices n do grafo.

Figura 1. Representação do algoritmo do p-Centro em pseudocódigo.

3. Trabalhos Relacionados
Na literatura, vários trabalhos relacionados a alocação de facilidades como posto policial,
centros emergenciais já foram publicados trazendo resultados satisfatório para solução de
determinados problemas.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 105
Em [da Silva et al. 2013], utiliza-se o modelo de p-medianas e o método de
clusterização k-means, também levando em consideração a decisão do gestor de alto escalão
para seleção de 78 pontos candidatos de tal modo que cada estrategia irá contribuir com 26
pontos para localização de viaturas policiais na cidade de João Pessoa que possui 64 bairros.
Foram utilizados na pesquisa os Sistema de Informações Geográficas(SIG) Google Maps
para obtenção das coordenadas, MapInfo Professional para geração dos mapas e o SPRING
para resolver o problema de p-medianas.
Em [Brondani et al. 2013], aplica-se o modelo de p-medianas para alocação de
unidades urbanas de lazer na cidade do Rio de Janeiro através de uma heurística
especificamente projetada, onde foi criado uma representação em grafo onde os vértices
eram pontos onde as unidades de lazer seriam alocadas, onde foram consideradas as
unidades já existente. Propõe como trabalhos futuros a utilização de metodologias de
consenso, por exemplo, Interpretive Structural Modelling (ISM).
Já em [Andrade and Cunha 2014], apresenta-se um modelo matemático inédito para
problema de localização de bases, alocação de veículos em múltiplos períodos, e realocação
entre períodos subsequentes onde é apresentado uma aplicação prática do modelo no sistema
de ambulâncias do município de São Paulo.

4. Metodologia
O problema de localização das UBS’s trata-se de encontrar os melhores locais para
instalação das mesmas de tal modo que a máxima distância a um dos centros seja a mínima
possível visando melhorar o atendimento, abrangendo assim toda a população da região.
Com base nos dados da Empresa Teresinense de Processamento de Dados
(PRODATER) que disponibiliza todos os mapas de bairros da cidade e informações sobre
equipamentos urbanos, foi selecionado para objeto de estudo o bairro Lourival Parente
localizado na zona sul da capital por ser considerado um bairro de porte médio com uma
área de 2, 17km2. Para coleta de dados com relação as distâncias entre pontos de interseção
das ruas foram utilizado o Google Maps.
A estrutura do bairro foi elaborada como sendo um grafo ponderado não orientado,
pois constatou-se nas informações disponibilizadas no Google Maps que não há vias de mão
única na região. O grafo gerado possui 227 vértices, no qual onde cada vértice do grafo
representa a intercessão entre as ruas, e as arestas representam o caminho (vias) que ligam os
vértices.
A partir do grafo foi gerada a matriz D de custo mínimo por meio do algoritmo de
Floyd-Warshall, e em seguida aplicou-se o algoritmo do p-Centro. Como estudo, foi
considerado importante a proposta de alocação para um novo cenário e também, a alocação
das unidades com base no cenário atual, onde o mesmo já possui uma unidade instalada.
A implementação dos algoritmos para a execução deste trabalho foi realizada
utilizando a linguagem Python, versão 2.7 em um computador com processador Intel Core
i5 3.2GHz 3a geração com 8GB de memoria RAM. Sistema Operacional Linux Ubuntu
16.04 LTS x64.

5. Resultados Obtidos
106 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Hoje, o bairro Lourival Parente encontra-se com um cenário em que há apenas uma UBS
para toda a comunidade daquela região, o Centro de Saúde São Camilo, que fica localizado
na região do vértice 152, interseção entre as ruas Epitácio Pessoa e Quinze de Novembro
(ver figura 2), onde para o deslocamento até a mesma tendo como referência a região mais
longínqua, é de 1887,8 metros, aproximadamente 1.9 quilômetros.

Figura 2. Cenário atual do bairro Lourival Parente

Tabela 1. Resultado da aplicação do p-Centro para definição de um novo cenário

De acordo com a Tabela I, para p = 1 a realocação da UBS que se encontra


instalada na região do vértice 152 do grafo para a região 108 tem o custo de deslocamento do
usuário até a UBS reduzido em 472,38 metros, aproximadamente 0.5 quilômetros, uma
diferença bem relevante para o problema. Notou-se também que o tempo de resposta do
algoritmo p-Centro é bastante satisfatório, sendo que o mesmo encontrou uma solução para
o problema em menos de 1 segundo.
Para o caso de duas UBS’s, ou seja, p = 2 não há uma diferença relevante com
relação ao caso da localização para p = 1, pois a distância máxima para conseguir acesso a
UBS mais próxima ainda é de 1092,92 metros, aproximadamente 1.1 quilômetro, uma
distancia considerada ainda alta para o caso em que as pessoas na maioria das vezes se
deslocam a pé. Percebe-se, então, que houve um aumento bastante notável em relação a
seu comportamento para p = 1, realizando um número muito alto de combinações e
iterações, assim elevando também seu tempo de resposta para 1,08 segundos.
O caso em que seria mais adequado para o problema é a situação onde p = 3, pois é a
quantidade de centros que minimiza a máxima distancia entre o usuário e a UBS mais
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 107
próxima com um custo de 0.82 quilômetros. No gráfico da figura 3(a) é apresentado o
comportamento com relação ao custo da distância máxima para os casos citados na tabela I,
no qual observou-se a diferença da redução do custo em metros para cada caso.

Figura 3. (a) Custo máximo em relação a cada p-Centro. (b) Tempo de resposta do
algoritmo do p-Centro. (c) Número de combinações e iterações realizadas pelo p-
Centro.

Outros detalhes que foram avaliados com relação ao objeto de estudo foram o tempo
que o algoritmo do p-Centro leva para encontrar os pontos ótimo para instalação das UBS’s,
como quantidade de combinações, e iterações que o mesmo realiza para encontrar uma
solução. A figura 3(b) mostra uma função de tempo crescente de acordo com o valor de p
onde notou-se que para p = 3 o tempo de resposta do algoritmo é muito alto em ralação a p
= 2 e p = 1, o comportamento é similar de acordo com a quantidade de centros para o
gráfico da figura 3(c) que correspondem as combinações e iterações realizadas pelo
algoritmo.
De acordo com as figuras 4(a), 4(b) e 4(c), observou-se o resultado do algoritmo
para um novo cenário onde as UBS’s estão instaladas em locais ótimos, atendendo assim
toda a demanda da região com um custo de deslocamento mínimo.
Também foi realizada uma análise onde foi levando em consideração a UBS já
instalada na região do vértice 152 para o caso de p = 1 e p = 2. Na tabela II notou-se que
para p = 1, a diferença do cenário anterior onde o mesmo possui 2 unidades é muito
pequena. Nota-se também que o número de combinações e iterações reduziu em relação a
proposta de um novo cenário.

Tabela 2. Resultado da aplicação do p-Centro para definição de locais ótimos com


base na unidade já localizada

De acordo com as figuras 5(a), 5(b) e 5(c), observou-se o efeito da instalação das
UBS’s com relação a que já estava instalada na região do vértice 152 do grafo. Esta é uma
proposta que pode ser utilizada para maioria dos casos, pois partimos do ponto que os bairros
ja se encontram com pelo menos uma UBS instalada na região para a comunidade.

108 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 4. Realocação da UBS existente e instalação de mais duas UBS no bairro.

Figura 5. Instalação de 2 UBS no bairro com base na UBS existente.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 109
O gráfico da figura 6 mostra a comparação entre os dois cenários que foram abor dados
no trabalho, onde o primeiro cenário foi a proposta da realocação da UBS já instalada no bairro
Lourival Parente, e o segundo foi a instalação das UBS’s com base na já existente, onde a
métrica utilizada para avaliação desses cenários que foram abordados foi o custo da distância
máxima para o usuário se deslocar até uma UBS mais próxima. Para o caso de 1-Centro, há
uma diferença bastante significativa entre os dois casos, logo o caso de 1-Centro foi
considerado a realocação da UBS. Já para o caso de 2 e 3 centros, a diferença pode ser
considerada pequena.

Figura 6. Comparação de custo entre os cenários

6. Conclusão e trabalhos futuros


O artigo apresentou um estudo aplicado para avaliação dos locais ótimos onde devem ser
instaladas as UBS’s. Foi apresentado como proposta dois cenários, onde o primeiro é a
realocação da unidade que ja se encontra no bairro e a instalação de mais duas, e o segundo
foi a instalação de duas unidades tendo como referência aquela já existente no bairro.
Com esse trabalho, foi possível notar que a UBS já instalada não se encontrava em um
local ótimo, onde a distância para a demanda mais longínqua era de aproximadamente
1.9 quilômetros, considerando assim uma situação regular. O melhor para o bairro seria a
instalação de 3 UBS’s. Dessa forma o custo máximo para ter acesso a uma facilidade mais
próxima seria de aproximadamente 0.8 quilômetros, podendo assim ser classificado como
um cenário ótimo.
Foi possível notar também que o algoritmo usado é de alta complexidade, tornando
assim impossível sua execução para problemas maiores, pois o mesmo realiza milhões de
combinações para problemas do mundo real, onde o grafo é composto por centenas de
vértices.
Para trabalhos futuros pretende-se utilizar novas métricas de avaliação, como custo
para aquela unidade ser construída, área de abrangência, abordagens para problemas de
localização de facilidades, ou até mesmo, tentar utilizar uma solução hibrida para problemas
maiores. Também é possível uma abordagem existente cuja complexidade permita sua
utilização para p > 3.

110 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Referências
Andrade, L. and Cunha, C. (2014). Modelo de apoio à decisão para um problema de
posicionamento de bases, alocação e realocação de ambulâncias em centros urbanos:
estudo de caso no município de são paulo. Transportes, 22(2):34–50.
Brondani, A., França, F., Junior, R. K., and Netto, P. B. (2013). Alocação de unidades
urbanas de lazer por um modelo de p-medianas. Pesquisa Operacional para o
Desenvolvimento, 5(2):209–223.
Christofides, N. (1975). Graph Theory: An Algorithmic Approach. Computer Science and
Applied Mathematics. Academic Press, Incorporated.
da Silva, V. F., Cabral, L. d. A. F., and Quirno, R. (2013). Estratégia para seleção de locais
candidatos voltada ao problema de localização de viaturas policiais. XLVSBPO- Simpósio
Brasileiro de Pesquisa Operacional, Natal.
Daskin, M. (2013). Network and Discrete Location: Models, Algorithms, and Applications.
Wiley.
Galvão, R., Nobre, F., and Vasconcellos, M. M. (1999). Modelos matemáticos de
localização aplicados à organização espacial de unidades de saúde. Revista de Saúde
Pública, 33(4):422–434.
Goudard, B. et al. (2014). Localização da implantação de unidades básicas de saúde
utilizando lógica fuzzy e sistemas de informação geográfica.
Rabuske, M. (1992). Introdução a Teoria dos Grafos. Série didática. Editora da UFSC.
Rahman, S. and Smith, D. K. (2000). Use of location-allocation models in health ser-
vice development planning in developing nations. European Journal of Operational
Research, 123(3):437–452.
Robert, S. (1983). ”distance and the utilization of health facilities in rural nigeria". Social
science & medicine, 17(9):563–570.
Samed, M. M. A. and Gonçalves, M. B. (2013). O estado atual dos problemas de
localização e suas contribuições para as pesquisas da logística humanitária no brasil.
XXVII ANPET.
Szwarcfiter, J. (1986). Grafos e algoritmos computacionais. Campus.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 111
Rumo a conformidade da segurança cibernética em sistemas
de controle industriais: estudo de caso com a planta
MecatrIME
Christiana Couto, Gustavo Claudio Karl Couto, Antonio Eduardo Carrilho da Cunha
1
Instituto Militar de Engenharia Praça General Tibúrcio, 80, 22290-270, Praia
Vermelha, Rio de Janeiro, RJ, Brasil.
(christianacouto,gustavokcouto,carrilho@ime.eb.br).

Resumo. A crescente preocupação com ataques cibernéticos motivou diversas


entidades a criarem documentos sobre a segurança cibernética de sistemas de
controle industriais, a exemplo das normas IEC 62443 e a NIST SP 800-82. Os
agentes relacionados a esses sistemas precisam estudar e analisar a
conformidade de seus ativos. Este trabalho implementou uma metodologia de
estudo na plataforma mecatrônica MecatrIME do Laboratório de Mecatrônica
do Instituto Militar de Engenharia (IME), para analisar a sua conformidade com
a norma SP 800-82 do NIST. Para isso, foi utilizada a ferramenta CSET a fim de
produzir resultados e motivar discussões, que embasaram a proposição de
cinquenta e sete melhorias para a sua segurança cibernética que foram, então,
separadas em nove categorias, por afinidade, a fim de facilitar sua
implementação.

1. Introdução
A indústria 4.0 trouxe grandes mudanças para os sistemas industriais com a
integração das capacidades da tecnologia da informação (TI) e da tecnologia da
automação (TA), para aumentar a produtividade e a confiabilidade [Popkova et al. 2018].
Nesse contexto, sobressaem-se as características particulares dos sistemas de controle
industriais (Industrial control systems - ICSs), que os diferem dos sistemas tradicionais de TI
[Krutz 2015, Igure et al. 2006]. Por serem sistemas ciber-físicos [Song et al. 2016], as suas
ações impactam diretamente no mundo fı́sico, por isso, se faz necessária uma abordagem
de segurança especial.
[de Camargo et al. 2019] realizaram um estudo de caso sobre essa transição em uma
indústria de celulose, que foi bem sucedido em maximizar o resultado da empresa apesar de
apresentar problemas de rede.
Os ICSs são compostos por combinações de componentes de controle, que atuam
juntos para gerar um resultado em uma indústria. Normalmente, são sistemas de controle
supervisório e aquisição de dados (Supervisory Control and data acquisition - SCADA),
sistemas de controle distribuı́do, controladores lógicos programáveis (Programmable logic
controlerers - PLCs) e outras configurações. A utilização de ICS é importante em
infraestruturas crı́ticas como transmissão e distribuição de eletricidade [Stouffer et al.
2015].
A integração com à Internet e outras redes externas, abre caminho para que agentes
mal-intencionados prejudiquem a produção e causem prejuı́zos graves. Falhas na segurança
de softwares nesses sistemas podem causar prejuı́zos incalculáveis para uma nação
[Boccardo et al. 2015]. Esses problemas podem ser considerados como problemas de
112 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
segurança nacional. Então, a atenção com a segurança é muito importante para proteger o
meio ambiente, as pessoas e os ativos das indústrias.
Um caso famoso foi o do worm Stuxnet, que atacou uma planta nuclear no Irã, e
tomou controle de um atuador, ao mesmo tempo em que dissimulou a sua atuação para os
operadores do sistema [Langner 2011].
Nesse cenário, diversos agentes governamentais e independentes criaram
normas, guias, legislações, polı́ticas e outras diretrizes para proteger os ICSs e
outros ambientes cr´ıticos. Foi criado um documento com vinte e uma lições para aumentar
a segurança cibernética em sistemas SCADA pelo departamento de energia dos
Estados-Unidos [Department of Energy 2011]. O NIST também criou um framework para
a segurança cibernética de infraestruturas crı́ticas [National Institute of Standards and
Technology 2018]. Para o setor elétrico norte-americano, o North American Electric
Reliability Corporation criou o plano NERC CIP que é um conjunto de nove normas e
quarenta e cinco requerimentos projetado para proteger os seus ativos1.
Especificamente para os ICSs, foi criada a série de normas IEC 62443
[IEC 2018] e a NIST SP 800-82 [Stouffer et al. 2015]. No Brasil, o Governo Federal criou
o Guia de referência para a segurança das infraestruturas crı́ticas da informação
[Canongia et al. 2010] e a Lei Geral de Proteção de Dados do Brasil (LGPD) [Brasil 2018]
para proteger a privacidade de seus cidadãos, que foi alterada pela lei No 13.853 [Brasil
2019]).
Este trabalho apresenta uma análise da conformidade com a norma SP 800-82, do
Instituto Nacional de Padrões e Tecnologia (National Institute of Standards and Technology -
NIST), da plataforma mecatrônica MecatrIME2 do Laboratório de Mecatrônica do Instituto
Militar de Engenharia (IME).
O seu objetivo é promover uma ação de desenvolvimento da segurança cibernética, que
torne mais efetiva a identificação de ameaças e adote medidas de operação e controle eficazes,
com um custo viável. Além disso, essa iniciativa contribuirá para a disseminação da cultura de
consciência de segurança cibernética no IME.
Para isso, foi utilizada a ferramenta de avaliação de segurança cibernética (Cyber
Security Evaluation Tool - CSET) [Department of Homeland Security 2011] desenvolvida
pelo Departamento de segurança interna dos Estados-Unidos para que gestores de ativos de
setores, como indústria e saúde, disponham de uma ferramenta para análise de riscos de
ataques cibernéticos.
O objetivo principal dessa ferramenta é, a partir da identificação de potenciais
vulnerabilidades de segurança cibernética, fornecer resultados que indiquem medidas
para reduzir esses risco. Os usuários realizam um processo de coleta de informações
especı́ficas sobre suas instalações, que são em seguida comparadas as normas e
regulamentações de segurança. A conformidade desses ativos é, então, avaliada e são geradas
recomendações para aumentar a postura de segurança cibernética.
Neste trabalho, a metodologia tradicional de uso dessa ferramenta foi alterada, para
incluir uma etapa de discussão entre os membros da equipe, a fim de elaborar melhorias para a
segurança cibernética da planta.

1
https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx
2
https://sites.google.com/ime.eb.br/mecatrime
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 113
Foram analisadas as normas IEC 62443 e NIST SP 800-82 segundo os critérios de
exequibilidade, atualidade, facilidade de compreensão e detalhamento. Então, foi escolhida a
norma do NIST para este estudo de caso.
A partir da análise dos resultados da CSET e das discussões da equipe do
laboratório, foram elaboradas cinquenta e sete soluções divididas em nove categorias por
afinidade: Gestão de acesso, Gestão de conteúdo, Planos, Auditoria, Autenticação,
Implantação de configurações de segurança, Fatores externos, Rede e Hardware.
Este trabalho está dividido em cinco seções, além desta introdução: na seção 2 são
explicadas questões e soluções acerca da segurança cibernética em ICSs; a seção 3 descreve
a planta e sua modelagem; a seção 4 apresenta a metodologia criada; na seção 5 são
apresentados os trabalhos relacionados; e, por fim, na seção 6 são apresentadas as
conclusões.

2. Segurança da informação em Sistemas de Controle Industriais

A segurança da informação é uma área em franco desenvolvimento devido a


necessidade de proteger as conexões cibernéticas dos crescentes ataques que vêm ocorrendo.
O Centro de estudos, resposta e tratamento de incidentes de segurança no Brasil
(CERT.BR)3 mantém estatı́sticas sobre o número de incidentes que lhe são reportados por
ano. Em 2019, foram reportados 875,327 incidentes, o que representa um aumento de 29,4 %
em relação a 2018.
Uma organização pode realizar uma avaliação de risco, conforme os seus recursos, que
irá ajudá-la a identificar vulnerabilidades e abordagens para mitigar os riscos. Essas avaliações
devem ser realizadas periodicamente, sendo que o seu nı́vel de detalhamento e foco devem
estar em conformidade com a maturidade do sistema.
Os ICSs são diferentes dos sistemas tradicionais nos quais a TI atua, por
utilizarem a TA, e causarem um impacto direto no mundo f´ısico. Por exemplo, esses sistemas
tradicionais utilizam muitos antivírus, mas nos ICSs podem existir possíveis obstáculos para
instalá-los ou atualizá-los. Outras diferenças estão caracterizadas na Tabela 1 [Stouffer et al.
2015].
Diversas publicações foram produzidas para auxiliar na segurança da informação de
ICSs. A criação de normas e padrões que englobem todas as tecnologias envolvidas nesses
sistemas, buscando um equilíbrio, é difícil. Por isso, seus criadores as desenvolvem no formato
de guias ou frameworks para alcançar um dado objetivo. Implementações especı́ficas, seus
desempenhos e a seleção da tecnologia não são definidas, ficando a cargo dos usuários a
compreensão das suas necessidades e dos requerimentos das normas para ajustá-las [Hussain
et al. 2020].
A norma SP 800-82 do NIST é um guia que sumariza as topologias, as ameaças e as
vulnerabilidades tı́picas dos ICSs e faz recomendações para reduzir os seus riscos de ataques
cibernéticos.

3
https://www.cert.br/
114 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Tabela 1. Diferenças na segurança cibernética entre ICSs e sistemas
tradicionais da TI

Critério TI ICS
Requerimento de Nã o operam em tempo real Operam em tempo real e uma taxa
desempenho e necessitam de alta taxa de transferência modesta é aceitável
de transferência
Sistema Operaci- Uso de S.O.s tradicionais S.O.s proprietários muitas vezes
onal sem capacidades de segurança
cibernética
Ciclo de vida dos 3 a 5 anos 10 a 15 anos
sistemas
Atualizaçã o Utiliza-se ferramentas au- Devem ser feitas cuidadosamente,
Dos sistemas tomáticas normalmente com ajuda dos
(patching) desenvolvedores
Comunicaçã o Protocolos padrõ es, redes Protocolos proprietários. As redes
típicas sã o complexas e requerem o
conhecimento de engenheiros de
controle
Disponibilidade Depende da aplicaçã o Contínua. Desligamentos inespera-
dos nã o sã o aceitáveis

3. A planta MecatrIME
Esta seção apresenta a planta MecatrIME do Laboratório de Mecatrônica do IME, uma
plataforma mecatrônica de uma manufatura integrada por computador (computer integrated
manufacturing - CIM), e a sua modelagem conforme as configurações da CSET para esta análise
de conformidade.

3.1. Descrição da planta

Neste estudo de caso, foi utilizada a planta MecatrIME ilustrada na Figura 1. A planta
é composta por uma estação de gerenciamento (P9), seis estações de produção (P2- P7), uma
estação de controle do transporte de peças pela esteira (P8) e uma estação de armazenagem
(P1), totalizando nove estações interligadas por uma esteira.
As estações de produção ilustram alguns dos principais processos de fabricação
industriais como torneamento (P2), fresamento (P3), soldagem (P4), metrologia (P5),
montagem e inspeção visual (P6) e gravação a laser (P7).
A ligação entre elas é feita por cabos formando uma rede local (Local Access
Network - LAN) Ethernet utilizando a pilha de protocolos de comunicação TCP/IP. A
comunicação entre os computadores nas estações e a rede do IME é realizada por meio de
um ponto de acesso que oferece conexão com a Internet.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 115
A comunicação entre os dispositivos periféricos e os computadores nas estações é feita
utilizando o protocolo RS232. Essa rede pode ser considerada como uma rede ponto-a-ponto
(peer-to-peer - P2P) já que todas as estações podem enviar e receber mensagens entre si.

Figura 1. Planta da MecatrIME

O software utilizado para o controle da planta e´o OpenCIM que controla, monitora e
opera a produção conforme a abordagem CIM [IntelitekInc. 2019]. O software é composto
pelo módulo CIM Manager e os módulos Station Manager. O CIM Manager é o móduloque
coordena a funcionalidade de todos os dispositivos da planta, através da LAN, instalado na
estação de gerenciamento. O Station Manager é o módulo instalado em todas as outras
estações, que as controla e se comunica com o CIM Manager.
Essas estações podem ser utilizadas de forma isolada ou de forma integrada. Esse
processamento distribuı́do torna o sistema mais robusto porque, caso a estação de
gerenciamento tenha algum problema, as máquinas ainda podem operar de modo individual.
É importante frisar que os computadores conectados à rede da MecatrIME não
podem se conectar à rede sem fio do IME, ao mesmo tempo em que a linha de operação está
em execução, por motivos de segurança. Mas, podem ser utilizados normalmente quando a
planta não está em execução. Então, as estações se conectam à Internet somente quando as
máquinas estão desligadas.

3.2. Modelagem da planta com a ferramenta CSET

Para a modelagem na ferramenta CSET, o Laboratório de Mecatrônica do IME foi


dividido em três zonas: a zona MecatrIME, a zona corporativa e a rede do IME. Na zona
corporativa, foram modeladas seis mesas de trabalhos com computadores (sendo um com
impressora) e uma televisão utilizada para apresentações em reuniões.
Componentes mais específicos de ICSs, que representassem as diferentes máquinas da
linha de produção, como torno mecânico e fresadora, não estavam disponı́veis na CSET,
então utilizou-se outros componentes semelhantes ou não incluı́-lhos-se.
Na zona da rede do IME, foram modelados a rede privada virtual (Virtual Private
Network – VPN) do IME, com um firewall e um switch, e foram adicionados servidores,
conectados à fontes de alimentação ininterruptas, para representar os diferentes serviços
oferecidos como correio eletrônico, acesso remoto e banco de dados.

116 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
4. Análise da conformidade da segurança da informação com a
planta MecatrIME
Esta seção descreve a metodologia criada e sua implementação para a análise da
conformidade da segurança da informação da planta MecatrIME.
Após a análise das normas disponı́veis na CSET adequadas para este estudo,
selecionou-se a norma NIST SP 800-82 para a avaliação. Considerou-se que por essa
oferecer uma visão de mais alto nı́vel que a IEC 62443 [Hao et al. 2016], seria mais
adequada, visto que o laboratório ainda está em processo de adaptação a um postura de
segurança cibernética. Devido ao tamanho da equipe do laboratório, considerou-se que
múltiplos papéis definidos pela IEC 62443 teriam de ser alocados para um mesmo membro.
Por outro lado, as definições da NIST SP 800-82 para os administradores dos sistemas e
operadores bastam. Isso permitirá uma flexibilidade maior para sua implementação neste
estudo de caso.
A metodologia criada neste trabalho está representada no fluxograma na Figura 2.

Figura 2. Metodologia empregada

Primeiramente, os parâmetros iniciais no CSET foram configurados segundo a


realidade da planta MecatrIME. Em seguida, selecionou-se a norma NIST SP 800-82.
Posteriormente, modelou-se os equipamentos eletrônicos do laboratório na forma de um
diagrama com itens pré-definidos.
Considerando o contexto multidisciplinar do trabalho, foram escolhidos membros da
área de sistemas de controle e da área de computação da equipe do laboratório com
conhecimento sobre o funcionamento da planta. Então, um questionário com perguntas sobre
assuntos relacionados à segurança cibernética foi preenchido. Apesar dessa etapa ter sido
extensa, devido ao grande número de perguntas do questionário, essa discussão agregou valor
ao projeto de segurança cibernética da planta.
Durante o preenchimento desse questionário, foi realizada uma discussão a fim de
elaborar melhorias espec´ıficas para a planta MecatrIME. Por praticidade, foram criadas
categorias para classificá-las por afinidade.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 117
Com essas informações do questionário e da modelagem, o CSET gerou relatórios com
uma avaliação da segurança cibernética da planta que foram, então, analisados para agregar
valor a este trabalho.

5. Trabalhos relacionados
Outros trabalhos foram realizados para avaliar a segurança cibernética da planta
MecatrIME e encontrar soluções para aumentá-la. [Couto et al. 2020a] realizaram uma
análise de risco, utilizando a planta MecatrIME como modelo, e obtiveram resultados positivos
para proteger a planta ao simular a utilização de uma estratégia de defesa baseada na
desconexão de estações comprometidas no caso de um ataque cibernético. Contudo, a
avaliação da conformidade não foi incluı́da nesse estudo.
Posteriormente, [Couto et al. 2020b] realizaram uma análise da rede da planta,
utilizando a ferramenta wireshark, para compreender o seu funcionamento e identificar
possı́veis vulnerabilidades para ataques cibernéticos. Com base nos resultados, propuseram
um sistema de detecção de intrusão e uma zona desmilitarizada para aumentar a segurança
da planta.
Outras metodologias utilizaram a ferramenta CSET para avaliar a segurança
cibernética de ativos. A primeira foi utilizada no trabalho de [Woo 2013] para avaliar a
segurança cibernética de sistemas de proteção fı́sica, em plantas de energia nuclear. Porém,
não incluiu-se uma etapa de elaboração de melhorias, a partir da discussão motivada pelo uso
da CSET.
[Zavala et al. 2020] focaram no estudo do processo de coleta de dados para auditorias
de segurança cibernética em organizações. Identificou-se que, o próprio uso da ferramenta
CSET, como base para o desenvolvimento de projetos de segurança, é uma vulnerabilidade,
porque depende da interação humana, tornando-se propensa a erros. Assim, é provável que
auditorias baseadas na CSET sejam incompletas, ou contenham informações incorretas
fornecidas durante o preenchimento do questionário. Por isso, propuseram um modo
customizado para que os usuários automatizem o processo de análise da informação e possam
focar mais nos resultados.
Apesar de o uso da ferramenta wireshark já ter fornecido muitas informações
sobre o funcionamento da rede da planta, a utilizção do método criado por
[Zavala et al. 2020] é mais completo e facilitaria o processo de auditoria. Contudo, como o
sistema deste estudo de caso é relativamente pequeno se comparado a toda uma organização,
a automatizacão do processo de coleta não traria benefícios tão significativos.
O trabalho mais recente, utilizando a ferramenta CSET, foi feito por [Chaula and
Luwemba 2020], que criaram uma metodologia para avaliar a adequação e eficácia dos
controles de segurança de sistemas SCADA. A metodologia consiste dos métodos de
exame, entrevista e teste. A etapa de exame trata das especificações, como as normas, os
mecanismos e as ações desses sistemas. Os dados coletados são, então, analisados
utilizando a CSET. Como estudo de caso, analisou-se o sistema SCADA, em uma empresa do
setor de energia elétrica na Tanzânia, utilizando a norma NERC CIP e a NIST SP 500-53A
[NIST 2014].
Essa metodologia também incluiu uma entrevista entre os especialistas no sistema
estudado, a fim de coletar dados para o preenchimento do questionário da CSET. Contudo,
aproveita-se esse momento para o levantamento de sugestões. Mas também foram realizados
testes nos dispositivos do sistema, apesar de esse não terem sido detalhados.
118 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
A tabela 2 mostra a relação entre as metodologias utilizadas nos trabalhos de [Woo
2013, Zavala et al. 2020, Chaula and Luwemba 2020] e a proposta neste trabalho.

Tabela 2. Comparação entre as metodologias que utilizam a ferramenta CSET

[Chaula and Luwemba 2020]


[Zavala et al. 2020]

Este trabalho
Critério [Woo 2013]
Seleçã o dos ativos crı́ticos V V V V
Coleta de dados necessário V F V V
para a CSET manualmente
Automatizaçã o do processo F V F F
de coleta de dados
Entrevista entre os especialis- F F V V
tas que utilizam a planta
Discussã o entre especialistas F F F V
para propor melhorias

6. Conclusão
Este estudo analisou a conformidade da planta MecatrIME com relação à norma NIST
SP-800-82. A ferramenta CSET identificou que existem vulnerabilidades em relação a
conformidade com a norma escolhida e outras oriundas dos dispositivos da planta. Mas
considerou-se que metodologia desenvolvida e´eficiente. Comparando-a as outras existentes,
sua utilização é mais enxuta e gera mais melhorias para a segurança cibernética dos ativos a
partir das discussões entre a equipe atuante.
A sua implementação ajudou a aumentar a postura de segurança cibernética dos
membros do Laboratório de Mecatrônica do IME. Apesar da etapa de preenchimento do
questionário na CSET ter sido trabalhosa, devido ao grande número de perguntas, a
combinação desse procedimento com uma discussão, visando o levantamento de melhorias,
agregou valor ao projeto de segurança cibernética da planta.
Este trabalho embasou a proposta de cinquenta e sete melhorias para segurança
cibernética do laboratório que foram, então, separadas em nove categorias, por afinidade, a fim
de facilitar a sua implementação.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 119
Dentre essas propostas, as prioridades definidas pela equipe, são a criação do sistema
de detecção de intrusão e de uma polı́tica de contingenciamento documentada e
formalizada relacionada ao propósito, escopo, papéis, responsabilidades, compromisso de
gerenciamento, coordenação entre as entidades organizacionais e conformidade.
Considerando a adoção dessa metodologia em trabalhos futuros, sugere-se aos
pesquisadores adaptá-la segundo as suas necessidades em outros estudos sobre a
conformidade da segurança da informação. Para sistemas maiores, sugere-se utilizar a
automatização do processo de coleta proposto por [Zavala et al. 2020].

7. Agradecimentos
O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoamento de Pessoal de
Nı́vel Superior - Brasil (CAPES) - Código de Financiamento 001, utilizou infraestrutura
computacional financiada com recursos do subprojeto Pesquisa cibernética do Projeto
Estratégico do Exército Brasileiro e da Financiadora de Estudos e Projetos (FINEP) aos
quais gostaríamos de agradecer.

Referências
Boccardo, D. R., Reinehr, G., Machado, R. C. S., de Souza Melo Jr, W., and da Costa
Carmo, L. F. R. (2015). Modelo de segurança para ambientes de avaliação e testes de
segurança de software. In XV Simpósio Brasileiro de Segurança da Informação e
de Sistemas Computacionais.
Brasil (08/07/2019). Lei no 13.853.
Brasil (14/08/2018). Lei geral de protec¸a˜o de dados do brasil, lei no 13.709.
Canongia, C., Ju´nior, A. G., and Junior, R. M. (11/2010). Guia de referência para a
segurança das infraestruturas críticas da informação. 17/07/2020.
Chaula, J. and Luwemba, G. (2020). Security control assessment of supervisory control and
data acquisition for power utilities in tanzania. European Journal of Engineering Research
and Science, 5:785–789.
Couto, C., Couto, G. C. K., and da Cunha, A. E. C. (2020a). Modelagem da seguranc¸a da
informac¸a˜o em sistemas de automação e controle industriais: estudo de caso com a
planta mecatrime. In VIII Simpósio Brasileiro de Sistemas Elétricos.
Couto, C., Couto, G. C. K., and da Cunha, A. E. C. (2020b). Modelagem da seguranc¸a da
informac¸a˜o em sistemas de automação e controle industriais: estudo de caso com a
planta mecatrime. In VIII Simpósio Brasileiro de Sistemas Elétricos.
de Camargo, E. B., Neitzel, I., and Pontes, J. (2019). Indústria 4.0 na prática a partir da
integração da tecnologia de informação e tecnologia de automação: um estudo de caso de
monitoramento dos ativos de automação em uma fábrica de celulose dos campos gerias
(pr). In IX Congresso Brasileiro de Engenharia de Produção.
Department of Energy (2011). 21 steps to improve cyber security of scada networks.

Department of Homeland Security (2011). Cyber security evaluation tool (cset), performing
a self-assessment.

120 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Hao, X., Zhou, F., and Chen, X. (2016). Analysis on security standards for
industrial control system and enlightenment on relevant chinese standards. In
2016 IEEE 11th Conference on Industrial Electronics and Applications
(ICIEA), pages 1967–1971.
Hussain, S., Ustun, T. S., and Kalam, A. (2020). A review of iec 62351 security
mechanisms for iec 61850 message exchanges. IEEE Transactions on Industrial
Informatics, 16:5643–5654.
IEC (2018). IEC. 62443: Industrial communication networks - Network and system
security. International Standard. 1st edition.
Igure, V. M., Laughter, S. A., and Williams, R. D. (2006). Security issues in scada networks,
computers & security. pages 498–506.
IntelitekInc. (2019). OpenCIM 5 User Manual. Catalog No. 100094
Rev. J. Krutz, R. L. (2015). Securing SCADA systems.
Langner, R. (2011). Stuxnet: Dissecting a cyberwarfare weapon. IEEE Security
Privacy, 9:49–51.
National Institute of Standards and Technology (2018). Framework for improving critical
infrastructure cybersecurity. https://www.nist.gov/cyberframework.
NIST (2014). Nist special publication 800-53a ”assessing security and privacy controls in
federal information systems and organizations: Building effective assessment plans”.
Technical report.
Popkova, E., Ragulina, Y., and Bogoviz, A. (2018). Industry 4.0: Industrial
Revolution of the 21st Century. Studies in Systems, Decision and Control.
Springer International Publishing.
Song, H., Rawat, D., Jeschke, S., and Brecher, C. (2016). Cyber-Physical Systems:
Foundations, Principles and Applications. Intelligent Data-Centric Systems:
Sensor Collected Intelligence. Elsevier Science.
Stouffer, K., Pillitteri, V., Lightman, S., Abrams, M., and Hahn, A. (2015). Guide
to Industrial Control Systems (ICS) Security. NIST special publication 800,
82r2.
Woo, T. (2013). Systems thinking safety analysis: Nuclear security assessment of
physical protection system in nuclear power plants. Science and Technology of
Nuclear Installations, 2013:–.
Zavala, S., Shashidhar, N., and Varol, C. (2020). Cybersecurity evaluation with
powershell. In 2020 8th International Symposium on Digital Forensics and
Security (ISDFS), pages 1–6.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 121
Um sistema mobile de apoio ao profissional de Educação Física
para a realização da avaliação física, periodização de treino e
prescrição dos exercícios.
Claison Marques da Nóbrega¹, Fabiano Fagundes¹, Jackson Gomes de
Souza¹, Pierre Soares Brandão¹
Centro Universitário Luterano de Palmas
(CEULP/ULBRA) Avenida Teotônio Segurado, CEP 77.019-
900 – Palmas – TO – Brasil
{claisonmarques, thilfa, jackson.souza, pierrebrandao}@gmail.com

Resumo. Neste trabalho foi desenvolvido um software para dispositivos


móveis para realizar a periodização de treino de força onde é possível realizar
a prescrição dos exercícios, que são definidos de acordo com cada fase da
periodização, bem como realizar as avaliações físicas dos alunos. O software
permite a inserção bem como armazena a periodização as prescrições de
exercícios e as avaliações físicas, de forma a facilitar ao profissional
acompanhar a evolução dos alunos. Para o desenvolvimento desse trabalho
foram utilizadas as ferramentas: Ionic framework, para o desenvolvimento do
software e Firebase, para o desenvolvimento do banco de dados.

1. Introdução

Para a realização de atividades físicas e prescrição de treinos de força, organizar uma


periodização de treinos físicos é indispensável. Assim, faz-se necessário que o aluno seja
submetido a uma bateria de testes onde serão coletados dados e informações indispensáveis
para garantir a segurança e o sucesso da periodização de treino. Segundo Roschel et al. (2011)
a periodização, “tem por objetivo precípuo, a melhoria do desempenho físico-esportivo
através da aplicação de um processo organizado e sistemático composto por exercícios
físicos”.
A partir da utilização de ferramentas de desenvolvimento mobile e a interação com o
especialista, para um melhor entendimento do assunto, foi possível desenvolver o sistema que
apoie o Profissional de Educação Física na realização da avaliação física, periodização de
treino e prescrição dos exercícios.
Com a utilização do aplicativo mobile para apoio ao Profissional de Educação Física
na realização da avaliação física, periodização de treino e prescrição dos exercícios, o
profissional poderá controlar o treinamento, podendo registrar uma avaliação prévia, criar
uma rotina de treinamento contabilizada em número de séries, repetições, quantidade de carga
mobilizada e realizar o monitoramento da sua evolução. Desta forma, contribuindo para uma
melhor performance do aluno, a fim de motivá-lo a ter mais dedicação aos treinos e
proporcionando ao profissional um desempenho eficiente em todo o processo de
acompanhamento deste aluno, tudo isso podendo ser realizado no mesmo equipamento e onde
o profissional estiver localizado.

2. Periodização de Treino, Prescrição de Exercícios e Avaliação Física

122 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A periodização tem como objetivo fazer um planejamento de treino para melhorar o
desempenho de alunos, com o intuito de aumentar o desempenho físico, sem sobrecarregar o
aluno (SPINETI, 2013). Para se obter melhores resultados a periodização de treino é dividida
em três etapas: Macrociclo, Mesociclos e Microciclos. O Macrociclo compreende o todo da
periodização e pode ter uma duração entre seis meses a quatro anos; o que determina esse
prazo são as finalidades de cada aluno. Um Macrociclo é composto de vários Mesociclos (no
mínimo quatro), Os Mesociclos, ou fases, são formados por vários Microciclos, normalmente
de dois a seis, e compreendem um espaço de tempo entre quatro a seis semanas e os
Microciclos são os menores ciclo do processo de periodização de treinamento, é a subdivisão
dos Mesociclos, onde serão definidos quais os dias de treino ou folga, e quais grupos
musculares serão trabalhados (PRESTES, 2016).
Para realizar a prescrição dos exercícios deve-se levar em consideração os níveis de
classificação do aluno, podendo este ser: Iniciante, sem experiência, ou que não pratica
exercícios de treinos de força; Intermediário, que possui um treinamento consistente, que
tenha realizado exercício físico nos últimos meses antes da prescrição e os Avançados, que já
acumula tempo de experiência, e já tem resultados de ganho muscular, com isso a escolha dos
exercícios é dividida por cada grupo muscular do corpo levando em consideração a sequência
de cada musculo (PRESTES, 2016).
Na prescrição de exercício, é realizado o cálculo de 1RM (Uma Repetição Máxima)
em que o profissional determina o peso inicial a partir de uma conversa com o aluno, onde o
mesmo dirá quanto peso tem costume para se levantar em determinado exercício (LACIO et
al., 2010). Para se chegar a 1RM aplica-se a seguinte equação:”1RM (kg) = carga(kg) ×
[(.0375 × reps(und)) + .978]”, onde a carga (em quilograma Kg) é a que o aluno se propõe a
executar e resp (repetição um valor numeral) é a quantidade de repetições do exercício que o
aluno consegue realizar com a carga definida (BAECHLE E GROVES, 2000). Assim o
profissional define a porcentagem de 1RM que será utilizado no treino de força.
Segundo o Conselho Federal de Educação Física - CONFEF (2016, p. 2), “a Avaliação
Física é um procedimento técnico-científico que objetiva reunir elementos para fundamentar a
tomada de decisão sobre o método, o tipo de treinamento esportivo, de preparação físico-
desportiva, de atividade física e/ou de exercício físico”. Isto torna a avaliação física
obrigatória como apoio ao Profissional de Educação Física, de forma que permita verificar o
nível da saúde e a aptidão física do aluno, uma vez que esses resultados são utilizados para a
elaboração da periodização, prescrição dos exercícios, e demais procedimentos a serem
adotados (PRESTES, 2016).
Nesse contexto o Profissional de Educação Física deve estar capacitado para realizar
uma avaliação física detalhada, utilizando alguns protocolos de avaliação, como a avaliação
anamnese, avaliação antropométrica que subdivide em perimétrica, dobras cutâneas e de
diâmetro ósseos, avaliação da dor, além de dados cardiovasculares e metabólicos, que foram
desenvolvidos nesse trabalho.
3. Materiais e Métodos
Neste trabalho foram utilizadas as ferramentas Ionic framework para o desenvolvimento de
toda o front-end, onde ocorre a interação com o usuário. Para o banco de dados utilizou-se o
Firebase, pois oferece a opção de sincronização dos dados em tempo de execução e a
utilização nativa do back-end do próprio Firebase. Assim, o sistema foi desenvolvido

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 123
utilizando o Ionic, que faz as requisições diretamente ao banco de dados Firebase que, por sua
vez, retorna as informações ao front-end da aplicação e as apresenta ao usuário.

Figura 1. Esquema do Sistema


O Ionic Framework é um projeto de código aberto e gratuito e conta com integração
oficial com o Angular, que foi utilizado neste projeto. Utiliza um kit de ferramentas de
interface do usuário de software livre para a criação de aplicativos móveis e de desktop de alto
desempenho e de alta qualidade, usando tecnologias da Web (HTML, CSS e JavaScript)
(IONICFRAMEWORK, 2019).
O Firebase é uma plataforma da Google que fornece ferramentas para o
desenvolvimento de aplicativos de alta qualidade (FIREBASE, 2019). Tem um serviço de
banco de dados em tempo real que permite o armazenamento e sincronismo dos dados entre
usuários e dispositivos em tempo real com um banco de dados NoSQL hospedado na nuvem,
ainda sem a necessidade de utilizar um back-end, pois fornece todas as estruturas para o
desenvolvimento de aplicações web e mobile.
O trabalho foi dividido em 5 etapas, tendo sido realizado o estudo dos conceitos e das
ferramentas utilizadas, seguido do levantamento de requisitos, do desenvolvimento do
protótipo, com a avaliação do especialista ocorrendo em todas as etapas, e por fim o
desenvolvimento da aplicação mobile completa.

4. Resultados e Discussão
Esta seção apresenta os resultados obtidos neste trabalho. Na figura 2-a é apresentada a Tela
de login do sistema, onde o profissional insere seu e-mail e senha pré-cadastrado e, ao
selecionar o botão de login, terá acesso ao início do sistema. Caso ainda não seja cadastrado, o
Profissional deverá escolher a opção “Novo aqui? Inscrever-se” para efetuar o cadastro como
mostra a figura 2-b para depois ter acesso ao sistema ou selecionar “esqueci minha senha”
(figura 2-c). Para recuperar o acesso, basta apenas inserir o e-mail cadastrado, que receberá
um e-mail com instruções e com um link externo enviado através do Firebase, como mostra a
figura 2-c a seguir. Ao realizar o cadastro com sucesso, o profissional será redirecionado à
Tela de login (figura 2-a), para poder preencher com as informações e realizar a autenticação
onde, após selecionar o botão ENTRE, será direcionado à Tela inicial da aplicação, como
mostra a figura 3.

(a) (b) (c)

124 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 2. Telas de login/Cadastro
Na Tela da figura 3 o profissional poderá escolher para qual aluno será realizada a
periodização, prescrição e avaliação. Também poderá acessar a Tela de exercícios, onde
poderá gerenciar os exercícios que deseja aplicar a seus alunos. A Figura 3-b, apresenta a
relação dos alunos que o profissional cadastrou onde o mesmo pode escolher qual aluno vai
trabalhar. E na Figura 3-c é apresentada a lista de periodizações já cadastradas onde, quando
selecionar uma nova periodização, deverá primeiro criar uma fase, em seguida os treinos e por
fim realizar a prescrição dos exercícios.
(a) (b) (c)

Figura 3. Telas de início/alunos/periodização

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 125
Na prescrição o profissional define a carga e pede para o aluno fazer o máximo de
repetições que ele conseguir. Em seguida o profissional registra o total de repetições
executadas corretamente (com alinhamento e amplitude corretas) junto com a carga
prédefinida e, com base nessas informações, o sistema realiza automaticamente o cálculo da
avaliação do 1RM. Na sequência o profissional define qual o percentual deste 1RM que será
aplicado ao exercício e o sistema calcula a carga final deste exercício no treino. Em seguida o
profissional define a quantidade de séries, o número de repetições e o intervalo de descanso
para esse exercício e por fim seleciona SALVAR, o sistema salva e volta à Tela do treino
(figura 4).

Figura 4. Tela para prescrição

Ao realizar esses passos citados acima para cada exercício que compõem o treino, fica
então concluída a prescrição para o treino escolhido. A seguir a figura 5 mostra o trecho do
código onde é feito o cálculo do 1RM e a carga do treino.

Figura 5. Trecho do código de 1rm e carga final

126 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
A avaliação é fundamental e indispensável para a identificação de fatores limitantes ao
treino e para uma correta elaboração de programa de exercícios. É uma forma de entender o
estado físico do aluno e prescrever os exercícios adequados para evitar prejuízos. A aplicação
tem configurada quatro avaliações sendo elas a anamnese, a antropometria, os dados
cardiovasculares e metabólicos e a avaliação de dor e desconforto. A figura 6-a apresenta a
tela principal com todas as avaliações desenvolvidas na aplicação, a figura 6-b e a 6c
apresentam, respectivamente, a visualização das avaliações antropometria e anamnese.

(a) (b) (c)

Figura 6 - Tela Principal avaliações/antropometria/anamnese


Em seguida a figura 7 apresenta a avaliação de dados cardiovasculares, sendo
implementados dois protocolos onde o profissional pode optar em fazer a avaliação PAR-Q e
o AHA ou fazer separado. No PAR-Q, possui 7 perguntas de alternativas sim ou não, em que
se for respondido uma delas com sim, o formulário já emite uma alerta avisando que o aluno
deve procurar um médico. Já o AHA é dividido em três etapas de avaliação. Na primeira, que
compreende o histórico, os sintomas e outras questões de saúde, se for marcado uma das
questões o sistema já emite uma alerta, pois o aluno não tem condições de continuar sem
consultar um médico, se passar sem marcar nenhuma das perguntas segue o sistema libera a
segunda parte. Na segunda parte, que são os fatores de risco cardiovasculares, se for
respondido duas ou mais, também recebe um alerta para procurar o médico, se for respondido
apenas uma ao final e liberado a última parte da avaliação, onde por fim, a terceira parte é a
confirmação de que na primeira parte não respondeu nenhuma das perguntas e apenas uma na
segunda parte; caso não marque também deverá consultar seu médico. Por fim o profissional
informa a data e seleciona SALVAR.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 127
Figura 7 – Tela avaliação cardiovasculares e metabólicas

Por fim a avaliação da dor e desconforto como apresentado na figura 8 abaixo, no


preenchimento da avaliação, na primeira página preenchem-se os dados de idade, sexo e se
sente dor no corpo. Caso seja respondido não o sistema bloqueia as páginas seguintes
apresentando a data e o botão de salvar, e se for respondido sim apresenta uma mensagem
onde diz que deve ser respondido quais as partes do corpo onde sente a dor atribuindo uma
nota de 1 a 10, onde 1 representa dor mínima e 10 dor máxima. As páginas são divididas em
frente e costas do corpo. Na última página há o campo para inserir a data da avaliação e, por
fim, selecionar SALVAR.

128 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 8. – Tela de avaliação da dor e desconforto
Na figura 9 é apresentado o resultado dessa avaliação com a apresentação das partes
do corpo, que foi desenvolvida utilizando o SVG - Scalable Vector Graphics. Quando é
selecionado na tabela o número que representa a parte em que o aluno sente dor, é apresentada
uma escala de 1-10 para o aluno responder qual a intensidade de sua dor e/ou desconforto. Ao
escolher de 1 a 2, é preenchido automaticamente na área do corpo relacionada na figura a cor
verde, assim como para 3-5 é amarelo, para 6-8 laranja, e do 9-10 utilizou vermelho.

Figura 9. Tela de Visualização da avaliação da dor e desconforto

De posse destas informações o profissional terá as informações necessárias, e


prontamente oferecidas, para que possa tomar as melhores decisões em relação ao treinamento
de seu aluno.
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 129
5. Considerações Finais
O presente trabalho teve como objetivo o desenvolvimento de um software mobile de apoio
ao profissional da Educação Física para a criação de periodização de trenos, prescrição de
exercícios e avaliações física, de forma a automatizar um processo manual, utilizando para
isso, o framework Ionic híbrido e o banco de dados Firebase do Google.
Para realizar os processos deste trabalho, foi necessário entender todo o processo de
uma periodização de treino, como é realizada uma prescrição de exercícios e os cálculos que a
compõem, tipos de avaliação físicas com seus cálculos e protocolos e conhecer as
ferramentas.
Com isso foi possível desenvolver os objetivos determinados nesse trabalho,
caracterizar os elementos principais da avaliação física, periodização de treino e prescrição de
exercícios, desenvolver os módulos para criar a periodização, as avaliações físicas, e
prescrição dos exercícios, entregando todos esses módulos ao especialista para a validação de
suas funcionalidades. Obteve-se ao fim uma aplicação limpa e de fácil navegação onde o
profissional pode concentrar o cuidado com seus alunos em um único espaço, realizando seu
cadastro, adicionando os exercícios que utiliza e, para cada aluno, criar uma periodização
específica, compreendendo as fases e, em cada fase, seus treinos, e para cada treino, os
exercícios e as prescrições correspondentes. É ainda o profissional pode também realizar e
cadastrar as avaliações físicas

Referências
Conselho Federal de Educação Física - CONFEF. Resolução CONFEF nº 328/2016. Dispõe
sobre Especialidade Profissional em Educação Física na área de Avaliação Física., Rio de
Janeiro, n. Art. 5º, 10 out. 2016.
Firebase. Documentation. 2019. Disponível em: <https://firebase.google.com/docs?hl=pt-
BR>. Acesso em: 22 maio 2019.
Ionicframework. What is Ionic Framework? 2019. Disponível em:
<https://ionicframework.com/docs/intro>. Acesso em: 22 maio 2019.
Prestes, Jonato et al. Prescrição e periodização do treino de força em academias. Barueri,
SP: Manoele, 2016.
Roschel, Hamilton; tricoli, Valmor; ugrinowitsch, Carlos. Treinamento físico: considerações
práticas e científicas. Revista Brasileira de Educação Física e Esporte, [s.l.], v. 25, n. , p.53-
65, dez. 2011. FapUNIFESP (SciELO). http://dx.doi.org/10.1590/s1807-
55092011000500007.
Spineti, Juliano et al. Comparação entre diferentes modelos de periodização de força muscular
e espessura em uma sequência crescente de grupo muscular. Rev Bras Med Esporte, São
Paulo, v. 19, n. 4, p. 280-286, agosto de 2013. Disponível em
<http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1517-
86922013000400011&lng=en&nrm=iso>. Acesso em 19 de agosto de 2019.

130 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 131
Uma Plataforma para Autoria de Chatbots como Auxílio no
Processo de Ensino
Allyson Martins1, Luis Eduardo Costa Laurindo1, Ivan
Rodrigues de Moura2, Carleandro de Oliveira Nolêto3
1Faculdade Estácio | CEUT
Teresina – PI – Brasil
2Universidade Federal do Maranhão – UFMA
São Luís – MA – Brasil
3Universidade Federal do Piauí – UFPI
Bom Jesus – PI – Brasil
{allyson.martinz,luiseduardocosta417}@gmail.com

ivan.rodrigues@lsdi.ufma.br, carleandro7@gmail.com

Resumo. A inovação na educação é essencial para aperfeiçoar o processo ensino-


aprendizagem, fazendo-se necessário o desenvolvimento de novas técnicas e
ferramentas capazes de auxiliar o professor em sua função de ensinar. A
tecnologia da informação pode ser utilizada para suprir tal necessidade,
utilizando-se a computação para oferecer soluções capazes de potencializar o
processo de ensino. Dentre estas tecnologias, existe os agentes de conversação
denominados, Chatbot, que são sistemas computacionais inteligentes capazes de
conduzir e estimular conversas via texto ou voz. Este artigo concebeu uma
plataforma capaz de viabilizar professores a desenvolverem Chatbots, com o
objetivo de auxiliar o processo de ensino. O propósito da plataforma é conceber
uma solução para que professores desenvolvam Chatbots, mesmo sem possuir
capacidades técnicas e teóricas necessárias para esta tarefa.

1. Introdução
Atualmente, criar formas de ensino é uma tarefa desafiadora e necessária, devendo-se zelar
pela qualidade do ensino oferecido. Com esse objetivo, pesquisadores vem buscando meios de
facilitar o processo ensino-aprendizagem através de ferramentas que são capazes de manipular
grande quantidade de informações e dados. Partindo desse preceito, é notável perceber que a
educação é uma das áreas onde a humanidade busca evoluir e desenvolver novos conceitos de
ensino e metodologias, que auxiliem estudantes, professores e pesquisadores no âmbito
acadêmico. Para isto, devemos criar modos de ensino que concilie a necessidade do aluno
aprender com a sua motivação durante o processo de aprendizado.
Uma das áreas da computação, que possui aplicabilidade eficiente nos desafios
inerentes do processo de ensino, é a Inteligência Artificial (IA). [Bellman 1978] define IA
como automação das atividades que associamos ao pensamento humano, atividades como
tomada de decisões, solução de problemas e aprendizado. A IA é composta por um conjunto
notável de áreas, como aprendizagem, compreensão e até tarefas mais especializadas, como
jogos, demonstração de teoremas matemáticos, diagnóstico de doenças entre outros, sendo
considerada relevante para qualquer tarefa intelectual [Russell and Norvig 2013]. Através
132 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
desta característica multidisciplinar apresentada pela IA, torna possível sua utilização como
uma solução para a problemática identificada, ou seja, criar ferramentas capazes de apoiar o
processo ensino-aprendizagem de forma eficiente.
Diante do cenário apresentando, em que a IA é aplicada para auxiliar e resolver tarefas
inerentes dos seres humanos, identifica-se uma subárea que apresenta características que
podem ser aplicadas para auxiliar o processo de ensino, que é responsável por conceber
agentes inteligentes, denominados chatbots. Um chatbot pode ser definido como um agente de
conversação que interage com os usuários em um determinado domínio ou em um
determinado tópico utilizando linguagem natural [Huang et al. 2007]. Assim, identificamos
que se trata de uma tecnologia capaz de interagir com seres humanos através da linguagem
natural que conseguem de forma transparente, manter uma conversação com um humano.
Assim, chatbots podem ser modelados e concebidos para apoiar o processo de aprendizagem,
através de conversação dinâmica com alunos, conseguindo expor conhecimentos de modo a
facilitar a absorção e compreensão do domínio que se quer ensinar. Assim, existe a
possibilidade de professores criarem chatbots capazes de auxiliar em sua tarefa de tutoria.
Porém, existe um empecilho para que a estratégia de concepção de chatbots para
auxiliar no processo de educação se torne viável, que é o fato do processo de desenvolvimento
de um chatbot não ser simples, ou seja, requisita conhecimentos de especialistas que compõem
diversas áreas, se tornando um processo com etapas complexas. Um professor que não possui
conhecimentos inerentes, desses especialistas, dificilmente terá êxito na tarefa de conceber um
chatbot para auxiliá-lo no processo educacional.
O objetivo deste artigo é desenvolver uma plataforma para possibilitar professores
desenvolverem chatbots capazes de auxiliar o aluno no processo ensino-aprendizagem, por
meio da abstração dos principais conhecimentos e recursos, necessários para se desenvolver
um agente inteligente capaz de dialogar com o aluno por meio da linguagem natural.
Este artigo está organizado da seguinte forma: Na seção 2 apresenta conceitos
inerentes dos agentes conversacionais e das plataformas de chatbot. Na seção 3 apresenta os
trabalhos relacionados. Na seção 4 é apresentada a plataforma de chatbot concebida; Na seção
5 expõe uma avaliação realizada sobre a plataforma concebida; Na seção 6 apresenta a
conclusão e trabalhos futuros sobre este artigo.

2. Fundamentação Teórica
A criação e análise de agentes computacionais inteligentes é denominado de IA, seu
principal objetivo é fazer com que uma máquina pense como um ser humano, podendo
aprender, raciocinar, perceber e decidir de forma racional e inteligente [Russell and Norvig
2013].
As aplicações em IA aprendem por meio de coleta de dados, pois quanto maior a
quantidade e variedade de informações armazenadas, melhor será a aprendizagem do sistema
[Russell and Norvig 2013]. Com o passar dos anos, essa técnica foi avançando cada vez mais
e se tornando mais acessível. Um dos objetos de estudo inerente de um sistema de IA são os
agentes de conversação, denominados chatbot.
2.1. Chatbots na Educação
Chatbot é definido como um programa de computador capaz de responder como uma entidade
inteligente quando posto em uma conversação com um humano ou outro chatbot [Khanna et
al. 2015]. A conversação com um chatbot pode ser efetuada através de entrada de texto ou
voz, o programa pode compreender vários idiomas e contextos, através do processamento de
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 133
linguagem natural. Um dos artifícios mais utilizados para a criação de chatbots, chama-se
AIML (Artificial Intelligence Markup Language) [Khanna et al. 2015]. O AIML é uma
linguagem de marcação de IA, usada para criar diálogos semelhantes a linguagem natural,
simulando assim a inteligência inerente dos seres humanos em uma conversação entre um
humano e uma máquina.
Os chatbots têm recebido bastante atenção na área educacional, segundo [Moraes et al.
2016]. As razões de tal interesse estão centradas nas suas características. Os chatbots provem
uma interface mais natural e prática ao aluno. São capazes de oferecer um suporte pessoal,
reconhecendo os pontos fortes, os interesses, bem como as habilidades individuais dos alunos.
Além disso, podem acelerar o processo de aprendizagem ao atuarem como instigadores dos
tópicos em estudo, resultando em um maior engajamento e na independência dos estudantes.
Um chatbot que foi aplicado na modalidade de ensino a distância (EAD) é o Elektra, ou
Professora Elektra [Leonhardt et al. 2003], que foi programado a partir do chatbot Alice e teve
por base inicial responder perguntas sobre física para alunos de ensino médio com o intuito de
prepará-los para o vestibular. Mais tarde Elektra estendeu sua utilização para o ensino EAD
em redes de computadores e internet. Analisando a interface do chatbot Elektra, observa-se a
simplicidade do uso e a utilização de poucos recursos de design e IHC (Interação humano-
computador).
Atualmente existem diversos trabalhos nesse segmento de chatbots aplicado na
educação e apoio aos alunos, dentre eles destaca-se o portubô [Menezes et al. 2014], do qual é
um chatbot que ensina português para alunos do ensino médio. Os principais tópicos
abordados pelo portubô é ortografia, semântica e acentuação gráfica. O portubô foi projetado
a partir da observação de professores e alunos, em relação as dificuldades dos alunos ao
aprenderem os conteúdos das disciplinas em questão.
Existem diversas plataformas para a hospedagem desses agentes inteligentes. A
Pandorabots [Bots 2017] é uma empresa que administra um serviço web de IA para construir e
projetar chatbots, como mostra a Figura 1. Essa plataforma é uma das mais antigas e maiores
serviços de hospedagem de chatbot do mundo. Os usuários podem projetar agentes orientados
por IA através do uso da linguagem de marcação AIML. O pandorabots é o serviço que mais
se aproxima da proposta da ferramenta descrita neste trabalho, onde os professores
desenvolverão a base de dados dos seus respectivos chatbots.

Figura 1. Interface da plataforma Pandorabots [Bots 2017].

Existe uma grande dificuldade em projetar chatbots para a educação por parte dos
professores, devido ao fato de que para construir esses agentes é necessário conhecimento em
134 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
áreas específicas, como IA e programação, e nem todo professore dispõe desse conhecimento
ou tempo necessário para fazê-lo. O objetivo principal dessa pesquisa é resolver este
problema construindo uma plataforma que será uma ferramenta de autoria para abstrair os
conhecimentos necessários para o desenvolvimento de chatbots, como os descritos
anteriormente, permitindo que um professor de qualquer área do conhecimento possa projetá-
lo a partir do conhecimento previamente passado do professor para o chatbot em seu ato de
criação, através da plataforma. Os chatbots desenvolvidos nessa plataforma serão responsáveis
por sanar dúvidas de alunos e auxiliar os mesmos por meio de uma aplicação mobile que foi
implementada neste trabalho.

3. Trabalhos Relacionados
Para a concepção da plataforma de criação de chatbot proposta, realizou-se uma pesquisa na
literatura para identificar ferramentas e chatbots que foram desenvolvidos com o objetivo
primordial de auxiliar o processo ensino-aprendizagem.

3.1. FastAIML
Tratando-se de ferramentas de autoria, o FastAIML foi desenvolvido com objetivo de auxiliar
professores que não possuam conhecimento específico de linguagens ou lógica de
programação, na composição da base de conhecimento de chatbots educacionais, por meio da
geração de arquivos na linguagem AIML, logo existe uma grande dificuldade em encontrar
ferramentas de autoria que auxiliem pessoas sem o conhecimento necessário para conceber
chatbot, como professsores e outros pesquisadores da área educacional, para auxiliar na
construção da sua própria base de dados de forma intuitiva [Krassmann et al. 2017].
Desenvolvido em PHP (Hypertext Process), o FastAIML recebe como entrada uma
possível pergunta e as possíveis respostas. A ferramenta fornece recursos onde o usurário
poderá formatar a resposta a ser apresentada, podendo assim adicionar recursos multimídias
como hyperlinks, imagens e vídeos, podendo também realizar uma formatação textual.

3.2. CALMsystem: Um agente conversacional para modelagem de aprendizes


O CALMsystem fornece um Modelo de Aprendizagem Aberto para os alunos, identificando
seu nível de conhecimento atual e possibilitando a autoavaliação de confiança nos tópicos
constituintes do assunto que se necessita aprender [Kerly et al. 2008]. O agente
conversacional CALMsystem tem como objetivo estimular estudantes a discutir e refletir sobre
seus próprios conhecimentos, para conseguir extrair dos estudantes, maior autonomia
referente ao processo de aprendizagem.
O sistema permite que os alunos visualizem sua própria avaliação de sua capacidade
em diferentes tópicos e os compare com as crenças mantidas pelo sistema, com base nas
perguntas que responderam [Kerly et al. 2008]. Desse modo, o chatbot apresentado estimula a
autoavaliação do aluno através de sua interface, utilizando linguagem natural para interagir
com o aluno.
Identificou-se que o chatbot concebido por este trabalho não concede respostas aos
alunos, mesmo se requisitado, deste modo, mantém seu foco no desenvolvimento
autoavaliativo do aluno. Sua característica principal é permitir que os alunos visualizem sua
própria avaliação de sua capacidade em diferentes domínios do conhecimento [Kerly et al.
2008]. Isso é possível a partir da comparação do conhecimento atual do aluno com as crenças
presentes no sistema, persistidas com base nas perguntas que foram respondidas.
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 135
4. Plataforma de Chatbot Concebida
No processo de elaboração desta pesquisa, foram identificados vários problemas em relação à
construção de chatbots para a área da educação, seguindo a analogia de que para desenvolver
chatbots precisa-se de conhecimento prévio em IA e programação. Partindo deste preceito, o
principal objetivo deste trabalho é abstrair, através da plataforma, essas duas áreas do
conhecimento para que qualquer professor seja capaz de projetar o seu agente inteligente, para
que o mesmo possa auxiliar os seus alunos no processo de aprendizagem dentro e fora da sala
de aula.
O processo de desenvolvimento da plataforma foi concretizado em quatro etapas.
Primeiramente foi realizado o levantamento bibliográfico necessário para a compreensão do
tema e das tecnologias necessárias para o processo de desenvolvimento da plataforma. Após o
levantamento bibliográfico foi realizado o levantamento de requisitos, que foram cruciais para
definir a engenharia e a construção da plataforma. Após os levantamentos bibliográficos e de
requisitos, foi possível desenvolver a plataforma de criação de chatbots e em seguida testá-la no
âmbito acadêmico.
A plataforma descrita neste trabalho contém autenticação de login e senha para a
identificação dos professores que poderá ser utilizada por meio de um navegador. A criação
dos chatbots e população da base é feita através de preenchimento de formulários. O sistema
contém uma página distinta para a criação do chatbot e outra para a entrada das informações
que irão compor a base de dados do agente. Como mostra as Figuras 2 e 3, respectivamente.
A interação dos alunos com os chatbots é feita por intermédio de uma aplicação
mobile desenvolvida para Android, que se comunica com a aplicação principal hospedada em
um servidor. É necessário, uma conexão com a internet para que a aplicação funcione
corretamente. A Figura 4 mostra a interface de uso da aplicação.
A plataforma desenvolvida neste trabalho pode ser dividida em três módulos, como mostra a
Figura 5. O primeiro módulo é a aplicação principal onde fica grande parte do processamento
das informações. Este módulo pode ser descrito como o “cérebro” do sistema, ele é o
responsável por manipular a API (Application Programming Interface) de comunicação,
processar arquivos de IA, controlar rotinas e sincronizar o banco de dados. Este módulo foi
desenvolvido com base no framework Program-O, no qual é um framework para criação de
chatbots em PHP e MySQL [McNeal and Newyear 2013].

Figura 2. Tela de criação de chatbot na plataforma.

136 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Figura 3. Tela de cadastro dos padrões que irão compor a base de dados do chatbot.

Figura 4. Interface de interação entre o aluno e o chatbot, neste exemplo o chatbot


foi programado para ensinar conceitos teóricos de programação orientada a
objetos.

Figura 5. Arquitetura do Sistema

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 137
O segundo módulo é a plataforma web, que será acessado pelos professores para criar
a base de dados do chatbot. Este módulo conta com controle de sessões, validação de campos,
controle de informações e gerenciamento das bases de dados dos chatbots.
O terceiro e último módulo é a aplicação móvel que será disponibilizada para Android,
e será responsável pela interação do aluno com o chatbot. A aplicação principal foi hospedada
em um servidor acessível pela internet e o aplicativo móvel foi testado por um conjunto de
alunos que serão responsáveis por avaliar a eficácia da plataforma concebida.
Cada arquivo AIML é composto por até 50 categorias, que serão preenchidas pelo
professor no ato de criação de padrões na aplicação web. É permitido criar quantos arquivos
forem necessários e interligá-los a qualquer chatbot criado pelo mesmo professor.
A aplicação é totalmente responsável pela abstração do conhecimento do professor em
relação a IA, o professor é responsável somente por passar seus conhecimentos para o chatbot
no ato da criação dos padrões na aplicação web. Após a criação de um chatbot ser efetivada, o
sistema ficará responsável por associar uma base de diálogo ao chatbot, isso é feito por meio
do upload de um arquivo, que será uma base de conversação e interação entre o chatbot e o
humano. Essa base é composta por saudações, curiosidades em relação ao programa,
perguntas relacionadas ao chatbot em si, formas de tratamento e conversações paralelas, que
saem do contexto projetado pelo professor no ato da criação dos padrões do chatbot.
A aplicação descrita neste trabalho foi inspirada em uma das maiores empresas de
hospedagem de chatbots do mundo, a Pandorabots [Bots 2017]. Entretanto, para hospedar um
chatbot no pandorabots é necessário conhecimento prévio de AIML e programação. Diferente
do Pandorabots, a proposta principal do nosso trabalho é abstrair esse conhecimento em
relação a criação de chatbots e programação, queremos dar oportunidade para qualquer pessoa
disposta a passar seu conhecimento e disseminar para a maior quantidade de pessoas possíveis.
Por intermédio dessa estratégia, é possível um professor de qualquer área, sem conhecimentos
especifico de IA ou programação, projetar o seu chatbot para que o mesmo possa apoiar os
alunos no processo de aprendizagem.
Mobilidade é uma das estratégias mais importante deste trabalho, partindo do princípio
de que os alunos utilizarão e estudarão através dos chatbots de forma móvel, a partir de um
smartphone Android, em qualquer lugar com acesso à internet.

5. Resultados
Para os resultados que serão descritos a seguir, foi elaborado um questionário considerando
alguns critérios usuais em processos avaliativos baseados no artigo [Moraes et al. 2016], com
perguntas referente a interação do aluno com o chatbot, levando em consideração a facilidade
de uso da aplicação, tempo de resposta do agente artificial e compreensão da linguagem
humana. O questionário foi respondido logo após o uso da aplicação pelos usuários. A
pesquisa mostra que o resultado do teste foi satisfatório e o objetivo foi alcançado, observa-se
os resultados na Tabela 1.

Tabela 1. Resultado do questionário seguido das perguntas feitas durante os testes.


Questionário Péssimo Razoável Excelente
138 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Como foi a interação com o agente quanto a facilidade de uso da aplicação? 0% 36,4% 63,6%
Como foi a interação com o agente quanto à naturalidade de conversação? 0% 72,7% 27,3%
Como foi a interação como o agente quanto à robustez e a velocidade de 0% 45,5% 54,5%
resposta?
Como foi a interação com o agente quanto à coerência? 0% 72,7% 27,3%
Como você avalia a interface da aplicação e a facilidade de uso? 0% 36,4% 63,6%

Os dados da pesquisa são referentes à usabilidade da aplicação aqui desenvolvida, a


pesquisa se desenvolve na forma qualitativa, ou seja, não utilizaremos dados estatísticos,
abordaremos efeitos qualitativos, detalhes de comportamento, conduta e interação entre os
indivíduos e os agentes. Como afirma [de Oliveira 2011], que expõe que a abordagem de teor
qualitativo trabalha os dados buscando seu significado, obtendo assim a percepção do
fenômeno dentro do seu contexto.
Em relação aos resultados mencionados, percebe-se que a maioria dos participantes já
tiveram contato com a tecnologia anteriormente, com exceção de dois entrevistados, tornando
assim os resultados do teste mais preciso. Vale ressaltar também que 100% dos entrevistados
nessa pesquisa responderam que sabiam o que era um chatbot. O teste foi realizado com 20
pessoas, todas elas estudantes, com um tempo médio de interação de 13 minutos, como mostra
o gráfico da Figura 6 (a).
Com base nos resultados extraídos dos testes, é possível concluir que os chatbots
concebidos através da plataforma, podem ser utilizados como ferramenta de auxílio e apoio na
educação, segundo as respostas dos usuários e a motivação que os levaram a usar a aplicação.
Dos entrevistados, 81,8% afirmaram que voltariam a interagir com o chatbot novamente e
também afirmaram que os agentes são capazes de auxiliar nas atividades acadêmicas. Ao
analisar os resultados perceber-se que os chatbots geraram muitas respostas inapropriadas
para alguns usuários durante o teste, como mostra o gráfico da Figura 6 (b), isso pode ser
esclarecido pelo tamanho de sua base, os chatbots testados na plataforma tinham uma base de
conhecimento pequena, atribuindo a ele menor poder de precisão no reconhecimento de
padrões de respostas solicitadas pelo usuário. Um dos fatores mais importantes a ser levado em
consideração em um agente artificial, é o tamanho de sua base e que a sua precisão de resposta
e diálogo está totalmente proporcional ao tamanho de sua base de conhecimento, ou seja,
quanto maior a sua base de conhecimento, maior será sua precisão nas respostas, tornando
assim o diálogo mais natural possível entre a máquina e o ser humano.

Figura 6. Resultados da interação dos alunos com o chatbot concebido pela plataforma.

Os resultados expostos neste trabalho se referem a dois chatbots diferentes, um deles


foi projetado para ensinar a teoria de linguagens de programação orientada a objetos e o
segundo foi projetado para ensinar inglês, explicando conceitos e tradução de palavras do
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 139
português para o inglês. Um dos pontos mais elogiados pelos usuários ao testar a aplicação, é a
rapidez de resposta do chatbot, trazendo a sensação de disponibilidade total do chatbot sempre
que o usuário precisar interagir, sendo assim atingindo um dos objetivos principais deste
trabalho, a disponibilidade de sempre está disposta a ajudar o aluno, quando o mesmo
requisitá-lo. Também destacam-se alguns pontos fracos e pontos fortes descrito pelos
entrevistados durante a pesquisa, alguns entrevistados afirmaram que um ponto fraco dos
chatbots era pouco conhecimento e geração de respostas inapropriadas. Em relação aos pontos
fortes, destaca-se a rapidez de resposta e a facilidade de uso da aplicação.

6. Conclusão
A plataforma concebida neste artigo tem como objetivo fornecer ao professor um ambiente,
mesmo sem possuir conhecimentos técnicos de áreas como programação e IA, a desenvolver
chatbots para apoiar alunos no processo ensino-aprendizagem. A plataforma disponibiliza um
editor web, que tem por finalidade abstrair os conceitos técnicos necessários para a criação dos
chatbots. Os agentes de conversação concebidos pela plataforma, são interpretados por uma
aplicação mobile, onde a mesma é responsável por realizar a interação com o aluno.
Conclui-se que, diante da pesquisa, os resultados esperados foram atingidos e que a
aplicação atualmente pôde atender aos testes especificados neste trabalho. Entretanto, para o
uso em grande escala, a plataforma precisa se tornar mais sólida e mais completa, para que
seja usada em uma escala maior de acesso e atenda às necessidades de diversos tipos de
metodologias de ensino e acompanhamento com os alunos.
Para trabalhos futuros propomos a evolução da interface para a criação de padrões, que
hoje se encontra em formato de formulário simples, para diagramas semelhantes, o que é feito
na aplicação do IBM Watson. Outra evolução seria a inclusão de um web crawler, o sistema
efetuaria buscas na internet que seria capaz de enriquecer a base de dados dos chatbots,
portanto quando um determinado chatbot não souber dialogar sobre um determinado tema, ele
buscará conteúdo do assunto especificado na internet.

Referências
Bellman, R. (1978). An introduction to artificial intelligence: Can computers think?
Thomson Course Technology.
Bots, P. (2017). Site oficial http://pandorabots.com. Acesso em, 06/11.
de Oliveira, M. F. (2011). Metodologia científica: um manual para a realização de
pesquisas em administração. Universidade Federal de Goiás. Catalão-GO.
Huang, J., Zhou, M., and Yang, D. (2007). Extracting chatbot knowledge from online
discussion forums. In IJCAI, volume 7, pages 423–428.
Kerly, A., Ellis, R., and Bull, S. (2008). Calmsystem: a conversational agent for learner
modelling. Knowledge-Based Systems, 21(3):238–246.
Khanna, A., Pandey, B., Vashishta, K., Kalia, K., Pradeepkumar, B., and Das, T. (2015). A
study of today’s ai through chatbots and rediscovery of machine intelligence. Int. J. ue
Serv. Sci. Technol, 8(7):277–284.
Krassmann, A. L., Herpich, F., da Silva, Á. S. P., da Silva, A. R., de Souza Abreu, C.,
Schmitt, M. A. R., Bercht, M., and Tarouco, L. M. R. (2017). Fastaiml: uma ferramenta
para apoiar a geração de base de conhecimento para chatbots educacionais. RENOTE:
revista novas tecnologias na educação [recurso eletrônico]. Porto Alegre, RS, 15(2).
140 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Leonhardt, M. D., Castro, D. D. d., Dutra, R. L. d. S., and Tarouco, L. M. R. (2003).
Elektra: Um chatterbot para uso em ambiente educacional. RENOTE: revista novas
tecnologias na educação [recurso eletrônico]. Porto Alegre, RS.
McNeal, M. L. and Newyear, D. (2013). Chatbot creation options. Library Technology
Reports, 49(8):11–17.
Menezes, J. S., Rabelo, R. A., Souza, M. C. d. J., Farias, W. S., and Júnior, J. B. V. (2014).
Portubô: Robô de conversação para o aprendizado de gramática da língua portuguesa. In
Escola de Computação Bahia-Alagoas-Sergipe (ERBASE).
Moraes, S., Santos, A., and Redecker, M. (2016). Prototipação de chatterbots como método
de aprendizagem em cursos de computação: uma experiência em sala de aula. In Anais do
Workshop de Informática na Escola, volume 22, page 91.
Russell, S. and Norvig, P. (2013). Inteligência artificial, volume 3 ed. Rio de Janeiro.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 141
White Hat Hacking: Securing networks with offensive strategy
– A systematic literature review
Thiago F. Costa1,2, Andre´ R. da Cruz1,3
1
Departamento de Computação – Centro Federal de Educação Tecnológica de Minas
Gerais, Av. Amazonas 7675, Nova Gameleira, Belo Horizonte - MG - Brasil. CEP: 30510-
000
2 Département
Réseaux et Télécommunications – Université Grenoble
Alpes, 621 Avenue Centrale, 38400 Saint-Martin-d’Hères – France
3 Diretoria
de Elétrica – Instituto Federal de São Paulo,
R. Pedro Vicente, 625, Canindé, São Paulo – SP – Brasil. CEP: 01109-010

Abstract. This paper presents a Systematic Literature Review of offensive


hacking strategies and techniques, like penetration tests, aiming to increase
the security of computer networks by eliminating the detected vulnerabilities.
These techniques are not being widely applied, after all, known and often
older vulnerabilities are being used to drive attacks. The relevance of the
present work is to cover the necessary content to avoid and simulate these
attacks by synthesizing the knowledge obtained in a systematic review of the
literature. The goal is to serve as a mean of spreading information, helping
to increase the digital security level in computer networks, and therefore
contributing to the improvement of the cybersecurity in general. In order to
put the related content into practice computing and networking knowledge
are needed, and everything presented in this paper can be powered by open-
source tools.

1. Introduction
The computerization of systems, the emergence of the Industry 4.0 and the Internet of Things
allowed people to become more and more attached to technology, whether in personal or
professional sphere. As the amount of devices and the necessary communication between them
increase, so does increase the variety and amount of vulnerabilities that can be exploited by
hackers, which can be very damaging. Network and device security must putted into
foreground to avoid cyberattacks. One of the ways to achieve this is to take advantage of the
same knowledge and tools that hackers use, using them strictly to protect networks.
The most common exploited vulnerabilities are the old ones, one of the most exploited
vulnerability has eight years old according to the Cybersecurity and Infrastructure Security
Agency4. Small networks are often attacked by having a convenient vulnerability instead of
being a target in the first place. Thus we can conclude that basics of IT Security were not
properly executed on those networks which concentrates a huge amount of attacks. This
paper synthesizes the distributed knowledge across cyber security and offensive techniques
through a Systematic Literature Review (SLR) [Okoli 2015] with concepts of hacking and
ethical hacking in order to analyze quantitatively the number of studies that was published.
This information will offer a notion about how many works were dedicated in this field. The

4
See: https://us-cert.cisa.gov/ncas/alerts/aa20-133a
142 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
presented information can help IT responsibles to detect and prevent attacks. Even the basics
of security if properly done can drastically increase the protection of a network.

2. Related work
An interesting related work can be founded in [Chow 2011], at which the author gives overall
vision and concepts about ethical hacking, exploring cyberattacks, pentesting and other
techniques. The present work differs from the above mentioned on the approach, explaining
also concepts that were not mentioned on the other work and presenting more details. Those
details makes possible to apply the knowledge, guiding the network IT security responsible to
audit its network by using offensive strategies. This paper also was inspired by the concepts
of [Baloch 2017] and [Engebretson 2013], which gives a more detailed overview on attacks,
social engineering, web hacking, wireless hacking and other techniques to exploit
vulnerabilities such as penetration testing. No other SLR of general network security, general
penetration testing or general offensive strategies was found, this work intends to fill this gap.

3. Methodology
This work was conceived after an extensive exploratory bibliographical research on Google
Scholar5, SciELO6 and Periódicos CAPES7 in the area of cybersecurity. The purpose was to
gather huge amounts of information about the subject in order to summarize it and show the
correlation of the ethical hacking and network security areas.
In favor of accomplishing this objective, the steps of a SLR [Okoli 2015, De-la
Torre-Ugarte et al. 2011] were followed. First the research question: “How to use hackers’
techniques to prevent attacks?” was defined. After a set of terms related to the research
question, the keywords, were defined and they are: “Cybersecurity”, “Hacking”, “Ethical
hacking”, “White hat hacking”, “Network security”, “Cyber attacks” and “Pentesting”.
Aggregating these keywords by joining the terms forms the research strings and by querying
them was possible to gather several papers related to the theme.
The papers were filtered and it was selected the most relevant set. For a work to pass
the first filter it must have a publication date ranging from 2010 to 2020, the past 10 years is a
large range considering that usually only recent work is considered, but in this context there
are not many works so the range was extended, books with classic concepts and pioneering
articles were also included. For a work to be included it also must be relevant to the research
question and on similar works, the completest one is selected.
The quality assessment checklist (QAC) was used to filter once again the papers by
checking if they satisfies the questions specified on a checklist. These questions are: (i) Is the
work complete?; (ii) Are the conclusions adequate?; (iii) Was the analysis done well and does it
make sense?; (iv) Is the methodology clear and adequate?; (v) Is it somehow contradictory
with well known concepts and other works?
Initially, 233 works were found, which were reduced to 18. It can be noted that there are not
many papers which treats all these terms related to cybersecurity together, emphasizing the
importance of the present work. The extracted information was crosschecked with similar
works to finally be synthesized on this work, that offers an introductory text with all these

5
See: https://scholar.google.com/
6
See: https://scielo.org/
7
See: https://www.periodicos.capes.gov.br/
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 143
concepts with examples and open-source tools. In this way, interested people in this
technology field can take advantage of the content.

4. Security of computer networks


The network design is a crucial part of security. A well designed network can easily isolate
parts of the system avoiding damage propagation with, for example, Virtual LANs (VLAN)
and Demilitarized Zone (DMZ). A good design can also avoid attacks by reducing
vulnerabilities, since attacks occurs when there are some threat exploiting an existing
vulnerability necessarily. During the design phase, it is also important to place security
agents, such as Intrusion Prevention Systems, Honeypots and Firewalls, on the right spots
[Stallings 1995, Kizza 2009].
The computer networks vary a lot among them in relation to size and offered services,
but they share a lot of common vulnerabilities like: (i) unnecessary open ports and available
services; (ii) non-updated or non-patched software/operating system; (iii) available name and
software version information obtainable from outside (they must be spoofed); (iv) weak or
common passwords; (v) passwords written on paper and left close to computer station; (vi) the
enabling of the poorly protected remote device administration tools; (vii) computers without
password-protected screensaver, to hinder the access of non-authorized people; (viii) insecure
communications over the network, packets without secure data cryptography; (ix) the enabling
of non-authenticated devices (the network must run over 802.1x standard [Geier 2008]); (x)
no data backups; (xi) users without training to safely use the network; (xii) users and accounts
having more privileges than needed; (xiii) network guests not isolated from the network core;
(xiv) user’s mobile devices connected to an insecure WiFi network. These vulnerabilities
enables Malwares, Phishing, Man-in-the-middle, DoS and DDoS, SQL/Script Injection and
DNS Tunneling attacks to occur [Gupta and Anand 2017, Jakobsson and Ramzan 2008].
Even though with a lot of vulnerabilities in common, each network is unique so a work
of risk analysis must be done to identify its vulnerabilities and risks [Myerson 2002]. The
network security measures can be divided into the four following categories that are detailed
in the subsections bellow: (A) Physical Security 4.1, (B) Operational Security 4.2, (C) Logical
Security 4.3, (D) Application Security 4.4. Measures on all of the categories must be taken in
order implement security in every level, making the security as it should be, simple and
divided in several layers. The auditing test must be done only after the implementation of
every possible measure including the following.

4.1. Physical security


A physical security strategy is necessary to ensure mainly the availability of the system and
the protection of the integrity and durability of all hardware devices. Some measures of
physical security concerning equipment rooms are: (i) environment control, by controlling the
humidity, temperature, air flow and avoiding damaged caused by fire and flooding; (ii) room
access control, by monitoring and controlling people’s access to the rooms;
(iii) power supply policies, granting that every device is constantly powered with stable
energy, independent of disturbances of outside world. There are other non-mentioned
measures concerning labeling and cabling, for example.

4.2. Operational security


Operational security concerns routine policies, actions that must be taken from time to time or
variables that must be controlled to keep the network operational. It involves policies such as:
144 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
(i) tracking certificates to avoid unexpected expires; (ii) action plans to deal with under attack,
data recovery, audit and software update situations; (iii) password renewal schedule; (iv) team
training schedule to train the network users against social engineering [Gragg 2003] and to
safely use the network; (v) realizing preventive and corrective maintenance; (vi) keeping up to
date with cybersecurity news to be aware of recent vulnerabilities and attacks.

4.3. Logical security


Software safeguards and measures are policies to protect the system. Physical security is
related to hardware just as logical security is related to software. The measures and policies
related to logical security depend directly on the context, being different for each case. Some
general rules are listed for these purpose are: (i) protecting DNS servers so that vulnerable
DNS can point computers to fake websites to steal information; (ii) using an antivirus that
receives constant database updates in every computer over the network, avoiding infections to
spread out; (iii) using honeypots [Fagone and Hendrie 2004] to detect, isolate and fool hackers;
(iv) centralizing and protecting logs on a single server, avoiding hackers to hide their traces;
(v) synchronizing every device clock using a secure protocol, ensuring proper functioning of
algorithms and facilitating centered log analysis;
(vi) using Network Intrusion Prevention Systems to detect and act on suspicious activities and
behaviours; (vii) disabling unneeded services in every device connected to the network; (viii)
isolating servers that needs internet access on a DMZ and prevent devices outside of it to make
direct contact with internet; (ix) configuring firewalls with least possible permissions; (x)
using Group Policy Objects (GPOs) to force computers over network to apply some
behaviours like: limiting user access to system settings and terminal, blocking guest and
administrator local accounts, disabling removable media on USB ports, forbidding software
install, enabling disk cryptography and blocking password hash cache over the network.

4.4. Application security


Application security concerns the security measures within software developed by the
network owner, such as: (i) validating inputs coming from users, micro-systems and third-party
APIs; (ii) making a secure algorithms for authentication and session management and
caching; (iii) proper error handling; (iv) robust code especially when dealing with the
communication with other parts of the system, such as file reading, client-server
communication, and inter process communication; (v) paying attention on network traffic,
common passwords, reliability of third-party plugins, denial of service, storage available size
and unneeded plugins and libraries; (vi) general good practices for codding.

5. Ethical hacking and other categories


Ethical hacking is an authorized hacking attack against some target in order to detect its
vulnerabilities [Farsole et al. 2010], at which a hacker whose intentions are beneficial. The
ethical hacking is focused and well described by [Palmer 2001]. As observed by [Caldwell
2011], these theoretical definitions are important to understand the context in which this work
is inserted and to differ malicious from beneficial activities, since hacking is a tool that can be
used for both and being neutral in itself.
The types of hackers can be clustered into two categories and middle term between
them, those who have greater relevance to this work are [Martin 2017]:

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 145
White Hat: Directly related to ethical hacking, “good” hackers trying to improve
•security or to defend some target against an attack. Usually White Hat hackers needs
to be certificated by a trusted vendor-neutral authority to ensure that the certificated
skills of the person are compliant with the standards and also to ensure that the person
holding the certificate knows the ethical responsibilities [Anderson 1992] of their
profession and their knowledge.
•Gray Hat: They are hackers generally engaged in the activity being itself the very end.
They search for knowledge, challenge or even fun, disrespecting some laws and
ethical standards but even so they are generally not malicious and present low risk to the
computer network. Their intentions are to develop their skill no matter what.
• Black Hat: The concept that comes in mind of most people when listening to the word
“Hacker” is directly associated with to the black hat concept. They are hackers who
take advantage of vulnerabilities for personal gain, such as data theft, denial of service,
hijacking of machines to use their computing power, among others. This kind offers a
great risk to the computer networks and can work by themselves or behind large
organizations and governments.
There is also another type of hackers, a sub-category of Black Hats, the Hacktivists,
their motivation are generally political or social, defending causes such as, free speech,
freedom of information and human rights [Hampson 2012].

6. White hat hacking as essential for security


The network security has two fundamentals that are very important, and must be explicitly
obeyed: (i) Everything that is not explicitly allowed shall be forbidden; and (ii) Prove that
security was implemented at the state of the art. Ethical hacking concerning network security
can be very powerful because they complement each other.
The first fundamental is part of classical security and it is essential during the security
design. It can be accomplished by taking into account vulnerabilities and security policies that
were briefly cited in the Section 4. It also helps to control the traffic in the least permissive
way possible, avoiding unwanted activities.
Just following the first fundamental and forbidding what is not allowed it is not
enough to ensure security. After all, according to the second fundamental, it should be proved
that every security standard was implemented in the state of art. One tip to get closer to the
state of art is to keep up to date with cybersecurity news and standards.
An empirical way, in order to prove that what could be done concerning security was
done, is frequently auditing the network with a penetration test (pentest) and other offensive
strategies. After the test, if vulnerabilities are found, they must be fixed. If no vulnerabilities
were found on a well designed attack, it can be assumed that the system has a certain level of
security. Next, the attacks must be improved to increase even more the confidence in the
system security, by increasing the potential exploitability of the test attack, granting that every
possible vulnerability was tested.
Ethical hacking can also be used to evaluate the protection level of a Intrusion
Prevention or Detection Systems, Firewalls, Anti-viruses and other network software and
hardware. This evaluation can be used on decision taking, in order to choose software or
hardware for the network protection considering their scores.

146 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
7. Planning attacks
The understanding of the proper way to plan and execute a cyberattack is advantageous,
because it helps the preparation for an audit. Nevertheless, it is also important to understand
the mind of a hacker in a way that this can be used to improve offensive and defensive skills
by thinking on the same way. The lifecycle of an attack can be defined into the following
steps, that must be executed in the stealthier possible way:

i. Intelligence work: This step consists of gathering all kinds of information about
the target and subjects related to it. The collected data can contain names, e-
mails, phone numbers and social media profiles of the target, people associated
to the it and their relatives. This information can be useful in social engineering.
Operating systems, software and their versions should also be identified. The
OSINT framework8 is a online tool that can help on that, because it is focused
on gathering information from other free tools and resources. The act of getting
public IP addresses of servers, check domain information with “whois”9,10 and
DomainIQ11 is also important. It is necessary to analyze websites that are target
for searching information and vulnerabilities, checking the page code, play with
URL values (modifying GET parameters and querying non-existent pages) and
using vulnerability detection tools such as Observatory12 can help on this
mission. During this step the target should be scanned from outside (and inside
if possible). For that the attacker must hide its traces to not be detected,
spoofing its IP and MAC for example. Traffic analysing is a good option if
possible, on open WiFi for example, or at least traffic coming from target’s APIs
and website. The traffic analysis can be very useful to understand the target. It
is also very important to understand the role, objectives and way of operation of
the target and its activities.
ii. Study and Plan: On this step the major part requires to make correlation between
gathered information, plan the attack itself, define its objectives, dates and each
attack step. Search for known vulnerabilities in databases, such as CVE
Details13, can be very useful to query the name of the target software, version
and to search for vulnerabilities. A study about used softwares and Operating
Systems (OS) characteristics must be driven, for example, figuring out where
the logs are stored on the OS and other architecture details. Some phone calls, e-
mails or personal visiting using social engineering can be useful to fill the gaps of
missing information [Hadnagy 2010]. A graphical link about all the information
and the known target’s infrastructure can help to visualize and plan the attack.
iii. Exploit: This is the beginning of the practical attack, considering every
information known. It is the moment to exploit some founded vulnerability or
try to install some backdoor through malicious e-mail, for example.
iv. Get privileges: After exploiting the vulnerability to get inside, there is a huge

8
https://osintframework.com/
9
See: https://www.shodan.io/
10
See: http://whois.domaintools.com/
11
See: https://www.domainiq.com/
12
See: https://observatory.mozilla.org/
13
See: https://www.cvedetails.com/
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 147
chance of the gotten access being permission limited to conquer the attack
objective. Indeed, this step consists of getting administrative privileges (or
enough needed) on the given access.
v. Propagate: The main objective of this step is to propagate over the network to get
access to the target devices, making possible to realize the desired attack or
even to install other backdoors to be exploited in the future.
vi. Attack: Doing the attack itself that can theft, destroy and/or modify data, steal
processing capabilities, denial of service, among others.
vii. Erase traces: Erasing traces of the attack on the target side, logs for example, and
on attacker side as well. It is important to prevent the responsible from being
identified and linked to the attack. This is a very important step to be done by
the attackers and avoided by the defenders.

When the attack is part of an auditing, there is also two extra steps to do after it: (i) Report
each step to generate a detailed information of what it was did, the description of the attack,
the vulnerabilities founded and the possible fixes; (ii) Analyze the results of the audit
comparing them with older results to understand what happened, what must be done, what can
be done in the future and analyse also the temporal behaviour of the network, to check if it is
significantly increasing security over time.

During penetration tests and audits, vulnerabilities are easier to detect because the network
can be scanned from every inside part. Beyond that, it is important to simulate attacks as close
as possible from real attacks, of course excluding the harmful attack steps and avoiding
damage or perturbation of the activities of the network owner. After simulating a real scenario
the network must be scanned from several inside points. Social engineering should also be
used on audits to gather information e invade using phishing e-mails for example, of course
respecting the laws and ethics standards. The audit must be know by the responsible of the
network and by the responsible for its security, but fewer people who know the better.

8. Toolkit
Until this point, the role of ethical hacking is already known, how it can increase the network
security, how to plan a pentesting and what to do in each step. But in order to understand it in
a practical way, concerning what must be done, the available tools and their functions must to
be known.
A huge variety of open-source hacking tools can be obtained in Linux distributions. One
example is Kali Linux14 [Allen et al. 2014], downloadable in its official website that has
information about each security tool in general. Some of the most important tools for
pentesting are described bellow:
• nmap: A tool for scanning the connected network or some external one, given its
IP or IP range. It can discover open ports, hosts and its operating system,
software names and versions of daemon, and with custom scripts it is possible
to do a variety of thing such as detect vulnerabilities, execute backtracking
attacks and running tests on found targets.
• sqlmap: A tool to search and exploit vulnerabilities on SQL database management
systems, it can also inject malicious code and automate the tests.
• Wireshark: A very powerful tool that listens and captures network packets. It can

14
https://www.kali.org/
148 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
be used to help discovering the target infrastructure by analysing traffic of ever-
running network protocols, such as neighbour discovery, dynamic routing
protocols, ARP, ACK responses and many others. It has a very good GUI,
decryption and decompression tools and it gives not only raw frames, but the
software has several protocols in its database and automatically analyse them by
explaining important values and fields of the frames in every layer.
• Metasploit Framework: One of the most powerful tools that can be used to scan
the network, find known vulnerabilities and automatically exploit some of
them.
• t50: A tool used to flood the network trough several protocols, causing denial of
service.
• OpenVAS: Standing for Open Vulnerability Assessment System, this tool allows
you to explore vulnerabilities of a given network and also to scan and map it.
• Fluxion: A WiFi analyser which detects vulnerabilities on personal and corporate
wireless networks.
• Aircrack-ng: A WiFi tool suite for sniffing and injection and cracking passwords.
• Yersinia: It exploits vulnerabilities on layer 2 (MAC layer) of the following
proto cols: 802.1q and 802.1x Wireless LANs, Dynamic Host Configuration
Protocol (DHCP), VLAN Trunking Protocol (VTP), Cisco Discovery Protocol
(CDP), Dynamic Trunking Protocol (DTP), Hot Standby Router Protocol
(HSRP), Inter-Switch Link Protocol (ISL) and Spanning Tree Protocol (STP).
• findmyhash: It is used to analyze password hashes of several encryption
algorithms. This tool helps to discovery some password given its hash.
• DHCPig: A tool for attacking DHCP servers by consuming every available IP.
• ZapProxy: Tool to find and exploit vulnerabilities on web pages.
• TLSSLed: It is used to evaluate the security of the Secure Sockets Layer (SSL),
where encrypted data travels.
• Vega: A scanner and exploiter of vulnerabilities for web pages.
• John the Ripper: It is used to perform brute force attacks.

9. Going beyond
It is possible to go beyond of what were mentioned in this paper. For this purpose it is
required to have a plain knowledge on computer architecture, operating systems,
programming languages, wireless networks and computer networks. The understanding of
how these techniques work on an computer at bit level can help to discover vulnerabilities and
to learn protocols. The internet and most of the network run over protocols designed by
IEEE’s15 and described on Request for Comments (RFC) documents. Its reading is required to
become a network specialist. It is also highly recommended to navigate on MITRE ATT&CK
website16 to learn more about attacks, techniques, vulnerabilities and tactics.
It is possible increase the hacking power by programming custom tools, being able to
automate functions and write exploits. This also helps to be safe against thirdparty tools that
often comes with a hidden malware. Bash script can be a good alternative to accomplish

15
https://www.ieee.org/
16
https://attack.mitre.org/
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 149
similar results in a easier and very powerful way, since with it, it is possible to automate the
usage of already existing tools and commands.
Users are popularly known as careless when it comes to cybersecurity and informatics
in general. Gamefication techniques can also be used on day-by-day routine and during user
trainings because they can assist the development of security skills. This technique was
already approved on general employee’s trainings [Armstrong and Landers 2018] and it was
considered efficient as well on specific cybersecurity applications [Boopathi et al. 2015].
Another good strategy to gamify security consists of flooding occasionally the network with
fake attacks during some period of time to establish statistical relationships. Those fake
attacks can be phishing and social engineering attempts. Points must be given secretly to users
that did not failed on the tests. The results can be published in order to stimulate the users
with higher scores through awards, and also to teach everyone about the detected
vulnerabilities.

10. Conclusions and further steps


This work discussed about Network Security in general and presented some common
vulnerabilities and security policies to protect the network against attackers. The ethics of
hacking took part on the discussion, analyzing the types of hacker and their motivations. The
work was successful in uniting both concepts showing how offensive hacking strategies can be
used to increase the network security. It was also illustrated how to drive attacks in order to
detect its vulnerabilities by using the Kali Linux’s tools.
The knowledge about hacking techniques and cybersecurity was spread out trough
several papers, websites and books, but with few fully related to the research question. After a
SLR those contents were agglutinated into this work, filling an existent gap of papers and
satisfying the propose of the SLR. This gap can has effects on the real world, since the
techniques described here can drastically decrease the attack rate.
The research is under development, seeking to increase its scope and also increasing its
knowledge depth. For future works, it is desired to develop the main subject of the paper
executing a case study of offensive strategies to secure computer networks, putting into
practice and documenting the process and results of what was researched here.
Another future path is to write a paper explaining with more details the design of a
secure network and the security policies associated to it, complementing the section 4.
Even though it is not largely deployed yet, IPv6 solves some problems of IPv4, but also
brings new security issues [Caicedo et al. 2009]. Protecting IPv6 networks against these new
vulnerabilities is essential and can be explored in future works.

References
Allen, L., Heriyanto, T., and Ali, S. (2014). Kali Linux–Assuring security by penetration
testing. Packt Publishing Ltd.
Anderson, R. E. (1992). Acm code of ethics and professional conduct. Communications of
the ACM, 35(5).
Armstrong, M. B. and Landers, R. N. (2018). Gamification of employee training and
development. International Journal of Training and Development, 22(2).

Baloch, R. (2017). Ethical hacking and penetration testing guide. Auerbach Publications.
150 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767
Boopathi, K., Sreejith, S., and Bithin, A. (2015). Learning cyber security through
gamification. Indian Journal of Science and Technology, 8(7).
Caicedo, C. E., Joshi, J. B., and Tuladhar, S. R. (2009). Ipv6 security challenges. Computer,
42(2):36–42.
Caldwell, T. (2011). Ethical hackers: putting on the white hat. Network Security, 2011(7).
Chow, E. (2011). Ethical hacking & penetration testing. University of Waterloo, Waterloo,
Canada, No. AC, 626.
De-la Torre-Ugarte, M. C., Takahashi, R. F., Bertolozzi, M. R., et al. (2011). Revisão
sistemática: noções gerais. Revista da Escola de Enfermagem da USP, 45(5):1260– 1266.
Engebretson, P. (2013). The basics of hacking and penetration testing: ethical hacking and
penetration testing made easy. Elsevier.
Fagone, P. and Hendrie, D. (2004). System and method for deploying honeypot systems in a
network. US Patent App. 10/272,581.
Farsole, A. A., Kashikar, A. G., and Zunzunwala, A. (2010). Ethical hacking. International
Journal of Computer Applications, 1(10):14–20.
Geier, J. (2008). Implementing 802.1 X security solutions for wired and wireless networks.
John Wiley & Sons.
Gragg, D. (2003). A multi-level defense against social engineering. SANS Reading Room, 13.
Gupta, A. and Anand, A. (2017). Ethical hacking and hacking attacks. International Journal
of Engineering and Computer Science, 6(4).
Hadnagy, C. (2010). Social engineering: The art of human hacking. John Wiley & Sons.
Hampson, N. C. (2012). Hacktivism: A new breed of protest in a networked world. BC
Int’l & Comp. L. Rev., 35.
Jakobsson, M. and Ramzan, Z. (2008). Crimeware: understanding new attacks and defenses.
Addison-Wesley Professional.
Kizza, J. M. (2009). Guide to computer network security. Springer.
Martin, C. D. (2017). Taking the high road white hat, black hat: the ethics of cybersecurity.
ACM Inroads, 8(1):33–35.
Myerson, J. M. (2002). Identifying enterprise network vulnerabilities. International Journal
of Network Management, 12(3).
Okoli, C. (2015). A guide to conducting a standalone systematic literature review.
Communications of the Association for Information Systems, 37(1):43.
Palmer, C. C. (2001). Ethical hacking. IBM Systems Journal, 40(3).
Stallings, W. (1995). Network and internetwork security: principles and practice,
volume 1. Prentice Hall Englewood Cliffs, NJ.

XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767 151
Programação
Dia 03/11/2020

19h Abertura/Devocional

19h30 Palestra de abertura:


Lean Inception: Como Alinhar Pessoas e Construir o Produto Certo
Paulo Caroli

20h30 – 22h Sessões Técnicas

20h30 Desnormalização na otimização da estrutura de dados da SentimentALL


Dionnys Santos Marinho, Parcilene Fernandes de Brito

20h45 Implementação de um Data Mart e Automatização do Processo ETL para o Sistema


de Procedimentos Extrajudiciais do MPE/TO
Thiago Aparecido da Silva1, Fábio Castro Araújo

21h Extração e armazenamento de dados de teses e dissertações sobre saúde mental


presentes em repositórios de universidades do Brasil
Danilo Saraiva Vicente, Dionnys Santos Marinho, Giovanna Biagi Filipakis, Mateus
Rodrigues Costa, Nalberthy Sousa da Silva, Parcilene Fernandes de Brito

21h15 Otimização da Localização das Unidades Básicas de Saúde Utilizando o Modelo p-


Centro: Um estudo de caso
Isaac Jordan Coutinho Lopes1, Luis Eduardo Costa Laurindo

21h30 Desenvolvimento de um aplicativo mobile para navegação interna no CEULP/ULBRA


Lucas Costa da Silva, Fábio Castro Araújo

21h45 Um sistema mobile de apoio ao profissional de Educação Física para a realização da


avaliação física, periodização de treino e prescrição dos exercícios
Claison Marques da Nóbrega, Fabiano Fagundes, Jackson Gomes de Souza, Pierre Soares
Brandão

Dia 04/11/2020

19h – 22h Minicursos

Minicurso 1: Análise de Dados com o Opendistro for Elastisearch


Ministrante: Flavio Henrique Moura Stakoviak

Minicurso 2: Desenvolvendo aplicações com Domain Driven Design


Ministrante: Douglas José Ramalho Araujo

Minicurso 3: Desenvolvimento de Single Page Applications com ReactJS


Ministrante: Djonathas Carneiro Cardoso

Minicurso 4: Desenvolvimento de aplicativos móveis com ReactNative


Ministrante: Valdirene da Cruz Neves Júnior
Minicurso 5: Extração de dados da Web com Scrapy

152 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767
Dia 04/11/2020

Ministrante: Dionnys Santos Marinho

Minicurso 6: Testes automatizados com Cypress


Ministrante: Jhemeson Silva Mota

Minicurso 7: Trabalhando ideias inovadoras com o framework strateegia


Ministrante: Alexandre Henrique Kavalerski Teixeira

Dia 05/11/2020

19h – 22h Minicursos

Minicurso 1: Análise de Dados com o Opendistro for Elastisearch


Ministrante: Flavio Henrique Moura Stakoviak

Minicurso 2: Desenvolvendo aplicações com Domain Driven Design


Ministrante: Douglas José Ramalho Araujo

Minicurso 3: Desenvolvimento de Single Page Applications com ReactJS


Ministrante: Djonathas Carneiro Cardoso

Minicurso 4: Desenvolvimento de aplicativos móveis com ReactNative


Ministrante: Valdirene da Cruz Neves Júnior

Minicurso 5: Extração de dados da Web com Scrapy


Ministrante: Dionnys Santos Marinho

Minicurso 6: Testes automatizados com Cypress


Ministrante: Jhemeson Silva Mota

Minicurso 7: Trabalhando ideias inovadoras com o framework strateegia


Ministrante: Alexandre Henrique Kavalerski Teixeira

Dia 06/11/2020

19h – 20h Sessões Técnicas

19h Blockchain aplicado na cadeia de comercialização de produtos rurais


Augusto Cavalcanti, Dionnys Santos Marinho, Giovanna Filipakis, Ronicley Silva de Sa,
Madianita Bogo Marioti

19h15 Rumo a conformidade da segurança cibernética em sistemas de controle industriais:


estudo de caso com a planta MecatrIME
Christiana Couto, Gustavo Claudio Karl Couto, Antonio Eduardo Carrilho da Cunha

19h30 Desenvolvimento de uma gramática para auxílio no processo de criação e validação de


fórmulas proposicionais estruturada em XML do Logic Live
Danilo Saraiva Vicente, Emanoel Mendes Magalhães, Nalberthy Sousa da Silva, Jackson
Gomes de Souza
XXII Encoinfo – Congresso de Computação e Tecnologias da Informação
ISSN: 2447-0767 153
Dia 06/11/2020

19h45 White Hat Hacking: Securing networks with offensive strategy - A systematic
literature review
Thiago Figueiredo Costa, André da Cruz

20h Palestra de abertura:


Transformação Digital e Inovação com Inteligência Artificial
Sergio Gama

21h OSLIVE: Módulo de Exercícios de Escalonamento de Processos


Gabriel Fernandes da Silva, Madianita B. Marioti, Fabio Castro Araújo

21h15 GraphLive: um sistema interativo para a criação de grafos


Pedro Sousa Silva Cantuária, Fabiano Fagundes

21h30 Desenvolvimento de uma ferramenta para validação de Fórmulas Proposicionais


usando o método de Árvore de Refutação
Danilo Saraiva Vicente, Parcilene Fernandes de Brito

21h45 Uma Plataforma para Autoria de Chatbots como Auxílio no Processo de Ensino
Luis Eduardo Costa Laurindo, Allyson Martins, Ivan Rodrigues de Moura, Carleandro de
Oliveira Nolêto

154 XXII Encoinfo – Congresso de Computação e Tecnologias da Informação


ISSN: 2447-0767

Você também pode gostar