Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Presidente
Paulo Augusto Seifert
Reitor
Marcelo Müller
Diretora Acadêmica
Parcilene Fernandes de Brito
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
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
Editora Chefe
Parcilene Fernandes de Brito
Editores Assistentes
Jackson Gomes de Souza
Fabiano Fagundes
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.
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.
Palestrantes ............................................................................................................................. 14
Minicursos ............................................................................................................................... 16
Artigos Completos
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
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.
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-
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
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.
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
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.
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.
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.
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).
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.
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.
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.
danilo.sarai@@rede.ulbra.br,parcilene.brito@ulbra.br
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.
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.
4. Materiais e Métodos
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
Figura 3 -Back-end.
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.
6. Considerações finais
Referências
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>
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.
Figura 1: Gramática.
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
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
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
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.
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,
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.
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.
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.
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
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).
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.
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
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
1. Introdução
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.
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).
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).
4. Trabalhos Relacionados
6. Materiais e Métodos
● 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.
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
Total 52,613
Média 4.385
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.
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
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.
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.
SCRAPY. Sem título. 2020. Disponível em: https://scrapy.org/. Acesso em: 05 set.
2020.
WONG, Chi-In et al. Design of a crawler for online social networks analysis.
WSEAS Transactions on Communications, v. 13, p. 263-274, 2014.
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.
1. INTRODUÇÃO
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.
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.
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
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.
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
4. Desenvolvimento
A imagem a seguir mostra um exemplo de código em DOT e o grafo gerado a partir deste
código pelo GraphViz.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
5. Considerações Finais
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.
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.
O modelo para localização de centros nos vértices pode ser formulado da seguinte
maneira:
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
1. Introdução
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.
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.
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.
ivan.rodrigues@lsdi.ufma.br, carleandro7@gmail.com
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.
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.
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.
Figura 6. Resultados da interação dos alunos com o chatbot concebido pela plataforma.
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.
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.
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.
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.
19h Abertura/Devocional
Dia 04/11/2020
Dia 05/11/2020
Dia 06/11/2020
19h45 White Hat Hacking: Securing networks with offensive strategy - A systematic
literature review
Thiago Figueiredo Costa, André da Cruz
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