Futurum: tendências, métodos e soluções em tecnologia da informação
Full text
ORGANIZADORES FELIPE SOARES DE OLIVEIRA THATYANA CARLA DIAS GUERRA CONSELHO EDITORIAL PEDRO ARAÚJO AMORIM FERNANDES HUGO VIEIRA LUCENA DE SOUZA RENATO ATOUGUIA LEITE RENARTE DANTAS DE ARAÚJO PRODUÇÃO EDITORIAL NÚCLEO DE PUBLICAÇÕES INSTITUCIONAIS (NPI) COORDENAÇÃO DE PRODUÇÃO FILIPE CARVALHO DE ALMEIDA DIAGRAMAÇÃO RAIFF PIMENTEL FÉLIX ALMEIDA C122 Futurum: tendências, métodos e soluções em tecnologia da informação / Organização: Felipe Soares de Oliveira, Thatyana Carla Dias Guerra. Unipê: João Pessoa, 2018. 150 p. ISBN 978-85-87868-78-7 1. Pesquisa Científica. 2. Segurança da Informação. 3. Ciência da Computação. I. Título. UNIPÊ / BC CDU 004 Bibliotecária: Eurileide Araújo da Silva - CRB 15/666 DOI: 10.5281/zenodo.17602871
APRESENTAÇÃO O impacto gerado pelas novas tecnologias disruptivas na indústria está sendo chamado de 4ª Revolução Industrial, ou Indústria 4.0. Essa revolução propõe em sua essência a utilização de um conjunto de tecnologias para permitir a fusão do mundo físico, digital e biológico, objetivando aumentar a produtividade das empresas, a partir da automação de tarefas e da capacidade de analisar grandes volumes de dados, gerando novos insights e percepções, abrangendo – principalmente - as áreas de Internet das Coisas, Big Data, Inteligência Artificial, Robótica, Computação em Nuvem, Realidade Virtual e CiberSegurança. Essa convergência está criando as chamadas Fábricas Inteligentes. Nesse sentido, o Livro Futurum – criado pela área UBTech-TI do UNIPÊ – objetiva dar destaque ao tema, ao propor um ambiente para dar visibilidade aos trabalhos que discutem soluções, desafios e tendências para o futuro nesse contexto. Felipe Soares de Oliveira
SUMÁRIO ANÁLISE COMPARATIVA DO DESEMPENHO ENTRE BANCO DE DADOS RELACIONAIS VIRTUALIZADOS ...7 Alisson Noberto Lopes Walter Travassos Sarinho ANÁLISE E IMPLEMENTAÇÃO DE SOLUÇÃO DE BUSINESS INTELLIGENCE PARA MELHORIA NO ATENDIMENTO AO PÚBLICO DO SEBRAE-PB ............18 Fábio Jorge de Queiroz Araújo Renata Grigorio Silva Gomes Ricardo Roberto BOOK NFC: UTILIZANDO A TECNOLOGIA NFC COMO APOIO NA DISPONIBILIZAÇÃO DE ACERVOS BIBLIOGRÁFICOS ........................................................37 Vinícius Nascimento da Silva Fábio Falcão de França CONTRATOS INTELIGENTES: GERENCIAMENTO DE IDENTIDADE DIGITAL UTILIZANDO A TECNOLOGIA BLOCKCHAIN ..............................................................50 Flávio Henrique Nascimento Bezerra Fábio Falcão de França DESENVOLVIMENTO DE UMA API DE AUTENTICAÇÃO MULTIBIOMÉTRICA ....................................................59 João Raphael Cavalcanti Ribeiro Fábio Falcão de França
HONEYPOTS DE ALTA-INTERATIVIDADE COM HONEYTOKENS: UM ESTUDO DE CASO SOBRE A IMPLANTAÇÃO EM AMBIENTES DE ALTA CRITICIDADE ...............................................................72 Flávio Rodrigo Cabral Pereira Fábio Falcão de França METODOLOGIAS ÁGEIS: SCRUM OU XP? ...................91 João Witor Jesus Dias Walter Travassos Sarinho PRODUTO METODOLÓGICO PARA O ENSINO DE COMPUTAÇÃO NA EDUCAÇÃO BÁSICA ......................103 Matheus Araujo da Silva Thyago Maia Tavares de Farias UTILIZAÇÃO DE APRENDIZAGEM DE MÁQUINA APLICADA AO MAPEAMENTO DA INCIDÊNCIA DE CRIMES .......................................................................119 Lucas Figueiredo Pereira Fábio Falcão de França MÉTODOS ENSEMBLE COMO SUPORTE NO RECRUTAMENTO DE CANDIDATOS EM PROCESSOS SELETIVOS .................................................................133 Sansão Feliciano Costa Fábio Falcão de França
7 ANÁLISE COMPARATIVA DO DESEMPENHO ENTRE BANCO DE DADOS RELACIONAIS VIRTUALIZADOS Alisson Noberto Lopes1 Walter Travassos Sarinho2 RESUMO Introdução: Uma das possíveis áreas de atuação da Tecnologia da Informação é no Banco de Dados. Ele é encarregado de gerenciar o fluxo dos dados para suportar uma decisão rápida e precisa nas organizações. Por ser uma área crítica, estudos que realizam comparação e análise de desempenho entre as diversas possibilidades atuais de SGBDs ainda se fazem necessário. Assim, este trabalho realiza uma análise comparativa do desempenho entre dois bancos de dados (MySQL e PostgreSQL) relacionais num ambiente virtualizado utilizando o VirtualBox. O objetivo é determinar qual banco de dados teve melhor desempenho no ambiente virtualizado. Para alcançar o resultado proposto no trabalho foram implementados seis cenários de testes, cada um envolvendo três operações: Alteração, Remoção e Inserção. O tempo de resposta foi utilizado como critério de desempenho. Além disso, os testes foram implementados nas linguagens JAVA, PHP e Python, afim de identificar se existe alguma diferença no resultado do tempo de resposta de acordo com as linguagens escolhidas e suas respectivas APIs. A partir dos testes realizados, foi possível perceber que os resultados variaram em até 20% dependendo da estratégia utilizada. Palavras-chave: Virtualização. Banco de Dados. Análise Comparativa. INTRODUÇÃO Os últimos anos apresentaram um crescimento constante em relação ao volume de dados. Uma consequência imediata desse fato é a demanda por Sistemas de Gerenciamento de Banco de Dados (SGBD) que consigam gerenciar estes dados, como também, com a complexidade das aplicações. Segundo Carneiro et al. (2009), desenvolver operações sobre 1 Graduando em Ciência da Computação (8º Período) no Centro Universitário de João Pessoa – UNIPÊ. E-mail: [email protected] 2 Mestre em Ciência da Computação/UFPE (ênfase em Banco de Dados). E-mail: walter[email protected]
8 estas grandes coleções de dados é fundamental, uma vez que o desempenho de um SGBD é medido a partir de sua eficiência diante de consultas e alterações. Devido a esse grande crescimento e ao surgimento de novas tecnologias, exigiuse das organizações modernas rápidas mudanças no que se refere ao armazenamento e o processamento do volume de dados. Nesse cenário a virtualização foi uma solução viável nas empresas. Veras (2011) afirma que é possível alcançar flexibilidade com a virtualização. As eventuais mudanças na infraestrutura de servidores são (geralmente) lógicas e não físicas. Outra vantagem destacada pelo autor é com relação ao ambiente onde as aplicações foram instaladas. Eles são independentes do hardware, visto que as aplicações trabalham sobre uma máquina virtual e não sobre o próprio hardware. Com a crescente onda de preservação do meio ambiente, exigiu-se das empresas modernas uma maior flexibilidade no que se refere ao lixo eletrônico. Com isso, a virtualização foi uma saída plausível para essas empresas. Segundo Pollon (2008) a virtualização permite um uso melhor dos recursos, deixando de lado a necessidade que as empresas tinham de ter grandes ambientes climatizados, cheio de máquinas que com o tempo iriam ser sucateadas, devido a busca continua de máquinas mais potentes. Portanto, um cenário possível dentro das organizações é a utilização de um Sistema Gerenciador de Banco de Dados (SGBD) num ambiente virtualizado. No mercado, existem vários SGBDs sejam eles gratuitos ou pagos, onde na maioria das vezes, são instalados, configurados e utilizados com seus parâmetros em valores padrões, sem levar em conta o tipo de aplicação para o qual serão utilizados. Desse modo, nem sempre será obtido o melhor desempenho do sistema, visto que os parâmetros podem ser ajustados de acordo com o cenário demandado (PONTES, 2009). A escolha de um SGBD é um trabalho delicado, pois é de grande responsabilidade a importância que a ferramenta representa. Ela gerencia aquilo que é considerado uma das principais riquezas de uma empresa: as informações. Para essa tarefa existem vários fatores que devem ser analisados, como por exemplo: a confiabilidade, a segurança dos dados, seu suporte à linguagem de programação, entre outras. Porém com o crescimento contínuo do volume de dados que um Sistema Gerenciador de Banco de Dados gerencia, e que muitas vezes se encontram armazenados remotamente, um fator que vem ganhando destaque como ponto decisivo para a escolha, é seu desempenho (FERREIRA; JÚNIOR. 2012) Mediante o exposto, este estudo teve por objetivo elaborar uma análise comparativa entre os SGBDs MySQL e PostgreSQL num ambiente virtual, utilizando na implementação as linguagens Java, PHP e Python para identificar qual cenário de implementação tem melhor resultado de acordo com os critérios de desempenho propostos. Para isto, foram elaborados os cenários de testes, a configuração e implementação num ambiente virtualizado. Em seguida os dados foram coletados considerando o critério tempo de resposta para mensurar o desempenho e, por fim, os resultados foram analisados.
9 MATERIAIS E MÉTODOS A seguir são descritos os materiais, métodos e softwares utilizados para desenvolvimento da pesquisa PROCEDIMENTOS A pesquisa se iniciou pela busca por SGBDs disponíveis atualmente, com possibilidade de virtualização e implementação gratuíta, assim, foram selecionados dois: (i) o MySQL3 e o (ii) PostgreSQL4. Em seguida foram selecionadas três linguagens de programação. Para esta escolha, foi considerada a frequência de uso da linguagem para persistência utilizada no contexto atual dos cursos de Tecnologia do Centro Universitário de João Pessoa (Unipê). Outro critério adotado foram os resultados apresentados no ranking de linguagens de programação mais utilizadas pela consultoria RedMonk5. Assim, as linguagens escolhidas para implementação do cenário foram JAVA, PHP e Python. Apesar de Javascript aparecer como a linguagem mais utilizada (em 1º lugar) pela consultoria, considerou-se o predomínio da linguagem no desenvolvimento dos projetos dos componentes curriculares dos cursos do Unipê. A conexão com os SGBDs a partir de cada linguagem foi realizada utilizando APIs (Application Programming Interfaces). Assim, foram elaborados 6 cenários de implementação. Cada cenário utilizou programas e APIs específicas. O Quadro 1 apresenta o conjunto de softwares e APIs de acordo com o cenário e a linguagem de programação. Para cada um dos 6 cenários apresentados, foram executados testes para 3 operações que causam alteração no banco de dados: inserção, alteração (atualização) e remoção. Totalizando assim, 18 cenários de testes. A partir desses cenários foi criada uma máquina virtual utilizando o software no VMware Workstation 12 Player6 com as seguintes configurações: um processador Intel® Core™ i5-7200U da sétima geração com 2 núcleo e 4 processadores lógicos, contendo 5GB de memória RAM DDR4, placa de videio Intel® HD Graphics 620 com 500GB de armazenamento de disco rígido. 3 Disponível em: <https://www.mysql.com/>. Acesso em: 20 Abr. 2018. 4 Disponível em: <https://www.postgresql.org/>. Acesso em: 20 Abr. 2018. 5 Disponível em: <https://redmonk.com/fryan/2018/03/15/redmonk-language-rankings-over-time/>. Acesso em 27 Abr. 2018. 6 Disponível em: < https://www.vmware.com/>. Acesso em:21 Abr. 2018
16 operação variaram muito pouco. No teste de 80 mil a variação entre os resultados foi de menos de meio segundo (0,43). Tabela 4 – Resultados dos testes nas três linguagens com o PostgreSQL. Java, PHP e Python com PostgreSQL Operações 5 mil 15 mil 40 mil 80 mil Java PHP Python Java PHP Python Java PHP Python Java PHP Python Inserção 7,78 6,39 0,83 31,76 41,07 2,05 72,65 142,27 6,24 146,11 277,99 12,44 Alteração 0,16 0,04 0,08 0,23 0,14 0,24 0,80 0,76 0,74 1,79 2,01 2,22 Remoção 0,09 0,01 0,03 0,10 0,05 0,07 0,11 0,10 0,17 0,22 0,35 0,52 Fonte: Dados da pesquisa, 2018. Na remoção PHP teve destaque nos testes de 5, 15 e 40 mil. Em 80 mil Java teve o melhor resultado. No entanto, da mesma forma que no teste de alteração, os resultados variaram muito pouco, 0,3 segundos no teste de 80 mil. De forma geral é possível perceber que a inserção é a operação que demanda um tempo maior para sua realização, independente da linguagem e do SGBD. A alteração segue em segundo. A remoção é a operação que consome menos tempo, ou seja, a mais rápida. Embora as operações de alteração e remoção tenham tido resultados menores em Java e PHP, nos cenários de inserção os resultados foram drasticamente menores. No teste de 80 mil é possível perceber que Python consome 4,475% do tempo que PHP utiliza para realizar essa operação. Já o pior cenário identificado foi na abordagem do MySQL com PHP. Embora tenham resultados aproximados com linguagem Java na maior parte dos testes de inserção, alteração e remoção, a utilização do PHP demonstrou consumir mais tempo que o Java. CONSIDERAÇÕES FINAIS Ao finalizar os testes aplicados, pode-se constatar que a linguagem de programação Python foi o que teve melhor desempenho de modo geral com os bancos de dados presentes neste trabalho, seguido de Java e por último PHP. O banco que teve seu melhor desempenho na maior parte dos testes foi o PostgreSQL, o MySQL se mostrou superior em alguns momentos, como por exemplo no teste de 5 mil, 15 mil e 40 mil tuplas de alteração de dados. Existem algumas possibilidades de trabalhos futuros a partir das informações apresentadas neste artigo: (i) realizar um teste de comparação entre banco de dados NoSQL e SQL em ambiente virtualizado, (ii) realizar uma nova comparação dos bancos de dados e linguagens utilizadas neste artigo, em máquinas virtuais gratuitas disponíveis na nuvem; e (iii) executar os testes com outros bancos dados, como por exemplo, o SQL Server.
17 REFERÊNCIAS CARNEIRO, A. et al. TUNING – Técnicas de Otimização de Banco de Dados Um Estudo Comparativo: Mysql e Postgresql. FURG: 2009. Disponível em <http://repositorio.furg.br/ handle/1/1692> Acesso em 7 fev. 2018. FERREIRA, E. R.; JÚNIOR, S. M. T. Análise de desempenho de banco de dados. UNIPAC: 2012. Disponível em <http://www.unipac.br/site/bb/tcc/tcc-15ee06c022b6b866f2815b76757c6 67f.pdf>Acesso em 7 fev. 2018. POLLON, V. Virtualização de Servidores em Ambientes Heterogêneos e Distribuídos: um estudo de caso. UFRGS: 2008. Disponível em <http://hdl.handle.net/10183/15988> Acesso em 7 fev. 2018. PONTES, G. B. Estudo sobre otimização de banco de dados. Universidade São Francisco: 2009. Disponível em <http://lyceumonline.usf.edu.br/salavirtual/documentos/1669.pdf> Acesso em 7 fev. 2018. VERAS, M. Virtualização: Componente Central do DataCenter. Rio de Janeiro: Brasport Livros e Multimídia Ltda. 2011.
18 ANÁLISE E IMPLEMENTAÇÃO DE SOLUÇÃO DE BUSINESS INTELLIGENCE PARA MELHORIA NO ATENDIMENTO AO PÚBLICO DO SEBRAE-PB Fábio Jorge de Queiroz Araújo1 Renata Grigorio Silva Gomes2 Ricardo Roberto3 RESUMO Business Intelligence (BI) é um conceito surgido na década de 80 que descreve as habilidades das corporações para aderir a dados e explorar informações, analisandoas e desenvolvendo percepções e entendimentos a seu respeito. Para o setor público, ferramentas de BI podem servir como base para trabalhar com qualidade, eficiência e inteligência, modificando o modo como são estruturados e administrados os processos nos serviços públicos. No Brasil muitos órgãos e empresas públicas não operam ainda com a análise de dados transacionais e nem utilizam ferramentas de BI. Este trabalho tem como objetivo detalhar as fases e resultados da Prova de Conceito de uma solução de BI/ DW como forma de demonstrar o potencial de tal solução para uma gestão estratégica mais eficiente do SEBRAE-PB. Palavras-chave: Business Intelligence. Data Warehouse. Processo ETL. INTRODUÇÃO A Inteligência de Negócios, ou Business Intelligence (BI), é um conceito surgido na década de 80 que descreve as habilidades das corporações para aderir a dados e explorar informações, analisando-as e desenvolvendo percepções e entendimentos a seu respeito (SOUZA et al., 2009; BATISTA, 2004). No Brasil muitos órgãos e empresas públicas não operam ainda com a análise de dados transacionais e nem utilizam ferramentas de BI. A exemplo disso, o SEBRAE1 MBA em Business Intelligence e Bigdata. E-mail: [email protected] 2 MBA em Business Intelligence e Bigdata. E-mail: [email protected] 3 Mestre em Ciência da Computação (Cesar). E-mail: ricardo.r[email protected]
19 PB (Serviço de Apoio às Micro e Pequenas Empresas da Paraíba) é uma instituição privada e sem fins lucrativos, que apoia e fomenta a criação, expansão e modernização de microempreendedores individuais, microempresas e empresas de pequeno porte, facilitando o acesso a conhecimento, crédito, tecnologia e capacitação para todos aqueles que investem ou pretendem investir em uma atividade produtiva (SEBRAE, 2016). A necessidade de fundamentação prática para o convencimento de uso corporativo deste tipo de ferramenta é um grande desafio e a utilização de Provas de Conceito podem ser uma alternativa viável neste processo. Prova de Conceito, ou PoC (sigla do inglês, Proof of Concept) é um instrumento que permite demonstrar na prática a metodologia, os conceitos e as tecnologias envolvidas na elaboração de um projeto (ANDRADE et al., 2006). Diante disso, este trabalho tem como objetivo detalhar as fases e resultados da Prova de Conceito de uma solução de BI como forma de demonstrar o potencial de tal solução para uma gestão estratégica mais eficiente do SEBRAE-PB. Motivação Para o setor público, ferramentas de BI podem servir como base para trabalhar com qualidade, eficiência e inteligência, modificando o modo como são estruturados e administrados os processos. Além disso o uso destas ferramentas permite uma boa prestação de serviço ao cidadão, pois o acesso a informações em tempo real torna-se primordial para os gestores tomarem decisões que terão vital importância para a economia e a sociedade (MATOS e BERNARD, 2011; LEITE e REZENDE, 2010; SOUZA et al., 2009). Atualmente o SEBRAE-PB possui sistemas de transacional que registra todos o relacionamento com o cliente, desde suas informações pessoais até todo o consumo de produtos/serviço da empresa, são informações preciosas para o planejamento de ações futuras e criação de estratégia de relacionamento, porém o sistema transacional passou a ser apenas um repositório de informações sem uso pelas áreas de negócio e com acesso restrito apenas a área de TI que tem domínio sobre o banco de dados. A empresa não possui um setor de inteligência de negócio definido, ficando a estrutura a merecer de achismo, e durante o processo de planejamento são utilizadas informações de mercado (IBGE, Receita Federal, IDEME e etc.) e as informações mais nobres que se encontram dentro do sistema transacionais ficam esquecidas e sem uso. Dessa forma o que acontece é uma repetição de erros estratégicos na programação de ações como Curso, Palestras e na gestão do atendimento. A necessidade de fundamentação pratica para o convencimento de uso corporativo de ferramentas de BI são um grande desafio e a utilização de Provas de Conceito podem ser uma alternativa viável neste processo.
20 Sebrae/PB Em 1965 foi implantado na Escola Politécnica, em Campina Grande/PB, o projeto UNIPLAS (Missão RITA), com o apoio de cientistas locais e técnicos americanos que tinha como objetivo ressaltar a importância da nova indústria para a economia regional. A partir daí originou-se o Núcleo de Assistência Industrial (NAI) da Paraíba, legalizado no início da década de 1970, com o objetivo de prestar assistência à pequena e média indústria da Paraíba (LIMA, 2017). Devido ao sucesso do programa em nível regional, foi idealizada uma ação do Governo Federal no sentido de centralizar e difundir nacionalmente as atividades de apoio às micro, pequenas e médias empresas, dessa ação instituiu-se, em 1972 o Centro Brasileiro de Assistência Gerencial à Pequena Empresa (CEBRAE) visando à integração dos demais Estados da Federação, vinculados ao Governo Federal. A partir de então, houve o aumento e intensificação das suas atividades no Estado oferecendo assistência técnico-gerencial, treinamento empresarial e elaboração de projetos e pesquisas setoriais, reunindo uma experiência relevante que, em função da dinâmica estabelecida, atingiu vários setores econômicos, passando a denominar-se Centro de Apoio à Pequena e Média Empresa da Paraíba (CEAG/PB). Em 1990, se transformou em um serviço social autônomo, denominado Serviço Brasileiro de Apoio às Micro e Pequenas Empresas da Paraíba – SEBRAE/PB, tendo como Sede a cidade de João Pessoa. Formalmente, trata-se de uma instituição civil sem fins lucrativos, de direito privado, criada pela Lei 8.029, de 12 de abril de 1990, regulamentada pelo Decreto 99.570, de 9 de outubro de 1990, posteriormente, alterada, pela Lei 8.154, de 28 de dezembro de 1990 (PORTAL SEBRAE PARAÍBA, 2016). Possui como missão “Promover a competitividade e o desenvolvimento sustentável dos pequenos negócios e fomentar o empreendedorismo, para fortalecer a economia do Estado da Paraíba”. Como também, busca a excelência no desenvolvimento dos pequenos negócios, contribuindo para a construção de um país mais justo, competitivo e sustentável, através dos valores: Compromisso com o resultado; Conhecimento; Inovação; Sustentabilidade; Transparência e Valorização humana. Para tanto, o Sebrae tem como objetivo Apoiar e fomentar a criação, expansão e modernização de microempresas, facilitando o acesso a conhecimento, crédito, tecnologia e capacitação [...]. Além de oferecer soluções educacionais para o empreendedor, também busca estimular o espírito de empreendedorismo, promover a competitividade e o desenvolvimento sustentável dos pequenos negócios, fortalecendo a economia e o desenvolvimento do Estado (PORTAL SEBRAE PARAÍBA, 2016). Com isso, propõe o apoio ao desenvolvimento dos pequenos negócios, estimulando novos mercados e também a criação de empregos. Portanto, nota-se que a presença das Micro e Pequenas Empresas (MPE) é bastante significativa na atual situação econômica do país, nos mais diversos setores.
21 Conforme exposto no Portal Sebrae Paraíba, a organização é atuante na capacitação e promoção do desenvolvimento criado para dar apoio aos pequenos negócios do país, desde então Trabalha para estimular o empreendedorismo e possibilitar a competitividade e a sustentabilidade dos empreendimentos de micro e pequeno porte [...]. Atua em todo o território nacional, além da sede nacional, em Brasília, a instituição conta com pontos de atendimento nas 27 unidades da Federação. (PORTAL SEBRAE PARAÍBA, 2016) Atualmente, no Estado da Paraíba, atua sob a administração da sede l que se localiza em João Pessoa, sob coordenação geral do Sebrae/NA em Brasília. Na Sede em João Pessoa, localiza-se o Conselho Deliberativo Estadual (CDE) que é “o órgão máximo do Sebrae na Paraíba, responsável por traçar as políticas e estratégias gerais de atuação, instituindo normas e orientando o trabalho de todo o conjunto” (PORTAL SEBRAE PARAÍBA, 2016). EMBASAMENTO TEÓRICO Modelagem Dimensional Diferente de outras modelagens, como a hierárquica, de rede ou relacional, onde as informações eram divididas em muitas tabelas para melhor representação do mundo físico, o foco no modelo dimensional é o agrupamento de informações. Enquanto que nas modelagens anteriores a redundância de dados era vista como um defeito, na modelagem dimensional, se caracteriza como uma vantagem competitiva. Nesta modelagem, o cliente não está interessado em ver seu modelo lógico, mas em elementos que possam influenciar potencialmente nas suas tomadas de decisões de negócios. Segundo Ralph Kimball (2013), modelagem dimensional busca apresentar os dados em um formato que seja intuitivo e ao mesmo atenda a acessos com um alto desempenho, ou seja, é uma técnica de design de banco de dados projetada para suportar consultar de end-users em um Data Warehouse (DW). Para melhorar o desempenho, realizando o processamento de forma mais rápida, este modelo possui uma redundância planejada de dados (diferente do modelo relacional). Com isso temos uma estrutura simples com dados históricos em series temporais. As atualizações no modelo dimensional são feitas periodicamente, não havendo o controle das alterações realizadas entre uma atualização e outra. O Data Warehouse é a implementação física de um modelo de apoio a decisões, que disponibiliza à empresa as informações necessárias à tomada de decisões estratégicas (INMON, 2005). Consiste em um repositório de dados com as seguintes características:
22 • Baseado em assunto; • Integrados; • Variáveis em relação ao tempo; • Não-Voláteis; A ideia fundamental da modelagem dimensional baseia-se no fato de que quase todo tipo de dado do negócio pode ser representado como uma espécie de cubo de dados (Figura 1), onde as células do cubo contêm os valores medidos e os lados do cubo definem as dimensões naturais dos dados (BRUZAROSCO et al., 2000). Figura 1 - Exemplo de Cubo Dimensional Fonte: BRUZAROSCO et al., 2000. Segundo Kimball (2013) os elementos que compõem um modelo dimensional são: - Granularidade: A granularidade do fato é o nível de detalhe com que são gravados os dados. Para uma análise efetiva, os dados devem estar no mesmo nível de granularidade. Os dados atômicos podem ser resumidos de qualquer modo. Igualmente, os dados atômicos podem ser estendidos com atributos adicionais, medidas ou dimensões sem romper com processos existentes. Como regra geral, os dados podem ser mantidos com o maior nível de detalhamento e posteriormente, sumarizados, gerando um nível mais baixo de granularidade, oferecendo flexibilidade às consultas do usuário - Tabela Fato: Consiste na principal tabela de um modelo dimensional, onde a palavra “fato” representa uma medida dos processos modelados, como quantidades, valores e indicadores. É composta por uma chave primária (valor único) e pelas métricas de interesse para o negócio. A tabela fato deve ser sempre preenchida com as medidas referente ao fato, não devendo-se misturar assuntos diferentes numa mesma tabela fato. - Tabela Dimensão: É composta de atributos e contém a descrição do negócio. Possui aspectos pelos quais se pretende observar as métricas relativas ao processo modelado. Por
23 exemplo, se o fato a ser medido for a receita de uma rede de supermercados, as dimensões para a avaliação seriam a quantidade de lojas, a localização e o tempo. - Tabela Agregada: A tabela agregada é criada com dados da tabela fato, alterando sua granularidade, gerando uma tabela menor. É importante avaliar bem o ambiente para definir quais agregações devem ser criadas. Além disso, estas tabelas podem ser temporárias e, desta forma, deve-se levar em conta a possível extinção dessa tabela os efeitos causados pela exclusão da mesma. - Métricas: São informações armazenadas nas tabelas fato que permite medir o desempenho dos processos do negócio. São geralmente volumétricas, numéricas, podem ou não ser agregadas e na maioria das vezes são do tipo aditivas, ou seja, permitem operações como adição, subtração e médias. Existem dois modelos de implementação da modelagem dimensional, que são: - Modelo Estrela (Star Schema): O nome se dá devido à disposição que se encontram as tabelas, sendo a tabela fato centralizada relacionando-se com diversas outras tabelas de dimensão. Nesse modelo os dados são desnormalisados, tendo como vantagem a eficiência na extração de dados. - Modelo Floco de Neve (Snow Flake): Consiste em uma extensão do modelo estrela onde cada uma das pontas da estrela passa a ser o centro de outras estrelas. É indicado utilizar o esquema floco de neve apenas quando a dimensão ficar muito longa. O relacionamento entre as entidades no modelo dimensional normalmente é de cardinalidade um-para-muitos (1:n), considerando que os identificadores das dimensões são atributos da tabela fato. Porém, relacionamentos muitos-para-muitos (n:n) também são possíveis para a representação do negócio modelado. Quando a cardinalidade de uma dimensão com fatos é n:n, Kimball (2013) propõe a criação de uma tabela bridge entre Dimensão e Fatos, que consiste em uma tabela de junção com dois relacionamentos umpara-muitos. ETL(Extract Transform Load) O ETL consiste em um processo de extração de dados de fontes externas, sendo esses processados, modificados para atender às necessidades de negócios, e posteriormente inseridos em um DW.
24 Projetos de DW Os projetos de DW consolidam dados de diferentes fontes. A maioria dessas fontes tendem a ser bancos de dados relacionais, mas podem existir outros tipos de fontes também. Um sistema ETL precisa ser capaz de se comunicar com bases de dados e ler diversos formatos de arquivos utilizados por toda a organização. Na Figura 2 a seguir temos as entradas de dados em azul. A abordagem aqui é a possibilidade de diferentes tipos de entrada. Como as ferramentas de ETL unificam os dados, não há mais a necessidade de ficar preso a alguma marca ou tipo de armazenamento de dados. É importante ressaltar que as alterações nos dados não afetam as fontes originais e apenas os dados no momento de extração para o repositório de DW. Figura 2 - Modelo geral de um projeto de BI. Fonte: Elaborado pelos autores O estágio de transformação aplica uma série de regras ou funções aos dados extraídos para ajustar os dados a serem carregados. Algumas fontes de dados necessitarão de muito pouca manipulação de dados. Em outros casos, pode ser necessário trabalhar algumas transformações, como por exemplo, junção de dados provenientes de diversas fontes, seleção de apenas determinadas colunas e tradução de valores codificados (se o sistema de origem armazena 1 para sexo masculino e 2 para feminino, mas o DW armazena M para masculino e F para feminino, por exemplo). Depois do processo de transformação ocorre o processo de carga. Neste processam-se os mapeamentos sintáticos e semânticos entre os esquemas, respeitando as restrições de integridade e criando assim uma visão concretizada e unificada das fontes.
25 Este processo é dos mais árduos e complexos de obter devido a sua complexidade que dependerá da heterogeneidade das fontes de dados. No mercado existem muitas ferramentas capazes de executar processos de ETL a exemplo das seguintes ferramentas: Oracle Warehouse Builder, Data Integrator & Data Services, IBM Information Server, SQL Server Integration Services, Pentaho Data Integration, DB2 Warehouse, PowerCenter. A seleção de uma ferramenta de ETL adequada é uma decisão muito importante e por isso devem ser observar os seguintes itens: i. Suporte a plataforma; ii. Tipo de fonte independente; iii. Facilidade de uso; iv. Paralelismo; v. Programação; vi. Implementação; vii. Reutilização; viii. Modelagem de Cubos de Análise; Ciclo de vida de um Projeto/Programa de BI/DW Uma das maiores preocupações em DW é como planejar a sua construção. Ele pode ser construído inteiro, abrangendo toda a organização de uma só vez (abordagem monolítica), ou então por áreas (Kimball, 2013). Seu ciclo é composto por uma série de etapas que se iniciam pelo planejamento do Programa ou Projeto, passando pelo levantamento e definição dos requisitos de negócios e, em seguida, subdividindo-se em 3 caminhos: 1. Arquitetura e Design Técnico 2. Modelagem Dimensional 3. Planejamento e desenvolvimento da aplicação de BI, o front-end propriamente dito. Os desenvolvedores de DW utilizam a estratégia de construí-lo em pedaços pequenos (data mart) por vez, até chegar à sua totalidade. O grande problema apresentado por essa construção incremental é o risco desses data marts apresentarem incompatibilidades de integração para formar o todo (DW).
32 Figura 9 - Resultado obtido através de análise de dados do processo “Atendimento Integrado”. FIGURA 9. Resultado obtido através de análise de dados do processo “Atendimento Integrado”. Figura 10 - Resultado obtido através de análise de dados do processo “Consultorias”.
33 Figura 11 - Resultado obtido através de análise de dados do processo “Eventos”. Etapa 4: Entrevistas com Especialistas de Negócio Depois do entendimento inicial do DW na fase de análise exploratória, foi necessário o entendimento mais detalhado das análises a partir de situações reais de negócio. Através de uma entrevista rápida, informal, com os analistas de negócio, foi possível entender suas principais necessidades de informação e, assim, direcionar a análise. Os entrevistados nessa fase foram os analistas de Marketing e da Unidade de Gestão da Inovação e Competitividade (UGIC). A partir destas entrevistas levantou-se a necessidade pela equipe de Marketing de analisar como está a ocupação dos cursos oferecidos e quais cursos aconteceram com quantidade de alunos inferior ou superior aos limites mínimo e máximo, respectivamente. Outra necessidade levantada pelos integrantes da Unidade de Gestão da Inovação e Competitividade (UGIC) foi a fidelização de clientes em relação ao consumo de tendo como referência o consumo de no mínimo 3 produtos por ano ligados a processos de Educação (Eventos) e Consultorias.
34 RESULTADOS O banco de dados disponibilizado pelo SEBRAE-PB para a prova de conceito compreendeu um subconjunto dos dados existentes na empresa. Nele haviam diversas tabelas referentes aos assuntos Atendimentos Integrados, Consultorias e Eventos onde analisados individualmente e se contrastando com as necessidades de negócio levantadas durante as fases de análise exploratória e entrevistas com especialistas, pode-se detectar os seguintes problemas: a) Campos Obrigatórios Não Preenchidos: algumas tabelas-chave para a construção da plataforma analítica continham uma quantidade significativa de campos em branco (NULL). Observou-se ainda a presença de campos cujo valor preenchido é 0 (zero) ou -1 (menos um). Esta característica possivelmente indica um campo inválido, com referência a entidades que não existem. b) Regras de Negócio Inconsistentes: um caso peculiar que demonstrou a inconsistência entre as regras de negócio do SEBRAE e suas aplicações nos atuais sistemas de informação da empresa foi o portfólio de produtos. Anualmente, o SEBRAE-PB define um portfólio de eventos (cursos, palestras, etc.) que podem ser oferecidos ao público. Existe também uma recomendação do SEBRAE Nacional para que o total de cursos oferecidos fora do portfólio por cada agência não ultrapasse 10% do total de cursos oferecidos no ano. Com base nessa recomendação, a equipe de Educação verifica, manualmente, a lista de eventos promovidos no ano e verifica se as agências do SEBRAE-PB cumpriram esta meta. Atualmente, este é um indicador de difícil mensuração e propenso a erros devido à natureza manual do processo. c) Campos de Texto Livre e/ou Não-Obrigatórios: nas tabelas transacionais dos sistemas do SEBRAE-PB muitos campos em branco existem em decorrência do fato de o sistema não forçar o preenchimento dos mesmos. Há, de fato, campos que devem ser preenchidos opcionalmente, porém, campos como o tema da consultoria ou do atendimento, a unidade operacional responsável pelo atendimento ou evento, entre outros, não deveriam ser opcionais. Existem ainda outros campos permitem que o usuário digite informações livremente. Este é o caso para os motivos de cancelamentos de cursos ou consultorias. Foi possível constatar mediante análise do banco de dados que a maioria dos cancelamentos de cursos ocorriam por motivos semelhantes, como: falta de quórum, cadastro em duplicidade, conflito de agenda do instrutor, etc. Como cada usuário digita livremente a razão do cancelamento, o processo de estruturação e análise dessas informações se torna muito mais trabalhoso do que seria se fossem oferecidas opções pré-definidas com a possibilidade de o usuário complementar a informação caso julgasse necessário.
35 d) Ausência de Processos para Utilização dos Sistemas: analisando os três problemas anteriores, percebe-se a ausência de processos e fluxos de trabalho que padronizem a forma que os usuários operam o sistema. Este problema pode ser solucionado com educação (treinamentos, manuais, etc), ou com um sistema que implemente estes processos e fluxos de trabalho mais eficientemente, ou ainda uma combinação de ambos. CONCLUSÃO A partir deste trabalho foi possível constatar o potencial que uma solução de BI pode oferecer e, com a motivação já existente entre os tomadores de decisão, como esta iniciativa certamente mudará a forma que o SEBRAE-PB lida com os seus dados. Com a PoC realizada e os resultados apresentados, algumas ações são necessárias para que a iniciativa de BI do SEBRAE-PB possa ser implantada em sua integralidade: i. Garantir que a alta direção patrocine o projeto: A maioria dos projetos de BI falham quando falta um patrocinador que compre a ideia e motive as peças-chave da empresa a trabalhar em prol do sistema. ii. Delinear o projeto de BI desde a fase de planejamento até a entrega da solução iii. Repensar a estratégia de uso da informação, instituindo processos sólidos que visem otimizar o fluxo de trabalho de forma a garantir completude e correção dos dados transacionais: é uma recomendação que precisa ser seguida uma vez que dentre o benefício de utilização de uma solução desta natureza, os analistas poderão tomar decisões baseados em fatos e não meramente em “achismos”. Ainda foi possível detectar potenciais melhorias dos processos existentes além de apontar a necessidade de novos processos tais como: Análise de Cesta de Produtos, Detecção de Fraudes em Consultorias, Avaliação de Desempenho dos Eventos, Monitoramento de Indicadores-Chave por Região, Detecção de Oportunidades de Desenvolvimento Regional, entre outras. Como sugestão de trabalhos futuros, destacamos estudos a partir dos achados realizados nas bases de dados a exemplo da análise dos atendimentos não aceitos pelo sistema para geração de processos de solução de problemas decorrentes. REFERÊNCIAS ANDRADE, R. M., ARAKAKI, R., BECERRA, J. L. R. (2006) O USO DE PROVAS DE CONCEITO COMO FERRAMENTA PARA GESTÃO DE APRENDIZADO DE ARQUITETURA DE SOFTWARE. 3º Congresso Internacional de Gestão da Tecnologia e Sistemas de Informação, São Paulo - SP.
36 BATISTA, E. O. (2004) Sistemas de informação: o uso consciente da tecnologia para o gerenciamento. São Paulo: Saraiva. BRUZAROSCO, D. C., CASTOLDI, A. V. , PACHECO, R. C. S. (2000) Criando data warehouse com o modelo dimensional.Acta Scientiarum. Technology, 22(5), 1389-1397. INMON, W. H. (2005) Building the Data Warehouse, John Wiley & Sons. Kimball, R., ROSS, M. (2013)The data warehouse toolkit: The definitive guide to dimensional modeling. John Wiley & Sons. LEITE, L. O., REZENDE, D. A. (2010) Modelo de gestão municipal baseado na utilização estratégica de recursos da tecnologia da informação para a gestão governamental: formatação do modelo e avaliação em um município. Revista de Administração Pública,44(2),459-493. LIMA, E. S. (2017) Diretrizes para uma política integrada de gestão documental, da informação e do conhecimento no SEBRAE Paraíba. Dissertação de Mestrado. Universidade Federal da Paraíba. João Pessoa – PB. MATOS, L. S., BERNARD, R. R. S. (2011) Uma proposta de sistema Business Intelligence para a gestão pública: maximização da eficiência com foco na necessidade popular. XII Congresso Internacional de Costos, Punta del Este – Uruguay. PORTAL SEBRAE PARAIBA (2016). Relatório de gestão Sebrae Paraíba. Disponível em: <http://www.sebrae.com.br/sites/PortalSebrae/ufs/pb?codUf=16>. SOUSA, G. B., RIBEIRO, J. G., ISOTON, L. C. A. (2009) OTIMIZAÇÃO DA GESTÃO PÚBLICA ATRAVÉS DE TÉCNICAS DE BUSINESS INTELLIGENCE. II Congresso Consad de Gestão Pública. Brasília – DF.
37 BOOK NFC: UTILIZANDO A TECNOLOGIA NFC COMO APOIO NA DISPONIBILIZAÇÃO DE ACERVOS BIBLIOGRÁFICOS Vinícius Nascimento da Silva1 Fábio Falcão de França2 RESUMO Tendo em vista a popularização do smartphone como ferramenta indispensável para o dia a dia da sociedade como um todo, este trabalho tem o objetivo de fazer um estudo de caso acerca da implantação da tecnologia Near Field Communication (NFC) em bibliotecas e analisar seu impacto no processo de empréstimo bibliográfico. Com o aumento de usuários conectados à internet no mundo todo e com o surgimento e rápido crescimento da Internet das Coisas, conceito que propõe-se a conectar à internet os mais diversos dispositivos e objetos presentes na vida da sociedade atual, temos que as tecnologias de comunicação sem fio estão ganhando força nesse cenário e podem ser peças importantes na construção de cidades inteligentes, espaços modernos e ambientes interativos. Diante do cenário citado, existem poucas instituições que adquirem soluções tecnológicas que possam contribuir para a qualidade dos serviços oferecidos, e mediante uma grande busca por materiais de apoio ao estudo, em seletos períodos, as bibliotecas passam por uma grande demanda de busca e reserva, causando vagarosidade no processo devido ao método de sistemas burocráticos. Com o simples propósito de trazer maior celeridade ao processo de empréstimo bibliográfico, foi implementado neste trabalho, o sistema Book NFC, composto por um aplicativo desenvolvido na plataforma Android e um sistema que deverá validar os pedidos que foi construído na linguagem de programação Java. A grande facilidade está na forma de capturar os dados e criar o pedido, pois este quem o fará será o próprio usuário, portado de um smartphone que seja habilitado para usar a tecnologia NFC. O completo funcionamento do sistema proposto nesse trabalho, foi realizado através de uma biblioteca simulada, garantindo a sua eficácia e sugerindo alterações na realização desse processo. Palavras-chave: NFC. Bibliotecas Inteligentes. Plataforma Android. 1Graduado em Ciência da Computação/UNIPÊ. E-mail: [email protected] 2 Mestre em Engenharia Informática, com ênfase em Comunicações, Serviços e Infraestruturas - Universidade de Coimbra – Portugal. E-mail: [email protected]
38 INTRODUÇÃO A área do conhecimento que envolve a internet das coisas tem um vasto caminho a percorrer até se tornar completamente plausível. Conforme Evans (2011), a Cisco IBSG (Internet Business Solutions Group) estima que teremos mais dispositivos conectados à internet do que pessoas no mundo inteiro. A internet das coisas é composta por várias tecnologias, com isso, pode-se separá-las em blocos, como exemplo temos o bloco da comunicação, serviços e semântica. Além desses, o bloco da identificação é um dos mais importantes na construção da internet das coisas, tecnologias como o RFID, NFC e o endereçamento IP podem ser usados para identificar os objetos (SANTOS et. al., 2016). Para que se torne mais inovadora, várias tecnologias deverão surgir para fazer novas experiências, repletas de diferentes formas de interação. Em paralelo ao surgimento da internet das coisas, temos o rápido crescimento no número de smartphones, segundo pesquisa da ABI Research, são esperados cerca de 40 bilhões de dispositivos até 2020 (Forbes, 2014), com esse crescimento também expande a incorporação da tecnologia NFC em smartphones, pesquisas realizadas pela Juniper Research, prevêem uma grande movimentação financeira em 2017 para pagamentos por aproximação. Nesse cenário emergente, podemos visualizar a crescente utilização da tecnologia NFC e sua importância para o funcionamento de espaços inteligentes. Em detrimento da quantidade de acervos que as grandes bibliotecas possuem, estas demandam muitos empréstimos fazendo-se necessário a utilização de sistemas que garantam o controle e segurança do acervo. Porém, isso pode causar lentidão e trazer burocracias ao processo de empréstimo, para tal, este trabalho propõe a dissiminação da tecnologia NFC como forma de atribuir mais agilidade aos processos de empréstimo. RELEVÂNCIA DO ESTUDO É de conhecimento geral que os celulares inteligentes, chamados smartphones, são comuns ao dia a dia da sociedade atual. De acordo com uma pesquisa realizada pela Google Consumer Baromether, encomendada pela Google, no Brasil, o número de pessoas que usam esse tipo de aparelho passou de 14% em 2012 para 62% em 2016. Podemos ver através da Figura 1, o gráfico disponibilizado pela pesquisa expondo a crescente durante o tempo utilizado.
39 Figura 1 - Usuários de smartphones no Brasil. Fonte: Google Consumer Baromether (2016). O uso do aparelho tornou-se indispensável mediante a facilidade e recursos que podem oferecer. Quando associados a internet, a sociedade moderna de forma geral, tende a estar o dia inteiro conectada. Em pesquisa realizada pela União Internacional de Telecomunicações (2015), as tecnologias de informação e comunicação têm crescido de uma forma sem precedentes. Ainda citam que em todo o mundo aproximadamente 3,2 bilhões de pessoas estão conectadas à internet dos quais 2 bilhões são de países desenvolvidos e o remanescente estão em países ainda em desenvolvimento. Considerando que estamos em constante evolução tecnológica, este número tende a crescer. Abaixo na Figura 2, podemos observar uma figura da publicação feita pela ITU que realiza uma comparação entre a quantidade de pessoas conectadas à internet entre os anos 2000 e 2015, tendo em vista, usuários de países desenvolvidos, países em desenvolvimento e também em países de baixo desenvolvimento.
40 Figura 2 – Pessoas conectadas à internet no mundo. Fonte: ICT Facts and Figures (2015). Observado toda a crescente no número de usuários conectados à internet no mundo, um novo conceito tem emergido no cenário das Tecnologias de Informação e Comunicação (TICs), o que deve movimentar o setor em grandes escalas, conhecido como “Internet das Coisas” ou IoT, abreviação para o termo em inglês “Internet of Things”. A internet das coisas objetiva criar comunicação à aparelhos e objetos que estão presentes no dia a dia das pessoas com a intenção de armazenar e transmitir informações através da internet. Porém, a IoT tem ganhado força no cenário das tecnologias de comunicação sem fio, este trabalho irá abordar exclusivamente uma delas. O Near Field Communication (NFC) pode tornar-se uma ferramenta bastante relevante para o presente cenário, pois, pode identificar unicamente um objetivo e interagir em um determinado ambiente (NASSAR; VIEIRA, 2014 apud GIUSTO et. al., 2010). Muito se tem discutido, recentemente, acerca da internet das coisas e sobre como ela impactará no que diz respeito a forma de interagir com o meio. Dessa forma, analisando superficialmente as soluções tecnológicas para o controle e disponibilização de acervos bibliográficos, percebe-se que ainda existe demasiada vagarosidade no processo do empréstimo. Uma preocupação constante é a segurança que algumas soluções propõem, em virtude disso, livros podem se tornar vulneráveis a furtos, o que acarreta na perda de acervos raros e de suma importância para aquela instituição, além disso, podem gerar lentidão ao processo de empréstimo. O Near Field Communication (NFC) é uma tecnologia que aos poucos gera a oportunidade de vivenciar novas experiências. Para tal, a sua disseminação só é possível devido a todo suporte que as plataformas dispõem aos seus desenvolvedores, até então, o Android, plataforma desenvolvida pelo Google, lidera na América Latina em número de usuários, somente de janeiro a março de 2016, 10,3 milhões de celulares foram vendidos no Brasil dos quais 90% são smartphones, e dentre eles, 93% têm o sistema operacional da Google, explica a pesquisa divulgada pela International Data Corporation (IDC). Este
41 sistema, presta total apoio a tecnologia, disponibilizando todos os recursos necessários para a comunidade desenvolvedora. Tendo em vista a popularização do uso dos smartphones e a facilidade que o NFC pode atribuir as pessoas no dia a dia, este trabalho visa analisar a tecnologia como ferramenta para o apoio no processo de disponibilização de acervos em bibliotecas. Esse processo tem se mostrado lento principalmente em seletos períodos. Devido ao maior fluxo de pessoas à procura por materiais de apoio ao estudo, o que acaba causando um congestionamento pelo fato de que existe o controle através de sistemas que são burocráticos e rígidos com a segurança. Apesar das boas e necessárias características, sistemas como esse pode causar o constrangimento do usuário pela espera demasiada. Para isso, o sistema proposto por esse estudo, não pretende banir sistemas robustos e sim, poder trabalhar em paralelo de forma segura e mais rápida. APRESENTAÇÃO DA FERRAMENTA Esse sistema é composto de duas partes, sendo uma aplicação móvel desenvolvida na plataforma Android e um sistema validador desenvolvido em linguagem Java. Foi utilizado a tecnologia “emergente” Near Field Communication (NFC). Temos que o NFC têm crescido muito e aparecido cada vez mais nos novos smartphones lançados no mercado e esta tecnologia deve movimentar um mercado de inovadoras aplicações, principalmente com o surgimento da Internet das Coisas. Esse movimento deve trazer novidades e novas formas de interação entre o usuário e o meio ao qual ele vive/frequenta. Pensando dessa forma, vimos que a tecnologia pode oferecer uma agilidade e facilidade muito grande quando aplicada em determinados cenários. Atualmente, diversas bibliotecas no Brasil ainda utilizam um método de controle de acervos manual. Esse tipo de controle, pode possuir falhas de segurança. Também podemos ver falhas no processo de empréstimo, pois, para que o usuário tenha acesso a um acervo escolhido e levá-lo consigo, é necessário que siga todo um processo, muitas vezes demorado e burocrático. É compreensível que este deve ser um processo seguro para as duas partes, porém, esse projeto pretende fazer isso de maneira ágil para trazer maior celeridade ao processo. O subtópico a seguir irá descrever o fluxo que o usuário deve cumprir para que tenha acesso a um acervo desejado também trará as ferramentas, componentes de hardware e software que foram utilizados para a construção desse projeto, o Anexo C deste trabalho contém um diagrama de componentes desenvolvido para facilitar o entendimento deste sistema e de como eles estão relacionados.
48 DIFICULDADES ENCONTRADAS Para chegar até esse ponto foram encontradas uma série de dificuldades que serão expostas nesta sessão. Com isso, temos a finalidade de alertar a comunidade científica do que precisa ser melhorado para termos maior clareza nos estudos e nas implementações de sistemas ao utilizar essa tecnologia. A principal delas é a carência de material para tratar a tecnologia que ainda é pouco estudada, dificultando a sua implementação na prática. Para esse trabalho foi necessário ter um conhecimento vasto sobre o desenvolvimento em Android e em Java utilizando as bibliotecas referentes a cada caso respectivamente, o que não é simples e é necessário muito tempo para adaptar a todos os recursos o que nem sempre foi possível compreender totalmente. REFERÊNCIAS GIL, Antônio Carlos, 1946 - Como elaborar projetos de pesquisa. - 4. ed. - São Paulo: Atlas, 2002. LAKATOS, Eva Maria. Fundamentos de metodologia científica. Marina de Andrade Marconi, Eva Maria Lakatos. - 5. ed. - São Paulo: Atlas, 2003. PEREIRA, Lúcio Camilo Oliva. Android para desenvolvedores. Lúcio Camilo Oliva Pereira, Michel Lourenço da Silva. - Rio de Janeiro: Brasport, 2009. GLOVER, Bill. RFID Essentials. Bill Glover e Himanshu Bhatt. – USA: O’Really books, 2006. JONES, Erick C. RFID in Logistics. Erick C. Jones e Christopher A. Chung. – USA: CRC Press, 2008. LAHIRI, Sandip. RFID Sourgebook. Sandip Lahiri. IBM Press, 2005. LEVANDOSKI, Fausto. O método de comunicação NFC e sua aplicação no processo de pagamento através de dispositivos móveis. Fausto Levandoski, Vagner Fleck Dias, Vagner Rafael Christi e Vitor hugo Marques. – São Leopoldo – RS, Universidade do Vale dos Rios dos Sinos, 2011. CURRAN, Kevin. Near Field Communication. Kevin Curran, Amanda Millar, Conor Mc Garvey. - Northen Ireland, University of Ulster, 2012. FILHO, Onildo. Comunicação NFC (Near Field Communication) entre Dispositivos Ativos. Onildo Luciano de Souza Ferraz Filho. - Recife – PE, Universidade Federal de Pernambuco, 2010.
49 COLETTA, Teresinha. Indicadores de desempenho para bibliotecas universitárias: definições e aplicações sob o ponto de vista da literatura. Teresinha das Graças Coletta e Henrique Rozenfeld, 2007. SANO, Vivian. Modelo de indicadores para a biblioteca FCA/UNICAMP. Vivian Gabriela Kaori Sano e Roniberto Morato do Amaral. Seminário Nacional de Bibliotecas Universitárias, 2014. Android Developers. Disponível em: <https://developer.android.com/index.html/>. Acesso em: 28 de nov. 2016. Android Open Source Project. Disponível em: <http://source.android.com/>. Acesso em: 28 de nov. 2016. RFID Journal Brasil. Disponível em: < http://brasil.rfidjournal.com/perguntas-frequentes> . Acesso em: 28 de nov. 2016. Fórum NFC. Disponível em: < http://nfc-forum.org/>. Acesso em: 28 de nov. 2016.
50 CONTRATOS INTELIGENTES: GERENCIAMENTO DE IDENTIDADE DIGITAL UTILIZANDO A TECNOLOGIA BLOCKCHAIN Flávio Henrique Nascimento Bezerra1 Fábio Falcão de França2 RESUMO Com um mundo atrelado ao crescimento da cultura digital cada vez mais presente em nossas vidas, o número de ameaças virtuais também cresce exponencialmente. Criminosos cibernéticos estudam novas maneiras de chegar aos seus dados e criam técnicas para conseguir acessa-los. Desde 2015 o Brasil segue como primeiro colocado no ranking de phishing (invasão de conta para obter dados pessoais do usuário) da Kaspersky Lab, empresa de antivírus. Com a intenção de reduzir o número de fraudes e adulterações de identidade no âmbito digital, objetivo deste estudo de caso é apresentar um novo modelo de gerenciamento de identidade digital para ambientes coorporativos, a partir de ferramentas computacionais que contribuem com a autenticidade da informação, utilizando um sistema de banco de dados distribuído, onde os dados são replicados para todos os computadores dessa rede, criptografado e disponível apenas para quem possuir sua chave de acesso. A partir da tecnologia blockchain, que atua como um banco de dados, armazenando transações e ativos digitais, essas informações são inseridas em blocos, que estão vinculados ao bloco anterior, formando assim uma cadeia de blocos. Todo o processo de criação e armazenamento de bloco é criptografado tornando esse procedimento mais seguro que os modelos tradicionais. Transações realizadas a partir de um novo tipo de contrato, escrito em forma de código e executado de forma automática, denominados smart contract. Definido o contrato, assim que executado o bem é bloqueado e disponível para desbloqueio para o receptor até uma data determinada e para o remetente caso o proprietário não desbloqueie até a data limite. Ambos os casos a transação de desbloqueio são registrados na blockchain. Palavras-chave: Blockchain. Smart contract. Identidade Digital. Banco de dados. 1 Graduado em Ciência da Computação/UNIPÊ. E-mail: [email protected] 2 Mestre em Engenharia Informática, com ênfase em Comunicações, Serviços e Infraestruturas - Universidade de Coimbra – Portugal. E-mail: [email protected]
51 INTRODUÇÃO Tendo hoje em dia a grande burocratização da realização de contratos, existe atualmente uma forma mais efetiva, segura e digital, de prover acordo mútuo entre partes. Denominados Contratos Inteligentes, estes contratos são executados de forma automática, com os seus termos definidos no próprio código, sem a necessidade de mediadores. Estes novos contratos concedem trocas de qualquer coisa que possua valor, através da tecnologia blockchain, sistema de banco de dados distribuído que funciona como um livro de registros de todas as transações ou eventos digitais, que dá a natureza transparente, segura e mais barata comparada aos sistemas tradicionais. O contrato inteligente logo se apresentou como uma alternativa para eliminar intermediários caros e lentos, que poderiam interferir de maneira maliciosa no processo de um contrato convencional. A sua sistemática permite ao usuário fazer transferência de fundos, propriedades, ações, etc. Nick Szabo, jurista e criptógrafo, percebeu que os registros descentralizados poderiam ser utilizados em contratos auto executáveis, nas quais seriam, contratos convertidos para código de programação, armazenado no sistema e supervisionados pela rede de computadores. No Brasil existem poucas empresas que utilizam essa tecnologia, como a Cosol3 empresa brasileira de exploração de energia solar, porém em outros países, principalmente da Europa essa tecnologia está mais madura e pode ser utilizada em diversos setores da economia, por exemplo, a Ujo4 no setor de entretenimento, empresa que pretende descentralizar a indústria da música, Dynamis5 uma plataforma de seguro P2P que utiliza os blocos e o contrato inteligentes para o gerenciamento de seguro desemprego complementar. Destaca-se que a ideia desse trabalho é entender o funcionamento da tecnologia blockchain, desenvolvendo um estudo de caso que terá como objetivo principal o contrato inteligente. Para demostrar sua aplicação e eficácia na área de identidade digital, comparando-o com tecnologias tradicionais centralizadas. As possibilidades de negócios a serem realizadas com Smart Contract, ou seja, contrato inteligente, são vastas, diferente da criptomoeda Bitcoin onde em seu blockchain os contratos são utilizados atualmente apenas para transação da moeda e com capacidade limitada para processar documentos, seu propósito principal seria pagamentos online através de uma moeda digital e esse dinheiro seria enviado diretamente para outra parte sem passar por um intermediário (NAKAMOTO, 2008). 3 https://www.cosol.com.br/blockchain/ 4 https://ujomusic.com/ 5 http://dynamisapp.com/
52 INDICAÇÃO DA METODOLOGIA Neste trabalho, foi adotado o método dedutivo que tem como objetivo explicar o conteúdo de premissas a partir de uma sequência de raciocínio (BARROS & LEHFELD, 2000). Do ponto de vista de sua natureza, esta pesquisa se caracteriza como uma pesquisa básica. A pesquisa básica tem por objetivo, gerar conhecimentos novos uteis para o avanço da ciência sem aplicação prática prevista e o estudo de caso da tecnologia blockchain para smart contract. Envolve verdades e interesses universais (SILVA & MENEZES, 2001). Neste contexto, a compreensão da tecnologia dos contratos inteligentes permite avaliar a aplicabilidade desta tecnologia na área de gerenciamento de identidade digital. Do ponto de vista da forma de abordagem do problema, a pesquisa adotou o método qualitativo. A pesquisa qualitativa considera que há uma relação dinâmica entre o mundo real e o sujeito, isto é, um vínculo indissociável entre o mundo objetivo e a subjetividade do sujeito que não pode ser traduzido em números (SILVA & MENEZES, 2001). Neste caso foi realizada uma avaliação subjetiva da tecnologia, com o foco na usabilidade do usuário, em que a interpretação dos fenômenos e a concessão dos significados foram realizadas pelo pesquisador. Do ponto de vista dos seus objetivos, esta pesquisa é essencialmente explicativa. A pesquisa explicativa visa identificar os fatores que determinam ou contribuem para a ocorrência dos fenômenos. Aprofunda o conhecimento da realidade porque explica a razão, o “porquê” das coisas. (SILVA & MENEZES, 2001). Foi utilizado o procedimento técnico da pesquisa bibliográfica. Compreendendo o termo identidade digital e a tecnologia blockchain com a sua principal função, contratos inteligentes. Comparando esse novo modelo de identidade descentralizado com o modelo tradicional. RESULTADO OBTIDOS Para que o objetivo fosse alcançado foi necessário a instalação da ferramenta no Ubuntu 16.04 por meio do docker, plataforma de contêiner para construir, proteger e gerenciar a maior variedade de aplicativos, desde o desenvolvimento até a produção, tanto nas instalações como na nuvem. Com isso é necessário criar um contêiner a partir da última imagem do Docker, com o comando “docker create -t -p 1999:1999 chaincore/developer:ivy-latest”, depois de instalado é exigido executar o contêiner através deste comando “docker start -i <CONTAINER_ ID>”. É gerada uma chave de acesso caso seja seu primeiro acesso ao Chain Core. A criação do contrato inteligente, desenvolvido na Ivy Playground, é representado na Figura 14.
53 Figura 14: Contrato, identidade_digital. Fonte: Próprio Autor. O código descrito na figura 14 está disponível como apêndice (Apêndice A – Código fonte do contrato inteligente). Assim que escrito, a plataforma já disponibiliza os argumentos que foram implementados como clausulas no smart contract. Figura 15: Argumentos do contrato compilados automaticamente para o desenvolvedor. Fonte: Próprio Autor
54 Depois de concebidos o ativo “Identidade_Digital – Flávio Henrique Nascimento Bezerra” como foi demonstrado na Figura 12, é possível preencher as informações impostas pelo contrato relata no apêndice A. É definido qual ativo será bloqueado em value to lock, e seus argumentos para desbloqueio em contract arguments, podendo ser gerada uma chave pública para a conta que irá receber o bem ou uma chave já existente. O tempo deadline proposto como parâmetro nas duas cláusulas do contrato, define a data e hora limite para o proprietário ou remetente resgatar o bem, a partir da verificação de sua assinatura e chave. Assim que definidos os termos, é bloqueado o item em lock value. Com isso o contrato já entra em execução. Para desbloqueio para o proprietário é definido a clausula spend, definindo a assinatura e a conta para qual o bem será desbloqueado, sempre obedecendo o deadline proposto no bloqueio do item. Caso ultrapasse o tempo limite o remetente pode recupera-lo apenas com a clausula revert. Visto na figura 16. Figura 16: Clausulas de desbloqueio. Fonte: Próprio autor Em ambos os casos de desbloqueio apresentados, spend e revert, a inserção dessas transações na blockchain é feita. Sendo possível visualizar informações importantes
55 referentes ao bloco. Estas informações podem ser vistas tanto disponíveis na figura 17 como no JSON gerado com os detalhes, presente como anexo A (Detalhes da transação). Figura 17: Transações da identidade digital. Fonte: Próprio autor. Tendo a transação gravada na blockchain, o ativo garante sua validez. Esse bem encontra-se numa solução mais segura comparado a tecnologia tradicional, em que ao contrário do que há, apenas um ponto de armazenamento, a informação centralizada. Um blockchain compartilha e descentraliza os registros desses dados criptografados. E como essas informações estão guardadas em milhares de computadores, é praticamente impossível fraudar esse sistema, visto que seria necessário quebrar toda criptografia em todos os nodes (computadores que armazenam a blockchain), ao mesmo tempo, antes que um novo bloco seja criado. Uma rede praticamente imparável, segura, mais rápida e barata que o sistema tradicional. Além dessas características a blockchain utilizada neste estudo de caso é a Permissioned Blockchain, uma cadeia de blocos privada que propõem um nível escala de blocos melhor e mais controle sobre a cadeia do que a pública, além de que ambientes corporativos como banco instituições financeiras, não devem operar em protocolos abertos sem realizar a devida diligência das partes envolvidas na transação (THOMPSON, 2016). Ainda é possível com essa tecnologia substituir alguns intermediários como banco e cartório, onde transações de criptomoedas são feitas de maneira instantânea, mais barata e segura onde não há nenhum tipo de entidade controlando e cobrando altas taxas para a utilização do seu dinheiro. O registro de qualquer ativo, dentre eles documentos pode ser feita pela própria blockchain. Porém ainda existem alguns desafios para essa tecnologia, que se diz a respeito de sua jurisdição. Apesar de suas características um smart contract pode sim, ser considerado um contrato juridicamente válido, caso ele contemple algumas condições: (i) existência de uma vontade livre e consciente entre partes, as quais devem ser capazes; (ii) o consentimento
56 destas vontades quanto ao contrato, suas cláusulas e seu objetivo; (iii) o objeto tem de ser lícito, possível, determinado ou determinável e economicamente aferível (RESENDE, 2016). Ao combinar condições como verificações de assinatura, restrições de tempo e bloqueios de valores de forma criativa, é permitido implementar uma lógica sofisticada para controlar ativos e repensar como os mercados interagem com instrumentos financeiros. CONSIDERAÇÕES FINAIS Neste trabalho é apresentado uma solução para emissão de identidades digitais por autoridades certificadoras em uma blockchain, a partir de smart contracts que possuem vantagens como fiabilidade e segurança, na qual seus documentos se encontram encriptados e duplicados na blockchain e para seu acesso é necessário a chave do proprietário, economia uma vez que pode prescindir de intermediários e precisão pois evitam os erros que surgem com o preenchimento manual de documentos e formulários em comparação com as soluções já existentes. No capítulo 2 são apresentadas as tecnologias e conhecimentos de maneira detalhada para implementação desse trabalho, além de que foi observado o estado da arte da tecnologia para desenvolvimento de contratos inteligentes para corporações e entidades. No capítulo 3 é descrita com detalhes a proposta e como foi implementado este trabalho, junto com a separação e explicação do que foi necessário para criação de uma identidade digital e um contrato para que fosse possível esse bem na blockchain. Nas seções a seguir serão abordados respectivamente, as dificuldades encontradas e as propostas como trabalhos futuros. REFERÊNCIAS BAINS, P. Why Cities Will Soon Choose Digital Currency Over Fiat Money. Disponível em: <https://www.coindesk.com/cities-will-soon-chose-digital-currency-fiat-money/> Data Acesso: 01/11/2017 BANSAL, R.; AGRAWAL, A; JETTY, RK; JAIN, H. Fiat Money VS Cryptocurrency. Disponível em: <https://www.linkedin.com/pulse/fiat-money-vs-cryptocurrency-raah-financials/> Data Acesso: 01/11/2017 BARROS, A. J. S., LEHFELD, N. A. S. Metodologia Científica. São Paulo: Makron Books, 2000. BORING, P. Smart Contracts: 12 Use Cases for Business & Beyond. Disponível em: <http:// bloq.com/assets/smart-contracts-white-paper.pdf/> Data Acesso: 06/10/2017
57 BUTEIN, V. A next gerenetion smart contract & decentralized application plataforma. Disponível em: <http://www.the-blockchain.com/docs/Ethereum_white_paper-a_next_ generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf/> Data Acesso: 05/10/2017 FERNANDES, W. G. Validade jurídica dos contratos inteligentes. Disponível em: <https:// pt.blog.makerdao.com/validade-juridica-dos-contratos-inteligentes/> Data Acesso: 11/11/2017 FORMIGONI, J. R. F.; BRAGA, A. M.; LEAL, R. L. V. Tecnologia Blockchain: uma visão geral. Disponível em: <https://www.cpqd.com.br/wp-content/uploads/2017/03/cpqdwhitepaper-blockchain-impresso.pdf/>. Data Acesso: 29/09/2017 HANSEN, J. D.; REYES, C. L. Legal aspects of smart contract applications. Disponível em: <https://www.virtualcurrencyreport.com/wp-content/uploads/sites/13/2017/05/PerkinsCoie-LLP-Legal-Aspects-of-Smart-Contracts-Applications.pdf>. Data Acesso: 05/09/2017 KIAYIAS, O.; RUSSELL, A.; DAVID, B.; OLINYNYKOV, R. Ouroboros: A Provably Secure Proofof-Stake Blockchain Protocol. Disponível em: <https://eprint.iacr.org/2016/889.pdf/> Data Acesso: 06/10/2017 LUDWIN, A. Announcing Ivy Playground – Writing Smart Contracts with Chain Core. Disponível em: <https://blog.chain.com/announcing-ivy-playground-395364675d0a/> Data Acesso: 01/11/2017 LUDWIN, A. Chain Protocol Whitepaper. Disponível em: <https://chain.com/docs/1.2/ protocol/papers/whitepaper/> Data Acesso: 01/11/2017 MAZZETTO, M. Função Hash Criptografada (MD5, e a família sha). Disponível em: <http:// brunoribas.com.br/sc/2016-1/cripto/muriel-hash.pdf/> Data Acesso: 06/10/2017 MIRANDA, M. B. Teoria Geral dos Contratos. Disponível em: <www.direitobrasil.adv.br/ artigos/cont.pdf>. Data Acesso: 06/09/2017 MOUGAYAR, WILLIAM. Blockchain para Negócios – Promessa, Prática e Aplicação da Nova Tecnologia da Internet. Rio de Janeiro: Altas Books, 2017. NAKAMOTO, S. Bitcoin: A peer-to-peer eletronic cash system. Disponível em: < https:// bitcoin.org/bitcoin.pdf/> Data Acesso: 06/10/2017 RESENDE, O. H. M. Smart contracts: ruptura e legalidade – uma análise jurídica. Disponível em: <https://pt.scribd.com/document/329648032/Smart-Contracts-Ruptura-e-LegalidadeUma-Analise-Juridica> Data Acesso: 04/12/2017
64 O principal ponto positivo é que resolve os problemas com as senhas comuns, mas as desvantagens são o alto custo em comparação com o método anterior, pois é preciso um hardware específico, e a possibilidade de perda ou roubo do dispositivo gerando oportunidade de acesso não-autorizado (GALVÃO, 2015; NAKAMURA; GEUS, 2007). AUTENTICAÇÃO BASEADA NA CARACTERÍSTICA É baseada em alguma característica física ou comportamental do indivíduo e é comumente conhecida como Biometria. Esse método de autenticação é considerado mais seguro do que os anteriores, pois aumenta a dificuldade de um indivíduo autenticar-se no sistema se passando por outra pessoa e foi proposto devido aos problemas encontrados nos métodos descritos anteriormente. Essa autenticação evita os problemas de esquecimento e perda dos dispositivos, que são algumas desvantagens presentes nos outros métodos. Alguns exemplos desse tipo de autenticação são o reconhecimento de características faciais, impressão digital e reconhecimento da íris do olho (MORAES, 2010; NAKAMURA; GEUS, 2007). As principais vantagens são o aumento do nível de segurança tendo em vista tratar-se de características estatisticamente únicas, não existirá o esquecimento das informações, bem como a perda do dispositivo necessários para a autenticação. As principais desvantagens são o custo elevado de alguns sensores responsáveis pela captura das informações, o ruído na captura que podem dificultar o reconhecimento e a intrusividade na captura dos dados biométricos que é o contato do sensor com o indivíduo (JAIN; ROSS; NANDAKUMAR, 2011; NAKAMURA; GEUS, 2007). BIOMETRIA A biometria é a ciência que se utiliza da aplicação de métodos estatísticos e quantitativos sobre características físicas, biológicas ou comportamentais de um indivíduo para que seja possível reconhecer ou verificar a sua identidade. Ela é considerada como um tipo de autenticação mais segura com relação às demais, pois utiliza-se de um método de reconhecimento através de aspectos humanos intrínsecos, ou seja, cada indivíduo possui características estatisticamente únicas, tanto no âmbito Fisiológico como no Comportamental, apesar de ainda existirem alguns problemas. Portanto, com a utilização desse método torna-se mais difícil a falsificação da identidade de um indivíduo (NAKAMURA; GEUS, 2007). A biometria utiliza-se de sistemas de reconhecimento para processar as informações referentes as características que serão reconhecidas. Esses sistemas irão identificar, armazenar e aplicar algoritmos para medir pontos específicos de cada tipo de característica, para que seja possível validar a utilização destas informações. O
65 reconhecimento é feito através de sensores específicos para a identificação biométrica, variando de tamanho e preço de acordo com o tipo de técnica. Existem também sistemas que utilizam mais de uma característica biométrica para autenticar a identidade de um indivíduo e são chamados de sistemas multibiométricos. Esses sistemas podem ser considerados mais seguros do que os que possuem apenas um tipo de reconhecimento, pois o sistema terá mais informações de características únicas do indivíduo obtendo maior precisão para autenticar a sua identidade (NAKAMURA; GEUS, 2007; ZHANG; GUO; GONG, 2015). Existem vários tipos de características biométricas que podem ser utilizadas no processo de reconhecimento de um indivíduo. A seguir, serão apresentadas as categorias de impressão digital, reconhecimento facial e reconhecimento de íris. IMPRESSÃO DIGITAL O reconhecimento de impressões digitais é a categoria mais utilizada e que é empregado na maioria das aplicações. Esse reconhecimento utiliza sensores eletrônicos chamados leitores biométricos, que funcionam principalmente através de tecnologia óptica ou capacitiva. Os sensores e sistemas de reconhecimento de impressão digital capturam o padrão único das linhas do dedo, esse padrão dá-se o nome de minúcias. Essas linhas se formam durante o quarto mês de gestação do bebê e permanecem nos dedos durante toda a vida. A identificação de um indivíduo pode ser feita quando se encontram no mínimo 12 características idênticas na impressão digital (MORAES, 2010). Figura 3 – Imagem de uma impressão digital Fonte: Adaptado de Jain; Ross e Nandakumar (2011, p. 53). Na Figura 3, podemos observar a impressão digital de um dedo, que possuem várias linhas chamadas de minúcias. As minúcias são pontos específicos nas pequenas linhas presentes nas impressões digitais. Essas linhas possuem grande importância, pois os reconhecimentos digitais utilizam elas para que seja possível reconhecer um indivíduo. As minúcias possuem vários formatos, dentre eles crista final ou terminação, crista bifurcada, inclusão e ilha. A crista terminação é caracterizada pelo ponto onde a linha
66 termina. Já a crista bifurcada caracteriza-se pelo ponto onde a linha se divide, causando uma ramificação. A crista inclusão é caracterizada pelo ponto onde a linha se divide e une imediatamente, causando um pequeno espaço circular ou elíptico. E por fim, a crista ilha que é caracterizada por uma pequena linha que forma uma ilha (GALTON, 1892; JAIN; ROSS; NANDAKUMAR, 2011; ZHANG; GUO; GONG, 2015). Por ser uma das categorias mais utilizadas, é evidente que possua um alto nível de maturidade, decorrente de muitos anos de pesquisas. Portanto, é natural que indivíduos mal-intencionados tentem burlar esse sistema, buscando de forma indevida a autenticação da identidade de outro indivíduo. Com a preocupação em manter esse reconhecimento seguro e diminuir as taxas de falsa aceitação, foram desenvolvidas técnicas para detecção de impressões digitais falsas tanto a nível de software quanto a nível de hardware (PEREIRA, 2013). RECONHECIMENTO FACIAL O reconhecimento facial utiliza-se da imagem da face de um indivíduo para realizar as medições das características do rosto. Esse reconhecimento é feito através da aplicação de algoritmos para a detecção de uma face que é obtida por meio de uma imagem ou vídeo. Após essa detecção, são aplicados outros algoritmos para medir, identificar e comparar características da face e assim gerar dados que possam ser utilizados para a autenticação do indivíduo (JAIN; LI, 2011; JAIN; ROSS; NANDAKUMAR, 2011). Existem diversos algoritmos para detecção facial, mas o mais conhecido é o Algoritmo de Viola-Jones. Esse algoritmo foi desenvolvido com o objetivo de detectar objetos em uma imagem, ele pode ser utilizado para reconhecer qualquer objeto, mas é frequentemente utilizado para a detecção facial e o ponto forte é a rapidez com que é executado. Essa categoria possui baixo custo de implementação com relação aos equipamentos, pois não são necessários sensores sofisticados para a captura das imagens e vídeos. A técnica de reconhecimento é não intrusiva e possui um nível médio de maturidade (RATHA; SENIOR; BOLLE, 2001). RECONHECIMENTO DE ÍRIS A íris é um órgão interno do olho que se localiza atrás da córnea e na frente do cristalino. É responsável por controlar a quantidade de luz que entra no olho, dilatando ou contraindo uma pequena abertura chamada pupila (JAIN; ROSS; NANDAKUMAR, 2011; NEHEMY, 2015). Ela é conhecida como a parte colorida do olho, delimitada pelas pupila e esclera (parte branca do olho), e é extremamente rica em textura (RATHA; SENIOR; BOLLE, 2001).
67 A estrutura da íris é definida por volta de um ano de idade e permanece constante. Existem diferenças entre a íris dos olhos de gêmeos idênticos e até entre os olhos direito e esquerdo da mesma pessoa (RAKESH; KHOGARE, 2012). Um típico sistema de reconhecimento de íris é dividido em quatro módulos: aquisição, segmentação, normalização e codificação/comparação. O módulo de aquisição é responsável pela captura da imagem do olho humano através de sensores que utilizam tecnologia infravermelha, para a detecção da íris e captura da imagem. O módulo de segmentação é responsável por localizar e detectar os limites internos e externos da íris na imagem do olho. O módulo de normalização é caracterizado por aplicar algoritmos geométricos para transformar a imagem da íris da forma circular para a forma retangular, para facilitar a codificação das suas características. O módulo de codificação/comparação é responsável por extrair as características da textura da íris, para que sejam utilizadas na geração de um código, para que possibilite o armazenamento e/ou a comparação futuramente (JAIN; ROSS; NANDAKUMAR, 2011; RAKESH; KHOGARE, 2012). DESENVOLVIMENTO DA SOLUÇÃO A arquitetura visa à construção de uma API para autenticação multibiométrica de indivíduos, tendo como objetivos a possibilidade de inserir novas categorias de reconhecimento biométrico sem a necessidade de remodelar a arquitetura e permitindo configurar quais as categorias que serão utilizadas para a autenticação de cada indivíduo. De acordo com a descrição de Silva, Gomide e Petrillo (2003, p. 107), “arquitetura de software é uma visualização conceitual da estrutura de um aplicativo. Nela são definidos todos os componentes de hardware e de software que formam uma aplicação”. Os componentes são artefatos de software que possuem detalhes de implementação, fornecendo interfaces públicas que expõem os serviços que poderão ser utilizados. Nas subseções a seguir serão descritos os componentes da arquitetura apresentados no diagrama, bem como as relações entre cada um deles. COMPONENTE CORE O componente Core abrange a camada referente à regra de negócio. A regra de negócio é responsável por unir todas as regras de domínio da aplicação, tendo como cerne satisfazer os objetivos do domínio (SILVA; GOMIDE; PETRILLO, 2003). Este componente provê serviços de acesso a dados, intermediando a recuperação e armazenamento dos dados, sem que tenha conhecimento de como essas operações são realizadas. Também é responsável por possuir implementações que facilitará a comunicação e troca de informações entre os componentes Plugin e Multibiometrics.
68 COMPONENTE PLUGIN O componente Plugin é responsável por conter os algoritmos que possibilitam a captura dos dados biométricos dos indivíduos e executa um serviço, na máquina do cliente, para que seja possível capturar esses dados através dos sensores e enviá-los para a aplicação no servidor. Este serviço se comunicará diretamente com os drivers dos sensores, possibilitando a sua utilização na máquina dos usuários. COMPONENTE MULTIBIOMETRICS O componente Multibiometrics é responsável por prover um conjunto de algoritmos que permita o controle de acesso, utilizando autenticação multibiométrica, em que os indivíduos possam fornecer os dados necessários primeiramente para o cadastro e posteriormente para sua identificação e autenticação. Este componente se subdivide em módulos que serão apresentados abaixo: • Persistence: é responsável pelo armazenamento e recuperação de informações na base de dados, além de definir como esses dados serão armazenados. Ele abstrai a forma como são realizadas essas operações, fornecendo consultas personalizadas tanto para armazenamento, como também para a recuperação de informações. • Authentication: compreende a camada responsável pela verificação das informações fornecidas pelos indivíduos com as armazenadas na base de dados, para comparar e verificar se essas informações são capazes de autenticar o indivíduo. Contém os algoritmos responsáveis por realizarem essas operações, bem como, permite a inclusão de autenticação através de novas categorias de reconhecimento biométrico. Este módulo é muito importante, pois é onde se encontram os algoritmos biométricos, que são fundamentais para a comparação dos dados e autenticação dos indivíduos. APLICAÇÃO PROTÓTIPO A aplicação protótipo integrará as autenticações baseadas em conhecimento e em características, utilizando login e senha juntamente com as categorias de reconhecimento biométrico de impressão digital e facial do indivíduo. A aplicação será desenvolvida para a plataforma web e utilizará a API de autenticação multibiométrica, se comunicando com os plug-ins para capturar as características biométricas no lado do cliente, para que esses dados sejam enviados para a aplicação no servidor processar e validar a autenticação do indivíduo.
69 Primeiramente, a aplicação solicitará dados como nome de usuário e senha, para iniciar o processo de autenticação do indivíduo. Caso esses dados sejam autenticados, será exibida uma página com informações referentes a captura de impressão digital, após a coleta desse dado será solicitado a captura da face do indivíduo. Por fim, se os dados biométricos coletados forem autenticados, o indivíduo poderá acessar o sistema, caso contrário será exibida uma mensagem de erro informando que os dados biométricos não são válidos para a autenticação do respectivo indivíduo. RESULTADOS E DISCUSSÃO O protótipo da aplicação pôde ser implementado utilizando a API de autenticação multibiométrica que foi proposta para esse trabalho, apenas utilizando as interfaces dos serviços fornecidos pela API e definindo o banco de dados que seria utilizado, de forma que a API não dependa unicamente de um banco de dados. A coleta das informações biométricas é através de um serviço REST que roda na máquina do cliente e que se comunica com os leitores, capturando essas informações e repassando para o protótipo, quando solicitadas. Com relação aos testes de autenticação, foram capturadas impressões digitais e a face de 50 pessoas que forneceram as informações voluntariamente, foi possível cadastrar essas informações na aplicação protótipo e utilizar esses dados para verificar se a API funciona corretamente, impedindo que um indivíduo não autorizado acesse o sistema. As autenticações através da impressão digital não obtiveram falhas, pois para que seja obtida é necessário que o dedo esteja em contato direto com o sensor, permitindo uma melhor confiabilidade na captura dessa informação e consequentemente na verificação com as informações cadastradas na base. Já com relação as autenticações através do reconhecimento facial, apresentaram fatores que dificultaram a captura e/ou o reconhecimento facial, como a quantidade de luminosidade no ambiente de captura, a distância entre a câmera e o indivíduo e utensílios que o indivíduo estivesse usando como chapéu e óculos, além de evidenciar pontos negativos da captura facial, como a utilização de imagem da face de outra pessoa que foi posicionada em frente a câmera, seja através da imagem impressa em papel ou exibida no celular. Com isso, a autenticação utilizando a impressão digital traz maior confiabilidade e autenticidade na sua utilização, enquanto a autenticação utilizando o reconhecimento facial vem como um segundo fator para que um indivíduo seja autenticado no sistema. CONSIDERAÇÕES FINAIS Este trabalho, até o momento, teve o intuito de desenvolver uma API capaz de fornecer algoritmos capazes de autenticar um indivíduo utilizando autenticação
70 multibiométrica através de impressão digital e reconhecimento facial. Para utilização do protótipo da aplicação, faz-se necessário a utilização de sensores (leitor de impressão digital e câmera digital ou webcam), que auxiliam na captura dos dados biométricos do indivíduo, para que seja possível autenticá-lo. Com relação aos objetivos propostos, foi possível identificar algumas das principais categorias de reconhecimento biométrico como: Impressão Digital, Face, Íris, Retina, Geometria da Mão, Geometria da Orelha, Voz e Assinatura (JAIN; ROSS; NANDAKUMAR, 2011; ZHANG; GUO; GONG, 2015). A partir da identificação, foram definidas a utilização das categorias de impressão digital e reconhecimento facial, devido ao baixo custo e facilidade na aquisição dos sensores e softwares utilizados na captura das informações biométricas. Após isso, foi desenvolvido a API de Autenticação Multibiométrica e implementado um protótipo de aplicação web utilizando a API. Como proposta para trabalhos futuros, sugere-se a integração de novas técnicas de reconhecimento biométrico, bem como, a integração de autenticação baseada em propriedade, permitindo que a API de autenticação se torne mais completa e forneça vários modos de autenticação. Com relação a segurança dos dados armazenados, sugere-se a pesquisa sobre técnicas de armazenamento seguro dos dados biométricos, visto que por se tratar de uma característica intrínseca de uma pessoa, essa informação tem que ser tratada com um cuidado especial para que não seja acessada por pessoa não autorizadas. Também é possível pesquisar sobre algoritmos que detectem a vivacidade das características biométricas, permitindo identificar se a característica é de um ser vivo ou uma reprodução. Com relação a performance, é possível realizar testes para verificar o desempenho do uso da API em larga escala, considerando uma base de dados com um número significativo de usuários cadastrados. REFERÊNCIAS BEAL, A. Segurança da Informação: princípios e melhores práticas para a proteção dos ativos de informação nas organizações. São Paulo: Atlas, 2008. FONTES, E. L. G. Segurança da Informação – O Usuário Faz a Diferença. São Paulo: Saraiva, 2006. GALTON, F. Finger Prints. London: MacMillan, 1892. GALVÃO, M. C. Fundamentos em Segurança da Informação. São Paulo: Pearson Education do Brasil, 2015. GIL, A. C. Como elaborar projetos de pesquisa. 4.ed. São Paulo: Atlas, 2002. GOODRICH, M. T.; TAMASSIA, R. Introdução à Segurança de Computadores. Porto Alegre: Bookman, 2013.
71 HONG, L.; JAIN, A. K.; PANKANTI, S. Can multibiometrics improve performance? In: IEEE WORKSHOP ON AUTOMATIC IDENTIFICATION ADVANCED TECHNOLOGIES, 1999, New Jersey. p. 59-64. JAIN, A. K.; LI, S. Z. Handbook of Face Recognition. 2.ed. Editora Springer, 2011. JAIN, A. K.; ROSS, A. A.; NANDAKUMAR, K. Introduction to Biometrics. Editora Springer, 2011. MORAES, A. F. Segurança em Redes: fundamentos. 1.ed. São Paulo: Érica, 2010. NAKAMURA, E. T.; GEUS, P. L. Segurança de Redes em Ambientes Coorporativos. São Paulo: Novatec Editora, 2007, p. 363-374. NEHEMY, M. Oftalmologia na prática clínica. Belo Horizonte: Folium, 2015. PEREIRA, L. F. A. Detecção de impressões digitais falsas usando informações extraídas da rugosidade da pele. 2013. 77 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Informática, Universidade Federal de Pernambuco, Recife. 2013. RAKESH, T.; KHOGARE, M. G. Survey of Biometric Recognition System for Iris. In: International Journal of Emerging Technology and Advanced Engineering, 2., 2012, Ambajogai, India. p. 272-276. RATHA, N. K.; SENIOR, A. W.; BOLLE, R. M. Automated biometrics. In: INT. CONF. ADVANCES PATTERN RECOGNITION, 2001, Rio de Janeiro, Brazil. p. 445-454. ROSS, A. A.; NANDAKUMAR, K.; JAIN, A. K. Handbook of Multibiometrics. New York: Springer, 2006. 198 p. (International Series on Biometrics). SILVA, A. A.; GOMIDE, C. F.; PETRILLO, F. Metodologia e projeto de software orientados a objetos: modelando, projetando e desenvolvendo sistemas com UML e componentes distribuídos. São Paulo: Érica, 2003. ZHANG, D.; GUO, Z.; GONG, Y. Multispectral Biometrics: Systems and Applications. Editora Springer, 2015.
72 HONEYPOTS DE ALTA-INTERATIVIDADE COM HONEYTOKENS: UM ESTUDO DE CASO SOBRE A IMPLANTAÇÃO EM AMBIENTES DE ALTA CRITICIDADE Flávio Rodrigo Cabral Pereira1 Fábio Falcão de França2 RESUMO Ao longo das últimas décadas, a segurança das informações passou a ser primordial para garantir o sucesso e sobrevivência das organizações, independente da área de atuação. Uma organização hoje em dia que não prioriza a segurança de seus dados e informações, pode estar correndo risco de ter enormes perdas financeiras caso tenham seus sistemas de segurança comprometidos. Este trabalho possui como foco a realização de um estudo de caso sobre a utilização de honeypots e honeytokens em um ambiente de alta criticidade. Nesse estudo de caso, será demonstrado a implantação de um honeypot em uma rede de computadores simulada, usando endereços lógicos IPs não utilizados na rede para simular honeypots virtuais, para tentar confundir um possível invasor escondendo os recursos reais da rede no meio dos recursos simulados. Também serão implantados honeytokens no servidor real da rede com o objetivo de tentar identificar tentativas de acesso não autorizado de origem interna. O honeypot tambem terá a função de tentar monitorar tentativas de conexões com os hosts simulados e utilização dos honeytokens, gerando logs e alertas com informações sobre a origem, informações essas de alto valor para uma analise de um especialista em segurança da informação. Por fim, serão demonstrados algumas simulações de tentativas de acesso não autorizadas utilizando ferramentas open source, com o intuito de exibir a gama de informações que podem ser obtidas e que podem ser 1 Pós-Graduando em Desenvolvimento de Aplicação para WEB (UNIPÊ), Bacharel em Ciência da Computação (UNIPÊ). E-mail: flavior[email protected] 2 Mestre em Engenharia Informática, com ênfase em Comunicações, Serviços e Infraestruturas - Universidade de Coimbra – Portugal. E-mail: [email protected]
73 utilizadas com uso de honeypots e honeytokens, e a sua importância como uma ferramenta de apoio na área da segurança da informação. Palavras-chave: Segurança da Informação. Sistema de Detecção de Intrusão. Honeypot. Honeytoken. INTRODUÇÃO Ao longo da última década, diversos incidentes trouxeram à tona o quão importante a informação tornou-se para o sucesso das organizações. A segurança da informação passou a ser primordial para as organizações, que independente da área de atuação, utilizasse dos dados e das informações extraídas destes para garantir a sua sobrevivência perante o mundo dos negócios. A função da segurança da informação é garantir que apenas usuários autorizados, possam fazer uso destas, uma vez que as políticas de segurança serão utilizadas para definir quais atores podem interagir com os dados em questão (TANENBAUM, 2003). Uma organização que não prioriza a segurança da informação está susceptível a ter uma perda financeira significativa, como também afetar diretamente sua imagem perante os clientes e sociedade, reduzindo o valor agregado da sua marca. Um estudo divulgado por uma empresa especializada na área de segurança da informação, apontou que no Brasil desde 1995, os crimes cibernéticos já causaram prejuízos bilionários (FENAPEF, 2012). Com aumento de incidentes, relacionados às tentativas de acesso não autorizados aos dados e suas informações, foram sendo lançadas formas de aplicar-se a segurança da informação, como firewall, antivírus, entre outros. Neste estudo de caso será demonstrado o uso de honeypot, que é um IDS (Intrusion Detection System) – Sistema de Detecção de Intrusão, de baixa interatividade com um possível invasor e de alta interatividade com honeytokens em um ambiente de alta criticidade. O ambiente citado pode ser definido como ambientes que possuem informações e transações que requerem um elevado nível de segurança, como por exemplo, sistemas de transações bancárias. Honeytokens são informações falsas disponibilizadas, como por exemplo, recursos digitais disponibilizados em um host, onde qualquer tentativa de acesso caracteriza uma atividade não autorizada. METODOLOGIA As metodologias aplicadas neste trabalho terão caráter exploratório. Pesquisas exploratórias tem como algumas de suas caracteristiscas na coleta de dados, o levamento bibliográfico e o estudo de caso (GIL, 2010). Já os dados deste estudo serão de natureza
80 Apache é um servidor web que oferece a capacidade de um único servidor suportar diversos websites e agir como um proxy da web (FORD, 2009). O ProFTPD é um servidor de arquivos que permite a transferência de arquivos em uma rede de computadores utilizando o protocolo FTP (PROFTPD, 2016). EXECUÇÃO DOS TESTES E VALIDAÇÕES Neste capitulo, após instalação e configuração do honeypot, foram realizados testes através de ferramentas open sources, simulando tentativas de acesso e atividades não autorizadas, a fim de avaliar o funcionamento da solução proposta através da utilização do honeypot em uma rede de computadores. Para execução dos testes neste trabalho, foi elaborado um plano de execução baseado nos passos do processo definido por James Broad e Andrew Bindner, que são: Reconhecimento, Scanning, Exploração de falhas, Preservação do acesso e Geração de relatórios (BROAD, BINDNER, 2014). Devido ao escopo deste trabalho ser apenas de execução de testes para validações das ferramentas propostas, foram utilizados apenas os três primeiros passos, porém com uma alteração apenas na identificação da segunda etapa. Na simulação de todos os testes foi utilizado o host virtual que possui o endereço lógico IP 10.83.1.2/24, que representa no cenário virtual criado para este trabalho o potencial invasor, como sendo a origem dos possíveis ataques. Na etapa do processo de reconhecimento, para este trabalho não foi utilizado todos os endereços lógicos IPs da rede 10.83.1.0/24, foi utilizado apenas o intervalo de endereços iniciando a partir do endereço lógico IP 10.83.1.3/24 ao 10.83.1.20/24. Nos processos de busca por vulnerabilidades e exploração de falhas, para simulação dos testes, levando em consideração que todos os resultados obtidos através dos testes executados em um honeypot virtual seriam iguais, diferenciando apenas o endereço lógico IP do alvo, os testes foram executados tendo como alvo o honeypot virtual que possui o endereço lógico IP 10.83.1.7/24. RECONHECIMENTO O processo de reconhecimento neste trabalho tem como objetivo tentar obter informações sobre possíveis hosts ativos na rede e portas que estejam abertas disponibilizando algum tipo de serviço, a ferramenta utilizada nessa etapa foi o nmap versão 7.01. A ferramenta nmap foi utilizada nessa etapa do trabalho devido ser de fácil usabilidade, flexível, suportar dezenas de técnicas avançadas de mapeamento de redes cheias de filtros de IPs, firewalls, roteadores e outros obstáculos, onde disponibiliza um rico conjunto de recursos avançados para usuários avançados (NMAP, 2016).
81 A Figura 2, ilustra parte do resultado que um possível invasor obteria executando uma varredura com o nmap tendo o honeypot configurado e implantado na rede: Figura 2 – Honeypot implantado. Informações obtidas da rede executando varredura com nmap versão 7.0.1. Fonte: Próprio Autor (2018). O primeiro trecho destaca o comando utilizado para iniciar a execução da varredura com o nmap, utilizando o parâmetro -sS (Scan SYN), parâmetro esse que possibilita digitalizar milhares de portas por segundo em uma rede, também é relativamente discreto e camuflado, uma vez que nunca é concluída uma conexão TCP e logo após o parâmetro o range de IP utilizado neste estudo de caso. No segundo e terceiro trecho destacado, foi identificado o honeypot e o servidor real da rede. Já no quarto trecho destacado foram identificados os honeypots virtuais emulados pelo honeyd, contidos na faixa de endereços lógicos IPs 10.83.1.5/24 ao 10.83.1.13/24, esses que possuem como objetivo de tentar confundir o possível invasor escondendo o servidor real da rede no meio dos honeypots virtuais.
82 A Figura 3 ilustra parte do arquivo de alerta gerado referente à varredura com o nmap, onde foi identificado alertas referente uma varredura executada utilizando uma ferramenta de port scan, como também o endereço lógico IP da origem do ataque, os endereços lógicos IPs 10.83.1.9/24 e 10.83.1.13/24, que são honeypots virtuais, e o endereço lógico IP 10.83.1.3/24 que é o honeypot. Figura 3 - Alerta gerado pelo snort referente varredura com nmap versão 7.01. Fonte: Próprio Autor (2018). BUSCAS POR VULNERABILIDADES O processo de busca por vulnerabilidades tem como objetivo tentar obter informações sobre possíveis serviços que estão sendo disponibilizados, como a versão da aplicação que o serviço está utilizando, e com posse dessas informações tentar explorar possíveis falhas que possam existe com a versão utilizada. Sobre os serviços que foram detectados na etapa de reconhecimento, nesta etapa foi utilizada a ferramenta whatweb versão 0.4.8, para tentar obter informações sobre o serviço HTTP, que está sendo disponibilizado na porta 80/TCP, e em relação ao serviço FTP disponibilizado na porta 21/TCP, foi executada apenas uma tentativa de conexão com o servidor FTP. A ferramenta whatweb, foi utilizada nessa etapa do trabalho devido sua praticidade e rapidez em coletar informações de sites, sistemas utilizados e suas versões, e-mails, estruturas, erros de SQL, entre outros (MORNINGS STAR SECURITY, 2016). A Figura 4 ilustra algumas informações obtidas com a execução do whatweb. No trecho destacado foi identificado que o servidor utilizado é o Apache versão 1.3.23 e o sistema operacional utilizado é uma distribuição SuSe linux.
83 Figura 4 - Resultados obtidos com whatweb versão 0.4.8 Fonte: Próprio Autor (2018). A Figura 5 ilustra parte do arquivo de alerta gerado referente à execução do whatweb, onde foi identificado um alerta sobre uma possível tentativa de conexão HTTP na porta 80, endereço lógico IP da origem do ataque e do alvo. Outro alerta também foi gerado, informando uma possível tentativa de acesso proibido e os endereços lógicos IPs da origem do ataque e do alvo. Figura 5 - Alerta gerado pelo snort referente a execução do whatweb versão 0.4.8. Fonte: Próprio Autor (2018). A Figura 6 ilustra informações obtidas sobre o servidor FTP, serviço esse que está sendo emulado pelo honeyd no host alvo, apenas com a tentativa de abrir uma conexão. No segundo trecho destacado foi identificado informações sobre a aplicação que está sendo utilizada e sua versão. Figura 6 - Informações obtidas com a tentativa de conexão com servidor FTP Fonte: Próprio Autor (2018).
84 Já a Figura 7 ilustra o alerta gerado referente a tentativa de conexão com o servidor FTP, na porta 21/TCP do alvo, onde foi identificado o endereço lógico IP da origem e a porta utilizada 41148/TCP. Figura 7 - Alerta gerado pelo snort referente tentativa de conexão com o servidor FTP. Fonte: Próprio Autor (2018). EXPLORAÇÃO DE FALHAS Uma vez realizadas as etapas de reconhecimento e busca por vulnerabilidades, o próximo passo será a exploração do alvo. Essa etapa é o ato de tentar “invadir” o host através de falhas de softwares, explorando as possíveis falhas identificadas e tentando quebrar senhas de acesso a serviços e sistema. As ferramentas utilizadas nessa etapa foram: Hydra versão 8.1 e W3af versão 1.6.54. A ferramenta hydra, foi utilizada nessa etapa devido ser possível a execução de tentativas de quebra de senhas de acesso a serviços, funciona testando nomes de usuário e senhas, podendo ser parametrizado com diversos tipos de combinações durante o teste (MORENO, 2015). A Figura 8 ilustra parte das informações referente a execução do hydra no endereço lógico IP 10.83.1.7/24, o host definido como alvo para este trabalho.
85 Figura 8 – Imagem do hydra versão 8.1 em execução. Fonte: Próprio Autor (2018). A Figura 9 ilustra parte do arquivo de alerta gerado referente a tentativa de ataque utilizando o hydra, informando que houve um possível ataque de força bruta ao serviço FTP e os endereços lógicos IPs da origem do ataque e do alvo. Figura 9 - Alerta gerado referente a execução do hydra versão 8.1. Fonte: Próprio Autor (2018). A ferramenta w3af, foi utilizada nessa etapa devido ser uma ferramenta poderosa e flexível na tentativa de buscar e explorar vulnerabilidades em aplicações web, disponibilizando dezenas de avaliações web e plugins de exploração (W3AF, 2016). A Figura 10 ilustra a tela do w3af em execução, no primeiro trecho destacado foi informado o endereço lógico IP e a porta 80/TCP do alvo e no segundo trecho destacado a forma de ataque que foi utilizada.
86 Figura 10 - Tela do w3af versão 1.6.54 em execução. Fonte: Próprio Autor (2018). A Figura 11 ilustra parte do arquivo de alerta gerado, onde foi identificado alertas informando uma tentativa de ataque e conexão ao serviço web, o endereço lógico IP e porta da origem do ataque e do alvo. Figura 11 - Alerta gerado pelo snort referente a execução do w3af versão 1.6.54. Fonte: Próprio Autor (2018).
87 ACESSO AOS HONEYTOKENS Nessa parte do trabalho foram efetuados testes simulando uma tentativa de acesso aos honeytokens, com o objetivo de tentar validar a implantação do honeypot na rede de computadores monitorando qualquer tipo de tentativa de utilização dos honeytokens. Foi utilizado o host com o endereço lógico IP 10.83.1.15/24, que no cenário criado para este trabalho representa o usuário comum, como sendo a origem da tentativa de acesso e o host com endereço lógico IP 10.83.1.4/24, que no cenário representa o servidor real da rede, como sendo o alvo. A ferramenta winscp versão 5.7.6 foi utilizada para simular uma tentativa de transferência dos honeytokens. O winscp foi escolhido por ser uma ferramenta que permite acessar, transferir e manipular arquivos remotamente, sem precisar estar em frente ao computador (WINSCP, 2016). A Figura 12 ilustra a transferência dos honeytokens que foram implantados no servidor FTP real, através do uso da ferramenta winscp, para o host que representa o usuário comum da rede. Figura 12 - Imagem do winscp versão 5.7.6 com honeytokens transferidos. Fonte: Próprio Autor (2018).
88 A Figura 13 ilustra parte do arquivo de alerta gerado, onde foi identificado que houve uma tentativa de acesso não autorizado ao honeytoken e o endereço lógico IP e porta da origem e do alvo. Figura 13 - Alerta gerado pelo snort referente acesso aos honeytokens. Fonte: Próprio Autor (2018). CONSIDERAÇÕES FINAIS Este trabalho apresentou um estudo sobre a implantação de um IDS (Sistema de Detecção de Intrusão) em uma rede de computadores. Foi utilizado honeypots e honeytokens com o objetivo de detectar e colher informações sobre possíveis tentativas de acesso não autorizados a recursos da rede de computadores. A implementação do honeypot foi realizada com a utilização do snort e o daemon honeyd, que garantiram a detecção das tentativas de acesso de não autorizado, gerando logs e alertas com informações sobre a origem do ataque. Nos testes realizados foram utilizadas ferramentas open source de pentesters divididos em três etapas: reconhecimento, busca por vulnerabilidades e exploração de falhas. Em todas as etapas do processo durante os testes, o honeypot detectou e gerou informações através de logs e alertas sobre a origem do ataque, qual o seu alvo, o endereço físico e lógico da interface de rede do possível invasor e alvo, informações sobre o payload do pacote enviado durante a tentativa de acesso não autorizado e em alguns casos, foi possível identificar qual ferramenta foi utilizada e scripts que foram executados. Portanto os testes realizados com a utilização de honeypots e honeytokens podem trazer ganhos substanciais de segurança em uma rede de computadores, com informações que podem ser utilizadas para elaborar novas regras nos sistemas de segurança de uma organização. Vale ressaltar que, nenhum dispositivo de segurança de rede irá garantir um nível 100% seguro. REFERÊNCIAS ANDERSON, James P. Computer Security Threat Monitoring and Surveillance. Fort Washington, PA, 1980.
89 BROAD James, BINDNER Andrew. Hacking com Kali Linux: Técnicas prátricas para testes de invasão. São Paulo: Novatec, 2014. DIAS, C. Segurança e auditoria da tecnologia da informação. Rio de Janeiro: Axcel, 2000. MORENO, Daniel. Introdução ao PENTEST. São Paulo: Novatec, 2015. FENAPEF. Brasil perde bilhões de reais com crimes cibernéticos. Disponível em: http://www. fenapef.org.br/fenapef/noticia/index/40542. Acesso em 18 de Set. de 2015. FRANÇA, Fábio Falcão. Estudo de caso sobre a utilização de VPNs redundantes em um ambiente crítico de alta disponibilidade. 2010. 55 fls. Monografia Especialização em Segurança da Informação – Faculdade de Tecnologia-FATEC, João Pessoa/PB. FORD, Andrew. Apache 2: Guia de bolso. Rio de janeiro: Alta Books, 2009. GIL, Antonio Carlos. Como elaborar projetos de pesquisa (%º Ed). São Paulo: Editora Atlas AS, 2010. MARCELO, Antonio; PITANGA, Marcos. Honeypots: a arte de iludir hackers. Rio de janeiro: Brasport, 2003. MORNINGS STAR SECURITY. WhatWeb. Disponível em: http://www.morningstarsecurity. com/research/whatweb. Acesso em: 06 de Mar. de 2016. NAKAMURA, Emilio Tissato; GEUS, Paulo Lício de. Segurança de redes em ambientes cooperativos. São Paulo: Novatec, 2007. NMAP. Introduction. Disponivel em: https://nmap.org/. Acesso em 06 de Mar. de 2016. OLIVEIRA, Frederico Santos de. Honeypot: Um Ambiente para Análise de Intrusão. 2008. 62 fls. Monografia de graduação – Universidade Federal de Lavras. Departamento de Ciência da Computação, Lavras/MG. ORACLE. VirtualBox: Welcome to VirtualBox.org. Disponível em: https://www.virtualbox. org/. Acesso em 16 de Nov. de 2015. PROFTPD. Highly configurable GPL-licensed FTP server software. Disponível em: http:// www.proftpd.org/goals.html. Acesso em 07 de Jan. de 2016. PROVOS, Niels. Developments of the Honeyd Virtual Honeypot, 2008. Disponível em: http:// www.honeyd.org/. Acesso em 25 de Nov. de 2015.
96 da engenharia de software. Então é possível extrair as melhores características de cada modelo e adaptá-los a necessidade do projeto para obter-se melhores resultados. MÉTODOS ÁGEIS DE DESENVOLVIMENTO Para realizar uma maior abordagem a respeito dos métodos ágeis, alguns destes serão ilustrados de forma um pouco mais detalhada. Serão apresentadas as características e processos de alguns dos métodos ágeis mais conhecidos da atualidade, a começar pelo “Extreme Programming” mais conhecido por XP. Extreme Programming A metodologia XP possui um padrão incremental de desenvolvimento, onde, os requisitos de um projeto são tratados como cenários que podem ser expressos como histórias do usuário. Cada cenário pode ser implementado como uma série de tarefas são desenvolvidas pela equipe e entregues ao cliente em um processo chamado de “release”. Normalmente as releases representam etapas do software que já foram cumpridas e são executáveis. Assim, o cliente pode dar feedback para a equipe de desenvolvimento após o lançamento das respectivas entregas. Para Pressman (2016), o processo XP emprega uma metodologia orientada a objetos incluindo também um paradigma de desenvolvimento que possui o contexto de quatro atividades metodológicas: planejamento, projeto, codificação e testes. Fase de Planejamento A fase de planejamento consiste no levantamento de requisitos. É nesta fase que a equipe entenderá as regras de negócios que devem existir no software, obter maior percepção do que o cliente realmente deseja, e, por fim, identificar os principais fatores e funcionalidades desejáveis. As conversas entre a equipe responsável e o cliente permitem que os especialistas criem histórias (histórias de usuários), as histórias, por sua vez, terão a descrição das funcionalidades, as características e os resultados esperados que o produto final deve conter. Após a elaboração das histórias, estas, são mostradas ao cliente para que o mesmo possa falar quais serão prioritárias. Uma vez que a equipe já possua as prioridades do cliente, as histórias são avaliadas e recebem um período de semanas (custo) para serem desenvolvidas. Novas histórias podem ser criadas a qualquer momento, e aquelas que ultrapassam mais que três semanas para serem cumpridas, devem ser revisadas pelo
97 cliente para que ele as torne menores. Após a revisão o período de tempo é recalculado. Uma história já desenvolvida e entregue ao cliente torna-se um incremento de software. O tempo utilizado para desenvolver o incremento é levando em consideração para estimar as possíveis datas de entrega das seguintes histórias, e também, identificar se tempo demais foi utilizado para desenvolver determinadas histórias. De acordo com Pressman (2016), a equipe XP ordena as histórias a serem desenvolvidas de três maneiras. A primeira maneira consiste em que, todas as histórias devem ser implementadas imediatamente. Na segunda maneira, as histórias com maior prioridade devem ser evidenciadas no cronograma e implementadas primeiro. A terceira maneira, evidencia as histórias com maiores riscos e informa que devem ser implementadas primeiro. Após a entrega de uma história, o cliente pode acrescentar novas histórias, solicitar alterações ou eliminá-las. Com o feedback do cliente a equipe pode adaptar-se as solicitações e modificar o desenvolvido do software de maneira correspondente. Fase de Projeto A fase de projeto é responsável por determinar a maneira como as histórias serão implementadas mantendo prioridades na elaboração de um projeto simples e sem complexidade. Esta fase também estimula a refatoração, isto é, aprimorar a estrutura do projeto sem alterar o seu comportamento. A refatoração permite reduzir a entrada de erros no sistema além de simplificar o projeto. Este processo é realizado continuamente pela equipe mesmo após o início da codificação, pois, esta prática permite que o código permaneça simples e manutenível. Fase de Codificação Na fase de codificação o projeto será construído pela equipe de desenvolvimento. Antes de iniciar o processo de codificação a equipe de desenvolvimento realiza primeiramente testes de unidade para as histórias, o código então, é elaborado de maneira que sejam aprovados por estes testes. É importante destacar que, todos os desenvolvedores trabalham em todas as áreas do sistema, impactando assim diretamente no conhecimento geral da equipe, e, reduzindo a quantidade de indivíduos com monopólio do conhecimento relacionado a aplicação. Um dos conceitos chaves pelo XP que pode ser utilizado nesta etapa é a programação em pares. Este conceito estabelece que duas pessoas trabalhem na mesma estação de trabalho para desenvolver a codificação das histórias. Embora pareça que esta forma de desenvolvimento reduza a produtividade, o efeito é adverso, isto é, ela permite que desenvolvedores novatos produzam códigos de melhor qualidade reduzindo a quantidade de refatorações que poderão ser efetuadas ocasionando em um custo de tempo adicional no projeto. No entanto, segundo Sommerville (2011 apud PARRISH et al., 2004;
98 ARISHOLM et al., 2007), estudos com programadores mais experientes não replicaram estes resultados. Foi descoberta uma perda significativa de produtividade se comparado ao desenvolvimento individual para estes desenvolvedores experientes. Após a conclusão do trabalho de codificação, é realizado o processo de integração contínua, onde, o código é postado em um repositório principal. De acordo com Pressman (2016), este processo evita problemas de compatibilidade e interface além de permitir a identificação de erros precocemente. Fase de Testes A fase de testes consiste na elaboração de testes, geralmente auxiliados por ferramentas ágeis que automatizem a criação dos testes de unidade. Uma das fortes características do XP é criar testes antes mesmo de desenvolver a codificação do sistema. Este método permite que o desenvolvedor possa testar os códigos escritos enquanto ainda estão em desenvolvimento, isto permite obter-se uma maior precisão na identificação de possíveis erros. De acordo com Sommerville (2011), é importante que os indivíduos responsáveis por implementar as tarefas possuam total compreensão sobre as especificações do sistema. Isso implica que a parte documental do projeto possua certa relevância na criação dos testes. Sommerville (2011) afirma também que, nos casos onde um desenvolvedor do sistema trabalhe em um ritmo mais acelerado que o testador, pode ocorrer uma tendência do desenvolvedor responsável pela codificação da aplicação ignorar os testes, devido a sua implementação estar à frente dos testes e o período de entrega do cronograma estar próximo. Em XP, é importante destacar a existência dos testes de aceitação. Para Pressman (2016) os testes de aceitação também podem ser chamados de testes de cliente, estes que, são especificados pelo cliente mantendo o foco nas características e funcionalidades visíveis e examinadas pelo cliente. Considerações a Respeito do XP A metodologia ágil de desenvolvimento XP oferece uma variedade de características que a torna uma das mais utilizadas pelas empresas para o desenvolvimento de seus produtos. O XP incorpora métodos de desenvolvimento que reduzem os riscos e garantem uma maior confiabilidade do sistema se elaborado corretamente, visto que, os testes representam uma forte característica nesta metodologia. O constante contato entre a equipe de desenvolvimento e o cliente também permite que o sistema elaborado seja o mais próximo possível do que foi solicitado.
99 Scrum De acordo com Sutherland (2016), até 2015 a maioria dos projetos de software eram desenvolvidos através do método cascata, este que, possui um processo imprevisível e lento devido a forma de desenvolvimento por etapas até que o produto esteja pronto. Devido as dificuldades e falhas vivenciadas por Sutherland, o mesmo desenvolveu o Scrum em 1993 com o intuito de trazer uma nova forma de abordagem para o desenvolvimento de softwares. Sutherland (2016) afirma que, o Scrum diferentemente das formas de gerenciamento tradicionais de projeto, assemelha-se a sistemas evolucionários, adaptativos e autocorretivos. Para Sutherland (2016), o Scrum aproveita-se da maneira como as equipes de fato trabalham, abraçando a incerteza e criatividade, e também, analisando o que já foi criado pela equipe e de que maneira. O Scrum possui ciclos de inspeções e adaptações (processo incremental de desenvolvimento), onde, é verificado em intervalos regulares se o projeto está direcionado no caminho correto e se ele é aquilo que o cliente deseja. A cada ciclo do Scrum é realizada uma reunião para determinar o que será realizado e a quantidade de trabalho que a equipe acredita ser capaz de produzir durante aquele ciclo. Os ciclos são chamados de “sprints”, onde, ao final de cada sprint a equipe se reúne e informa tudo aquilo que foi capaz de realizar. O número de sprints de um produto é dado de acordo com o seu nível de complexidade e tamanho. Pressman (2016) informa que, o Scrum possui um padrão de processos onde cada um define um conjunto de atividades e que são eficazes para projetos com prazos apertados, com requisitos dinâmicos e urgência de negócios. É possível elencar esses processos em: backlog, sprints, reuniões Scrum, e demos. A seguir é possível encontrar as definições para cada um dos processos citados. Backlog De acordo com Pressman (2016), é no backlog que estará a lista com as descrições do projeto, onde, elenca-se as prioridades de requisitos e as funcionalidades que serão utilizadas para fornecer o valor comercial do produto para o cliente. Novos requisitos podem ser adicionados a qualquer momento no backlog, assim é possível também definir desejáveis mudanças, porém, é necessário que primeiramente o gerente de produto (scrum master) avalie o registro para em seguida atualizar as prioridades do projeto conforme as mudanças solicitadas.
100 Sprints As sprints representam as execuções de trabalho necessárias para entregar os requisitos estabelecidos no backlog, sejam novos itens ou alterações. Sprints possuem um período de tempo para serem concluídas, contudo, ainda permitem que a equipe de desenvolvimento trabalhe em um ambiente com curtos prazos, mas ainda sim estável. Reuniões Scrum Diariamente são realizadas reuniões pela equipe para análise do andamento do projeto. Toda equipe possui um líder chamado “scrum master”, este que, é responsável por conduzir as reuniões e avaliar cada informação proveniente de um integrante da equipe. O scrum master também é responsável pela elaboração do backlog. Pressman (2016) afirma que, estas reuniões auxiliam a equipe na identificação de problemas em potencial o mais cedo possível, e também, permite que a equipe adquira conhecimento de todo o projeto. Durante as reuniões são realizadas perguntas aos integrantes da equipe para identificar o que foi feito desde a última reunião, quais tipos de obstáculos são vivenciados e o que se pretende realizar até a próxima reunião. Demos As demos correspondem aos incrementos de software que são realizados. Neste processo será entregue ao cliente não necessariamente a total funcionalidade que foi planejada, mas, algo que possa ser executável e entregue dentro dos prazos estipulados. Após a entrega o cliente pode avaliar a funcionalidade e se necessário realizar as sugestões que desejar. Considerações a Respeito do Scrum O Scrum possui um conjunto de ideias que pode ser utilizado não somente apenas para a produção de software, mas, para o gerenciamento de projetos em termos gerais. Os processos utilizados pelo Scrum auxiliam na elaboração de projetos que são realizados em curto prazo de tempo, aproximando a equipe a através de constantes reuniões. O Scrum também reduz a complexidade envolvida direcionando o foco de desenvolvimento na construção do produto.
101 SCRUM OU XP? Apesar do Scrum e XP serem duas metodologias ágeis, ambas possuem diferentes vantagens ao serem utilizadas. A metodologia XP possui características que aprimoram o desenvolvimento do produto, já o Scrum possui uma melhor utilização no gerenciamento de projetos, visto que, a metodologia Scrum pode ser utilizada em projetos diversos, não apenas naqueles associados a produção de software. Enquanto o XP prioriza o planejamento e utilização de testes, além de outras abordagens de desenvolvimento como a programação em pares, o Scrum prioriza a simplicidade do projeto, controlando o caos e adaptando o projeto a situações imprevisíveis. A utilização de uma das metodologias se dá através do tipo de abordagem que uma determinada equipe deseja. Se o produto deve ser construído com uma maior garantia de confiabilidade garantindo também uma futura facilidade com manutenções, utilizar o XP é uma boa indicação devido ao seu foco restrito do desenvolvimento de software. Assim como, em um ambiente que determinado projeto tem um curto prazo de tempo para ser cumprido, e a equipe de desenvolvimento precisa ser gerida de uma melhor maneira, o Scrum possui excelentes características para este tipo de situação. Contudo, é possível defender que uma boa prática de projeto esteja no uso conjunto do XP com o Scrum, onde, o XP seria utilizado para desenvolver a parte prática e o Scrum para a gestão do projeto. Esta intersecção entre as duas metodologias se utilizada corretamente pode trazer mais benefícios do que malefícios, beneficiando principalmente a empresa através da boa coordenação e execução de seus projetos. CONSIDERAÇÕES FINAIS A ocorrência do mercado de software tornar-se cada vez mais competitivo permitiu que as metodologias ágeis ganhassem cada vez mais espaço no ambiente de desenvolvimento. Hodiernamente muitas empresas visam entregar softwares de qualidade com um menor custo de desenvolvimento, isto permite que, adequações das diferentes técnicas de metodologias sejam realizadas para que o andamento dos projetos de software possua um maior índice de sucesso. Embora as metodologias ágeis possuam muitos benefícios para determinados ambientes, é evidente que ainda existem alguns pontos problemáticos em sua utilização. Encontrar meios de eliminar os pontos negativos derivados destas metodologias, como trabalhar com a análise de riscos e aplicar o modelo ágil em equipes de grande porte, são exemplos de desafios enfrentados por especialistas. Uma futura ideia de implementação para esta pesquisa, é a elaboração de um processo de desenvolvimento para a documentação de projetos de software, de modo que, o produto final possua um menor índice de degradação em sua parte documental. Este é um problema recorrente em muitos projetos que utilizam métodos ágeis.
102 REFERÊNCIAS PRESSMAN, R. S; Maxim, B. R. Engenharia de Software: Uma Abordagem Profissional. 8. ed. São Paulo: AMGH, 2016. 968p. SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011. 521p. SUTHERLAND, Jeff. Scrum a Arte de Fazer o Dobro do Trabalho na Metade do Tempo. 2ª edição. São Paulo: LeYa, 2016. 240p. CORRÊA, A. G. D. Organização e Arquitetura de Computadores. São Paulo: Pearson, 2017. 169p. GIL, A. C. Como Elaborar Projetos de Pesquisa. 6. ed. São Paulo: Atlas, 2017. 192p.
103 PRODUTO METODOLÓGICO PARA O ENSINO DE COMPUTAÇÃO NA EDUCAÇÃO BÁSICA Matheus Araujo da Silva1 Thyago Maia Tavares de Farias2 RESUMO Introdução: No mundo atual, a tecnologia é parte fundamental da sociedade, permitindo o acesso dinâmico à informação em tempo real de qualquer parte do mundo. A tecnologia como ferramenta permite o compartilhamento de conhecimento em escala global, no entanto, ainda não é incorporada de forma satisfatória à educação básica. O risco de incorporar o ensino de tecnologia, principalmente informática, sem padronização ou método formal estabelecido é alto demais do ponto de vista comercial, o que prejudica a inovação por parte de escolas públicas ou particulares. Desse modo, faz-se necessário criar métodos e meios para reduzir tais riscos e incentivar a modernização do ensino. O presente trabalho consiste em um catálogo de requisitos que embase a criação de um laboratório modelo para o ensino de computação na educação básica, servindo de escopo pedagógico e reduzindo os riscos comerciais atrelados a tal ação. O levantamento dos requisitos foi realizado por meio de estudos de caso sobre cursos de tecnologia e os resultados foram relacionados a metodologia de ensino, conteúdo, infraestrutura e espaço. Palavras-chave: Ensino de Tecnologia. Tecnologia na Educação. Informática na Educação. Tecnologia. Extensão. INTRODUÇÃO Já se debate a inserção e a relevância da informática na educação básica há muitos anos. Valente e Almeida (1997) comentam que os primeiros Programas Nacionais de Informática na Educação, na década de 70, já apresentavam questionamentos sobre o seu uso como objeto de estudo ou ferramenta. Sua relevância torna-se ainda mais evidente através das diversas tentativas de implantação da informática como parte do currículo 1 Graduando em Gestão da Tecnologia da Informação no Centro Universitário de João Pessoa – Unipê. E-mail: [email protected] 2 Mestre em Informática – UFPB. E-mail: thy[email protected]
104 obrigatório da educação básica. Tramitam, desde 1993, na Câmara dos Deputados, algumas medidas que visam alterar o artigo 23 da Lei de Diretrizes e Bases da Educação Nacional (BRASIL, Lei 9.934/96), que define que os currículos de todos os níveis da educação básica devem ter base nacional comum, com possibilidade de complementação a depender do contexto de aplicação. O Plano de Desenvolvimento da Educação do Ministério da Educação (MEC), lançado em 2007, que visa alcançar alto nível de qualidade na educação básica pública, revela o entendimento do próprio Ministério de que as tecnologias devem ser usadas em sala de aula. Dentre suas propostas existem diversos programas que visam apoiar o ensino e o uso de tecnologia e informática nas escolas, entretanto, tais iniciativas ainda não mostram resultados consistentes, pois não há incorporação formal e padronizada do ensino da tecnologia na educação básica, o que torna necessária a reflexão sobre a importância deste tema. Fróes (1994, p.18) já tratava sobre o espaço adquirido pela tecnologia no cotidiano e como a inclusão digital é fator determinante na vida de diversas pessoas ao comentar que “Os recursos atuais da tecnologia, os novos meios digitais: a multimídia, a Internet, a telemática, trazem novas formas de ler, de escrever e, portanto, de pensar e agir”. Sendo este impacto perceptível há mais de vinte anos, a educação, como meio para o desenvolvimento de indivíduos e cidadãos capazes de conviver no mundo, ainda sofre de um atraso inaceitável para o que deveria ser um dos meios mais dinâmicos da sociedade. Diante deste cenário, o presente trabalho define como objetivo fornecer um guia básico para a implantação do ensino de computação, tecnologia e informática em escolas de educação básica, notadamente nos anos finais do ensino fundamental e ensino médio, oferecendo uma visão holística que aborda, principalmente, os fatores pedagógicos, mas que também abranja os fatores estruturais e comerciais relacionados, com a finalidade de reduzir os riscos envolvidos e incentivar esta mudança de paradigmas em diferentes esferas e contextos. MATERIAIS E MÉTODOS A Sociedade Brasileira de Computação (SBC) lançou em 2017 seus “Referenciais de Formação em Computação: Educação Básica”, em que reconhece a fundamentalidade do ensino de computação na educação básica e seus impactos no futuro da sociedade. As mudanças causadas pela computação são globais, pois é uma área que permeia todas as outras, tornando necessário o desenvolvimento de competências e habilidades básicas para todo indivíduo, o que mantém este conhecimento no mesmo patamar da filosofia, da física, da matemática e das linguagens. Observa-se, nos referenciais, uma definição de computação que pode apresentar três imagens distintas: “[...] uma ciência que investiga a resolução de problemas, uma ciência que proporciona a criação de um mundo novo e uma ciência que causa uma mudança radical no comportamento da sociedade” (SBC, 2017). O documento também trata dos pilares do ensino de computação e das habilidades que devem ser desenvolvidas durante as quatro etapas da educação básica: educação infantil, ensino fundamental (anos iniciais e finais) e ensino médio.
105 A SBC considera que “uma das formas de estruturar os conhecimentos da área de Computação pode ser estruturada em 3 eixos: Pensamento Computacional, Mundo Digital e Cultura Digital” (SBC, 2017). O primeiro deles “se refere à capacidade de sistematizar, representar, analisar e resolver problemas”. O segundo “é formado por componentes físicos e componentes virtuais” e envolve a necessidade de entender o funcionamento e os tipos de computadores. O terceiro tem como base a ideia “culturas digitais compreendem as relações interdisciplinares da computação com outras áreas do conhecimento” e está relacionado às relações entre a tecnologia e a sociedade. Os eixos descritos pela SBC demonstram que se faz necessário o ensino de informática e computação através do domínio do seu uso como ferramenta tecnológica, da Internet como fonte de informação atualizada e de forma dinâmica e da computação como forma de moldar a tecnologia ao meio, desenvolvendo soluções para diferentes problemas em múltiplos contextos. Sendo assim, passa pelo uso da tecnologia como ferramenta de apoio ao ensino e objeto de estudo, trazendo duas abordagens distintas e complementares. A metodologia utilizada para o desenvolvimento deste trabalho foi baseada nos referenciais da SBC para análise dos cursos e na experiência prática de projetos por meio de estudos de caso. Foram analisados 3 projetos de extensão e uma escola. Os projetos analisados foram: “Curso preparatório para olimpíadas brasileiras de informática”, “Utilização da plataforma Arduino no suporte ao ensino de noções sobre sustentabilidade” e “Oficinas de programação para meninas do ensino médio: estimulando o interesse pela computação”, deste ponto em diante denominados projetos A, B e C respectivamente. A escola analisada foi a Escola Técnica Estadual Cícero Dias (ETECD). Os projetos atuam por meio da oferta de cursos de tecnologia realizados com alunos dos anos finais do ensino fundamental e ensino médio. O critério de seleção foi baseado na facilidade de acesso, por serem desenvolvidos nos estados da Paraíba e Pernambuco, e por terem resultados consistentes devido ao tempo de execução. O projeto A consistiu em oferecer cursos de lógica e programação com foco na preparação para a Olimpíada Brasileira de Informática (OBI) em escolas de João Pessoa-PB. O material para o ensino de programação foi desenvolvido pela própria equipe, que também ministrou as aulas, e foi composta por alunos dos cursos de Bacharelado em Ciência da Computação e Bacharelado em Engenharia de Computação da Universidade Federal da Paraíba (UFPB) em diferentes níveis de progressão nos mesmos. Para o ensino de lógica foi usado o livro “Jogos de Lógica: divirta-se e prepare-se para a Olimpíada Brasileira de Informática” (MARTINS, 2011). O projeto existe desde 2008, entretanto a etapa utilizada para este estudo foi realizada no ano de 2017. Neste ano foram beneficiadas duas escolas, uma pública e uma particular. Os alunos envolvidos foram aqueles que manifestaram interesse pela participação nos cursos, totalizando 24 alunos dos anos finais do ensino fundamental e 8 do ensino médio. No total, aconteceram 13 aulas com duração de 100 a 120 minutos, ministradas por 7 alunos da equipe do projeto. Os alunos do ensino fundamental tiveram apenas aulas de lógica, em salas de aula comuns, enquanto que, para os alunos do ensino médio, as aulas foram realizadas em laboratório de informática e os conteúdos abordados foram direcionados ao domínio da linguagem de programação Python, em sua versão
112 CONCEITOS RELACIONADOS À TECNOLOGIA Todos os projetos investigados passam, em seus conteúdos, por fases de conceituação relacionados à tecnologia, tendo abordado os seguintes pontos: história da computação, o que são computadores, aplicações dos computadores, como funcionam os computadores e como os computadores entendem instruções. Tais pontos servem como base para a introdução do pensamento computacional, explicando os conceitos básicos que permeiam a computação e contextualizando os computadores no mundo atual. Seguindo os referenciais da SBC (2017), ainda seria recomendável a adição de mais alguns pontos em uma fase conceitual, sendo eles: o que é a internet; como a internet transforma o mundo; como a sociedade se molda à tecnologia; como a tecnologia influi na exerção da cidadania; a importância da tecnologia no mundo atual e como utilizar a tecnologia em prol da sociedade. Os pontos mencionados relacionam-se aos aspectos conceituais necessários para a aplicação da tecnologia de uma forma prática em ambiente escolar, introduzindo-a de forma integrada às atividades acadêmicas e costumam ser abordados de forma lúdica, sem a necessidade de um meio digital. PENSAMENTO COMPUTACIONAL A segunda etapa observada nos projetos é a que introduz o pensamento computacional, apresentando conceitos chave que embasam a capacidade de moldar a tecnologia às necessidades. Tais conceitos podem ser, então, expandidos para o domínio de aplicação selecionado, como programação, robótica ou jogos. Os conteúdos abordados nesta segunda etapa são: conceito de algoritmos, conceitos básicos de programação, descrição de atividades, fragmentação de problemas e fluxogramas. Tais atividades permitem ao aluno compreender as regras que norteiam o pensamento computacional, fazendo com que possam propor soluções passíveis de serem interpretadas por máquinas. EXERCITANDO O PENSAMENTO COMPUTACIONAL Nesta fase, os alunos são introduzidos ao meio digital, colocando suas soluções em prática e vendo como a máquina as interpreta. O uso de ferramentas computacionais lúdicas e interativas são recomendadas, de modo a manter a motivação do aluno. Esta fase exercita os conteúdos abordados anteriormente, inclui os conteúdos necessários ao domínio das ferramentas utilizadas, como conceitos básicos, regras e funcionamento.
113 PRÁTICA DE PROGRAMAÇÃO O próximo passo consiste na introdução do aluno à linguagem de programação, em que ele troca as ferramentas lúdicas por código de fato. Tal fase engloba os conteúdos relacionados à linguagem escolhida na forma de: algoritmos, linguagem, tipos de dados, variáveis, operações, fluxo de execução, desvios condicionais simples, laços de repetição, funções, operações de entrada e saída, comentários e boas práticas de programação. Tais conteúdos visam introduzir ao aluno os conceitos básicos da linguagem de programação escolhida, permitindo que ele desenvolva suas primeiras soluções em código. APLICAÇÃO AO CONTEXTO Por fim, o aluno pode aplicar os conhecimentos de programação em um contexto específico. Tal fase engloba os conceitos relacionados ao contexto de aplicação do curso, ou seja, para um curso de programação, alguns dos conteúdos a serem abordados nesta fase seriam: estruturas de dados, paradigmas de linguagens de programação, modularização do código e multiprogramação. Já, para um curso voltado para robótica ou circuitos eletrônicos seriam: componentes eletrônicos, circuitos lógicos e conceitos de robótica. Esta fase visa orientar os alunos em direção à área da tecnologia que o curso visa abranger, envolvendo conteúdos específicos do contexto de aplicação. REQUISITOS ARQUITETÔNICOS Como afirma Moran (2013), o modelo tradicional de sala de aula é sufocante, especialmente na educação básica, portanto, faz-se necessária uma mudança também no espaço físico, de modo a contribuir para o ensino dinâmico e integrado necessário ao mundo atual. Desse modo, ambientes coloridos, lúdicos, que estimulem a criatividade são bastantes desejáveis. Nesse quesito, também, a ETECD torna-se modelo, como evidenciado por Silva (2015), o espaço da escola foi trabalhado de modo a contribuir para o ensino inovador do projeto. A escola conta, em suas salas de aula, com carteiras estudantis que se interligam em um formato circular, permitindo uma maior interação entre os alunos e aproximando-os do professor. Os laboratórios de ciências são bastante lúdicos e coloridos e os laboratórios de informática fogem ao modelo comum de bancadas paralelas em que os alunos ficam de frente para o professor. Tais alterações espaciais estimulam nos alunos a criatividade e criam um ambiente mais lúdico para o ensino, fugindo da formalidade de uma sala de aula tradicional. Tais mudanças são desejáveis, pois contribuem para um ensino inovador e melhoram a forma como o aluno vê a escola, tornando-a atrativa e aumentando o engajamento.
114 Acessibilidade também é um dos temas centrais a serem identificados em um projeto arquitetônico escolar, pois a escola deve ser um ambiente receptivo e adequado a todos os alunos, como evidenciado por Mantoan (2015). Estudos recentes têm proposto metodologias e protocolos para avaliação da acessibilidade em escolas (MANTOAN, 2015; AUDI; MANZINI, 2006; AUDI; MANZINI, 2007), pois este é um requisito essencial para as escolas modernas e deve ser levado em consideração em qualquer avaliação do espaço da mesma. Sendo assim, entende-se a acessibilidade como requisito arquitetônico essencial e as mudanças no ambiente que o tornam mais atrativo ao aluno e contribuem para um ensino inovador como requisitos desejáveis. REQUISITOS DE INFRAESTRUTURA Quanto à infraestrutura, faz-se necessária, primariamente, a adequação espacial e o levantamento dos dados sensíveis ao domínio de aplicação da mesma como número de alunos e região. Silva (2016) propõe um modelo de implementação de rede de computadores para um dos modelos tradicionais de laboratório de informática, com os computadores dispostos alinhados junto às paredes da sala, permanecendo os alunos de frente para as mesmas, entretanto este modelo não favorece a interação entre os alunos, tampouco com o professor, e torna as aulas menos dinâmicas. Para os laboratórios que fogem a este modelo, faz-se necessária uma adequação do projeto de infraestrutura. Alguns dos laboratórios mais modernos já não contam mais com máquinas fixas (desktop), e sim com notebooks, computadores portáteis, mais leves, que ocupam menos espaço, produzem menos ruído e esquentam menos, além de contribuir para a interação entre os alunos devido ao fácil deslocamento, sendo alternativa para um problema indicado por Nunes et al (2008). Porém, já são alternativas para a incorporação de tecnologia nas escolas os dispositivos móveis, como smartphones e tablets. Tais ferramentas são ainda menores e produzem ainda menos calor ou ruído, são fáceis de deslocar e favorecem o dinamismo nas aulas. Os requisitos de infraestrutura devem ser pensados conforme as ferramentas a serem utilizadas e observando os padrões de sustentabilidade ambiental. Redes cabeadas não surtem efeitos tão bons quanto redes sem-fio em se tratando de dispositivos móveis. Sendo assim, o único requisito real de infraestrutura, independente da ferramenta utilizada, seria o acesso a internet, fator essencial nos ambientes acadêmicos pela facilidade de acesso à informação. Ela permite aos alunos o acesso em tempo real a quaisquer dados desejados e, quando guiado, o acesso à internet torna-se ferramenta poderosa em prol do ensino, como evidenciado por Tenente (2017). Desse modo, a internet torna-se requisito essencial de infraestrutura, pois é o único que deve ser comum a qualquer ambiente acadêmico adaptado às necessidades do mundo atual.
115 NEGÓCIOS Do ponto de vista de negócios, tais mudanças no ensino agem como diferencial competitivo e podem trazer benefícios de médio e longo prazo. O projeto A atraiu interesse dos pais e alunos que participaram do projeto, bem como do corpo docente e da escola. Os alunos do projeto também apresentaram melhora no desempenho em outras disciplinas, fato que se repetiu no projeto B. Em ambos, os alunos apresentaram melhora em matemática e física e, no primeiro, ainda houve melhora nas disciplinas relacionadas às linguagens, por conta das atividades de interpretação de texto vinculadas à resolução de questões para a Olimpíada Brasileira de Informática. Tal multidisciplinaridade e impacto benéfico à base comum melhora o ensino de forma holística, aumentando o nível de qualidade. O projeto B ainda conseguiu gerar uma economia de energia de 35% para a escola pública em que foi executado e, se considerado que a escola reativou um laboratório de informática, o impacto econômico e ambiental torna-se ainda mais evidente. Muitas escolas, atualmente, possuem laboratórios de informática desativados ou subutilizados, com equipamentos que não dão retorno e são danificados pelo tempo que permanecem parados. Desse modo, a incorporação de um ensino de tecnologia integrado à base comum da educação traz grandes benefícios ao negócio, gerando diferenciais, tornando a escola sustentável, melhorando a qualidade do ensino e trazendo visibilidade às escolas públicas e particulares que ganham caráter de inovação. CONSIDERAÇÕES FINAIS O produto metodológico que o presente catálogo de requisitos visa embasar é dependente da abordagem metodológica e dos conteúdos do curso vinculado, tornando flexível a construção do espaço físico. Desta forma, embora um ambiente mais lúdico possa trazer melhores resultados, torna-se opção não o adotar. A infraestrutura, por sua vez, oferece alternativas que diminuem os custos e deve ser analisada com base no contexto de aplicação, pois torna-se ponto crucial no ensino de tecnologia. Podem, ainda, ser utilizados os recursos de infraestrutura já presentes na escola, de forma a reduzir os custos de implantação. Os conteúdos observados apresentaram melhores resultados com alunos dos anos finais do ensino fundamental e ensino médio, mas podem ser adaptados para alunos mais jovens, desde que com as devidas alterações na metodologia de ensino. Sendo assim, o presente catálogo de requisitos visa embasar a criação de produtos metodológicos para o ensino de computação na educação básica com o objetivo de integrar o mesmo de forma orgânica ao ensino comum. No entanto, seu uso deve ser pensado quanto ao contexto de aplicação do produto a ser desenvolvido para a obtenção de resultados e excelência.
116 REFERÊNCIAS ARDUINO. Arduino Web Page. Disponível em: <https://www.arduino.cc/> . Acesso em: 25 abr. 2018. AUDI, Eloísa Mazzini Miranda; MANZINI, Eduardo José. Protocolo para avaliação de acessibilidade em escolas do Ensino Fundamental: um guia para gestores e educadores. Associação Brasileira de Pesquisadores em Educação Especial, 2006. AUDI, Eloisa Mazzini Miranda; MANZINI, Eduardo José. Avaliação da acessibilidade em escolas de ensino fundamental. Descrição da metodologia para elaboração de um protocolo. Arquitextos, São Paulo. Online, v. 81, 2007. BELL, Timothy C.; WITTEN, Ian H.; FELLOWS, Mike. Computer Science Unplugged: Off-line activities and games for all ages. Computer Science Unplugged, 1998. BRASIL. Lei de Diretrizes e Bases da Educação Nacional-LDB. Lei nº 9.394/96, de 20 de dezembro de 1996. CASS, Stephen. The 2017 Top Programming Languages. IEEE Spectrum. Disponível em: <https://spectrum.ieee.org/computing/software/the-2017-top-programming-languages>. Acesso em: 14 mar. 2018. FRÓES, Jorge. A tecnologia na vida cotidiana: importância e evolução sócio-histórica. Rio de Janeiro, 1994. Mimeografado. GITHUB. The State of the Octoverse 2017. Disponível em: <https://octoverse.github.com/>. Acesso em: 14 mar. 2018. JONASSEN, David H. Using mindtools to develop critical thinking and foster collaboration in schools. Computers in the Classroom: Mindtools for Critical Thinking. NJ: Prentice Hall, 1996. MANTOAN, Maria Teresa Eglér. Inclusão Escolar: o que é? por quê? como fazer?. Summus Editorial, 2015. MARTINS, Wellington Santos. Jogos de Lógica: divirta-se e prepare-se para a Olimpíada Brasileira de Informática. Goiânia: Editora Vieira, 2011. MINISTÉRIO DA EDUCAÇÃO. O Plano de Desenvolvimento da Educação: Razões, Princípios e Programas, 2007.
117 MORÁN, José. Mudando a educação com metodologias ativas. Coleção Mídias Contemporâneas. Convergências Midiáticas, Educação e Cidadania: aproximações jovens, v. 2, p. 15-33, 2015. MORAN, José Manuel. Novos modelos de sala de aula. 2013. MORAN, José Manuel; MASETTO, Marcos Tarciso; BEHRENS, Marilda Aparecida. Novas tecnologias e mediação pedagógica. Papirus Editora, 2000. MORAN, José Manuel. Ensino e aprendizagem inovadores com tecnologias. Informática na educação: teoria & prática, v. 3, n. 1, 2000. MORAN, José Manuel. A educação que desejamos: novos desafios e como chegar lá. Papirus Editora, 2007. NUNES, Maria Fernanda de Oliveira et al. Percepção ambiental em espaços de informática educativa. Anais do XII Encontro Nacional de Tecnologia do Ambiente Construído, 2008. POKRESS, Shaileen Crawford; VEIGA, José Juan Dominguez. MIT App Inventor: Enabling personal mobile computing. arXiv preprint arXiv:1310.2830, 2013. RESNICK, Mitchel et al. Scratch: programming for all. Communications of the ACM, v. 52, n. 11, p. 60-67, 2009. SILVA, Cybelle Dutra da. Parceria pública privada: um olhar na Escola Técnica Estadual Cícero Dias–Recife/PE. Colóquio Nacional-A produção do conhecimento em Educação Profissional, 2015. SILVA, Edivanea Maria Nascimento. Laboratório de Informática: uma Proposta de Implementação de Rede. Revista UNILUS Ensino e Pesquisa, v.1, n.1, p.112-119, 2016. SOCIEDADE BRASILEIRA DE COMPUTAÇÃO-SBC. RAABE, André L. A. Referenciais de Formação em Computação: Educação Básica, 2017. TENENTE, Luiza. Alunos colocam professores em grupos de WhatsApp e usam redes sociais nos estudos para o Enem. Disponível em: <https://g1.globo.com/educacao/enem/2017/ noticia/alunos-colocam-professores-em-grupos-de-whatsapp-e-usam-redes-sociaisnos-estudos-para-o-enem.ghtml>. Acesso em: 25 abr. 2018. TIOBE Index for March 2018. TIOBE. Disponível em: <https://www.tiobe.com/tiobe-index/>. Acesso em: 14 mar. 2018.
118 VALENTE, José Armando; ALMEIDA, Fernando José de. Visão analítica da informática na educação no Brasil: a questão da formação do professor. Brazilian Journal of Computers in Education, v. 1, n. 1, p. 45-60, 1997. WOLBER, David. App inventor and real-world motivation. Proceedings of the 42nd ACM technical symposium on Computer science education. ACM, 2011. p. 601-606.
119 UTILIZAÇÃO DE APRENDIZAGEM DE MÁQUINA APLICADA AO MAPEAMENTO DA INCIDÊNCIA DE CRIMES Lucas Figueiredo Pereira1 Fábio Falcão de França2 RESUMO Ao longo dos últimos anos a taxa de criminalidade vem crescendo de forma cada vez mais acelerada. De acordo com um levantamento estatístico realizado pela ONG Seguridad, Justicia y Paz, a cidade de João Pessoa, que está localizada na Paraíba, Brasil, encontra-se entre as 30 cidades mais violentas do mundo, estando em vigésimo nono lugar, com uma taxa anual de aproximadamente 47 homicídios a cada cem mil habitantes. Com o intuito de identificar e prever possíveis locais de crimes, o objetivo deste estudo foi criar um modelo preditivo utilizando inteligência artificial, que através de ferramentas computacionais possam auxiliar o monitoramento da Secretaria de Segurança Pública do Estado da Paraíba em relação aos crimes do tipo furto, usando coleta de dados e algoritmos capazes de extrair características relevantes através de mineração de dados, usando um classificador. A primeira tarefa que foi realizada foi obtenção dos dados a serem analisados e a extração dos pontos mais relevantes, como as características sobre crimes nessas áreas, e dessa forma foi construído um modelo usando técnicas de aprendizado de máquina, que utilizou essas informações referentes a crimes passados, a fim de realizar o treinamento e teste do algoritmo. Após a elaboração do modelo, o mesmo obteve uma precisão de aproximadamente 82.28%, uma porcentagem bem interessante para a predição de novos crimes. Em conjunto com a construção deste modelo, foi desenvolvida uma aplicação Web para visualizar as probabilidades que o modelo preditivo previu de cada bairro, localizados em um mapa interativo da cidade de João Pessoa. Palavras-chave: Inteligência artificial. Aprendizado de máquina. Mineração de dados. Modelos preditivos. 1 Graduado em Ciência da Computação/UNIPÊ. E-mail: [email protected] 2 Mestre em Engenharia Informática, com ênfase em Comunicações, Serviços e Infraestruturas - Universidade de Coimbra – Portugal. E-mail: [email protected]
120 INTRODUÇÃO Após levantamentos de dados estatísticos sobre as cinquenta cidades, com mais de 300 mil habitantes, possuindo as taxas mais elevadas de homicídios do mundo, verificase que João Pessoa, capital do Estado da Paraíba, é a vigésima nona localidade do mundo mais violenta, com uma taxa de homicídios em torno de 47 para cada 100 mil habitantes (SEGURIDAD JUSTICIA Y PAZ, 2017), conforme os dados exibidos na Tabela 01. Tabela 01 - Lista de cidades mais violentas do mundo em 2016 Posição Cidade País Homicídios Habitantes Taxa 1 Caracas Venezuela 4,308 3,305,204 130,35 2 Acapulco México 918 810,669 113,24 3 San Pedro Sula Honduras 845 753,864 112,09 4 Distrito Central Honduras 1,027 1,206,897 85,09 5 Victoria México 293 346,029 84,67 6 Maturín Venezuela 499 592,574 84,21 7 San Salvador El Salvador 1,483 1,778,476 83,39 8 Ciudad Guayana Venezuela 727 877,547 82,84 9 Valencia Venezuela 1,124 1,560,586 72,02 10 Natal Brasil 1,097 1,577,072 69,56 29 João Pessoa Brasil 530 1,114,039 47,57 Fonte: Adaptado de Seguridad Justicia y Paz (2017). A prevenção de crimes, principalmente os da classe organizados, é uma das principais ameaças à segurança pública, havendo certa preocupação com diversas capitais ao redor do mundo, visto que, os governos, usufruindo-se de ferramentas de inteligência artificial, poderiam trabalhar junto com a população, consolidando uma melhor forma de combate ao crime (CRAWFORD; EVANS, 2016). Atualmente, a quantidade de seguranças e policiais, é bem menor do que deveria ser devido ao custo e aos recursos disponibilizados pelos governos. Segundo um levantamento feito pelo Instituto Brasileiro de Geografia e Estatística (IBGE), a Paraíba possui apenas um policial militar a cada 423 habitantes, como demonstrado na Figura 07.
121 Tabela 02 - Relação de policiais por habitantes nos estados brasileiros3 Com o objetivo de melhorar a distribuição do efetivo da polícia militar, a primórdio, em João Pessoa (PB), a construção de um modelo preditivo que auxilie a um melhor mapeamento dos crimes na região, é de suma importância para maximizar a eficiência da segurança pública do estado. Dessa forma, com o intuito de melhorar o combate ao crime, ferramentas computacionais podem ser utilizadas para auxiliar o mapeamento de crimes, assim como permitir um maior monitoramento pelos órgãos de segurança pública, através da utilização de informação extraída de dados pretéritos. Para isso, necessita-se da identificação e análise dos dados de crimes locais, com o auxílio dos órgãos de segurança pública do estado da Paraíba, para a extração de características de diversos tipos de delitos, construindo um modelo que utilizará técnicas de aprendizado de máquina a fim de permitir um possível policiamento preditivo em geral, tendo em mãos, locais suspeitos que poderiam ser utilizados como base na captura de infratores. Objetivo Geral Propor a criação de uma solução, utilizando técnicas de aprendizagem de máquina, capaz de informar a probabilidade de incidência de delitos nos bairros da cidade de João Pessoa na Paraíba, com vistas a auxiliar os diversos órgãos de segurança. 3 Fonte: https://exame.abril.com.br/brasil/brasil-tem-deficit-de-20-mil-policiais-em-seu-efetivo/
128 Figura 22 – Representação dos índices dos modelos preditivos no console da aplicação Fonte: Próprio autor (2017). Os resultados obtidos após a classificação do modelo preditivo foram bastante satisfatórios, com uma accuracy, ou seja, uma precisão de 82.28%, representando uma boa quantidade na taxa de acertos do modelo preditivo e um índice Kappa de 80.71%, no qual representa uma alta relação de concordância em relação às variáveis do modelo, utilizando o melhor algoritmo escolhido pela aplicação, foi o algoritmo de Arvores de Decisão como ilustrado na Figura 22. Os resultados do algoritmo de Naive Bayes e Floresta aleatória foram bem próximos 81.83% de confiabilidade e 80.21% no índice Kappa no algoritmo Naive Bayes e 80.71% de confiabilidade e 78.96% no índice Kappa no algoritmo Floresta Aleatória. Já no resultado do algoritmo de Regressão Logística Múltipla, os valores foram muito baixos sendo passiveis de total desconsideração, sendo 1.46% de confiabilidade e um índice Kappa nulo. A área da curva ROC dos bairros foram bem satisfatórias também, isso mostra uma boa proporção entre os valores verdadeiros positivos em relação aos valores falsos positivos, a os valores da curva ROC dos vinte bairros testados está ilustrado na Figura 23.
129 Figura 23 – Área da curva ROC dos bairros utilizados no modelo Fonte: Próprio autor (2017). Todos os algoritmos foram submetidos à técnica de validação cruzada com dez páginas, ou seja, dez partições do total de registros, testados e validados particularmente para uma obtenção de uma média dos mesmos. Todos os dados foram submetidos aos algoritmos com uma configuração de 50% dos dados utilizados foram separados para treino e os 50% restantes, foram utilizados para teste. A probabilidade de cada bairro foi obtida testando vários conjuntos de datapoint, objeto que representa uma unidade singular de dados do dataset, entre si somando e se auto ajustando, conforme os dados eram consumidos, isso garantiu a margem das probabilidades descritas. Foram utilizadas 39260 registros de crimes do tipo Furto, para os vinte bairros disponíveis na aplicação, para a classificação e avaliação do modelo preditivo. Após a validação cruzada foram obtidos de 39260 tentativas de comparação entre os datapoints, 32105 acertos e 7155 erros de classificação no modelo como demonstrado na Figura 24.
130 Figura 24 – Representação da taxa de acertos e erros do classificador utilizado Fonte: Próprio autor (2017). As instâncias foram os registros classificados. O classificador obteve aproximadamente 81.77% de taxa de acertos, e 18.22% de taxa de erros. A aplicação forneceu as probabilidades de predição para cada bairro dos vinte mencionados. 1. Água Fria [0.00000000071716889770140 %]. 2. Altiplano [0.00000000000431553213453 %]. 3. Alto do Mateus [0.00024889042428768819170 %]. 4. Bairro dos Estados [0.00000005079386409153200 %]. 5. Bancários [0.00000000001153710603740 %]. 6. Bessa [0.00000000000000000000048 %]. 7. Cabo Branco [0.00000000000000000000050 %]. 8. Centro [0.00000000000000058295831 %]. 9. Cristo Redentor [0.00000004110574686704945 %]. 10. Ernesto Geisel [0.00000000003366798395543 %]. 11. Jaguaribe [0.00000005046779248533146 %]. 12. José Américo [0.00018456941831231928703 %]. 13. Manaíra [0.00000000000000000033751 %]. 14. Mandacaru [0.00000014746450978427637 %]. 15. Mangabeira [0.77002951298461819185092 %]. 16. Pedro Gondim [0.00000023354948155782452 %]. 17. Roger [0.00000027917135738321896 %]. 18. Tambaú [0.00000000000000000000001 %]. 19. Torre [0.00000000000001652009668 %]. 20. Valentina [0.22953622385332300703808 %].
131 Destaques para os bairros do Bessa, Tambaú e Cabo Branco, bairros com uma baixíssima probabilidade e os bairros de Mangabeira e Valentina com a maior probabilidade dos estudados, em ocorrer um crime do tipo Furto em João Pessoa, baseado nos registros históricos dos dados obtidos. Foi desenvolvido na aplicação métodos para conversão de dados do WEKA para o JSAT e vice-versa, e métodos para serialização e deserialização, métodos para importar e exportar, dos classificadores obtidos, gerando um arquivo .model no qual contém o classificador para futuras classificações. CONSIDERAÇÕES FINAIS O trabalho teve como principal contribuição uma solução capaz de auxiliar o monitoramento de crimes de todos os tipos de Furto, na secretaria de segurança pública do estado. Com todo o apoio da Polícia Militar da Paraíba em relação à disponibilidade dados, foi possível desenvolver uma aplicação, que possa prever e demonstrar as probabilidades de vinte bairros da cidade de João Pessoa. Foi Construído uma aplicação WEB desacoplada e com alta coesão assim facilitando sua expansão e de fácil manutenção, com segurança e computação multi-thread, ou seja, utilizando vários núcleos do processador visando entregar uma melhor interação e um menor tempo de espera para o treinamento do modelo, com a inclusão de inteligência artificial e algoritmos de aprendizagem de máquina capazes de construir um modelo preditivo com uma boa taxa de acertos, sendo capaz de avaliar qual melhor algoritmo para aquele determinado conjunto de dados. Cerca de: 82.28% no accuracy, índice de precisão, e 80.71% de índice Kappa K, índice de concordância. Como proposta de trabalhos futuros, o aumento da precisão do modelo preditivo, melhora dos valores das curvas ROC nos bairros e dos índices Kappa, o aumento da quantidade de algoritmos disponíveis para o treinamento e validação, maior quantidade de bairros e tipos de crimes, refinamento da localização no mapa geográfico como contornos em tornos de possíveis ruas e avenidas nos bairros, a adição de mais atributos estáticos para melhores taxas do classificador, expansão do sistema de permissões para a aplicação, adicionar a retroalimentação ao classificador, podendo assim fazer que o mesmo possa evoluir com a inserção de novos dados de registros de crimes e a validação de circunstâncias dos atributos estáticos em tempo real.
132 REFERÊNCIAS AMARAL,F. Aprenda Mineração de Dados: Teoria e Prática.1. Ed. Alta Books, 2016 BATTULA.P.B; PRASAD.S.R.Dr. An Overview of Recent Machine Learning Strategies in Data Mining. International Journal of Advanced Computer Science and Applications. Vol.4. No.3, 2013. BERK, R. Criminal Justice Forecasts of Risk: A machine learning approach. USA: University of Pennsylvania, Philadelphia, 2012. BIAU.G. Analysis of a Random Forests Model. Université Pierre et Marie Curie – Paris VI. 2012 CRAWFORD, T.A.M; EVANS, K. Crime prevention and Community Safety. Oxford University Press, 2016. GUYON.I; ELISSEEFF.A. An Introduction to Variable and Feature Selection. Journal of Machine Learning Research. 2003. IBGE. Perfil dos Estados e Municípios Brasileiros 2014. Instituto Brasileiro de Geografia e Estatística. Disponível em: < http://www.ibge.gov.br/home/ > Data acesso: 31/05/2017 MEIRELLES.A; FERNANDES.C.E; CASTRO.D.R. Tradução de Textos Baseado em Estatística. Universidade Estadual de Campinas. 2014. MOHAMAD.M; HASSAN.H; NASIEN.D; HARON.H. A Review on Feature Extraction and Feature Selection for Handwritten Character Recognition. International Journal of Advanced Computer Science and Applications. Vol.6, No.2, 2015.
133 MÉTODOS ENSEMBLE COMO SUPORTE NO RECRUTAMENTO DE CANDIDATOS EM PROCESSOS SELETIVOS Sansão Feliciano Costa1 Fábio Falcão de França2 RESUMO A capacidade de recrutar e selecionar os melhores candidatos para uma vaga de emprego é uma das características que geralmente uma empresa espera encontrar ao contratar um Analista de Recursos Humanos. Tal profissional é incumbido do desafio de buscar possíveis candidatos que tenham o perfil mais aderente às vagas ofertadas pela empresa. Entretanto, embora esta atividade exija muita atenção e foco para alcançar uma boa assertividade nas escolhas realizadas, por vezes ela é realizada em paralelo a outras atribuições desse profissional, como treinar, integrar e motivar os demais colaboradores da empresa, além é claro das atividades burocráticas do setor. Diante disto, a ideia central deste trabalho é desenvolver um algoritmo computacional composto por um conjunto de algoritmos de inteligência artificial que venha a servir como suporte a um Analista de RH. Este algoritmo tm a função de encontrar, dentro de um conjunto de dados, os candidatos mais similares a uma vaga de emprego ofertada por uma empresa. Portando este trabalho objetivou concluir, por indução, se o uso deste algoritmo computacional pode vir a contribuir para maior assertividade no recrutamento de candidatos, proporcionando maior disponibilidade de tempo ao profissional de RH para realização das demais atividades deste setor. Palavras-chave: Candidatos. Vagas de Emprego. Recursos Humanos. Métodos Ensemble. Inteligência Artificial. INTRODUÇÃO O setor de RH pode ser considerado um dos principais setores das empresas. Sua importância justifica-se, principalmente, por estar envolvido direta ou indiretamente com o funcionamento de todos os demais setores de uma organização, atuando como mediador 1 Bacharel em Ciência da Computação – UNIPÊ. E-mail: sansaof[email protected] 2 Mestre em Engenharia Informática, com ênfase em Comunicações, Serviços e Infraestruturas - Universidade de Coimbra – Portugal. E-mail: [email protected]
134 entre os interesses dos colaboradores e os da empresa. Este departamento contribui para elaboração de planos de carreiras mais assertivos, estimulando o desenvolvimento de habilidades e competências de todos os profissionais contratados. Entretanto, algumas empresas, principalmente as de pequeno porte, ainda apresentam certa resistência em criar e estruturar um setor de RH, pois consideram que outros setores são mais merecedores de investimento, como, por exemplo, os setores comercial e financeiro (OLIVEIRA, 2010). De acordo com o RH PORTAL (2018), conceituado site da área de recursos humanos, nas empresas de pequeno e médio porte geralmente o Departamento Pessoal e de RH se resumem em um setor único onde profissionais realizam tanto as tarefas relacionadas ao RH quanto ao próprio Departamento Pessoal. Contudo, como destaca CHIAVENATO (2014) existem distinções entre ambos os setores, pois enquanto o setor de RH é responsável por atrair, manter e desenvolver talentos em uma empresa enquanto o setor de Departamento Pessoal tem a atribuição de cuidar de toda a parte burocrática relacionada a contratações, demissões, elaborar folha de pagamento dos colaboradores, entre outras atividades. Tal situação nas empresas pode ser considerada um dos motivos ocorrido para o aumento do índice de rotatividade (demissão e nova contratação de colaboradores) que atingiu a marca de 3,79% em 2017 e crescimento de 82% desde 2010, conforme levantamento da consultoria Robert Half, provocando um alto custo financeiro para empresas de todo o país. Em consonância com a realidade exposta acima, outra pesquisa, realizada pela HR Trends, constatou que 85% dos profissionais de RH entrevistados não desempenham por completo as atividades estratégicas que são de responsabilidade do setor de Recursos Humanos em uma empresa. Diante disto, torna-se evidente a dificuldade encontrada por estes profissionais em conciliar atividades burocráticas com as atividades estratégicas (treinamento, integração e motivação de funcionários) que podem ser consideradas as principais atribuições de um setor de RH. METODOLOGIA A pesquisa realizada neste estudo é de natureza quantitativa que, de acordo com APPOLINÁRIO (2016) configura-se pela mensuração de variáveis pré-determinadas, visando verificar, descrever e explicar sua influência sobre outras variáveis. Foi adotado o procedimento experimental que, de acordo com GIL (2008, apud PRODANOV, 2013), consiste em submeter os objetos de estudo (neste caso o recrutamento de candidatos) à influência de certas variáveis (algoritmos de IA), em condições controladas e conhecidas, para verificar os resultados no objeto analisado. Tal prática tem por objetivo verificar, por indução, que consiste em tecer generalizações derivadas de observações de casos da realidade concreta PRODANOV (2013), se é possível identificar os candidatos mais similares ao perfil desejado para uma determinada vaga de emprego. Para implementação do algoritmo computacional foram utilizados um conjunto pré-selecionado de algoritmos de IA em Linguagem Python. Ao final da execução deste
135 algoritmo são retornados os candidatos mais similares a uma vaga de emprego em ordem decrescente de acordo com os percentuais de similaridades identificados e considerando um percentual mínimo de similaridades exigido pelo profissional de RH. INTELIGÊNCIA ARTIFICIAL E MÉTODOS ENSEMBLE O objetivo deste capítulo é descrever os principais conceitos sobre inteligência artificial e as principais estratégias de utilização de métodos ensemble. INTELIGÊNCIA ARTIFICIAL O termo “Inteligência Artificial” ao longo das últimas décadas, mais precisamente desde a sua primeira utilização, em 1956, por John McCarthy em uma conferência no Dartmouth College, em Hanover, New Hampshire, já possuiu diversas e variadas tentativas de definição, contudo o termo demonstra ser de difícil conceitualização e gera controvérsias entre vários pesquisadores. Em detrimento a toda a complexidade envolvida na definição de IA, a mesma pode ser conceitualizada, de forma mais simples e didática, como sendo uma forma de dar a uma máquina a possibilidade de realizar tarefas que uma criança é capaz de realizar, entretanto que o mais poderoso computador existente ainda não é capaz de fazê-lo, pois mesmo podendo realizar cálculos demasiadamente complexos que um ser humano possivelmente levaria dezenas de anos para resolver o mesmo não possui capacidade para diferenciar uma cadeira de metal de uma cadeira de madeira, algo facilmente perceptível para uma criança de 3 anos (ROSA, 2011). Há diversas áreas nas quais existem aplicações de técnicas da IA. Independente de qual seja o ambiente que se observe, muito provavelmente será possível identificar o uso da Inteligência Artificial desde a implementação de jogos, demonstração de teoremas e até nas tarefas mais cotidianas das pessoas. Por essa razão existem diversas vertentes de pesquisa quanto a utilização das técnicas da IA no sentido de trazer melhorias cada vez mais significativas para a ciência e a humanidade. Dentre as diversas utilidades da IA anteriormente citadas, uma das vertentes de pesquisa que está sendo amplamente utilizada atualmente são os algoritmos de aprendizado de máquina.
136 APRENDIZADO DE MÁQUINA Aprendizado de máquina é um segmento extremamente importante na IA. Para SIMON (1983 apud LUGER 2013), aprendizado de máquina é qualquer mudança em que um sistema que melhore o seu desempenho na segunda vez que ele repetir a mesma tarefa ou outra tarefa tirada da mesma população. Russel e Norving (2013) complementa que a aprendizagem pode variar do corriqueiro, como anotar um número de telefone, por exemplo, até o profundo, como mostrado por Albert Einstein, que inferiu uma nova teoria para o universo. Como o aprendizado de máquina é uma das vertentes de pesquisa mais amplas da IA (COPPIN, 2017), há dezenas de algoritmos desenvolvidos para cada tipo de aprendizado de máquina existentes divididos em três categorias principais, descritas a seguir: • Aprendizado Supervisionado: Essa forma de aprendizado caracteriza-se como indutiva pois tem como objetivo derivar conclusões gerais a partir de observações específicas (FACELI et al, 2011). Além de possuir um viés indutivo, o aprendizado supervisionado também possui um viés de busca, pois é necessário encontrar dentro do espaço de hipóteses possíveis aquela que terá um bom desempenho, mesmo em novos exemplos além do conjunto de treinamento. (RUSSEL; NORVING, 2013). • Aprendizado Não Supervisionado: Os algoritmos de aprendizagem nãosupervisionada recebem apenas dados de entrada e tem por função encontrar estrutura nas entradas fornecidas. Nestes algoritmos, não existem variáveis alvo, ou variáveis de saída para serem estimadas, por isso eles realizam procedimentos conhecidos como tarefas de descrição (FACELI et al, 2011). • Aprendizado por reforço: Essa forma de aprendizado é normalmente utilizada nas áreas da robótica, jogos e navegação. Com ela, o algoritmo descobre através de testes do tipo “tentativa e erro” quais ações rendem as maiores recompensas (RUSSEL; NORVING, 2013). Este tipo de aprendizagem tem três componentes principais: o agente, caracterizado como aprendiz ou tomador de decisão, o ambiente que consiste em tudo com que o agente interage e ações, as possíveis atitudes que o agente pode executar. ENSEMBLE METHODS Em tradução livre do inglês o termo Ensemble Methods seria algo como Conjunto de Métodos. De fato a ideia central de tal abordagem consiste em ser uma estratégia de utilização de dois ou mais métodos, ou algoritmos, para resolução de um problema com objetivo de melhorar o resultado que seria obtido em caso de utilização de apenas um algoritmo (SCIKIT-LEARN, 2018).
137 Tal prática pode ser considerada, em alguns casos, como mais assertiva que utilizar apenas um algoritmo e esperar que ele seja o melhor, ou mais preciso, em detrimento a uma miríade de algoritmos que poderiam ser levados em consideração para produzir um algoritmo final com desempenho possivelmente superior (ZHOU, 2012). Os principais tipos de algoritmos conjuntos diferenciam-se de acordo com a estratégia escolhida para fazer uso do resultado da execução dos algoritmos que os compõem, como é descrito a seguir. • Bagging: Esta estratégia consiste em reduzir a variação do resultado de um algoritmo através do calculo da média dos resultados de vários algoritmos, em casos cujo objetivo é a classificação, ou os resultados com maior ocorrência, para casos de regressão. Um exemplo do uso desta estratégia é o algoritmo de aprendizado supervisionado denominado Florestas Aleatórias que faz uso de vários algoritmos de árvores de decisão que combinados possibilitam obter uma predição com maior acurácia e maisestável (DONGES, 2018). • Boosting: Este tipo de conjunto de algoritmos refere-se a uma família de algoritmos capazes de converter algoritmos de aprendizado de máquina considerados “fracos” em algoritmos “fortes” (ZHOU, 2012). A diferença da estratégia utilizada neste algoritmo em comparação com o algoritmo anterior é que o seu resultado final é composto pelos resultados ponderados de cada algoritmo que o compõem, ao invés do resultado mais frequente ou a média dos resultados obtidos. Desta forma, cada algoritmo executado determina os recursos nos quais o próximo algoritmo se concentrará e assim, mesmo algoritmos que tenderiam a proporcionar “fracos” resultados poderão obter resultados melhores ao serem “impulsionados” por receberem como dados de entrada o resultado da execução de um algoritmo considerado mais “forte”. • Stacking: A estratégia utilizada neste algoritmo consiste em gerar um algoritmo que é treinado a partir do resultado combinado de dois (ou mais) algoritmos anteriores. Os algoritmos executados inicialmente são treinados com base em um conjunto de treinamento completo, em seguida, um algoritmo combinador é treinado tendo o resultado das saídas dos algoritmos inicial como dados de entrada. Esses algoritmos utilizados na fase inicial são geralmente heterogêneos, embora mesmo não sendo algo frequente é possível a utilização de algoritmos homogêneos (ZHOU, 2012). TECNOLOGIAS UTILIZADAS Para implementação do algoritmo conceituado foi escolhida a linguagem Python por possui diversas bibliotecas de código como a scikit-learn, que é uma biblioteca de aprendizado de máquina de código aberto desenvolvida por terceiros e distribuída separadamente. Essa biblioteca foi projetada para interagir com as bibliotecas Python numéricas e científicas, como a NumPy, por exemplo, que suporta arrays e matrizes
144 1. O cálculo de similaridade deve resultar em um valor percentual; 2. O cálculo de similaridade deve contemplar a possibilidade de que o perfil do candidato seja superior às características exigidas para vaga; 3. O cálculo de similaridade apenas deve resultar em um percentual de 100% de similaridade caso o perfil do candidato seja exatamente igual às características exigidas para vaga. Diante disso foram criadas 4 fórmulas que pudessem, em conjunto, garantirem a não violação das 3 premissas definidas anteriormente. Estas fórmulas são descritas a seguir: onde: S = Índice de Similaridade entre o par vaga-candidato k = Característica do Candidato q = Característica da Vaga w = Peso atribuído a uma característica e = Excedente da característica do candidato em relação ao requerido pela vaga d = Déficit da característica do candidato em relação ao requerido pela vaga A sequencia de utilização destas 4 fórmulas pelo algoritmo ocorre da seguinte forma. Inicialmente o algoritmo calcula a diferença entre cada uma das características do candidato em relação a vaga, caso essa diferença seja negativa seu valor é incrementado a variável Deficit (d) que ao iniciar o algoritmo possui valor 0. Durante esta etapa, caso verificado que o valor da diferença é positivo, seu valor é incrementado a variável Excedente (e) que também possui valor 0 ao início do algoritmo. Caso o valor da diferença seja igual a 0 o algoritmo não realiza nenhuma ação para seu armazenamento. Descobertos os valores para as variáveis Deficit e Excedente, o algoritmo verifica se o valor da variável Deficit é maior que zero, caso sim é executada a etapa seguinte do algoritmo utilizando a fórmula 3.1. Caso não, a fórmula utilizada é a 3.2. Essa verificação
145 se faz necessária pois a fórmula 3.1 é utilizada com objetivo de garantir a não violação da premissa 3 em casos onde poderiam ocorrer as “compensações” citadas anteriormente. VALIDAÇÃO DO ALGORITMO E ANÁLISE DE RESULTADOS De posse desse ranking de candidatos, em ordem decrescente, obtido como resultado da execução do algoritmo computacional desenvolvido, o mesmo foi apresentado ao profissional de RH da empresa para sua validação. E, de acordo com este profissional, o algoritmo escolheu 3 candidatos que o mesmo não teria selecionado. A razão do não recrutamento destes candidatos foi devido aos mesmos possuírem ensino superior completo, o que viriam a onerar a folha salarial da empresa (um dos motivos pelos quais a vaga requisitava que o candidato possuísse ensino técnico). Diante disso, o profissional de RH da empresa Sol Saúde on Life, informou ter concordado totalmente com 26 das 29 escolhas do algoritmo e discordado totalmente de 3 destas escolhas relacionadas ao recrutamento de candidatos para vaga de Técnico de Enfermagem disponibilizada pela empresa. Portanto, pode ser atribuída ao algoritmo computacional desenvolvido uma assertividade de 89,65% na realização da mesma atividade (recrutamento de candidatos) que seria feita pelo profissional humano. CONSIDERAÇÕES FINAIS O desenvolvimento deste trabalho foi muito desafiador e gratificante para o autor, pois para sua realização o mesmo teve que pesquisar diversos temas e nichos de conhecimento que não foram estudados durante a sua graduação ou que não pertenciam ao escopo de sua área de interesse de pesquisa, mas que demonstraram serem temas muito relevantes e que acrescentaram bastante conhecimento e experiência a ele. Neste estudo foi criado um conjunto de dados, obtido da área trabalhe conosco do site de uma empresa, contendo dados reais de currículos de candidatos a uma vaga de emprego disponibilizada pela mesma. Através da execução do algoritmo proposto foram criados grupos de candidatos com objetivo de reduzir a dimensionalidade do conjunto de dados criado e evitar comparações desnecessárias entre currículos com perfil totalmente incompatíveis com a vaga disponibilizada. Após isso, foi obtido um ranking de candidatos, em ordem decrescente, com base nos respectivos índices de similaridade obtidos após comparação feita pelo algoritmo entre a vaga disponibilizada e os candidatos com perfil similar a mesma. A validação do trabalho foi obtida mediante submissão do resultado da execução do algoritmo desenvolvido ao profissional de RH da empresa que disponibilizou a vaga de emprego para sua subsequente verificação de concordância ou discordância quanto aos candidatos selecionados pelo algoritmo.
146 Após validação do profissional de RH pode ser considerado que o índice de assertividade do algoritmo que foi de 89,65% justifica sua utilização pela empresa como auxiliar nas decisões de recrutamento de candidatos pelo setor de RH, aumento o tempo disponível dos colaboradores deste setor quanto a realização das atividades que são de sua responsabilidade, mas que por vezes eram realizadas de maneira incompleta devido ao temo gasto analisando individualmente cada currículo enviado de candidatos as vagas de emprego disponibilizadas pela empresa. Embora o algoritmo desenvolvido tenha alcançado um alto índice de assertividade, pode ser realizado como trabalhos futuros a verificação da razão do mesmo ter considerado o recrutamento de candidatos que superavam ou que eram inferiores ao intervalo dos percentuais de similaridade definidos pelo profissional de RH da empresa para o recrutamento e subsequente participação do processo seletivo da vaga disponibilizada, de modo a melhorar ainda mais o índice de assertividade do mesmo. REFERÊNCIAS ALVAREZ, E. B.; SIRIANI, A. L. R.; VIDOTTI, S. A. B. G.; CARVALHO, A. M. G. Os Sistemas de Recomendação, Arquitetura da Informação e a Encontrabilidade da Informação. Transinformação, Dez 2016, vol.28, no.3, p.275-286. APPOLINÁRIO, F. Metodologia científica. São Paulo : Cengage, 2016. BANOV, M. R. Recrutamento, selecão e competências. 4. ed. São Paulo: Atlas, 2015. BREIMAN, L. Bias, variance, and arcing classifiers. Technical Report 460, Statistics Department, University of California, Berkeley, CA, 1996a. CHIAVANETO, I. Gestão de pessoas: o novo papel dos recursos humanos nas organizações. 4. ed. Barueri, SP: Manole, 2014. CHIAVENATO, I. Recursos humanos: o capital intelectual das organizações. Rio de Janeiro: Elsevier, 2009. COPPIN, B. Inteligência Artificial. Rio de Janeiro: LTC, 2017. COSTA, M. T. C. da. Uma Arquitetura Baseada em Agentes para Suporte ao Ensino à Distância. Tese (Doutorado em Engenharia de Produção) – Curso de Pós-Graduação em Engenharia de Produção e Sistemas, Universidade Federal de Santa Catarina – UFSC, Florianópolis, 1999.
147 DANIEL, G. P. Otimização de algoritmos de agrupamento espacial baseado em densidade aplicados em grandes conjuntos de dados. Dissertação (mestrado) – Universidade Estadual Paulista Júlio de Mesquita Filho, Instituto de Biociências, Letras e Ciências Exatas. São José do Rio Preto, 2016. DONGES Niklas. Aprendendo em uma Floresta Aleatória. Disponível em: https://medium. com/machina-sapiens/o-algoritmo-da-floresta-aleat%C3%B3ria-3545f6babdf8. Acesso em: 15 de Out. 2018. ESTER, M.; SANDER, J.; KRIEGEL, H.; XU, X. Density-Based Clustering in Spatial Databases: The Algorithm GDBSCAN and Its Applications. Data Mining and Knowledge Discovery. Berlin: Springer-Verlag, 1998. FACELI, K.; LORENA, A. C.; GAMA, J.; CARVALHO, A. C. P. L. F. Inteligência Artificial: Uma abordagem de aprendizado de máquina. Rio de Janeiro: LTC, 2011. FERNANDES, A. M. R. da. Inteligência Artificial: noções gerais. 3. imp. Florianópolis: VisualBooks, 2005. FORD, K.; HAYES, P. IJCAI’95 Proceedings of the 14th international joint conference on Artificial intelligence. Turing Test Considered Harmful, Quebec, Canadá, v. 1, p. 972-977, 1995. HR TRENDS. Panorama do RH. Disponível em: https://www.propay.com.br/hrtrends. Acesso em: 13 de Set. de 2018. KERN, E. Uma Estrutura de Agentes para o Processo de Licitação. 1998. Dissertação (Mestrado em Ciência da Computação) – Curso de Pós-graduação em Ciência da Computação, Universidade Federal de Santa Catarina, Florianópolis. LINDEN, R. Técnicas de Agrupamento: Tutorial. Revista de Sistemas de Informação da FSMA, n. 4, p. 18-36, 2009. Disponível em: <http://www.fsma.edu.br/si/sistemas.html>. Acesso em: 23 Abr. 2018. LUGER, G. F. Inteligência Artificial. 6. ed. São Paulo: Pearson Education do Brasil, 2013. MCCULLOCH, W. S.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. Bulletin of mathematical biophysics, vol. 5 (1943), pp. 115–133. NWANA, M. Intelligent Agents: A Technology and Business Application Analysis. 1995. Disponível em: <http://haas.berkeley.edu/~heilmann/agents/.> Acesso em 18 abr. 2018. OLIVEIRA, J. A influência da área de RH na produtividade das pequenas empresas. XIII SemeAd – Seminários em Administração. São Paulo. 2010.
148 PRODANOV, C. C; FREITAS, E. C. de. Metodologia do trabalho científico: métodos e técnicas da pesquisa e do trabalho. 2. ed. – Novo Hamburgo: Feevale, 2013. Reductionism: Occam’s Razor, Reductionism, Monism, Reduction, Type Physicalism, Dialectical Monism, Separation of Concerns. [S.l.]: General Books. 2010. 96páginas. RH PORTAL. Recursos Humanos x Departamento Pessoal. Disponível em: https://www. rhportal.com.br/artigos-rh/recursos-humanos-x-departamento-pessoal/. Acesso em: 14 de Out. de 2018. ROBERT Half. Brasil tem o maior índice de rotatividade. Disponível em: https://www. catho.com.br/carreira-sucesso/colunistas/gestao-rh/brasil-tem-o-maior-indice-derotatividade/. Acesso em: 17 de Nov. de 2018. ROSA, J. L. G. Fundamentos da inteligência artificial. Rio de Janeiro: LTC, 2011. ROZA, F. S. Aprendizagem de máquina para apoio à tomada de decisão em vendas do varejo utilizando registros de vendas. 2016. Relatório submetido à Universidade Federal de Santa Catarina como requisito para a aprovação da disciplina DAS 5511: Projeto de Fim de Curso, Universidade Federal de Santa Catarina – UFSC, Florianópolis. RUSSELL, S.; NORVIG, P. Inteligência artificial. Rio de Janeiro: Elsevier, 2013. SCIKIT LEARN. Ensemble Methods. Disponível em: http://scikit-learn.org/stable/modules/ ensemble.html. Acesso em: 23 Abr. 2018. SIMON, H. A. Why should machines learn? In: MICHALSKI, R. S.; CARBONELL, J. G.; MITCHEL, T. M. (Eds). Machine Learning. An Artificial Intelligence Approach, v.1. Palo Alto, CA: Tioga, 1983. MONTEIRO, S. T.; RIBEIRO, C. H. C. Desempenho de algoritmos de aprendizagem por reforço sob condições de ambiguidade sensorial em robótica móvel. Sba Controle & Automação. vol.15, n. 3 Campinas, 2004. Disponível em: < http://dx.doi.org/10.1590/S010317592004000300008>. Acesso em: 23 Abr. 2018. VALÊNCIO, C. R. et al. VDBSCAN+: performance optimization based on GPU parallelism. In: international conference on parallel and distributed computing, applications and technologies (pdcat), 2013. p. 23-28. VAPNIK, V. N. The nature of statistical learning theory. New York, NY, USA: Springer-Verlag New York, Inc., 1995. ISBN 0387945598. Disponível em: <http://portal.acm.org/citation. cfm?id=211359>.
149 WOOLDRIDGE, M.; JENNINGS, N. R. Intelligent Agents: Theory and Practice. The Knowledge Engineering Review, v. 10, n. 2, p. 115-152, 1995. ZHOU, ZHI-HUA. Ensemble Methods: Foundations And Algorithms. Taylor & Francis Group, LLC, 2012.
150