• Nenhum resultado encontrado

POPGESTOR: Sistema Distribuido para Gestão de Recursos Humanos - Componente Vital de um Sistema de Gestão Empresarial (ERP)

N/A
N/A
Protected

Academic year: 2021

Share "POPGESTOR: Sistema Distribuido para Gestão de Recursos Humanos - Componente Vital de um Sistema de Gestão Empresarial (ERP)"

Copied!
82
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ESPECIALIZADA EM CIÊNCIAS AGRÁRIAS

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

André Gomes da Silva

POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS HUMANOS

Componente Vital de um Sistema de Gestão Empresarial (ERP)

Macaíba 2018

(2)

POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS HUMANOS

Componente Vital de um Sistema de Gestão Empresarial (ERP)

Trabalho de conclusão de curso de graduação apresentado à Unidade Acadêmica Especializada em Ciências Agrárias da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do título de Tecnólogo (a) em Análise e Desenvolvimento de Sistemas.

Orientador: Prof. Dr. Edson Moreira Silva Neto

Macaíba 2018

(3)

Universidade Federal do Rio Grande do Norte – UFRN Sistema de Bibliotecas – SISBI

Catalogação de Publicação na Fonte. UFRN – Biblioteca Central Zila Mamede – Escola Agrícola de Jundiaí – EAJ

(4)

POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS HUMANOS

Componente Vital de um Sistema de Gestão Empresarial (ERP)

Trabalho de conclusão de curso de graduação apresentado à Unidade Acadêmica Especializada em Ciências Agrárias da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do título de Tecnólogo (a) em Análise e Desenvolvimento de Sistemas.

Aprovado em: ____ de _______ _____.

BANCA EXAMINADORA

__________________________________________ Prof. Dr. Edson Moreira Silva Neto – EAJ/UFRN (Orientador)

__________________________________________

Prof.ª Dr.ª Laura Emmanuella Alves dos Santos Santana de Oliveira – EAJ/UFRN

__________________________________________ Prof. Dr. Carlos Henrique Grilo Diniz – EAJ/UFRN

__________________________________________ Eng. Helton Pierre Lucena de Medeiros – UFRN/NURA/PoP-RN

(5)

Dedico este trabalho primordialmente a Deus, por me conceder o dom da vida, aos meus pais e demais familiares, professores e amigos que unanimemente me acolheram em suas orações e apoio incondicional durante toda esta jornada.

(6)

Agradeço em primeiro lugar à Deus pelo cuidado, por não me deixar esquecer que não estou só nesse caminho, por acalentar e acalmar a minha mente nas horas mais difíceis possibilitando que a mesma estivesse sã para que os objetivos pudessem ser alcançados.

Aos meus pais, Everaldo Ferreira da Silva, Erivaldo Silva do Nascimento e Carmelúcia Gomes de Lira Nascimento, pelas orações incessantes, estímulos diários e por sempre acreditarem em mim, inclusive quando nem eu mesmo estava mais acreditando.

À minha irmã Thatiane Cristina e ao meu filho primogênito Gabriel Henrique, que praticamente me obrigaram, no bom sentido da palavra, a prestar o ENEM no ano de 2015, praticamente 20 anos após ter concluído os estudos. Vocês me proporcionaram a realização de um sonho e assim me deram um bilhete premiado rumo ao conhecimento, ao crescimento pessoal e profissional.

À minha companheira Samara Sousa Duarte pela paciência durante todo este processo (risos). Ao meu filho caçula Enzo Gabriel pelo sorriso inspirador que durante os intervalos das pesquisas e do desenvolvimento deste trabalho aliviaram e renovaram minhas forças.

A todos os meus professores da EAJ/UFRN que desde o primeiro período do TADS me fizeram apaixonar pelo curso, passando conhecimentos com esmero, plantando junto comigo as sementes que hoje germinam e me possibilitam vislumbrar um futuro melhor. Me sinto orgulhoso em ter ao longo destes três anos usufruído do alto nível intelectual, profissional e humano de cada um destes virtuosos educadores que compõem esta honrosa casa de ensino.

Em especial aos professores: Leonardo Rodrigues, por me apresentar ao mundo dos microcontroladores, mundo este que faz parte deste trabalho; Laura Emmanuella, por me ensinar como é fascinante o mundo da programação orientada a objetos, da leitura e da pesquisa; Alessandra Mendes, pelo ensinamento de que o meu limite é imposto apenas por mim mesmo e que no mundo do conhecimento mais vale uma derrota conquistada com coragem do que uma vitória cômoda. Ensinamento aprendido professora; Edson Moreira, pela amizade, confiança e apoio incondicionais, por disponibilizar toda infraestrutura do PoP-RN para que o desenvolvimento deste trabalho fosse possível.

A todos os amigos distintos que fiz ao longo desta jornada na EAJ/UFRN e que levarei pra vida, bem como a todo corpo de bolsistas, funcionários e coordenação do PoP-RN (local onde estagiei por exatos dois anos). Em especial aos amigos Diego Amaral, Helton Pierre, Mário Rolim, Bruno Oliveira, Eduardo Rocha, Gabriel Macedo, Thiago Dantas e Nicole Rieckmann, que nos ajudaram no desenvolvimento direto deste trabalho atuando na construção de toda infraestrutura física e lógica necessária. Jamais esquecerei vocês.

À Escola Agrícola de Jundiaí (EAJ) e Universidade Federal do Rio Grande do Norte (UFRN) por todo apoio institucional dispensado para que pudéssemos concluir mais esta etapa no dia de hoje.

(7)

“Cedo ou tarde você descobrirá a diferença entre saber o caminho e percorrer o caminho.”

(8)

pessoas e organizações tangem suas vidas e negócios. Diante dessas transformações as organizações têm se utilizado da Tecnologia da Informação como aliada no processo de organização, processamento, otimização da informação e apoio à tomada de decisões pela alta gestão. Essa tendência se consolida com o surgimento dos sistemas ERP (Enterprise Resource Planning), por condensarem características direcionadas ao planejamento e gestão dos recursos da organização, com base na informação gerada a partir da integração dos dados de todos os seus departamentos em forma de relatórios, visando o alcance de metas, aumento da produtividade e competitividade. O objetivo dessa monografia é apresentar o desenvolvimento do POPGESTOR: Sistema Distribuído para Gestão de Recursos Humanos, como módulo de controle do sistema ERP da organização PoP-RN. O POPGESTOR auxilia os profissionais de Recursos Humanos, bolsistas e funcionários da organização nos processos de gestão da informação, ponto eletrônico de bolsistas e meio de acesso ao prédio da organização, ambos por leitura e autenticação biométrica (impressão digital). O sistema foi modelado com base na linguagem UML (Unified Modeling Language), no modelo MER (Modelo Entidade Relacionamento) e implementa o padrão arquitetural MVC (Model, View e Controller) em seus artefatos de software, também é composto por cinco módulos distintos que trabalham integrados, dos quais: três encontram-se em pleno funcionamento (Módulo de Cadastro Biométrico – MCB, Módulo de Abertura de Porta Eletrônica – MAPE e Módulo Arduino de Acionamento de Relé – MAAR), um em fase final de testes (Módulo de Leitura de Ponto Eletrônico - MLPE), e o último em fase inicial de testes (Módulo Web de Gerenciamento – MWG). Os testes realizados produziram resultados satisfatórios indicando que o POPGESTOR atingiu os objetivos propostos.

Palavras-chave: Biometria, Impressão Digital, Sistemas Distribuídos, Sistema ERP, Gestão de

(9)

and organizations manage their lives and business. Considering these transformations, organizations have been using Information Technology as an ally in the process of organizing, processing, optimizing information and supporting decision-making by the board. This trend is reinforced by the emergence of ERP (Enterprise Resource Planning) systems, as they condense characteristics directed to the planning and management of the organization's resources, based on the information generated from the integration of the data of all its departments in the form of reports, aiming at the achievement of goals, increased productivity and competitiveness. The purpose of this monograph is to present the development of POPGESTOR: Distributed System for Human Resource Management, as a control module of the ERP system of the PoP-RN organization. POPGESTOR helps human resources professionals, trainees and employees of the organization in the information management processes, electronic point sheet of the trainees and access to the organization's building, both by biometric reading and authentication (digital printing). The system was modeled based on the UML (Unified Modeling Language) language, model MER (Relationship Entity Model) and implements the MVC (Model, View and Controller) architectural standard in its software artifacts, it is also composed of five distinct integrated modules, of which: three are fully functioning (Biometric Register Module - MCB, Electronic Gate Opening Module - MAPE and Arduino Relay Drive Module - MAAR), one is in it's final phase of testing (Electronic Point Reading Module - MLPE) and the last one on it's initial phase (Web Management Module - MWG). The tests performed produced satisfactory results indicating that the POPGESTOR reached the proposed objectives.

Keywords: Biometrics, Digital Printing, Distributed Systems, ERP System, Human Resource

(10)

Figura 1. Composição Modular do POPGESTOR. ... 18

Figura 2. Fluxo de Dados do Padrão MVC. ... 24

Figura 3. Seis Características Biométricas mais Comuns ... 25

Figura 4. Dedos de Silicone utilizados para Fraudar Sistemas Biométricos. ... 28

Figura 5. Comparativo entre Sistemas de Virtualização. ... 29

Figura 6. Arquitetura Docker. ... 30

Figura 7. Diagrama de Sequência para Comunicação por Meio de Sockets. ... 31

Figura 8. Arduino Uno REV3... 32

Figura 9. Sketch de Exemplo do Arduino. ... 33

Figura 10. Organograma Inicial da Iniciativa POP-ERP. ... 39

Figura 11. Diagrama de Casos de Uso do Funcionário... 41

Figura 12. Diagrama de Casos de Uso do Bolsista ... 42

Figura 13. Diagrama de Classes MWG... 43

Figura 14. Diagrama de Classes do MCB ... 44

Figura 15. Diagrama de Classes do MLPE ... 44

Figura 16. Diagrama de Classes do MAPE. ... 45

Figura 17. Diagrama de Implantação do POPGESTOR ... 46

Figura 18. Diagrama Conceitual. ... 47

Figura 19. Diagrama Lógico Relacional. ... 48

Figura 20. Leitora Biométrica USB Hamster DX NITGEN. ... 50

Figura 21. Versão Simplificada do Diagrama de Implantação – Contexto MCB. ... 53

Figura 22. Diagrama de Atividades – Fluxo de Troca de Mensagens (Adaptação). ... 54

Figura 23. Tela de Cadastro Biométrico do POPGESTOR. ... 55

Figura 24. Fluxo de Processamento da Função Verify. ... 56

Figura 25. Função Verify Iterando sobre a Base de Dados. ... 56

Figura 26. Módulo MLPE em Funcionamento Experimental no PoP-RN. ... 58

Figura 27. Módulo Externo de Leitura Biométrica... 60

Figura 28. Sketch do MAAR. ... 61

Figura 29. Processo de Confecção de Placas de Circuito Impresso ... 62

Figura 30. Arduino Fixado sob Móvel ... 62

Figura 31. Dashboard do Módulo MWG. ... 63

Figura 32. View Consulta de Departamentos. ... 65

Figura 33. View Consulta de Projetos ... 65

(11)

Tabela 1. Diferenças entre o Sistema Operacional comum e Virtualizado com Docker. ... 30

Tabela 2. Seleção dos Materiais ... 34

Tabela 3. Requisitos Funcionais ... 39

Tabela 4. Requisitos não-funcionais ... 40

Tabela 5. HAMSTER DX NITGEN – Características. ... 50

Tabela 6. HAMSTER DX NITGEN – Especificações Técnicas. ... 52

Tabela 7. Threads do Módulo MLPE ... 59

Tabela 8. Threads do Módulo MAPE ... 60

Tabela 9. Testes dos Módulos do POPGESTOR... 69

Tabela 10. Dicionário de Dados – Tabela: autenticacao. ... 76

Tabela 11. Dicionário de Dados – Tabela: popusers. ... 76

Tabela 12. Dicionário de Dados – Tabela: departamentos... 77

Tabela 13. Dicionário de Dados – Tabela: bolsistas. ... 78

Tabela 14. Dicionário de Dados – Tabela: registros_ponto. ... 78

Tabela 15. Dicionário de Dados – Tabela: projetos. ... 79

Tabela 16. Dicionário de Dados – Tabela: horários. ... 80

Tabela 17. Dicionário de Dados – Tabela: registros_porta. ... 80

Tabela 18. Dicionário de Dados – Tabela: parametros. ... 81

Tabela 19. Dicionário de Dados – Tabela: popusers_departamentos. ... 81

(12)

AJAX – Asynchronous Javascript and XML CA – Computação Autonômica

CASE – Computer-Aided Software Enginering CRUD – Create, Read, Update e Delete

EAJ – Escola Agrícola de Jundiaí ERP – Enterprise Resource Planning GUI – Graphical User Interface

IDE – Integrated Development Environment JDBC – Java™ EE Database Connectivity JSON – JavaScript Object Notation

LDAP – Lightweight Directory Access Protocol LFD – Live Finger Detection

MAAR – Módulo Arduino de Acionamento de Relé MAPE – Módulo de Abertura de Ponto Eletrônico MCB – Módulo de Cadastro Biométrico

MER – Modelo Entidade Relacionamento MLPE – Módulo de Leitura de Ponto Eletrônico MRP II – Manufacturing Resource Planning II MVC – Model – View – Controller

MWG – Módulo Web de Gerenciamento ODBC – Open Database Connectivity ORM – Object Relational Mapper PCB – Placa de Circuito Impresso PHP – Hypertext Preprocessor

REST – Representational State Transfer RNP – Rede Nacional de Ensino e Pesquisa SDK – Software Development Kit

SGBD – Sistema Gerenciador de Banco de Dados TCP – Transmission Control Protocol

TI – Tecnologia da Informação

UFRN – Universidade Federal do Rio Grande do Norte UML – Unified Modeling Language

(13)

1.1 JUSTIFICATIVA... 18 1.2 OBJETIVOS ... 19 1.2.1 Objetivo geral ... 19 1.2.2 Objetivos Específicos ... 20 1.3 ORGANIZAÇÃO DO TRABALHO ... 20 2 REFERENCIAL TEÓRICO ... 21 2.1 SISTEMAS DISTRIBUIDOS ... 21

2.2 MICROFRAMEWORK PYTHON FLASK ... 23

2.3 PADRÃO ARQUITETURAL DE SOFTWARE – MVC ... 23

2.4 BIOMETRIA – IMPRESSÃO DIGITAL ... 25

2.4.1 Modos de autenticação ... 26

2.4.2 Impressão digital ... 26

2.5 CONTÊINERES DOCKER ... 28

2.6 COMUNICAÇÃO ENTRE PROCESSOS POR MEIO DE SOCKETS TCP ... 31

2.7 MICROCONTROLADOR ARDUINO UNO ... 32

3 MATERIAIS E MÉTODOS ... 34

3.1 MATERIAIS ... 34

3.2 MÉTODOS ... 35

4 DESENVOLVIMENTO ... 36

4.1 SELEÇÃO DAS TECNOLOGIAS ... 36

4.1.1 Banco de dados ... 36

4.1.2 Linguagens de programação ... 36

4.1.2.1 Java app (desktop) ... 37

4.1.2.2 C++ ... 38

4.1.2.3 Python (Microframework Web Flask)... 38

4.2 ANÁLISE DE REQUISITOS ... 38

4.3 MODELAGENS ... 40

4.3.1 Modelagem UML ... 40

4.3.1.1 Diagrama de casos de uso ... 41

(14)

4.3.2.1 Modelo conceitual – MER ... 47

4.3.2.2 Modelo lógico relacional ... 48

4.3.2.3 Dicionário de dados ... 49

4.4 IMPLEMENTAÇÃO DOS MÓDULOS DESKTOP, ARDUINO e web ... 49

4.4.1 Implementação dos módulos Java ... 49

4.4.1.1 Dispositivo USB de leitura biométrica Nitgen ... 50

4.4.1.2 Módulo de cadastro biométrico – MCB ... 53

4.4.1.3 Módulos de leitura biométrica (MLPE – MAPE) ... 55

4.4.1.3.1 Mecanismo de busca da biblioteca NBIOBSPJNI.DLL ... 56

4.4.1.3.2 Módulo de leitura de ponto eletrônico – MLPE ... 57

4.4.1.3.3 Módulo de acionamento de porta eletrônica – MAPE ... 59

4.4.2 Implementação do módulo Arduino – MAAR ... 61

4.4.3 Implementação do módulo web – MWG ... 63

5 RESULTADOS E DISCUSSÕES ... 67

6 CONCLUSÃO ... 71

REFERÊNCIAS BIBLIOGRÁFICAS ... 73

(15)

1 INTRODUÇÃO

O advento da Internet e sua posterior difusão em escala global somados ao célere e contínuo avanço da tecnologia em suas inúmeras frentes, revolucionaram o modo como pessoas e organizações tangem suas vidas e negócios no mundo moderno.

Tais mudanças trouxeram diversos benefícios para pessoas comuns e organizações. Este trabalho, portanto, insere-se no contexto do desenvolvimento da Tecnologia da Informação (TI) sobre as organizações.

Independentemente do tamanho da organização e da natureza da mesma, pública ou privada, não basta instalar computadores, impressoras e aplicativos utilitários interligados em rede pelos diversos departamentos da organização para que a mesma se torne automaticamente organizada. Os recursos da TI resolvem problemas nas organizações quando bem planejados e utilizados, como destacam Rezende e Abreu (2003, p. 56) ao apresentarem a necessidade da realização de um trabalho prévio de organização interna e externa da empresa, que compreende singularmente as funções empresariais e os específicos procedimentos do negócio principal que abrangem as atividades de recursos humanos, produção, comercial, financeira, de materiais e respectivos aspectos legais e jurídicos, a fim de que somente a partir do alcance desse limiar, seja iniciado o processo de informatização da organização.

Observou-se que para se manterem no mercado as organizações necessitam de muito mais do que o status de organização informatizada, ou seja, precisam ser competitivas, estarem a altura da concorrência, bem como atenderem as diversas necessidades de seus clientes, que são inúmeras e em constante mutação. Percebeu-se ainda que não apenas investimentos em tecnologia de produtos e/ou serviços e infraestrutura empresarial são fundamentais para garantir a sobrevivência da organização, e sim o investimento em Tecnologia da Informação. A TI tem se mostrado crucial para que as organizações possam estar inteiradas acerca do que ocorre ao seu redor de um modo proativo e com base em informações produzidas a partir da análise e do processamento de dados confiáveis, influenciar positivamente no processo de tomada de decisões da alta gestão da organização.

Um sistema de informação (SI) pode ser definido tecnicamente como um conjunto de componentes inter-relacionados que coletam (ou recuperam), processam, armazenam e distribuem informações destinadas a apoiar a tomada de decisões, a coordenação e o controle de uma organização. Além de dar apoio à tomada de decisões, à coordenação e ao controle, esses sistemas também auxiliam os gerentes e trabalhadores a analisar problemas, visualizar assuntos complexos e criar novos produtos. (LAUDON, K. J., 2010, p. 12)

(16)

Assim, a tecnologia não mais figura apenas como sinônimo de infraestrutura empresarial moderna, ou ainda de automação de processos repetitivos outrora realizados manualmente. Dadas as mudanças provocadas pelo próprio mercado, e o desenvolvimento tecnológico dentre outros fatores, a Tecnologia por Tecnologia rendeu-se à Tecnologia da Informação, que protagoniza dentro das organizações um papel de coleta, análise e cruzamento de dados que objetiva manter a competitividade, sobrevivência e o poder empreendedor das organizações através da tomada de decisões assertivas por parte da alta gestão.

E é neste contexto que surgiram a partir dos anos 90 os sistemas ERP, sigla para Enterprise Resource Planning (planejamento de recursos empresariais) como uma evolução dos sistemas MRP II sigla para Manufacturing Resource Planning (planejamento dos recursos de manufatura).

Os sistemas ERP são sistemas de informação integrados adquiridos na forma de pacotes comerciais de software com a finalidade de dar suporte à maioria das operações de uma empresa industrial (suprimentos, manufatura, manutenção, administração financeira, contabilidade, recursos humanos, etc.). (ZWICKER; ZOUZA, 2003, p. 2)

A importância da utilização de um sistema ERP em uma organização é justificada quando se analisa os seus benefícios em detrimento das necessidades de se integrar as informações de seus departamentos de forma segura e hierárquica, através de módulos de software distintos e interconectados que compartilham informações comuns, garantindo a unicidade e confiabilidade.

Nesse sentido, para atender a essas necessidades o Ponto de Presença da Rede Nacional de Ensino e Pesquisa no Rio Grande do Norte (PoP-RN), que representa a Rede Nacional de Ensino e Pesquisa (RNP) no estado do RN atende às demandas operacionais da rede (Internet a nível acadêmico), às demandas de conectividade e informações aos usuários de todo o Estado, bem como coordena e opera serviços de Internet para as instituições acadêmicas e de pesquisa no estado (POP-RN, 2018), é sugerido como cenário experimental para a implementação de um sistema ERP.

O PoP-RN tem em sua estrutura organizacional aproximadamente oito departamentos, cujo conjunto de atividades desenvolvidas atingem um alto grau de organização e documentação. O PoP-RN faz uso de diversos sistemas de informação que gerenciam suas atividades. Alguns destes artefatos utilizados são proprietários enquanto outros de iniciativa Open Source (código aberto).

No entanto, devido a heterogeneidade desses sistemas, bem como do uso de tais artefatos se darem de maneira independente por cada departamento, salvo algumas exceções

(17)

(dentre elas o AtivPop1), foram observados alguns problemas tais como: redundância em informações utilizadas por alguns departamentos; ausência de homogeneidade na gerência das informações do departamento administrativo (Recursos Humanos) com os demais departamentos; controle ainda manual do movimento de ponto dos bolsistas da organização.

Isto posto, uma iniciativa foi realizada pela coordenação do PoP-RN, com o objetivo de conceber um layout de projeto para o desenvolvimento de um sistema ERP customizado para a organização haja vista que os ERPs existentes no mercado são em sua maioria direcionados aos setores de indústria e comércio, além de demandarem alto custo de customização, implantação e manutenção.

Tal iniciativa, provisoriamente denominada POP-ERP, objetiva integrar os departamentos, compartilhar informações comuns, extinguir retrabalhos, produzir relatórios gerenciais diversos com foco na gerência e tomada de decisões e ainda centralizar o controle de acesso por meio de níveis de permissões aos usuários através da ferramenta. Alguns módulos do sistema ERP já estão em desenvolvimento e serão entregues e integrados em breve.

Uma dessas aplicações é o POP-INVENTÁRIO, nome dado ao Sistema de Controle Patrimonial de Ativos e Passivos de Rede da organização, desenvolvido por dois alunos do Curso Técnico em Informática Integrado ao Médio da Escola Agrícola de Jundiaí e também bolsistas do PoP-RN. A aplicação foi modelada e desenvolvida sob os mesmos paradigmas e tecnologias utilizados no objeto deste trabalho, bem como integra a ferramenta ERP.

O cerne deste trabalho, denominado de POPGESTOR, é provavelmente um dos mais importantes pilares deste ERP. O POPGESTOR é um sistema distribuído que possui cinco módulos de softwares integrados que atuam no processo de gestão de recursos humanos com a finalidade de armazenar informações cadastrais de usuários (funcionários, bolsistas), gerenciar e controlar o acesso aos módulos do ERP, controlar o ponto eletrônico de bolsistas por leitura biométrica e realizar o controle de acesso à sede da organização (porta de entrada) por meio da junção da autenticação biométrica com um microcontrolador.

A Figura 1 ilustra a composição modular do POPGESTOR com suas descrições.

1 Sistema de gerência de projetos que utiliza a plataforma Open Source REDMINE SOLUTIONS para controle de

(18)

Figura 1. Composição Modular do POPGESTOR.

FONTE: própria do autor.

1.1 JUSTIFICATIVA

Dada a ausência de um sistema de gestão de Recursos Humanos (RH) que concentre informações cadastrais de funcionários e bolsistas, e as atividades relacionadas aos bolsistas, o departamento administrativo tem se utilizado de ferramentas alternativas para manter o controle destas informações tais como: Microsoft Word, Microsoft Excel e o AtivPop. No entanto, apesar da finalidade de armazenamento desses dados ser feita na prática através destas aplicações, a atomicidade das informações armazenadas não é garantida, o que permite a existência de redundâncias e/ou duplicidade nos dados armazenados. Um outro ponto sensível é o controle manual do ponto dos bolsistas através do preenchimento de folha de ponto. A tarefa de computação e contabilização das horas de atividades dos mesmos, é exaustiva e demanda um trabalho manual, mensal e contínuo em uma tarefa que pode seguramente ser automatizada através de um sistema de informação com esta finalidade.

Conforme apresentado na introdução, a iniciativa POP-ERP prevê o desenvolvimento de uma aplicação para gestão do departamento de recursos humanos, bem como de outras aplicações específicas aos demais departamentos, que visa centralizar informações comuns e reaproveita-las quando necessário. Como já apontado anteriormente, os Sistemas Integrados de

(19)

Gestão (SIG), que são sistemas ERPs existentes no mercado, possuem um alto custo de implantação e manutenção, sem contar que são mais comumente difundidos nos segmentos de indústria e comércio, ou seja, demandariam customizações para atender as necessidades do PoP-RN elevando significativamente os custos. Alguns dos principais sistemas ERPs mais utilizados pelas organizações no Brasil são: SAP; Microsiga; Retail Pro; Linx; Totvs; (o Linx e o Retail Pro atendem clientes de menor porte).

Diante das necessidades expostas o POPGESTOR, sistema distribuído composto por cinco módulos integrados por meio de comunicação entre processos, surgiu como uma alternativa viável não só por sanar as questões que envolvem as necessidades diretas apresentadas acima relativas a implantação de um sistema ERP, com também pelo baixíssimo custo de aquisição de equipamentos/componentes eletrônicos, implementação e manutenção da ferramenta, uso de tecnologias Open Source, com destaque à solução integrada por meio de leitura biométrica no processo de verificações, validações, ponto eletrônico entre outras aplicabilidades possíveis, em detrimento a soluções existentes no mercado de empresas consolidadas que custam mais caro e não integram seus bancos de dados com o banco de dados da aplicação ERP, em alguns casos armazenam as credenciais biométricas no próprio dispositivo, o que não é aconselhável. Além dessas justificativas o POPGESTOR mostrou-se substancialmente viável em razão de ter sua implementação e manutenção de código fonte realizados pela própria organização, o que possibilita ainda a qualquer tempo vir a realizar modificações e/ou novas implementações graças a arquitetura aberta implementada.

1.2 OBJETIVOS

Nas subseções seguintes serão apresentados o objetivo geral e os objetivos específicos.

1.2.1 Objetivo geral

O objetivo deste trabalho é apresentar e implementar um sistema distribuído de gestão de Recursos Humanos como componente primordial de um sistema de organização empresarial (ERP).

(20)

1.2.2 Objetivos Específicos

Como objetivos específicos podem ser estabelecidos os cinco módulos a seguir, que juntos compõem o POPGESTOR:

Desenvolvimento do Módulo de Cadastro Biométrico (MCB);

Desenvolvimento do Módulo de Leitura do Ponto Eletrônico (MLPE);

Desenvolvimento do Módulo de Abertura da Porta Eletrônica (MAPE);

Desenvolvimento do Módulo Arduino de Acionamento de Relé (MAAR);

Desenvolvimento do Módulo Web de Gerenciamento (MWG); 1.3 ORGANIZAÇÃO DO TRABALHO

Os conteúdos dos capítulos a seguir estão divididos da seguinte forma:

Capítulo 2: Apresenta o referencial teórico de embasamento do tema;

Capítulo 3: Materiais e Métodos;

Capítulo 4: Descreve o desenvolvimento do trabalho, organização e execução dos processos de seleção de materiais, tecnologias aplicadas, análise de requisitos, modelagens, processo de implementação dos módulos Desktop, Arduino e Web;

Capítulo 5: Apresenta os resultados obtidos com o sistema desenvolvido;

Capítulo 6: Apresenta as conclusões do trabalho, contribuições, bem como as propostas para trabalhos futuros;

(21)

2 REFERENCIAL TEÓRICO

Este capítulo apresenta as definições utilizadas como base teórica para este trabalho acerca das tecnologias adotadas, arquitetura das aplicações, bem como do modelo de comunicação entre elas. O Capítulo 2 está disposto da seguinte forma: a seção 2.1 descreve as definições de sistemas distribuídos; a seção 2.2 apresenta o microframework Python Flask; a seção 2.3 apresenta o padrão arquitetural de software utilizado – MVC; a seção 2.4 descreve conceitos relacionados a biometria (impressão digital); a seção 2.5 apresenta conceitos de Contêineres Docker; a seção 2.6 descreve a comunicação entre processos por meio de Sockets TCP e, finalmente, a seção 2.7 apresenta o microcontrolador Arduino Uno.

2.1 SISTEMAS DISTRIBUIDOS

Segundo Coulouris et al. (2013), sistemas distribuídos são aqueles compostos por componentes de hardware e/ou software, localizados em computadores interligados em rede, que comunicam-se e coordenam a execução de ações por meio do envio de mensagens entre si.

Tanenbaum e Steen (2008) definem sistemas distribuídos de uma forma interessante. Apontam que são aqueles sistemas que ao seu usuário final é apresentado como um sistema único e coerente abstraindo toda complexidade das trocas de mensagens existentes entre um conjunto de computadores independentes ligados em rede.

A principal motivação de um sistema distribuído é o compartilhamento de recursos de maneira útil em um sistema de computadores interligados em redes. Estes recursos podem ser discos, arquivos, bancos de dados, impressoras, objetos de dados entre outros. O aprimoramento da abstração é explorado como um dos maiores objetivos dos sistemas distribuídos fazendo com que cada vez mais usuários utilizem recursos diversos sem que haja interesse em saber qualquer informação sobre como são implementados, ou seja, o que há nos bastidores dessas aplicações. São exemplos de sistemas distribuídos: internet; sistemas financeiros; jogos online; redes sociais e plataformas similares; sistemas de pesquisa (motores de busca) entre muitos outros.

Ainda de acordo com Coulouris et al. (2013), constituem alguns dos maiores desafios na área de sistemas distribuídos:

(22)

 Heterogeneidade – Hardwares, sistemas operacionais, redes, linguagens de programação implementados e produzidos por desenvolvedores diferentes2.

 Segurança – Confidencialidade, integridade e disponibilidade resumem este desafio. Dados mantidos em sistemas distribuídos são de importância incalculável para o usuário, tornando a rotina de envio de informações sensíveis um grande desafio.

 Escalabilidade – Um sistema é escalável quando se mantem eficiente quando há aumento significativo do número de usuários e operações realizados pelo sistema. Nisso implica-se controlar custos, perda de desempenho e manutenção dos recursos.

 Tratamento de falhas – São parciais, alguns componentes falham enquanto outros não. Os maiores desafios estão na detecção, tolerância e recuperação de falhas.

 Concorrência – Quando se tem um ambiente em que vários usuários tentam acessar determinado recurso ao mesmo tempo, há a necessidade de garantir devido tratamento a esta concorrência, bem como manter a coerência dos recursos.

 Transparência – Elevar o grau de abstração do usuário final para os programadores de aplicativos. Transparência de acesso, localização, concorrência, replicação etc.

 Qualidade de serviço – É a garantia de entrega dos serviços com qualidade atendendo a requisitos não funcionais tais como: segurança; confiabilidade e parâmetros de desempenho.

Um exemplo prático de uma abordagem focada na superação dos desafios supracitados está presente na visão de Corneli Júnior (2016, p. 72), onde propõe soluções para a questão da concorrência de recursos em sua aplicação distribuída.

Igualmente à procura de superar tais desafios, Prado (2017) eleva o nível da busca pela resolução dos desafios através da Computação Autonômica (CA). A ideia preconizada pela CA é de que os sistemas possam se auto gerenciar sem a intervenção do ser humano. Os sistemas autonômicos são fundamentados em quatro atributos segundo (JACOB; LANYON-HOGG; YASSIN, 2004).

São eles:

 Autoconfiguração – Capacidade de se autoconfigurar dinamicamente;

 Autocura – Detecção de problemas e realização de ações corretivas;

2 Embora a Internet seja heterogênea em sua composição física e lógica, suas diferenças são mascaradas pelo uso

(23)

 Auto-otimização – Habilidade de gerenciar e alocar seus recursos com eficiência;

 Autoproteção – Realiza o controle de acesso a dados a usuários devidamente credenciados;

A seguir, a seção 2.2 apresenta o microframework Python Flask.

2.2 MICROFRAMEWORK PYTHON FLASK

O Flask é um Microframework Python utilizado para o desenvolvimento web criado em 2010. É chamado de “Micro” por manter um núcleo simples, mas extensível. Em outras palavras é um framework que possui o essencial para gerar aplicações enxutas e compactas. Não possui uma camada de abstração do banco de dados (Object Relational Mapper – ORM), validação de formulários ou ainda integração com ferramentas Front-end como por exemplo o Bootstrap de forma nativa como alguns dos seus principais concorrentes (Django e Pyramid). No entanto, com o crescimento da comunidade Flask, hoje há uma vasta coleção de bibliotecas/extensões de terceiros que suprem estas e outras necessidades, o que torna sua curva de aprendizado mais suave.

Em virtude de ser considerada ainda uma linguagem nova pelas comunidades Python, o Flask não contém muito suporte relativo a documentação e fóruns de discussão, quando comparado aos seus principais concorrentes, mas muitos materiais bibliográficos de excelente qualidade estão sendo desenvolvidos e lançados para aumentar esse aporte.

A seguir, a seção 2.3 descreve o padrão arquitetural de software MVC.

2.3 PADRÃO ARQUITETURAL DE SOFTWARE – MVC

O MVC, sigla para Model – View – Controller, é um padrão de arquitetura muito utilizado no desenvolvimento web, mas pode ser aplicado a outros cenários que envolvem integração com o usuário.

O padrão MVC preconiza a separação da aplicação em três camadas chamadas de Model, View e Controller. No entanto, o objetivo desta separação não é induzir ao significado literal da separação em camadas apenas como a separação dos códigos desenvolvidos em pastas diferentes. O propósito central do MVC se dá na definição de como essas camadas interagem.

Luckow e Melo (2015, p. 185) apontam que, em outras palavras, a separação de responsabilidades é um conceito benéfico na implementação do MVC.

(24)

No MVC, as camadas View e Model não podem se conhecer, a comunicação entre as duas se dá através da camada Controller.

Model – Pode ser confundida com modelo de dados, mas representa na verdade a camada de acesso aos dados e regra de negócio.

View – Representa tudo que compõe a interface de um sistema. É na View que o usuário insere dados para utilização do sistema, bem como é nela que são exibidas as informações geradas pela camada Model.

Controller – Como o próprio nome sugere é a camada de controle que estabelece e controla a comunicação entre a View e Model. É encarregado por buscar informações da camada Model para gerar a View e por receber informações da View e enviar para Model.

A Figura 2 ilustra como as camadas conversam dentro do padrão MVC. É possível observar que o Model e a View não se relacionam diretamente, sendo intermediados pela camada Controller.

Figura 2. Fluxo de Dados do Padrão MVC.

FONTE: própria do autor3.

A seguir, a seção 2.4 apresenta conceitos sobre Biometria e Impressão Digital.

(25)

2.4 BIOMETRIA – IMPRESSÃO DIGITAL

É o estudo estático das características físicas e comportamentais dos seres vivos. O termo é também utilizado como forma de identificação de um indivíduo com base nas suas características fisiológicas ou comportamentais. Segundo Holanda (2009) é um ramo da ciência direcionado ao estudo da mensuração dos seres vivos.

A Figura 3 mostra os tipos de métodos de identificação. Alguns mais utilizados que outros.

Figura 3. Seis Características Biométricas mais Comuns

FONTE: própria do autor a partir de (COSTA, L.; OBELHEIRO, R.; Fragra, J. 2006).

A biometria tem sido utilizada amplamente em sistemas computacionais na área de segurança para reconhecimento, identificação criminal, controle de acessos a dados e aparelhos, entre outras áreas.

Vale ressaltar que nessa área da segurança três propriedades são fundamentais: confidencialidade, que garante a revelação da informação mediante devida autorização; a integridade, que garante que a informação só será alterada com a devida autorização; e, a disponibilidade, que garante que a informação esteja disponível aos legítimos usuários (COSTA, L.; OBELHEIRO, R.; Fragra, J. 2006).

Segundo Miller (2004), em uma requisição de acesso a um recurso, a entidade requisitante fornece uma credencial, o protocolo de autenticação é o responsável por aceitar as credenciais como prova da identidade dos requerentes. As credenciais apresentadas podem ser de três tipos:

(26)

Posse – Quem detém a posse de um objeto é capaz de utilizá-lo.

Conhecimento – Indivíduos que possuem conhecimento diferenciado são aptos a utilizar um recurso, ou seja, a autenticação baseia-se em um conhecimento secreto. Ex: dados bancários tais como: agência, conta. Não são totalmente secretos mas nem todos possuem esta informação.

Biometria – Traços de um indivíduo que pode ser mensurado e computado na forma de um identificador biométrico único, de modo a dificultar roubo, fraude ou compartilhamento.

2.4.1 Modos de autenticação

Dois modos de autenticação são usados pelos sistemas biométricos para autenticação de pessoas: VERIFICAÇÃO e a IDENTIFICAÇÃO.

A verificação consiste numa busca fechada, chamada 1:1, onde o usuário não apenas passa a característica biométrica, mas uma identidade que se diz possuidor. Esse modo de autenticação busca responder a pergunta: “O usuário é quem diz ser?”. Por exemplo: O acesso de um cliente de banco feito por meio de um terminal de caixa eletrônico. Antes de qualquer solicitação de autenticação biométrica, o cliente deve inserir o cartão antes, ou seja, uma identificação que será atestada mediante a confirmação biométrica.

A autenticação no modo identificação consiste numa busca aberta, chamada 1:N, onde o usuário passa apenas a característica biométrica e o sistema é quem passa a ter a competência de identificar o usuário analisando uma base de dados registro por registro. Nesse caso a pergunta que corresponde a essa identificação é: “Quem é o usuário?”. Por exemplo: Acesso de um cliente à sua academia de ginástica, onde na chegada fornece apenas a impressão digital, o sistema faz a busca e libera a catraca4.

2.4.2 Impressão digital

A impressão digital é uma das características biométricas mais estudadas e utilizada na área de segurança, possui inúmeras soluções maduras e eficientes que implementam esta característica. Segundo Pinheiro (2008) só perde no quesito segurança para o teste de DNA.

4 As buscas chamadas 1:N tendem a ser mais demoradas e consumir mais recursos dos sistemas computacionais

(27)

Mazi e Dal Pino Júnior (2009) apontam que estudos científicos acerca das impressões digitais se deram a partir de 1667 com comprovações da característica de identificação. Tal estudo foi chamado de Datiloscopia.

Apontam ainda que as elevações da pele, chamadas de papilas dérmicas, pois localizam-se na derme são sobrepostas pela epiderme, que é uma camada superficial e transparente, realçando as papilas, também chamadas de linhas ou cristas. Estas papilas são separadas por sulcos ou vales o que caracterizam uma identificação. Os diferentes padrões de desenhos reforçam a característica de identificação:

 Unicidade – Improbabilidade de dois indivíduos diferentes com impressões idênticas;

 Imutabilidade – Do nascimento até a morte, salvo por fator externo tais como: acidentes, cortes, queimaduras entre outros, a característica biométrica se mantem igual;

 Praticabilidade – O processo de aquisição das imagens das papilas pode ser realizado com grande facilidade;

 Classificabilidade – Os desenhos papilares apesar de uma infinita variedade nas minúcias, atendem a um número limitado de tipos fundamentais, possibilitando sua classificação.

Na análise das papilas, percebem-se variações das cristas tais como: cristas interrompidas, bifurcações, entre outros. Tais acidentes são chamados de minúcias.

Algumas das vantagens do uso da autenticação biométrica por impressões digitais quando comparada com outras formas de autenticação biométrica são: baixo custo do hardware, tamanho reduzido dos dispositivos de captura e fácil integração dos dispositivos com a aplicação.

Segundo Penteado (2009) mesmo diante de todas as incontestes vantagens da utilização de sistemas biométricos é necessário compreender que não são à prova de falhas que podem ir desde limitações na aquisição do traço biométrico até a classificação incorreta de indivíduos. Alerta ainda para a observância de certas propriedades nas etapas de projetos levando em consideração o contexto das aplicações.

No caso específico das impressões digitais, podem ocorrer fraudes como por exemplo a confecção de dedos de silicone como mostra a Figura 4. Aparentemente algo difícil de se fazer,

(28)

mas infelizmente já existem tutoriais na internet mostrando como se faz um “dedo falso”. Como alternativa a este tipo de fraude existem dispositivos mais sofisticados no mercado que implementam a tecnologia LFD (Live Finger Detection), ou “detecção do dedo vivo”. Tais dispositivos antes de realizarem a captura de uma imagem experimentam diversos outros aspectos, tais como: temperatura, cor, carga eletrostática que apenas um dedo vivo possui (TOPDATA, 2016, online).

Figura 4. Dedos de Silicone utilizados para Fraudar Sistemas Biométricos.

FONTE: retirada do site https://www.topdata.com.br5.

A seguir, a seção 2.5 apresenta as definições de Contêineres Docker.

2.5 CONTÊINERES DOCKER

Docker é um sistema de virtualização não tradicional onde recursos isolados utilizam o kernel em comum (entre o host e o container), ao contrário dos sistemas de virtualização tradicionais que utilizam um sistema operacional completo e isolado. Isto é possível porque o Docker tem como base o LXC Linux Container, que é um tipo de virtualização em nível de

5 Disponível em <https://www.topdata.com.br/biometria-uso-de-dedo-falso/> Acessado em nov. 2018. A

TOPDATA é uma das maiores empresas brasileiras fabricantes de relógios de ponto e catracas para controle de acesso.

(29)

sistema operacional que permite executar vários sistemas Linux isolados (contêineres) em um único host de controle principal (LCX host).

A Figura 5 ilustra a arquitetura Docker e destaca sua principal diferença em relação a um virtualizador tradicional.

Figura 5. Comparativo entre Sistemas de Virtualização.

FONTE: retirada do site https://linux4sysadmin.wordpress.com6.

O LXC não fornece uma máquina virtual e sim um ambiente virtual com suas próprias características de configuração distintas (CPU, memória, rede, espaço, entre outros). Ainda para reforçar o conceito, dentro do Container o Docker parece uma VM (Virtual Machine), enquanto fora do Container é apenas mais um processo para o sistema operacional.

Algumas razões para utilização de Containers:

 Economia de recursos;

 Velocidade;

 Boot em segundos;

 Processos executados dentro de um container são vistos como um processo no sistema hosts.

 Possibilidade de subir vários containers ao mesmo tempo consumindo o mínimo de recursos;

6 Disponível em: <https://linux4sysadmin.wordpress.com/2016/05/23/docker-da-teoria-ao-hands-on-2/> Acesso

(30)

As diferenças ficam mais evidentes quando se verifica que em um Container Docker a quantidade de camadas é bem menor, o que ressalta as razões para se utilizar o Docker como mostra a Tabela 1.

Tabela 1. Diferenças entre o Sistema Operacional comum e Virtualizado com Docker.

Sistema Operacional Container Docker

Bootfs – Boot FileSystem Bootfs – (LXC, aufs/btrfs) – Mesmo Kernel da Máquina Bottloader e Kernel Rootfs – Sistema de Arquivos.

Rootfs – Root FileSystem

Restante dos Arquivos do Sistema FONTE: própria do autor.

Um container é construído através de comandos (namespaces, chroot) entre outras funcionalidades do Kernel para construir uma área isolada para a aplicação.

A Figura 6 mostra de forma objetiva a arquitetura cliente-servidor do Docker, formada por dois principais componentes: uma plataforma de conteinerização (Docker engine) que implementa tanto o Docker Client quando o Docker Daemon, bem como um serviço de registro (Registry), que trata-se de um repositório provido pelo Docker, se encontra na nuvem e realiza o download e compartilhamento de imagens de Containers.

Figura 6. Arquitetura Docker.

FONTE: retirada do site https://hahoangv.wordpress.com7.

A seguir, a seção 2.6 descreve a comunicação entre processos por meio de sockets TCP.

7 Disponível em:

(31)

2.6 COMUNICAÇÃO ENTRE PROCESSOS POR MEIO DE SOCKETS TCP

A comunicação realizada por meio de SOCKETS TCP (Transmission Control Protocol), caracteriza-se pela troca de mensagens entre um par de processos. As operações básicas que envolvem esta troca são: SEND (enviar dados) e RECEIVE (receber dados). Para que a comunicação seja estabelecida entre estes dois processos distintos, remetente e destino respectivamente devem ter seus processos sincronizados (COULOURIS et al. 2013).

O processo de comunicação consiste na transmissão de uma mensagem entre um soquete de um processo e um soquete de outro processo. Para que um processo receba mensagens, seu soquete deve estar vinculado a uma porta local e ao endereço IP do computador de execução. Um processo pode usar o mesmo soquete para enviar e receber mensagens.

A comunicação pode ser síncrona ou assíncrona. A comunicação síncrona garante algumas características de confiabilidade, tais como: validade, que á a garantia de que a mensagem será entregue independente da perca de pacotes; integridade que garante que os dados não serão entregues corrompidos ou duplicados. Estas foram as razões que justificaram a escolha da comunicação síncrona neste trabalho, em detrimento da comunicação assíncrona, que não fornece tais garantias, apenas sendo preferida em casos específicos em razão do alto desempenho, menor utilização de recursos (exemplo: TV por streaming).

Existem dois tipos de sockets comumente utilizados, que representam respectivamente os dois tipos de comunicação descritos anteriormente. O Socket TCP (Síncrono) e o Socket UDP (Assíncrono). A Figura 7 ilustra como se dá efetivamente a comunicação entre dois processos por essas duas abordagens TCP/UDP, e como os processos se comportam.

Figura 7. Diagrama de Sequência para Comunicação por Meio de Sockets.

(32)

Pode se observar que na comunicação realizada por meio de socket TCP, o processo MWG (remetente) fica congelado até que a resposta do processo MCB (destino) seja recebida com a confirmação de sucesso ou falha na transmissão da mensagem, enquanto no cenário por meio de socket UDP, o processo de origem apenas envia a mensagem e segue seu curso, sem aguardar algum tipo de retorno do processo de origem.

A seguir, a seção 2.7 apresenta o microcontrolador Arduino Uno.

2.7 MICROCONTROLADOR ARDUINO UNO

O Arduino é um microcontrolador utilizado mundialmente para prototipar projetos envolvendo sistemas embarcados.

Arduino é um pequeno computador que você pode programar para processar entradas e saídas entre o dispositivo e os componentes externos conectados a ele. O Arduino é o que chamamos de plataforma de computação física ou embarcada, ou seja, um sistema que pode interagir com seu ambiente por meio de hardware e software. (MCROBERTS, M., 2012, p. 22)

Pode ser conectado a LEDs, displays, sensores diversos, motores, receptores GPS, relés, módulos Ethernet ou qualquer outro que emita ou possa receber dados. A sua versão mais recente, de acordo com o site do fabricante, é baseada no ATmega328P conforme mostra a

Figura 8. Ele é conectado ao PC via cabo USB, que conduz a USB para serial.

Figura 8. Arduino Uno REV3.

FONTE: retirada do site https://www.arduino.cc/8.

A plataforma conta com uma IDE para criação, compilação e upload dos códigos programados, que no Arduino denominam-se sketch, para o chipset do microcontrolador via cabo USB. A IDE padrão, encontra-se na versão 1.8.7 no momento deste trabalho e está

(33)

disponível para os três principais sistemas operacionais (Windows, MacOS X, Linux), o que possibilita que o usuário codifique seus sketches na linguagem C++ (padrão).

A Figura 9 mostra um SKETCH Arduino responsável por fazer um LED piscar.

Figura 9. Sketch de Exemplo do Arduino.

(34)

3 MATERIAIS E MÉTODOS

Neste capítulo descreve de forma organizada o processo de seleção de materiais utilizados neste trabalho, bem como os passos seguidos no desenvolvimento do mesmo. O Capítulo 3 está organizado da seguinte forma: a seção 3.1 apresenta a lista de materiais utilizados, e, a seção 3.2 descreve sequencialmente os métodos executados para desenvolvimento.

3.1 MATERIAIS

A Tabela 2 apresenta a lista de materiais utilizados. Suas aplicabilidades e funcionalidades específicas estão descritas a partir da seção 4.4 IMPLEMENTAÇÃO DOS MÓDULOS DESKTOP, ARDUINO.

Tabela 2. Seleção dos Materiais

N Nome do Material Quant. Categoria Aplicação(ões)

1 Leitor Biométrico Nitgen modelo Hamster DX9

03 Dispositivo USB MCB/MLPE/MAPE

2 Microcontrolador Arduino UNO c/ case. 01 Dispositivo USB MAAR 3 Microcomputador AMD Athlon™ II X2

B22 Processador 2.80 GHz – 4.00 GB – Sistema Operacional Windows 7 x64.

01 Computador MLPE/MAPE/MAAR

4 Relé de 5V para Arduino com Optoacoplador.

01 Comp. Eletrônico MAAR

5 Placa de circuito impresso (PCB) 02 Comp. Eletrônico MAAR

6 Conector fêmea RJ45 02 Comp. Eletrônico MAAR

7 Cabo Extensor USB amplificado com 10m 01 Cabo MAAR

8 Led colorido 03 Comp. Eletrônico MAAR

9 Resistores de 300 Ω 03 Comp. Eletrônico MAAR

10 Pedaço de Eletrocalha 01 Diversos MAAR

11 Cabo UTB com 10m 01 Cabo MAAR

12 Jumpers de conexão com Arduino ≅15 Comp. Eletrônico MAAR FONTE: própria do autor.

(35)

3.2 MÉTODOS

Para que o objetivo deste trabalho fosse alcançado com êxito, etapas de pesquisas, estudos e implementações foram seguidas cronologicamente a fim de construir um caminho para a execução ordenada das tarefas. Algumas dessas etapas se deram de forma simultânea tendo em vista o grau de complementação entre elas, outras em sequência.

O início das pesquisas e estudos se concentraram no domínio das funcionalidades da biblioteca Nitgen NBioBSPJNI.jar. Uma vez que tais funcionalidades foram dominadas, as demais etapas do POPGESTOR foram executadas conforme os passos a seguir:

Seleção de Tecnologias: A escolha das tecnologias (banco de dados, linguagens de programação e dispositivos a serem utilizados) se deu em observância a fatores diversos tais como: dispositivos de hardware envolvidos, requisitos técnicos da organização, domínio das tecnologias, curva de aprendizagem das ferramentas não dominadas entre outros.

Análise de Requisitos: Foi estabelecida uma linha de contato com a alta gestão, departamento administrativo, bem como com bolsistas da organização com o objetivo de serem estabelecidas as funcionalidades que o POPGESTOR deveria implementar.

Modelagens: Uma vez estabelecidas as funcionalidades da aplicação, foi iniciado o processo de modelagem do POPGESTOR. A modelagem se deu de forma simultânea, ou seja, modelagem UML e modelagem do banco de dados foram realizadas simultaneamente, o que resultou em uma maior integridade e consistência entre as duas modelagens.

Implementação dos Módulos MCB / MLPE / MAPE / MAAR e MWG: Uma vez com todos os materiais necessários disponíveis, tecnologias selecionadas, funcionalidades da aplicação definidas e bem modeladas, foi dado início ao processo de implementação dos módulos na ordem MCB, MLPE, MAPE, MAAR e MWG.

Testes das Aplicações: Os testes foram realizados em diversos estágios da implementação dos módulos, não apenas no final de cada implementação, mas ao longo da implementação, bem como não só o módulo implementado, mas outros módulos com necessidades de interação e comunicação entre si.

(36)

4 DESENVOLVIMENTO

Este capítulo descreve como foi organizada e executada a tarefa de desenvolvimento da aplicação proposta e apresenta os processos de seleção das tecnologias utilizadas, análise de requisitos, modelagens necessárias, implementação dos módulos desktop, web e Arduino, bem como o modelo da comunicação entre os processos dos módulos desenvolvidos. O Capítulo 4 está organizado da seguinte forma: a seção 4.1 apresenta o processo de seleção das tecnologias; a seção 4.2 descreve o processo de análise de requisitos; a seção 4.3 apresenta as modelagens realizadas e, finalmente, a seção 4.4 descreve o processo de desenvolvimento dos módulos que compõem o POPGESTOR e suas interações.

4.1 SELEÇÃO DAS TECNOLOGIAS

O processo de seleção das tecnologias e arquiteturas utilizadas nesse trabalho observou importantes fatores técnicos, institucionais, limitações de dispositivos, entre outros, os quais influenciaram direta ou indiretamente na definição das tecnologias e arquiteturas apresentadas.

4.1.1 Banco de dados

O Sistema Gerenciador de Banco de Dados (SGBD) escolhido para este trabalho foi o PostgreSQL versão 10. A escolha se deu por razão de requisito técnico da organização que já o utilizara em outras aplicações, bem como por considerar as diretrizes de segurança do PostgreSQL mais relevantes que outras opções de SGBDs semelhantemente analisadas.

O banco de dados está armazenado em um dos servidores da organização com as devidas regras de firewall aplicadas o que garante o acesso qualificado. Foram utilizadas ferramentas de gerência tais como: PGADMIN4, Microsoft Access (via ODBC).

4.1.2 Linguagens de programação

As linguagens de programação adotadas neste trabalho foram selecionadas a partir da análise dos critérios a seguir:

Linguagens de Iniciativa Open Source – Linguagens de programação oriundas de iniciativas de código aberto que não demandam custos e/ou investimentos em aquisições de licenças foram priorizadas;

(37)

Linguagens Consolidadas nas Universidades – Foram observadas as grades curriculares dos principais cursos de TI das universidades do estado, a fim de se estabelecer um mapa das tecnologias abordadas nestes cursos, bem como da sua junção com as tecnologias escolhidas pela organização haja vista que a mesma possui parte do seu quadro de bolsistas dedicado ao desenvolvimento e manutenção de artefatos de software.

Linguagens com Baixa Curva de Aprendizado – Este critério foi um dos mais determinantes em razão da rotatividade natural de bolsistas da organização não permitir a permanência dos mesmos no quadro da mesma por tempo ilimitado, o que eventualmente pode causar uma substituição e por consequência a interrupção de um projeto. Em virtude disso, linguagens de fácil aprendizado foram priorizadas, pois formam novas equipes em menor tempo e dão sequência aos projetos da organização.

Linguagens Multiplataforma focadas na Produtividade – Funcionar em qualquer plataforma (Windows, Linux, Mac OS X), bem como poder se utilizar de ferramentas que aceleram o desenvolvimento, tais como frameworks, camadas de abstração de banco de dados ORMs entre outras, também foram fatores observados.

Conforme disposto na seção 1.2.2, foram desenvolvidos cinco módulos de software que compõe o sistema distribuído POPGESTOR. As linguagens de programação são comentadas a seguir.

4.1.2.1 Java app (desktop)

Três destes módulos foram escritos na linguagem Java Application (Java para desktop) na IDE NETBEANS 8.1, a saber:

 Módulo de Cadastro Biométrico (MCB);

 Módulo de Leitura de Ponto Eletrônico (MLPE);

 Módulo de Abertura de Porta Eletrônica (MAPE);

Um ponto comum entre os três módulos acima foi a necessidade da implementação de uma interface gráfica para interação com o dispositivo de leitura biométrica Nitgen modelo Hamster DX utilizado neste trabalho. O fabricante do dispositivo, Nitgen, disponibiliza em seu site um kit de desenvolvimento de software (SDK) que contém bibliotecas e código fonte básico para as seguintes linguagens de programação: C#, .Net, VB, Java, ASP e Delphi. O SDK disponibilizado dá suporte a aplicações 32/64 bits, bem como aos sistemas operacionais

(38)

Windows e Linux. No entanto, segundo a documentação, algumas das importantes funções da leitora não possuem implementação para ambientes Linux10, e em virtude desta limitação foram selecionadas para este trabalho as bibliotecas suportadas em ambientes Windows. A linguagem Java foi escolhida em função dos critérios: Linguagem Open Source e Multiplataforma.

4.1.2.2 C++

O Módulo Arduino de Acionamento de Relé (MAAR), foi desenvolvido na IDE própria do Arduino11, que é distribuída gratuitamente no site do fabricante e utiliza por padrão a linguagem C++ na escrita de seus programas (Sketch).

4.1.2.3 Python (Microframework Web Flask)

O Módulo Web de Gerenciamento (MWG) foi escrito na linguagem Python, utilizando o Microframework Flask e a IDE Microsoft Visual Code. A seleção da linguagem foi estabelecida em virtude da reformulação da estrutura de sistemas do PoP-RN e também em função da implementação de uma infraestrutura ágil voltada para abordagem de aplicações oferecidas em contêineres Docker, integração com ferramentas de testes e versionamento de código. Outro fator preponderante foi a curva de aprendizado suave do Python em relação a outras linguagens de alto nível e sua abordagem crescente nas grades curriculares das instituições de ensino.

A seleção do Microframework Flask ocorreu em observância a uma das principais características do framework que o distingue de seus iguais, que é um núcleo simples, ou seja, além desse núcleo que permite as principais funcionalidades do framework, somente são adicionadas bibliotecas e/ou extensões sob demanda na aplicação.

4.2 ANÁLISE DE REQUISITOS

Todo processo de modelagem do sistema levou em consideração a inserção do POPGESTOR no contexto do POP-ERP como componente fundamental de acesso aos demais sistemas de informação já em desenvolvimento, bem como os que anexarão futuramente este ERP, conforme detalhado na introdução deste trabalho e ilustrado na Figura 10.

10 A documentação completa do SDK Java está disponível em:

<http://www.nitgendobrasil.com.br/download/EN_eNBSP_SDK_for_Java_Programmer%27s_Guide_DC1-0085A.pdf>

(39)

Figura 10. Organograma Inicial da Iniciativa POP-ERP.

FONTE: própria do autor.

A concepção do trabalho, bem como a análise de requisitos ocorreram desde o início de modo conjunto e envolveu a alta gestão da organização, usuários dos sistemas, bem como funcionários do departamento administrativo (Recursos Humanos) do PoP-RN, sob a égide de que a aplicação seria construída para atender todas as demandas propostas, bem como garantir uma estrutura aberta de modo a comportar futuras implementações oriundas da iniciativa POP-ERP.

Foram levantados os requisitos preliminares do sistema e após o refinamento dos mesmos, estabelecidos os requisitos funcionais, que correspondem as funcionalidades diretas do sistema, bem como os requisitos não-funcionais, que descrevem o uso da aplicação atendendo a critérios e/ou restrições em termos de desempenho tais como: confiabilidade, escalabilidade, usabilidade e segurança. As Tabela 3 e Tabela 4 apresentam respectivamente os principais requisitos funcionais e não-funcionais levantados.

Tabela 3. Requisitos Funcionais

Código Descrição

RF001 Fazer login e autenticar usuário no sistema web.

RF002 Permitir abertura da porta eletrônica de entrada do PoP-RN mediante autenticação biométrica.

RF003 Inclusão, exclusão, consulta e atualização de projetos. RF004 Inclusão, exclusão, consulta e atualização de departamentos. RF005 Inclusão, exclusão, consulta e atualização de feriados. RF006 Consulta e atualização de parâmetros do sistema.

RF007 Inclusão, exclusão, consulta e atualização de horários de exceção de expediente para bolsistas.

RF008 Inclusão, exclusão, consulta e atualização de funcionários. RF009 Inclusão, exclusão, consulta e atualização de bolsistas. FONTE: própria do autor.

Sistemas em Desenvolvimento

(40)

Tabela 4. Requisitos não-funcionais

Código Descrição

RNF001 Requisito de segurança. O sistema web só poderá ser acessado por usuário previamente cadastrado, autorizado e por meio de login.

RNF002 Requisito de segurança. O sistema deve armazenar as credenciais de usuário utilizando criptografia.

RNF003 Escalabilidade e Desempenho. O sistema deverá ser executado em uma infraestrutura de conteinerização docker, para facilitar o desenvolvimento, implantação (deploy) de funcionalidades, garantia de bom desempenho e acesso concorrente de usuários.

RNF004 Segurança. O Banco de dados da aplicação deverá estar hospedado em um servidor do PoP-RN com regras de firewall específicas para garantir a segurança dos dados.

RNF005 Usabilidade. Os sistemas devem possuir uma interface amigável e intuitiva aos usuários. RNF006 Desempenho. Os módulos em Java APP devem ter seus modelos otimizados ao máximo,

bem como o modo de utilização das bibliotecas JDBC e NBioBSPJNI.jar12 a fim de garantir

o desempenho das aplicações. FONTE: própria do autor.

4.3 MODELAGENS

Dois tipos específicos de modelagem foram realizadas neste trabalho. A primeira,

Modelagem UML, apresenta as funcionalidades do sistema de forma clara e objetiva a alta

gestão da organização e desenvolvedores. A segunda, Modelagem de Banco de Dados, utiliza representação conceitual e lógica para chancelar toda modelagem UML realizada anteriormente, e cumprir seu objetivo principal que é gerar o banco de dados físico da aplicação.

4.3.1 Modelagem UML

Após o refinamento de todos os requisitos levantados, foi realizado o processo de Modelagem UML (Unified Modeling Language), que consistiu na representação em uma linguagem para especificação, construção, visualização e documentação de artefatos de software. (SILVA; VIDEIRA, 2001, p. 117)

A Modelagem UML desse trabalho foi realizada através da ferramenta Astah Community13 utilizando algumas de suas principais visões (diagramas) que melhor ilustram os cenários existentes nesse trabalho.

12 Biblioteca proprietária da empresa NITGEN, fabricante da Leitora Biométrica modelo Hamster DX.

13 Versão gratuita de software de modelagem UML descontinuada em 26 de setembro de 2018. Apenas versões

(41)

4.3.1.1 Diagrama de casos de uso

Foram elaborados diagramas de casos de usos para ilustrar as funcionalidades estabelecidas para seus principais atores: funcionários e bolsistas do PoP-RN. A Figura 11 mostra o diagrama de casos de uso do ator Funcionário, e lista a sequência de ações a ele atribuída, ou seja, toda parte de gerenciamento do POPGESTOR.

Figura 11. Diagrama de Casos de Uso do Funcionário

(42)

A Figura 12 mostra o diagrama de casos de uso do bolsista, e lista de igual forma as ações associadas ao ator Bolsista no contexto da aplicação.

Figura 12. Diagrama de Casos de Uso do Bolsista

FONTE: própria do autor.

4.3.1.2 Diagramas de classes

Os diagramas de classes permitem aprofundar a visão de modelagem de uma aplicação ou mesmo sua compreensão por um prisma lógico. Nesse sentido, foram elaborados quatro diagramas de classes que contém as classes implementadas no POPGESTOR, separadas por módulos conforme definido na seção 1.2.2 deste trabalho.

A aplicação Módulo Web de Gerenciamento é ilustrada na Figura 13 abrangendo toda estrutura do POPGESTOR na sua forma mais ampla e completa.

(43)

Figura 13. Diagrama de Classes MWG

(44)

A Figura 14 apresenta a classe Popuser no contexto da aplicação Módulo de Cadastro Biométrico, que sintetiza em sua composição apenas os atributos vitais ao propósito da aplicação que é o cadastro da informação biométrica do usuário.

Figura 14. Diagrama de Classes do MCB

FONTE: própria do autor.

O Módulo de Leitura do Ponto Eletrônico14 é responsável pela leitura e computação efetiva do ponto eletrônico diário dos bolsistas do PoP-RN, conforme mostra a Figura 15.

Figura 15. Diagrama de Classes do MLPE

FONTE: própria do autor.

14 As aplicações menores MCB, MLPE e MAPE tiveram seus modelos reduzidos e/ou adaptados em

(45)

O modelo do Módulo de Abertura da Porta Eletrônica está representado na Figura 16. Uma estrutura resumida que contém apenas as classes e atributos necessários para a identificação do usuário e acionamento da porta eletrônica.

Figura 16. Diagrama de Classes do MAPE.

FONTE: própria do autor.

4.3.1.3 Diagrama de implantação

Um diagrama de implantação foi elaborado para mostrar como se deu o processo de modelagem da arquitetura física do POPGESTOR, ou seja, do relacionamento entre os nós deste sistema distribuído (componentes de hardware e software, bem como a distribuição física do processamento, descrição de protocolos e portas de comunicação utilizados).

O diagrama de implantação do POPGESTOR é ilustrado na Figura 17. Nele, estão dispostos todos os componentes de hardware, software, protocolos e portas utilizados que compõem o sistema. Nesse diagrama, cada retângulo corresponde a um nó (node), que é identificado pelo atributo stereotype (da ferramenta) que predispõe uma lista de identificação dos nós que podem ser dos tipos: device; software; entity; component; ou uma identificação personalizada pelo usuário. As linhas representam as ligações entre os nós e sempre com uma seta indicando a direção do fluxo, bem como uma legenda que descreve os tipos de comunicação implementados (protocolos, tipos de conexão, portas utilizadas, entre outros). O diagrama de implantação é flexível e objetiva ilustrar como as estruturas de hardware e software estão dispostas e como se comunicam em uma aplicação.

(46)

Referências

Documentos relacionados

A partir deste momento é dada indicação para a seleção da população em estudo e é ativado o envio da medicação pelo promotor, ficando o FH da Unidade de

et al., (2012), nos estudos realizados sobre o PCK, são propostas algumas estratégias para reconhecê-lo, como entrevistas, observações de aulas, análise de planejamentos de ensino

cargas em grupos com bloco rígido (Poulos e Davis, 1980) Valores de P/P av Estacas com pontas em camada

ITEM SINAPI DESCRIÇÃO UN QTDE Pr... ITEM SINAPI DESCRIÇÃO UN QTDE

Os Coordenadores Setoriais, enquanto professores, procuram dar o exemplo, mas deixam claro que encontram, no seu percurso como extensionistas, esse elemento dificultador;  O

No presente estudo, catorze animais (34,15%) apresentavam algum tipo de parentesco procedente de oito diferentes propriedades rurais (26,66%), ora relacionado à vaca, ora ao touro,

A partir da análise das Figuras 5.20, 5.21, 5.22 e 5.23 pode-se afirmar que a variação do início da altura de queda do bloco não alterou os resultados da energia cinética e alturas

 Coordenar o planejamento das ações nacionais de saúde voltadas para Copa do Mundo 2014..  Promover articulação e interlocução entre entes federados envolvidos com a