SISTEMA DE REGISTRO DE PONTO ELETRÔNICO VIA BLUETOOTH
Transcript of SISTEMA DE REGISTRO DE PONTO ELETRÔNICO VIA BLUETOOTH
FACULDADE PAN AMAZÔNICA
KELITON ANDREY DA SILVA MELO RAYAN DE JESUS OLIVEIRA MORAES
SISTEMA DE REGISTRO DE PONTO ELETRÔNICO VIA BLUETOOTH
Belém
2018
KELITON ANDREY DA SILVA MELO
RAYAN DE JESUS OLIVEIRA MORAES
SISTEMA DE REGISTRO DE PONTO ELETRÔNICO VIA BLUETOOTH
Trabalho de Conclusão de Curso apresentado à
Faculdade Pan Amazônica como requisito para
obtenção do grau de Bacharel em Ciência da
Computação Orientador: Prof. Msc. Diemisom
Carlos Romano de Melo
Belém
2018
KELITON ANDREY DA SILVA MELO
RAYAN DE JESUS OLIVEIRA MORAES
SISTEMA DE REGISTRO DE PONTO ELETRÔNICO VIA BLUETOOTH
Trabalho de Conclusão de Curso apresentado à Faculdade Pan Amazônica como requisito para a obtenção do grau de Bacharel em Ciência da Computação. Orientador: Prof. Msc. Diemisom Carlos Romano de Melo.
Aprovado em: Banca Examinadora ____________________________________ - Orientador Prof. Me. Diemisom Carlos Romano de Melo. ____________________________________ Prof. Esp. Demys Alves Brito ____________________________________ Prof. Me. Ronald Emerson Scherolt da Costa
Aos nossos pais, professores, família e namorada!
AGRADECIMENTOS
A DEUS por ser a base de nossas conquistas.
Às nossas famílias e ao corpo docente desta instituição, por acreditarem e
terem interesse em nossas escolhas, apoiando-nos e esforçando-se junto a nós, para
que supríssemos todas elas.
Ao professor Diemisom Carlos Romano de Melo, pela dedicação em suas
orientações prestadas na elaboração deste trabalho, incentivando-nos e colaborando
no desenvolvimento de nossas ideias.
“Aquele que trabalha duro pode superar um gênio, mas, de nada adianta trabalhar duro se você não confia em você mesmo…”
(Uzumaki Naruto)
RESUMO
A Internet das Coisas - IdC (Internet of Things - IoT) representa uma mudança de
paradigma na forma como as pessoas se conectam com os processos tecnológicos,
imaginando um grande sistema que possibilita a troca de informações entre dois ou
mais pontos, no qual tudo está conectado à internet, facilitando a integração de
dispositivos inteligentes com o mundo. Os smartphones são dispositivos centrais no
contexto da IdC e estão interligados a tudo e a todos no meio digital e praticamente
todas as pessoas ativas no mercado de trabalho possuem um destes dispositivos,
inclusive sendo utilizado como ferramenta de trabalho. Considerando estes avanços
da tecnologia no cotidiano das pessoas, este trabalho visa a desenvolver um software
de gerenciamento de ponto eletrônico utilizando dispositivos móveis através da
conexão Bluetooth que possibilita uma comunicação eficiente e de baixo custo. Para
isso, as tecnologias de desenvolvimento, como a linguagem de programação Python
e o banco de dados SQLite3, foram utilizados na construção do produto e
desempenharam um papel fundamental na operação da aplicação no ambiente real.
A solução implementada tem o potencial de aumentar a qualidade do registro de ponto
e facilitar o gerenciamento pelo colaborador e pela organização, agregando
praticidade e confiabilidade aos dados.
Palavras Chaves: Internet das Coisas, Smartphones, Ponto eletrônico, Bluetooth.
ABSTRACT
The Internet of Things (IoT) is a paradigm which influences the way people connect
with technology and a system that allows the exchange of information between two or
more peers on the Internet, greatly facilitating devices integration around the world.
Smartphones are the core devices in the context of IoT, interconnected to everything
and everyone in the digital world and almost all actively working people have one,
which are also used as working tool. Considering the advances of technology in
people's lives, this work aims to develop an Electronic Point Management Software,
using mobile devices with Bluetooth, that enables low cost efficient communication. To
this end, development technologies, such as the Python programming language and
the SQLite3 database, were the actors responsible for building the product, in which
they played a key role in the operation of the application in the real environment. The
solution has the potential to increase both the quality of the electronic point control and
its management by the collaborator and the organization, adding data reliability and
praticality.
Keyword: Internet of Things, Smartphones, Electronic Point, Bluetooth.
LISTA DE ILUSTRAÇÕES
Figura 1 - Variações do Modelo Incremental ........................................................... 23
Figura 2 - Padrão MVC ........................................................................................... 24
Figura 3- Representação do DB Browser for SQLite ............................................... 27
Figura 4 - Modelo 4.2 do QTDesigner utilizado nas construções das GUI's ............ 29
Figura 5 – Diagrama de Caso de Uso Geral ........................................................... 39
Figura 6 – Diagrama de Entidade Relacionamento do Sistema .............................. 41
Figura 7 - Fluxograma de Atividades de Registro de Funcionários ......................... 43
Figura 8 - Tela de Login .......................................................................................... 45
Figura 9 - Tela Principal do Sistema ....................................................................... 47
Figura 10 - Log de verificação de Horas ................................................................. 48
Figura 11 - Localização de MACs para Cadastro .................................................... 49
Figura 12 - Cadastro de Colaboradores .................................................................. 50
Figura 13 – Pesquisa de Funcionários para Editar e Excluir ................................... 51
Figura 14 - Cadastro de Empresa ........................................................................... 52
Figura 15 - Pesquisar Empresa ............................................................................... 52
Figura 16 - Cadastros de Departamento ................................................................. 53
Figura 17 - Pesquisar Departamento ...................................................................... 54
Figura 18 - Editar MACs .......................................................................................... 54
Figura 19 - Gerar Relatórios.................................................................................... 55
Figura 20 – Solicitar Tratamento ............................................................................. 56
Figura 21 - Buscar Solicitações Pendentes ............................................................. 57
Figura 22 - Visualizar Solicitação a ser Tratada ...................................................... 57
Figura 23 - Realizar Tratamento ............................................................................. 58
Figura 24 - Buscar Solicitações para o Acompanhamento ...................................... 59
Figura 25 - Verificar Situação de Tratamento .......................................................... 59
Figura 26 - Tela para Inserir Horário do Funcionamento do Sistema ...................... 60
LISTA DE TABELAS
Tabela 1 - Requisitos Funcionais ............................................................................ 33
Tabela 2 – Requisitos Não Funcionais .................................................................... 37
LISTA DE ABREVIATURAS
PEB Ponto Eletrônico via Bluetooth
RH Recursos Humanos
REP Registro Eletrônico de Ponto
MER Modelo Entidade Relacionamento
ER Entidade Relacionamento
DBA Database Administrator
LISTA DE SIGLAS
IoT Internet of Things
IDC Internet das Coisas
IDE Integrated Development Environment (Ambiente Integrado de
Desenvolvimento)
SGBD Sistema de Gerenciamento de Banco de Dados
MVC Model View Controller (Modelo, Visão, Controle)
PDF Portable Document Format (Formato Portátil de Documento)
HTML HyperText Markup Language (Linguagem de Marcação de Hipertexto)
WIFI Wireless Fidelity
UML Unified Modeling Language (Linguagem de Modelagem Unificada)
XML eXtensible Markup Language
RML Redline Markup Language
SQL Structured Query Language (Linguagem Estruturada de Consulta)
GUI Graphics User Interface (Interface Gráfico do Usuário)
SUMÁRIO
1 INTRODUÇÃO.................................................................................................. 15
1.1 JUSTIFICATIVA ............................................................................................ 17
1.2 OBJETIVOS .................................................................................................. 18
1.2.1 Objetivo Geral ............................................................................................ 18
1.2.2 Objetivos Específicos ................................................................................. 18
2 METODOLOGIA DA PESQUISA...................................................................... 18
3 REFERENCIAL TEÓRICO ............................................................................... 20
3.1 Trabalhos Relacionados ............................................................................. 20
3.2 Processo de Desenvolvimento de Software .............................................. 21
3.2.1 Modelo Incremental ................................................................................... 22
3.3 Arquitetura do Software .............................................................................. 23
3.3.1 Padrão Model View Controller (MVC) ........................................................ 24
4 FERRAMENTAS UTILIZADAS ........................................................................ 25
4.1 Linguagem de Programação Python.......................................................... 25
4.1.1 PyCharm .................................................................................................... 26
4.2 Banco de Dados SQLite .............................................................................. 26
4.2.1 DB Browser for SQLite ............................................................................... 27
4.3 Pyqt4 (IDE Qt Designer) .............................................................................. 28
4.4 Bluetooth ..................................................................................................... 29
4.4.1 PyBluez ..................................................................................................... 30
4.5 ReportLab .................................................................................................... 30
4.6 Draw.io ......................................................................................................... 31
4.7 MySQL Workbench ...................................................................................... 31
5 RESULTADOS ................................................................................................. 31
5.1 Modelagem do Sistema ............................................................................... 32
5.1.1 Levantamento de Requisitos Funcionais e Não Funcionais ....................... 33
5.1.2 Diagrama de Caso de Uso ......................................................................... 38
5.1.3 Diagrama de Entidade Relacionamento ..................................................... 40
5.1.4 Fluxograma de Atividade do Fluxo de Marcação do Ponto ........................ 42
6 TELAS DO SISTEMA ....................................................................................... 44
7 CONCLUSÃO ................................................................................................... 61
REFERÊNCIAS ................................................................................................ 63
APÊNDICE ....................................................................................................... 66
15
1 INTRODUÇÃO
No mundo hiperconectado, os avanços tecnológicos crescem de maneira
rápida, dando lugar a processos cada vez mais otimizados. No controle de ponto foram
desenvolvidas diversas soluções para a gestão do horário de trabalho dos
funcionários. O livro de ponto, por exemplo, era mais simples e barato, contudo mais
trabalhoso para as organizações gerenciarem. O ponto cartográfico era mais prático
que o manual, em contrapartida, mais desgastante de controlar devido aos cartões de
ponto, sem falar na facilidade que esse método possibilita para ações fraudulentas
(TANGERINO, 2018, p. 2).
Dentre essas possibilidades, surgiu mais uma opção de registro de ponto. Um
sistema automatizado que se dava pelo meio eletrônico, chamado de “livro
biométrico”. Porém os custos para a implementação do cadastro biométrico são altos,
além disto, para os trabalhadores que tem como ferramenta de trabalho suas próprias
mãos, acabavam tendo dificultando ao se registrar no ponto biométrico, devido a
desgaste da pele, como os operários da construção civil.
Devido a esses problemas, neste trabalho busca-se desenvolver um software,
com o uso do conceito de Internet das Coisas, em que tudo pode se conectar à internet
e transferir informações, com capacidade de prover uma decisão mais eficiente,
elevando a tecnologia a um novo nível. Segundo Pinz (2016, p. 2), com a Internet das
Coisas integrada no meio urbano, o cidadão se torna protagonista da cidade, dando
às máquinas a capacidade de aprenderem com as experiências obtidas por meio
dessa interação. Desta forma, podemos exemplificar as Smart Cities (Cidades
Inteligentes), em que as pessoas se beneficiam de dispositivos eletrônicos para a
realização de tarefas de forma automatizada, mediante a solicitação de serviço.
Com esse propósito define-se uma proposta para agilizar o registro de ponto
eletrônico de funcionários, com maior confiabilidade e precisão, facilitando a emissão
de relatórios e análise diária da assiduidade dos colaboradores da empresa. Com isso,
é possível realizar o registro de ponto por intermédio de dispositivos inteligentes
(smartwatch, smartphones e notebooks) em tempo real.
Para isso, a solução consiste no uso dos conceitos de Internet das Coisas, que
é capaz de coletar e transmitir dados dentro de uma rede, com diversos dispositivos
simultaneamente, dessa forma o sistema de ponto eletrônico poderá realizar o registro
16
de vários funcionários dentro de poucos segundos, no local de trabalho, tendo um
controle em tempo real da jornada de trabalho de cada empregado. Assim tornando-
se muito mais simples e prático o registro em qualquer lugar e a qualquer momento
na empresa, por meio de um dispositivo com a conexão Bluetooth.
Além de agilizar parte das tarefas rotineiras do setor de recursos humanos, é
possível proporcionar um aumento da produtividade a equipe. Isso agrega vantagens
competitivas como a transparência das relações profissionais, acompanhamento dos
relatórios diários e mensais. Isso influencia positivamente na qualidade do trabalho
executado, uma vez que garante a precisão das informações.
Desta forma estaremos utilizando um dispositivo eletrônico que tenha a
capacidade de se comunicar com outros dispositivos através da conectividade
Bluetooth, chamado de Ponto Eletrônico via Bluetooth (PEB), para que haja
transferência de informações, na requisição de dados solicitados pelo sistema. Tal
sistema será desenvolvido na linguagem de programação Python. Para Summerfield
(2012, p. 1), a simplicidade e clareza desta linguagem, nos permite ter menos esforço
em lidar com as linhas de código.
Em vista disto será usado o banco de dados SQLite3, uma vez que, é um
Sistema de Gerenciamento de Banco de Dados (SGBD) de código livre e inteligível.
Segundo Tavares (2016, p. 1), a linguagem Python se integra muito bem com o
gerenciador de banco de dados SQLite. O que significa que pode-se criar um banco
de dados SQLite com qualquer versão de Python atual sem precisar baixar nenhuma
dependência adicional (REVISTABW, 2018, p. 1).
Para criação da interface gráfica foi utilizada a biblioteca PyQt4, que segundo
Summerfield (2007, p. 1) é a combinação de Python e Qt, “PyQt”, tornando possível
desenvolver aplicativos em qualquer plataforma e executá-las em todas as
plataformas suportadas, por exemplo, todas as versões modernas do Windows, Linux,
MAC OS X e a maioria dos sistemas baseados em Unix. QT é uma das bibliotecas
mais poderosas para o desenvolvimento de Interface Gráfica do Usuário (Graphics
User Interface – GUI), isto é, um modelo de interface que permite a interação de
dispositivos com o usuário através de componentes gráficos.
17
1.1 JUSTIFICATIVA
O Registro de funcionários é uma atividade rotineira em todo tipo de
organização. Diversas soluções tecnológicas têm sido implementadas com objetivo
de auxiliar na execução dessa atividade. Acredita-se que a Internet das Coisas
possibilita uma revolução na maneira como diversas tarefas são realizadas. Os
registros de pontos também pode ser afetados por essa nova transformação digital.
Assim, surge a questão tema da nossa monografia: como desenvolver um sistema de
ponto, articulado com a tecnologia da Internet das Coisas, para melhorar o registro do
funcionário em uma determinada empresa?
Os procedimentos dedicados às atividades rotineiras vêm sendo substituídos
por serviços mecanizados, para facilitar a vida do ser humano e otimizar o seu tempo
de trabalho. Um bom sistema de registro de ponto eletrônico realizará suas tarefas,
pondo a Internet das Coisas como artifício de confiabilidade e eficiência na
transmissão e coleta de dados, favorecendo um controle mais preciso do registro dos
colaboradores, permitindo maior facilidade na emissão de relatórios e análise diárias
de entradas/saídas dos empregados em determinado período de tempo (AHGORA,
2017, p. 2).
Nesse sentido e em decorrência do alto índice de falhas e fraudes do registro
manual e mecânico, o Registro Eletrônico de Ponto (REP) tem-se mostrado como
alternativa viável para a correção da maioria dos problemas encontrados.
Como solução, foi desenvolvido um sistema que fará uso do conceito de
Internet das Coisas, que é capaz de coletar e transmitir dados dentro de uma rede,
com diversos dispositivos simultaneamente, dessa forma o sistema de ponto
eletrônico poderá realizar o registro de vários funcionários dentro de poucos
segundos, no local de trabalho, tendo um controle em tempo real da jornada de
trabalho de cada empregado. Assim tornando-se muito mais simples e prático o
registro em qualquer lugar e a qualquer momento na empresa, por meio de um
dispositivo com a conexão Bluetooth.
18
1.2 OBJETIVOS
1.2.1 Objetivo Geral
Desenvolver um sistema de registro de ponto eletrônico utilizando a tecnologia
Bluetooth como canal de comunicação com dispositivos móveis, agregando
praticidade ao processo de gestão de ponto, mantendo sempre a confiabilidade e
segurança dos dados.
1.2.2 Objetivos Específicos
➢ Compreender a linguagem de programação Python;
➢ Compreender a estrutura da conectividade Bluetooth;
➢ Estudar e aplicar o conceito de Internet das Coisas;
➢ Utilizar a Engenharia de Software no processo de desenvolvimento de
Sistemas;
➢ Desenvolver uma aplicação de registro de ponto eletrônico que se comunique
com dispositivos móveis através da tecnologia Bluetooth para o registro de
funcionários.
2 METODOLOGIA DA PESQUISA
Uma pesquisa pode ser estabelecida como um processo claro e sistemático de
desenvolvimento científico de modo a encontrar respostas para problemas através do
uso de métodos científicos.
Na pesquisa qualitativa, a construção do conhecimento ocorre pela interação
constante entre os investigadores e o objeto de pesquisa, ou seja, ela é interpretativa.
De acordo com Cyriaco et al (2017, p. 7) “é provavelmente o maior desafio do método,
19
pois ela não segue técnicas estatísticas tradicionais, já que o foco está na
interpretação dos dados, e não na quantificação dos fenômenos estudados”.
Este trabalho baseou-se em uma estratégia de pesquisa qualitativa, de
característica exploratória, que segundo Oliveira (1999, p.134), pesquisa exploratória
“é a ênfase dada à descoberta de práticas ou diretrizes que precisam modificar-se na
elaboração de alternativas que possam ser substituídas”. Assim avaliamos ser o mais
apropriado para o tipo de análise que pretendemos fazer, utilizando-se dos
procedimentos metodológicos de pesquisa, buscando checar as informações e
explorar os tópicos de difícil abordagem.
Além do cientista ser ao mesmo tempo o sujeito e o objeto de suas pesquisas,
usando das técnicas de coleta e análise de dados, feitas com a realização de
conteúdos acadêmicos e livros utilizados na pesquisa (BARDIN, 1977, p. 42), que tem
o potencial de aumentar a qualidade do registro de ponto e facilitar o gerenciamento
pelo colaborador e pela organização, agregando praticidade e proporcionar maior
familiaridade com o problema, para alcançar os resultados e respostas a respeito da
problematização apresentada neste trabalho.
Na etapa de levantamentos dos requisitos, foram feitas algumas reuniões com
o cliente para definir os requisitos através de perguntas diretas, observando sua
participação e anotando suas respostas. Explorando os motivos que levam um
indivíduo a optar por essa tecnologia. Dessa forma planejando o início do
desenvolvimento do projeto e o ambiente no qual será aplicado.
Para produzirmos o produto do software, foram estudadas diversas tecnologias,
entre elas uma nova linguagem de programação, que nos proporciona-se mais opções
para desenvolver o sistema, com ferramentas de alto desempenho e de fácil uso. O
principal instrumento utilizado foi a linguagem de programação Python, pois é uma
linguagem de alto nível, rápida de aprender e que possui uma sintaxe organizada.
Além de apresentar variados módulos voltados a realidade do projeto.
No correr do processo de desenvolvimento aplicamos o modelo incremental,
na qual realizava as etapas de entrega do software por parte, ou seja, a cada ciclo
desde do levantamento de requisitos até a entrega do produto. Repetindo esse
processo consecutivamente até a entrega do final produto. O método de pesquisa
escolhido favoreceu uma liberdade na análise de se mover por diversos caminhos do
conhecimento, possibilitando assumir várias posições no decorrer do percurso a
respeito do trabalho.
20
3 REFERENCIAL TEÓRICO
Consiste em ampliar as ideias com base nas referências bibliográficas e
verificar o estado do problema a ser definido, sob o aspecto teórico e de outros estudos
e pesquisas já realizados. Segundo Marion, Dias e Traldi (2002, p. 38), “O referencial
teórico deve conter um apanhado do que existe, de mais atual na abordagem do tema
escolhido, mesmo que as teorias atuais não façam parte de suas escolhas.” Assim
possibilita fundamentar e dar consistência a todo o estudo.
3.1 Trabalhos Relacionados
Esta seção tem como objetivo apresentar alguns trabalhos relacionados,
abordando a evolução do registro de ponto eletrônico.
Redação E-Commerce News (2018, p. 1) apresenta uma empresa que oferece
uma solução de gestão de jornada e registro de ponto de colaboradores na nuvem. A
tecnologia oferece um serviço que realiza o registro através da identificação rápida do
colaborador por meio do reconhecimento facial, que possui um sistema de Machine
Learning, permitindo o uso do aprendizagem contínua ou da geolocalização de um
dispositivo eletrônico conectado à internet, que realiza o registro de ponto a partir do
aplicativo disponibilizado pela empresa.
Dessa forma os registros de pontos se tornam mais rápidos, precisos e seguros,
diminuindo cada vez mais as chances de fraudes, além do software dar mais poder
ao RH das empresas, que podem alcançar resultados surpreendentes otimizando
suas tarefas e sendo mais produtivo para a empresa.
Pereira (2011, p. 48) apresentam um projeto que consiste na construção de um
protótipo para simular o controle de algumas funcionalidades automotivas, com a
utilização de um Smartphone com Android. O objetivo desta simulação não substituirá
a chave automotiva e sim irá proporcionar uma nova opção para a utilização do celular
no controle de funções automotivas. No protótipo será usado a interligação de um
micro controlador Arduino a um módulo Bluetooth que fornece o meio de comunicação
com o dispositivo móvel. Onde foi utilizado um software chamado Amarino para
21
realizar o uso do acelerômetro do celular, e dependendo do movimento realizado no
celular uma instrução é enviada para a interpretação, esse software será instalado no
Smartphone. O Arduino é onde contém a programação das funções a serem utilizadas
pelo protótipo, no qual Smartphone é a ferramenta utilizada para fazer o envio e o
recebimento de informações correspondentes ao funcionamento das atividades, em
que o Software Livre Amarino é a aplicação responsável pelo estabelecimento da
conexão e definição do evento, verificando as atividades realizadas pelo protótipo.
Carlo (2011. p. 10) apresenta um trabalho que visa importar e exportar
relatórios em um sistema de controle de ponto de funcionários, no qual um
equipamento registra o ponto do funcionário e emite um comprovante de registro, onde
esse registro possa ser automaticamente exportado para o setor de contabilidade,
financeiro ou de recursos humanos da empresa. Nesse sentido, o trabalho reporta
pelo sistema um relatório que contém o registro de controle de horas do empregador
na empresa. O sistema permite exportar os dados registrados pelo equipamento e
exportá-los para um software gerencial da empresa.
3.2 Processo de Desenvolvimento de Software
Para desenvolver um software é necessário realizar diversas tarefas, desde o
levantamento de requisitos, que permite entender melhor o produto que será
construído, até testes para validar se o produto está de acordo com o esperado pelo
cliente/demandante. Dessa forma, a Engenharia de Software é a capacidade do
profissional dirigir os seus conhecimentos para o desenvolvimento, manutenção e
adequação do software a diversos processos produtivos, a fim de garantir maior
desempenho e produtividade.
Segundo Pressman (2011, p. 52) “processo de software é definido como uma
metodologia para as atividades, ações e tarefas necessárias para desenvolver um
software de alta qualidade”. Com aplicação de tecnologias e práticas de gerência de
projetos, visando a organização e produtividade para que atenda às necessidades do
cliente, afim de obter um software confiável e economicamente acessível.
Um processo pode ser claramente eficaz, considerando as relações entre as
atividades para o desenvolvimento do software, os artefatos produzidos no
22
desenvolvimento, as especificações dos produtos de cada atividade realizada, as
ferramentas, procedimentos e habilidades do pessoal envolvido (BARCELLOS;
FALBO, 2011, p. 1). Portanto, um processo de software é a estrutura de um conjunto
de atividades que resultam em um produto de software.
3.2.1 Modelo Incremental
Vários projetos de software definem requisitos iniciais de sistemas, permitindo
que atividades sejam executadas a cada incremento, antes de dar continuidade ao
processo. Essa definição de requisitos, proporciona a redução no volume do trabalho
e melhoria das especificações do desenvolvimento do software, e é aplicada em
sequencias lineares de forma escalonada, à medida que o tempo avança. Para Braga
(2017, p. 45) “O modelo incremental combina elementos cascata (aplicado
repetidamente) com a filosofia iterativa da prototipação”, trabalhando junto com o
usuário, para descobrir os requisitos de maneira incremental, até ao produto final. Este
modelo foi o mais apropriado para no nosso projeto por agregar vantagens, que
segundo Barcellos e Falbo (2011, p. 5) podem ser citadas abaixo:
Menor custo e menos tempo são necessários para se entregar a primeira
versão;
Os riscos associados ao desenvolvimento de um incremento são menores,
devido ao seu tamanho reduzido;
O número de mudanças nos requisitos pode diminuir devido ao curto tempo de
desenvolvimento de um incremento.
23
Figura 1 - Variações do Modelo Incremental
Fonte: Barcellos e Falbo, 2011.
A Figura 1 mostra a sequência do desenvolvimento do software desde a fase
de planejamento até a entrega do produto final. Na sequência (a) é realizado o
levantamento preliminar de requisitos, depois a análise e especificação de requisitos,
projeto até a entrega e implementação, passando para sequência (b), no qual inicia
pela especificações de requisitos até a entrega e implementação, voltando na fase de
análise.
Assim planejando as aplicações dos incrementos para a primeira versão do
sistema, repetindo esses procedimentos constantemente, até o termino.
3.3 Arquitetura do Software
Segundo Barbosa (2009, p. 88) “a arquitetura de software é a organização
fundamental de um sistema, representada por seus componentes, seus
relacionamentos com o ambiente, e pelos princípios que conduzem seu design e
evolução”. A arquitetura de software também se refere a documentação do sistema,
tal documentação facilita muito a comunicação entres os stakeholders, bem como
permite o reuso dos componentes dos projetos e padrões entre eles. É interessante
24
entender e identificar as características básicas de cada estilo dos padrões
arquiteturais para escolher aquele que melhor atende as necessidades de um projeto
especifico. Pressman (2011, p. 350) explica que existem vários estilos de arquiteturas,
entre elas a arquitetura centralizada em dados; arquitetura de fluxo de dados;
arquitetura de chamada e retorno; arquitetura orientada a objetos; arquitetura em
camadas, arquitetura Modelo Visão e Controle (Model View Controller - MVC) e muitas
outras.
3.3.1 Padrão Model View Controller (MVC)
O MVC é uma arquitetura que define suas estruturas, auxiliando os
desenvolvedores a construir suas aplicações, trazendo facilmente para os usuários a
visualização e a manipulação das informações evidentemente, separando a interfaces
do usuário de lógicas de negócios no meio de três camadas físicas, chamadas de
Model, View e Controller. Balthazar et al (2016, p. 2) afirma que um dos principais
objetivos do padrão MVC é a organização do código de uma aplicação em camadas,
realizando assim a separação físicas do componentes do software.
Figura 2 - Padrão MVC
Fonte: Balthazar et al, 2016.
A Figura 2 representa algumas das funções do padrão MVC, explicando a
comunicação de cada componente. Segundo a Revista EPeQ Fafibe (2011, p. 103)
“sua dinâmica é simples, todas as requisições da aplicação são direcionadas para a
25
camada Controller, que acessa a camada Model para processar a tal requisição, e por
fim exibe o resultado da camada View”, onde é a interface visualizada pelo cliente.
4 FERRAMENTAS UTILIZADAS
Para o desenvolvimento do sistema, foram estudadas algumas tecnologias,
entre elas o Python, uma linguagem de programação de alto nível orientada a objetos,
de tipagem forte e dinâmica, que é interpretada e o Banco de Dados SQLite3, que
implementa um banco de dados de Linguagem Estruturada de Consulta (Structured
Query Language - SQL) embutido na linguagem C. Softwares podem ter acesso ao
SQLite sem executar processos de Sistema de Gerenciamento de Banco de Dados
(SGBD) separado. Para a criação das telas utilizou-se uma biblioteca de interface
gráfica chamada PyQt4 que fornece com a instalação o Qt Designer, um Ambiente de
Desenvolvimento Integrado (Integrated Development Environment - IDE) para a
customização das janelas, facilitando a implementação e economizando tempo.
Para a comunicação dos smartphones com o sistema, usamos a biblioteca
PyBluez, que permite utilizar a tecnologia Bluetooth no registro dos funcionários, onde
será gerado os relatórios de frequência mensalmente, empregando uma outra
biblioteca chamada ReportLab, que possibilita gerar arquivos em Formato Portátil de
Documento (Portable Document Format - PDF) de maneira simples. E na elaboração
dos fluxogramas a ferramenta Draw.io, que foi utilizado para modelar parte dos
artefatos do projeto do Software. Por fim, o MySQL Workbench para criação do
diagrama de entidade e relacionamento do banco de dados.
4.1 Linguagem de Programação Python
Python é uma linguagem simples e muito versátil, que nos permite ter fácil
compreensão e raciocínio em algoritmos. Apesar de simples, Python é orientada a
objetos, com funcionalidade fortemente imperativa, que pode ser usada para
desenvolver e administrar grandes sistemas.
26
Segundo Summerfield (2012, p. 1), entre outras características existentes na
linguagem Python, destaca-se a simplicidade da linguagem, que facilita o aprendizado
da programação. Python também possui uma portabilidade muito grande para
diversas plataformas diferentes, além de ser possível utilizar trechos de códigos em
outras linguagens.
Python é, provavelmente, a linguagem de programação popular mais fácil e
agradável de lidar. O código Python é simples para ler e escrever, e consegue
ser conciso sem ser algo enigmático. Python é uma linguagem muito
expressa, o que significa que podemos normalmente escrever em muito
menos linhas de código Python em comparação ao que seria necessário
escrever em uma aplicação equivalente, digamos, em C++ ou Java
(SUMMERFIELD, 2012, p. 1).
A aplicação do Python em nosso projeto é essencial para a manipulação da
rede Bluetooth, pois vem com muitas ferramentas fundamentais necessárias para
programar rapidamente aplicativos locais e em redes (WISMAN, 2015, p.1).
4.1.1 PyCharm
Para a criação do sistema, utilizou-se a IDE PyCharm, um ambiente de
desenvolvimento integrado para programação de computadores, especificamente
para a linguagem Python. O PyCharm completa códigos de forma inteligente, verifica
erros e realiza correções imediatas, bem como recursos avançados de navegação
para o fácil uso de projetos com refatoração automatizadas de código e muito mais
(PYCHARM, 2018, p.1).
4.2 Banco de Dados SQLite
Segundo a Revistabw (2018, p. 1), SQLite é o nome dado a um SGBD open-
source cujo principal diferencial é que ao invés de ser um SGBD padrão, ele está
contido em uma biblioteca escrita na linguagem C. O SQLite é um software fácil de
usar, pode ser integrado a maior parte dos scripts em Python, não precisa de um
servidor externo como os sistemas de banco de dados mais tradicionais, é popular em
27
diversas aplicações para armazenar dados de usuários. Como o Firefox, o qual é um
navegador que utiliza SQLite em sua estrutura para carregar informações de arquivos,
inclusive de programas externos (DORNELES, 2012, p. 1).
4.2.1 DB Browser for SQLite
Para o projeto, foi utilizado o DB Browser for SQLite, que segundo Long (2018,
p. 1) é uma ferramenta visual de código aberto de alta qualidade para criar, projetar e
editar arquivos de banco de dados compatíveis com o SQLite, onde usuários e
desenvolvedores criam banco de dados, exploraram e organizam. O DB Browser usa
uma interface semelhante a uma planilha eletrônica, entretanto não há necessidades
de conhecer comandos SQL complicados e não requer familiaridade com a linguagem,
desta forma deve permanecer o mais simples possível para atingir seus objetivos
(LONG, 2018, p. 1).
Figura 3- Representação do DB Browser for SQLite
Fonte: Melo e Moraes, 2018.
28
4.3 Pyqt4 (IDE Qt Designer)
Segundo Summerfield (2007, p. 2) “PyQt é usado para escrever todos os tipos
de aplicações GUI, desde aplicações de contabilidade a ferramentas de visualização
usadas por cientistas e engenheiros”.
PyQt4 é fornecido na forma de dez Módulos de Python que entre eles contêm
cerca de 400 classes e sobre 6 000 métodos e funções. Todos os programas
de exemplo foram testados em Windows, Linux e MAC OS X, usando Python
2.5, Qt 4.2 e PyQt 4.2, e além disso, no Windows e Linux usando o Qt 4.3 e
PyQt 4.3. Backport para versões anteriores é possível em alguns casos, mas
recomendamos o uso de versões atualizadas do Python, Qt e PyQt
(SUMERFIELD, 2007, p. 3).
Na construção dessas GUI’s, utilizamos Python e Qt Designer, que para
Oliveira, Gunther e Vargas (2012, p. 2) “essas são duas linguagens de programação
modernas e poderosas com alta portabilidade entre os sistemas operacionais mais
utilizados, Windows, Linux e MAC OS”. A biblioteca QT traz consigo a IDE Qt
Designer, uma ferramenta de fácil uso, empregando um mecanismo de arrastar e
soltar os componentes da interface, obtendo assim um rápido desenvolvimento das
telas, no entanto, a ferramenta permite salvar o conteúdo apenas em arquivos .ui.
Sendo assim, é necessário fazer a conversão do arquivo de módulos (telas), usando
o pyuic4 para que as telas possam ser utilizadas na programação Python. Isto pode
ser feito diretamente no Prompt de Comando executando o código:
pyuic4 –x (nome_do_arquivo.ui) –o (nome_do_arquivo.py)
em que o parâmetro –x indica o arquivo que será convertido, que nesse caso é o
nome_do_arquivo.ui, e o parâmetro –o imprime o resultado, ou seja a saída do arquivo
que foi modificado para a versão Python nome_do_arquivo.py.
29
Figura 4 - Modelo 4.2 do QTDesigner utilizado nas construções das GUI's
Fonte: Melo e Moraes, 2018.
4.4 Bluetooth
Bluetooth é uma forma de comunicação sem fio, que dispositivos usam para se
comunicar em curtas distâncias, por meio de ondas de rádio de baixo custo e baixa
potência. É uma tecnologia rápida e fácil, que não necessita do uso de estrutura física,
apenas estando próximo um do outro, utilizando de uma combinação de hardware e
software para permitir que um dispositivo localize o outro independente de sua posição
(HUANG e RUDOLPH, 2007, p. 1).
Bluetooth é um protocolo sem fio para comunicações locais, que atende
variados tipos de dispositivos, divididos em 3 classes com alcance de 100 m, 10 m e
1m. A versão mais atual do Bluetooth é a 5.0, capaz de atingir taxas com velocidades
de 50 MB/s, incluem técnicas que diminuem o risco de interferências em redes de
fidelidade sem fio (Wireless Fidelity - WIFI), que significa, uma tecnologia de
comunicação que não faz o uso de cabos (ALECRIM, 2018, p. 2).
Cada dispositivo eletrônico é atribuído de um numero de 48 bits, exclusivo de
cada dispositivo fabricado. Esse número é denominado “Endereço Bluetooth”
30
(Bluetooth Address) ou conhecido como MAC, que contém o formato
00:00:00:00:00:00, no qual serve de identificação para outros aparelhos, que
geralmente é mostrado com um nome legível do dispositivo, em que pode ser
configurado pelo proprietário. O nome modificado aparecerá para outros dispositivos
que realizarem uma busca no local.
4.4.1 PyBluez
O Python contém uma biblioteca chamada PyBluez que faz a conexão da
tecnologia Bluetooth com a linguagem de programação, na qual proporciona o reuso
de código, economizando tempo e esforço dos desenvolvedores.
O PyBluez contém os bindings, ou seja, realiza diferentes ligações para Python
em bibliotecas Bluetooth, permitindo de forma acelerada o desenvolvimento de
classes e funções encapsuladas em sistemas operacionais Windows, GNU / Linux e
MAC OS X. Dessa forma sendo escolhida a biblioteca base no desenvolvimento de
Software (HENRY, 2009, p. 3).
4.5 ReportLab
ReportLab é uma biblioteca de código aberto contendo um pacote de
ferramentas para criação de PDF complexos, escrito em Python, que permite criar
gráficos de alta fidelidade, reutilizáveis, sintaxe clara, semelhante a Linguagem de
Marcação de Hipertexto (HyperText Markup Language - HTML). O ReportLab também
possibilita o uso de linguagem inteligente de templates baseada em uma linguagem
de marcação (eXtensible Markup Language - XML) e (Redline Markup Language -
RML) (REPORTLAB, 2018, p. 1).
31
4.6 Draw.io
É um editor gráfico gratuito utilizado para edições gráficas como: fluxogramas,
diagramas em geral, organogramas e muito mais. Uma ferramenta bem intuitiva e fácil
de usar sem prévio conhecimento, a priori o Draw.io era uma ferramenta somente
online, contudo nos dias de hoje podemos contar com uma aplicação também off-line.
Os trabalhos realizados na aplicação podem ser salvos tanto em nuvem utilizando
conta existente nas plataformas mais usadas (OneDrive, Google Drive ou Dropbox),
quanto em seu próprio dispositivo local. Para uma futura alteração a ferramenta
suporta o formato XML, mas também podendo ser salvo em um formato fechado (JPG
e PNG), no entanto não podem ser modificados.
4.7 MySQL Workbench
Segundo MySQL (2018, p. 1) o MySQL Workbench é uma ferramenta visual
unificada para arquitetos de banco de dados, desenvolvedores e DBAs. Além de
fornecer modelagem de dados, administração, design de banco de dados, incluindo
tudo que um modelador de dados precisa para criar modelos complexos de Entidade
Relacionamento (ER) (MySQL, 2018, p. 1).
5 RESULTADOS
O projeto consiste na utilização de metodologias baseada na engenharia de
software que tem por finalidade garantir um software eficiente e organizado. No qual
Pressman (2011, p. 29) explica que deve-se utilizar dos princípios da engenharia para
obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em
máquinas reais, auxiliando no processo de produção desde a percepção do problema
até o momento em que o sistema desenvolvido deixa de ser operacional.
32
Para a composição do projeto foram pesquisados materiais em meio eletrônico
como artigos, revistas, monografias, livros e publicações disponíveis na internet para
o estudo acadêmico. Na etapa de levantamento dos requisitos, foram realizadas
reuniões com os stakeholders para determinar os requisitos do software através de
perguntas ao cliente, gerando o documento de requisitos que consta no Apêndice A.
E durante a etapa de planejamento, foram alocadas aos membros da equipe de
desenvolvimento as atividades destinadas a produção do software.
5.1 Modelagem do Sistema
Pereira (2011, p. 201) afirma que a modelagem do sistema possibilita o estudo
de software e a discussão de correções, modificações e validação com o cliente, a um
baixo custo. Bem como facilita a comunicação entre os membros das equipes de
análise, projeto e usuários.
No processo de desenvolvimento existem modelos abstratos em que
apresentam perspectivas diferentes, usados na engenharia de requisitos para ajudar
a identificá-los no processo de projeto e documentar a estrutura da operação do
sistema em notações gráficas baseadas em Linguagem de Modelagem Unificada.
A Unified Modeling Language (UML) é uma linguagem gráfica para visualizar,
especificar, construir e documentar os artefatos de um sistema intensivo de
software. A UML oferece um maneira padrão de escrever os planos de um
sistema, cobrindo itens conceituais, como processos e funções do sistema,
bem como coisas concretas, como classes escritas em um linguagem de
programação, esquemas de bancos de dados e componentes de software
reutilizáveis (BOOCH; RUMBAUGH ; JACOBSON, 1998, p. 5).
Essa foi a metodologia adotada para a elaboração dos diagramas de caso de
uso, entidade e relacionamento e o fluxograma de atividade , no qual é usada para
especificar o detalhamento dos requisitos levantados em forma de diagramas,
deixando organizado e facilitando a manutenção do software.
33
5.1.1 Levantamento de Requisitos Funcionais e Não Funcionais
Para o registro de ponto dos funcionários, foi utilizando um banco de dados
para armazenar as informações cadastradas pelo empregador, para que o setor de
recursos humanos possa ter um controle detalhado e preciso da entrada e saída de
cada colaborador, destacando: a pontualidade, faltas e horas extras trabalhadas ou
não, podendo todo mês gerar relatórios desses registros.
O sistema permite que os funcionários registrem o ponto, ativando em seu
dispositivo móvel, a sua conexão Bluetooth e assim realizar a comunicação com o
mesmo para que possa ser atualizado seus dados de entrada e saída no ambiente de
trabalho. Outra funcionalidade é que o gerente realize solicitações para o
administrador do sistema alterar os dados dos funcionários, como também cadastrar
e excluir.
Esse será o grande diferencial do projeto, o controle será realizado através do
mapeamento do Endereço MAC de cada dispositivo móvel dos funcionários, por uma
rede sem fio (Bluetooth).
Tabela 1 - Requisitos Funcionais
Requisitos Funcionais
Cód. Nome Descrição
RF01
O sistema deve
registrar ponto de
funcionário
O sistema deverá registrar os horários de
entrada e saída de um Funcionário através da
busca de MACs (Bluetooth) ao redor da área de
mapeamento.
RF02
O sistema deve
autenticar usuários
no sistema
Aqui o Usuário do sistema deverá ter acesso ao
sistema através do seu login, senha e o tipo de
usuário (Padrão, Gerente ou Administrador)
34
RF03 O sistema deve
gerenciar empresa
Esta funcionalidade permitirá que o
Administrador registre os dados cadastrais da
empresa no sistema como: Nome, localidade,
CNPJ, E-mail e Senha do e-mail, permitirá
também alterar esses dados e excluir o mesmo.
RF04
O sistema deve
configurar horários
de funcionamento
da empresa
O sistema exibirá uma tela de configuração para
identificar os horários de funcionamento da
empresa como: Horário de Abertura, Horário de
Almoço e Horário de Término do Expediente
RF05
O sistema deve
gerenciar
funcionário
Funcionalidade que permitirá cadastrar os
dados do funcionário no sistema como: Nome,
CPF, Telefone, E-mail, MAC (Bluetooth),
Usuário, Senha, Cargo, Departamento,
Empresa.
RF06
O sistema deve
gerenciar
departamento
Esta funcionalidade que o administrador possa
cadastrar cargos, que possa surgir na empresa,
excluir e também atualizar os mesmos.
RF07 O sistema deve
gerenciar relatórios
Esta funcionalidade permite que os funcionários
de nível de permissão padrão possam visualizar
seus relatórios de registro de ponto. O gerente
também poderá acompanhar sempre que ele
queira o relatório de cada funcionário, contendo,
nome do funcionário, CPF, horas normais, horas
extra e faltas. Poderá também solicitar ao
administrador a impressão do mesmo
35
RF08
O sistema deve
exibir consultas
para registro de
ponto
O sistema exibirá uma tela onde qualquer
funcionário possa consultar se o seu registro de
ponto foi confirmado.
RF09
O sistema deve
realizar
solicitações de
tratamento
Esta funcionalidade permite que o gerente
possa solicitar ao administrador uma ordem de
tratamento ao fluxo de horas de um
determinado funcionário que justificou a sua
ausência.
RF10
O sistema deve
gerenciar as
solicitações de
tratamento.
Esta funcionalidade permite que o
Administrador possa tratar os dados de horas,
faltas ou pendências de um determinado
colaborador que solicitou esse tratamento ao
gerente responsável pelo seu departamento.
RF11
O sistema deve
disponibilizar uma
tela para visualizar
tratamentos
O sistema deve exibir uma tela que listará todos
os tratamentos pendentes e concluídos pelo
administrador.
RF12 O sistema deve
gerenciar MAC
Esta funcionalidade permite que o administrador
possa alterar os dados como: Nome e MAC já
cadastrados no sistema caso seja necessário.
36
RF13
O sistema deve
enviar comprovante
de registro de
ponto por e-mail
Esta funcionalidade possibilita que o sistema
possa enviar um comprovante de registro de
ponto, via e-mail, confirmando os horários de
registro de ponto no sistema.
Fonte: Melo e Moraes, 2018.
37
Tabela 2 – Requisitos Não Funcionais
Requisitos Não Funcionais
Cód. Nome Descrição
RNF01 Bluetooth do
funcionário
Funcionário pode desligar o Bluetooth, e só
ligar na hora da saída.
RNF02 Confiabilidade
O sistema deve informar ao usuário
quando ele tentar fazer uma operação
ilegal ou quando ele está preste a realizar
uma operação que pode ser “perigosa”,
como excluir dados de usuários.
RNF03 Desempenho
O sistema deverá realizar a cada minuto
um loop de verificação de MACs
presente no local de mapeamento do
sistema.
RNF04 Ambiente de
desenvolvimento
Ambiente de Desenvolvimento do sistema
irá ser desenvolvido em Python, utilizando-
se do Banco de dados SQLite3.
Fonte: Melo e Moraes, 2018.
38
5.1.2 Diagrama de Caso de Uso
De acordo com Booch, Rumbaugh e Jacobson (1998, p. 3) os diagramas de
caso de uso são centrais para modelar o comportamento de um sistema, subsistema
ou uma classe ou modelar os requisitos. Além de serem importantes para visualizar,
especificar e documentar o desempenho dos elementos desse sistema, tornando-o
acessível e compreensível a visão externa, de como esses elementos podem ser
usados no contexto. Os atores desse diagrama são representados por pessoas ou
demais sistemas, no qual fornece uma visão geral em forma textual mais detalhada,
além de serem bons para testar sistemas executáveis através da engenharia de
software e engenharia reversa.
O diagrama de caso de uso geral, mostrado na Figura 5, têm por finalidade
descrever todos os atores envolvidos no sistema, definindo seus casos de uso.
39
Figura 5 – Diagrama de Caso de Uso Geral
Fonte: Melo e Moraes, 2018.
A Figura 5 exibe o diagrama de caso de uso, em que, os atores do sistema são:
Administrador, Gerente, Usuário Padrão e o Sistema “PEB”. O Administrador é
responsável por gerenciar o sistema, cadastrando funcionários, MACs, dados
cadastrais da empresa, departamentos, no entanto, o cadastro de departamento
incluirá o registro de cargo. O ator também poderá gerar relatórios, realizar
tratamentos de horas e visualiza-los, por fim, poderá configurar o horário de
expediente da empresa.
40
O Gerente será capaz de solicitar os tratamentos de horas de um determinado
colaborador e visualizar o status do mesmo, também conseguirá requisitar impressão
de relatórios.
O Usuário poderá autenticar-se no sistema, visualizar seu relatório de horas e
registrar o ponto. O ator Sistema PEB, iniciará o mapeamento dos MACs na área de
alcance e será responsável por enviar para o e-mail do colaborador o comprovante de
seu registro de ponto.
5.1.3 Diagrama de Entidade Relacionamento
O Modelo de Entidade e Relacionamento, também chamado de ER, ou
simplesmente MER, é um modelo muito utilizado na engenharia de software para
detalhar entidades envolvidas em um domínio de negócios, advindo da Ciência da
Computação no estabelecimento de conceitos para a modelagem de banco de dados,
usado para melhorar o design das bases de dados e para torná-las úteis e mais bem
sucedidas em suas buscas (FUSCO, 2010, p. 100). Miamoto (2012, p. 13) explica que
a partir da chave primária e da chave estrangeira é possível gerar um diagrama de
entidade e relacionamento no qual cada Tabela é representada por uma entidade e
cada chave estrangeira corresponde a um relacionamento 1:n. Relacionamentos são
representados por ligações entres as entidades (contém atributos) e as cardinalidades
expressa com o símbolo de chave “1” e o símbolo “n” para identificar uma quantidade
variável.
A Figura 6 contém o diagrama de entidades e relacionamentos do sistema.
41
Figura 6 – Diagrama de Entidade Relacionamento do Sistema
Fonte: Melo e Moraes, 2018.
As tabelas exibidas na Figura 6 se referem às classes que representam as
entidades persistidas no banco de dados. A Tabela FUNCIONARIOS contém os dados
do colaborador da empresa. A Tabela FLUXO_HORARIOS refere aos eventos como,
por exemplo, horas de entrada e horas de saída, como também a data, onde contém
as informações referente ao registro de ponto.
A Tabela EMPRESAS possui os dados cadastrais da empresa. A Tabela
DEPARTAMENTOS guarda os informes dos setores da empresa. A Tabela CARGOS
guarda os informes dos colaboradores. A Tabela TIPO_USUARIOS representa os
usuários do sistema. A Tabela TRATAMENTOS contém as informações para o
tratamento de mudança de um determinado horário do funcionário, que justificou a
sua ausência naquele período.
42
5.1.4 Fluxograma do Ponto
O Fluxograma consiste na representação gráfica, através de símbolos, que
descreve diversos processos em sequência lógicas, de forma planejada. Segundo
Daier (2016, p. 10) “O fluxograma visa a otimização das atividades, através de uma
representação esquemática de um processo, que possibilite uma visão global do fluxo
de trabalho, facilitando a leitura e entendimento de quem executa o processo”.
“Na criação de um fluxograma, basicamente elabora-se um gráfico de fluxo
de um processo, demonstrando seu funcionamento e deixando claro quais
são os insumos, as operações e o produto final. Por meio desse gráfico, os
trabalhadores podem visualizar todo o processo e descobrir a causa de
possíveis problemas ou identificar pontos de melhoria” (DAIER, 2016, p. 30).
A Figura 7 apresenta o Fluxograma de atividade da principal função do sistema.
Nesse Fluxograma, a ordem de realização dos processos, mais especificamente de
execução da atividade, pode ser observada na atividade para o fluxo de registro de
ponto no sistema.
43
Figura 7 - Fluxograma de Atividades de Registro de Funcionários
Fonte: Melo e Moraes, 2018.
O fluxograma apresentado na Figura 7, mostra o funcionamento do registro de
ponto, definindo o horário com maior fluxo de entrada e saída de funcionários da
44
empresa, para que o sistema faça com eficiência a verificação dos MACs. A interação
funciona da seguinte forma:
01 – O sistema é iniciado;
02 - O sistema verifica o horário de abertura da empresa;
03 - Se o horário não for confirmado o sistema deverá dormir 1 min;
04 – Se o horário for confirmado sistema deverá realizar a pesquisa de MACs na área
de mapeamento 15 minutos antes da abertura da empresa;
05 – Aqui o sistema realiza a filtragem de MACs, para aqueles cadastrados no banco,
carrega o funcionário devidamente vinculado, descarta os demais;
06 – Aqui o X representa a quantidade de funcionários carregados;
07 – O sistema verifica se a quantidade de funcionário é > 0 (maior que zero), se for
false retorna ao evento 03;
08 – Se for true carrega o próximo funcionário;
09 – O sistema verifica em qual turno a empresa está;
10 – Se o turno for pela parte da manhã, o sistema verifica se o funcionário realizou
seu registro de entrada;
11 – Se for false o sistema registra Horário de Entrada do funcionário;
12 – Se for true, o sistema atualiza o Horário de Saída para o almoço;
13 – Se o turno for a Tarde o sistema verifica se o funcionário registrou o Horário de
retorno do almoço;
14 – Se for false o sistema registra o Horário de retorno do almoço;
15 – Se for true a sistema atualiza o Horário de Saída (fim do expediente);
16 – O sistema decrementa um funcionário e retorna ao evento 7. 15 minutos após o
fechamento da empresa o sistema dorme a cada 10 minutos.
6 TELAS DO SISTEMA
Com a instalação do Sistema, será disponibilizado aos usuários, o acesso do
sistema de ponto eletrônico via Bluetooth, que além de gerenciar (cadastro, alterações
e atualizações) de dados, ficará responsável pelas funcionalidades do sistema. Esta
função é realizada unicamente pelo nível de permissão de administrador.
45
Na Figura 8 é ilustrada a tela de Login, que contém os campos para inserir
usuário e senha. Quando o usuário clicar no botão “Entrar”, e os dados estiverem
todos corretos, será mostrada uma mensagem com o nome do colaborador que
solicitou o login no sistema “Bem Vindo Nome_do_Colaborador”. Caso contrário será
informada uma mensagem “Dados Incorretos”.
Figura 8 - Tela de Login
Fonte: Melo e Moraes 2018.
Após a autenticação no sistema, o usário será direcionado para tela principal,
no qual mostra um menu com todas as suas funcionalidades, porém para assegurar
as informações ali contidas, foi definido os seguintes niveis de permissão de acesso,
em que são identificados abaixo:
Nível de Administrador (Permissão Total no Sistema).
Nível de Gerente (Permissão Parcial).
Nível Padrão (Permissão comum).
Nível de permissão de administrador
Com o nível de administrador o profissional é responsável por coordenar todo
o ambiente do sistema como: (log de verificação de MACs, emissão de relatórios,
resolução de solicitações de tratamento), como também gerenciar (cadastrar, editar e
excluir).
46
Nível de permissão de Gerente
O nível de permissão de gerente é para colaboradores de cargo de nível de
gerência, no qual terá acesso a todos os módulos do sistema como: (emissão de
relatórios, solicitações e visualização de tratamento), com restrição em algumas
funcionalidades, bem como a possibilidade de gerenciar (Cadastro, editar e Excluir).
Nível Padrão
Este nível é destinado para usuário padrão, ou seja, os colaboradores que terão
o acesso ao sistema somente para visualizar seus relatórios de entrada e saída do
seu ambiente de trabalho. Tendo restrições nas demais funcionalidades do sistema.
A Figura 9 mostra a tela principal, que é composta pelos menus (Processos,
Cadastro Gerais, Específicos, Relatórios, Tratamento e Relógio) que por meio deles é
realizada as funcionalidades do sistema, além de gerenciar (Cadastro, Editar e
Excluir). Só o administrador do sistema terá total acesso as essas funcionalidades, o
gerente irá utilizar somente algumas dessas funções (Relatórios e Tratamento) para
efetuar tarefas simples do dia-a-dia. Já o usuário padrão, possui permissão apenas
para usar os serviços do menu relatórios, no qual poderá visualizar com detalhe seus
registros de ponto.
Nas próximas Figuras serão apresentados os itens de cada menu exibido na
Figura 9.
47
Figura 9 - Tela Principal do Sistema
Fonte: Melo e Moraes, 2018.
Ao clicar no menu Processos é mostrado o item de Log de verificação, exibido
na Figura 10, o qual é responsável por verificar os log de entrada/saida, referente ao
registro de cada funcionário no ambiente de trabalho, somente o perfil de
(adminitrador) tem acesso a essa tela. A tela mostra uma Tabela com os campos:
(data, MAC, manhã/entrada, manhã/saida, tarde/entrada, tarde/saida) sendo exibidos
em tempo real.
48
Figura 10 - Log de verificação de Horas
Fonte: Melo e Moraes, 2018.
No menu Cadastros Gerais (disponível apenas para perfil de administrador),
existem mais dois sub menus, que são representados por colaboradores e
empregador. Clicando no submenu colaboradores é expandido mais dois itens, o
primeiro no qual pode realizar o cadastro de funcionários, conforme apresentado na
Figura 11, que exibe a tela contendo uma Tabela para mostrar o MAC e nome do
colaborador. Clicando no botão pesquisar, o sistema realizará uma busca para
localizar o MAC fornecido pelo dispositivo do funcionário, onde será feito o seu
cadastro por esse MAC. Encontrando o MAC, é clicado na linha da Tabela contendo
esses dados, para selecioná-lo, e assim clicar no botão inserir, em que vai direcionar
o usuário para uma tela de cadastro.
49
Figura 11 - Localização de MACs para Cadastro
Fonte: Melo e Moraes, 2018.
Na Figura 12 é ilustrado a tela de cadastro contendo os campos: (MAC, tipo de
usuário, nome completo, cpf, e-mail, telefone, cargo, departamento, empresa, nome
de usário, senha e confirmar senha) necessários para registrar um novo colaborador
no sistema. O novo colaborador cadastrado pode ter permissão de (perfil
administrador, gerente ou padrão), para realizar as transações no sistema como
visualizar relatórios mensais de registro de ponto.
50
Figura 12 - Cadastro de Colaboradores
Fonte: Melo e Moraes, 2018.
O segundo é o item perquisar, que fica responsável por encontrar funcionários
para fazer alterações em seus dados cadastrais ou excluí-lo do sistema, conforme
representado na Figura 13, que mostra uma tela para realizar a pesquisa pelo CPF do
colaborador, clicando no botão pesquisar que será exibida na tabela, para poder
selecioná-lo e alterar os dados clicando no botão alterar ou no botão excluir para
apagá-lo.
51
Figura 13 – Pesquisa de Funcionários para Editar e Excluir
Fonte: Melo e Moraes, 2018.
Na Figura 14 é ilustrada uma tela para cadastrar a empresa, inserindo os
seguintes dados: (razão social, local, CNPJ, E-mail e Senha do E-mail), o objetivo
desta tela é para estabelecimentos que possam ter instituições afiliadas com nomes,
locais e CNPJ diferentes. Assim o colaborador é cadastrado no sistema para aquela
determinada empresa informada.
Os dados inseridos nos campos E-mail e Senha de E-mail serão utilizados pelo
sistema para realizar o envio de comprovante de registro dos funcionários.
52
Figura 14 - Cadastro de Empresa
Fonte: Melo e Moraes, 2018.
Para alterar e excluir os dados de uma empresa, a janela disponibilizará um
campo para ser feita a pesquisa desta empresa e realizar a alteração dos dados ou
excluí-lo do sistema, clicando nos botões, conforme mostrado na Figura 15.
Figura 15 - Pesquisar Empresa
Fonte: Melo e Moraes, 2018.
53
Na Figura 16 é exibida uma tela de cadastrar departamento, que contém o
campo selecionar empresa, e o campo inserir departamento, no qual será cadastrado
o departamento referente aquela empresa.
Figura 16 - Cadastros de Departamento
Fonte: Melo e Moraes, 2018.
Já na tela apresentada na Figura 17, mostra a janela com mais um campo, no
qual será feita a pesquisa para alterar o departamento ou excluí-lo, clicando nos
botões exibidos na janela Pesquisar Departamento.
54
Figura 17 - Pesquisar Departamento
Fonte: Melo e Moraes, 2018.
O menu Específicos contém o item Gerenciar MACs, ilustrado na Figura 18, no
qual é responsável por alterar o nome ou MAC de um determinado colaborador,
realizando uma busca no banco de dados, para mostrar todos os MACs cadastrados
na Tabela. Assim podendo selecionar o MAC desejado e clicar em editar para alterar
esse dado fornecido pelo dispositivo do funcionário. O procedimento é feito
unicamente pelo perfil de administrador.
Figura 18 - Editar MACs
Fonte: Melo e Moraes, 2018.
55
A Figura 19 apresenta o menu Relatórios com o item Gerenciar Relatórios, que
mostra uma tela para gerar o relatório mensal do funcionário, disponível para qualquer
funcionário visualizar o fluxo de seus registros de ponto dentro da empresa. Todos os
funcionários tem acesso a esta funcionalidade do sistema.
Figura 19 - Gerar Relatórios
Fonte: Melo e Moraes, 2018.
No menu Tratamento é disponibilizado três sub menus (solicitação, realizar e
visualizar) que somente o perfil de administrador tem total acesso a esses sub menus.
Em que o item solicitação apresentado na Figura 20, é para o gerente responsável por
uma equipe de colaboladores do seu departamento, solicitar para o administrador do
sistema, a mudança no horário de trabalho de algum funcionário, que justificou o
motivo pelo qual não compriu a jornada de horas de trabalho naquele determinado
período, inserindo os seguintes dados para a solicitação: (solicitante, departamento,
funcionário e solicitação). Apenas o gerente responsável por aquele funcionário, pode
solicitar a mudança de horário para o administrador.
56
Figura 20 – Solicitar Tratamento
Fonte: Melo e Moraes, 2018.
No item Realizar, mostrado na Figura 21, é ilustrado uma tela para o
administrador do sistema buscar todas as solicitações realizadas pelos gerentes. Será
realizada a busca pelas solicitações no campo (tratamento solicitado), selecionando o
tipo de pesquisa (no caso todos), sendo disponível os dados na Tabela com as
informações: (código, data de emissão e status), selecionando o dado desejado para
clicar no botão abrir.
57
Figura 21 - Buscar Solicitações Pendentes
Fonte: Melo e Moraes, 2018.
Dessa forma será exibida a janela ilustrada na Figura 22, em que o
administrador do sistema visualiza as solicitações, referente a mudança do horário
daquele funcionário. Após ter verificado o motivo, será tratada a solicitação clicando
no botão tratar.
Figura 22 - Visualizar Solicitação a ser Tratada
Fonte: Melo e Moraes, 2018.
58
Visualizando a tela mostrada na Figura 23, composta pelos campos
departamento e funcionário, bem como a tabela que exibe as colunas data,
manhã/entrada, manhã/saida, tarde/entrada e tarde/saida, para ser tratados clicando
no botão alterar. Após o tratamento, o dministrador irá voltar para a tela da Figura 20,
e marcar o campo status, como conluido. Assim finalizando o tramtamento.
Figura 23 - Realizar Tratamento
Fonte: Melo e Moraes, 2018.
Na Figura 24 mostra a tela que será feita a busca pelas solicitações de
tratamento, inserindo o nome do solicitante para fazer a pesquisa, em que será listada
na Tabela os dados (codigo, data de emissão e departamento), para que assim o
usuário selecione o tipo de tratamento solicitado a ser buscado e clique no botão
visualizar para ver seu status.
59
Figura 24 - Buscar Solicitações para o Acompanhamento
Fonte: Melo e Moraes, 2018.
A Figura 25, apressenta as informções solicitadas pelo gerente com o campos
(solicitante, data de emissão, funcionário e motivo) e o status (pendente ou concluido)
que mostra a situação do pedido que foi solicitado para a mudança do horário do
funcionário. Essas informações só podem ser visualizadas, e não editadas, apenas os
funcionários com nivel de permissão administrador e gerente tem acesso.
Figura 25 - Verificar Situação de Tratamento
Fonte: Melo e Moraes, 2018.
60
Na Figura 26 é exibida a tela com os campos empresa e os horários de
funcionamento da mesma. A funcionalidade de busca dos MACs se utilizará desses
horários (Início do Expediente, Saída para Almoço, Retorno do Almoço e Fim do
Expediente) para realizar os registros de seus colaboradores.
Figura 26 - Tela para Inserir Horário do Funcionamento do Sistema
Fonte: Melo e Moraes, 2018.
61
7 CONCLUSÃO
O estudo possibilitou desenvolver um software que melhore o desempenho do
registro de funcionários, tornando-o mais prático e fácil. A proposta utiliza-se da
inovação das práticas tecnológicas no controle da jornada de funcionários, usando
dispositivos móveis para se comunicar com o sistema de ponto eletrônico, através da
conexão Bluetooth, que possibilita uma comunicação eficiente com baixo custo.
Perante os instrumentos coletados e analisados nesta pesquisa, foram
atingidos os objetivos específicos, tais como: aprender uma nova linguagem de
programação através de artigos, literaturas e cursos interativos; compreender a
estrutura da conectividade Bluetooth, aplicando o desenvolvimento de um modulo de
comunicação sem fio com dispositivos moveis, diante dos estudos realizados sobre a
tecnologia; estudar e aplicar o conceito de Internet das Coisas com o objetivo de
enfatizar a transmissão de dados no registro do colaborador em uma organização;
utilizar a Engenharia de Software no processo de desenvolvimento de Sistemas
aplicando suas etapas ao longo de toda a pesquisa; desenvolver uma aplicação de
registro de ponto eletrônico que se comunique com dispositivos móveis através da
tecnologia Bluetooth para o registro de funcionários no qual foi alcançado com êxito.
O desenvolvimento do presente projeto possibilitou a utilização de recursos
tecnológicos usados no dia-a-dia das pessoas para o registro de funcionários no
ambiente de trabalho, utilizando dispositivos móveis para se comunicar a um sistema
de gerenciamento de ponto eletrônico. O Sistema tem o potencial de aumentar a
qualidade do registro de ponto e facilitar o gerenciamento pelo colaborador e pela
organização, agregando praticidade e confiabilidade aos dados.
O sistema permite a emissão de relatórios e análise diária da assiduidade dos
colaboradores, agilizando parte das tarefas rotineiras do setor de recursos humanos,
em que é possível proporcionar um aumento da produtividade a equipe. Isso agrega
vantagens competitivas, como a transparência das relações profissionais, através do
acompanhamento dos relatórios diários e mensais. Dessa forma, influencia
positivamente na qualidade do trabalho executado, uma vez que garante a precisão
das informações.
62
Além disso, são utilizados dispositivos eletrônicos com a capacidade de se
comunicar com outros dispositivos através da conectividade Bluetooth, para que haja
transferência de informações, na requisição de dados solicitados pelo sistema.
Esta solução também se diferencia das soluções encontradas no mercado, pois
não é necessário instalar nenhum aplicativo no dispositivo dos funcionários, tampouco
é necessário que o funcionário acesse o software para realizar o registro, bastando
ativar a conexão Bluetooth do smartphone.
Os trabalhos futuros serão para o aperfeiçoamento da aplicação, incluindo
novos módulos como os de contabilidade e refinando os existentes, empregando
novas tecnologias no projeto para maximizar os resultados e diminuir cada vez mais
os custos.
Dentre as propostas para novas funcionalidades pode-se citar:
A Migração do sistema desktop para aplicação Web, permitindo mais
praticidade no acesso aos relatórios;
Desenvolvimento de aplicação multiplataforma para visualização de relatórios
pelo smartphone do funcionário;
Integrar o envio de e-mail com ferramentas corporativas, possibilitando o uso
da intranet para esta tarefa, diminuindo a dependência por elementos externos
à organização;
Desenvolvimento de um módulo de Análise de Dados, Baseado em Big Data
Analytics, para melhor entendimento do padrão de assiduidade dos
funcionários e tomada de decisão por parte da Organização.
63
REFERÊNCIAS
ALECRIM, Emerson. Tecnologia Bluetooth. [S.l.]: O que é e como funciona?, 2018. Disponível em: <https://www.infowester.com/bluetooth.php> Acesso em: 29 out. 2018. AHGORA. Vantagens da Tecnologia IoT e Nuvem no RH, [S.I.]: Registro de Ponto Eletrônico, 2017. Disponível em: <http://marcusmarques.com.br/gestao-de-pessoas/tudo-que-voce-precisa-saber-ponto-eletronico-para-controle-presenca-funcionarios/>. Acesso em: 30 abr. 2018. BALTHAZAR, G. R et al. Uma Abordagem Pratica sobre a Aplicação do Padrão MVC com o Framework Struts, Minas Gerais, p. 2, 20 jan. 2016. BARBOSA, Guilherme M. G. Um Livro-texto para o Ensino de Projeto de Arquitetura de Software. 2009. 209 f. Dissertação (Pós-Graduação em Ciência da Computação) – Universidade Federal de Campina Grand, Paraíba, 2009. BARCELLOS, M. R.; FALBO, R. A. Engenharia de Software. 2011. 1 f. Dissertação (Notas de Aula) – Universidade Federal do Espírito Santo, Espirito Santo, 2011. BARDIN, L. Análise de conteúdo. 70. ed. Lisboa, 1977. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivan. The Unified Modeling Language User Guide: the original developers of the UML. 1. ed. Massachusetts, 1998. BRAGA, Rosana T. Vaccare. Modelos de Processos de Software. 2017. 45 f. Dissertação (Engenharia de Software) – ICMC-USP, São Paulo, 2017. CARLO, Jean. Sistema Para Controle De Ponto De Funcionários. 2011. 11 f. Dissertação (Graduação Tecnologia em Análise e Desenvolvimento de Sistemas) – Universidade Tecnológica Federal do Paraná, Pato Branco, 2011. CYRIACO, A. F. et al. Pesquisa Qualitativa: Conceitos Importantes e Breve Revisão e Sua Aplicação à Geriatria/Gerontologia, Boston (MA), p. 7, 01 mar. 2017. DAIER, Victor H. T. Fluxogramas De Processos e Falhas de Produção: Um quase-Experimento em uma Empresa do Setor de Alimentos. 2016. 10 f, 30 f. Dissertação (Bacharel em Administração) – Universidade de Brasília, Brasília - DF, 2016. DORNELES, Elias. Banco De Dados. [S.I.]: Apresentando O SQLite Com Python, 2012. Disponível em: <https://pythonhelp.wordpress.com/2012/08/28/apresentando-o-sqlite-com-python/> Acesso em: 15 out. 2018. FUSCO, E. Modelos Conceituais de Dados como parte do Processo da Catalogação. Tese (Doutorado em Ciência da Informação) - Faculdade de Filosofia e Ciências, Universidade Estadual Paulista, Marília, 2010.
64
HENRY, M.et al. Desenvolvimento de Sistemas Pervasivos com Bluetooth e Linux/Python. Manaus: Fucapi/INDT, 2009 HUANG, Albert S. RUDOLPH, Larry. Bluetooth Essentials For Programmers. Estados Unidos: New York, 2007. LONG, Jason. In: DB Browser For Sqlite. A Home Oficial do Navegador de Banco de Bados para SQLite. 2018. Disponível em:<https://sqlitebrowser.org/>. Acesso em: 09 de out 2018. MARION, José Carlos; DIAS, Reinado; TRALDI, Maria Cristina. Monografia para os Cursos de Administração, Contabilidade e Economia. São Paulo: Altas. 2002. MIAMOTO, Cristiane V. P. Refinamento de um Diagrama Entidade-Relacionamento: Estudo de Caso em um Sistema ERP, Monografia (Especialização em Informática) - Universidade Federal do Paraná – UFPR, Curitiba, 2012. MYSQL, 06. 2018, EUA / Canadá. Anais eletrônicos. EUA / Canadá: MYSQL Sales, 2018. Disponível em: < https://www.mysql.com/products/workbench/ >. Acesso em: 06 nov. 2018. OLIVEIRA, Humberto; GUNTHER, Hans; VARGAS, Lucas. Construção de GUI’s Utilizando Python e QTDesigner. IFRS/Campus Osório, Rio Grande do Sul, p. 2, 21 ago. 2012. OLIVEIRA, Luiz Silvio. Tratado de metodologia científica: projetos de pesquisas, TGI, TCC, monografias, dissertações e teses. p. 134. 2.ed. São Paulo: Pioneira, 1999. PEREIRA, Bruno. Sistema Bluetooth Para Controle De Acessórios Veiculares Utilizando Smartphone Com Android. 2011. 12 f. Dissertação (Graduação Engenharia da Computação) – Centro Universitário De Brasília - Uniceub, Brasília, 2011. PEREIRA, Luiz Antônio de Moraes. Análise e Modelagem de Sistemas com a UML: Com Dicas e Exercícios Resolvidos. 1. ed. Rio de Janeiro, 2011. PINZ, Lucas. 2016. In: Logicalis Brasil. Plataforma de IoT Possibilita Criação de Cidades Inteligentes. 2016. (4min24s). Disponível em: <https://www.youtube.com/watch?v=1PbtnF4SCuo&t=16s>. Acesso em: 30 de abr de 2018. PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7. ed. Porto Alegre: AMGH, 2011. PYCHARM. In: The Python IDE For Professional Developers. JetBrains. 2018. Disponível em: < https://www.jetbrains.com/pycharm/ >. Acesso em: 29 de out 2018.
65
REDAÇÃO E-COMMERCE NEWS. Pontomais Lança Tecnologia de Reconhecimento Facial para Registro de Ponto na Nuvem. 09 ago. 2018. Disponível em: < https://ecommercenews.com.br/noticias/lancamentos/pontomais-lanca-tecnologia-de-reconhecimento-facial-para-registro-de-ponto-na-nuvem/> Acesso em: 23 nov. 2018 REPORTLAB. Reportlab Europe LTD. Europa, 2018. Disponível em: <https://www.reportlab.com/>. Acesso em: 06 nov. 2018. REVISTABW. Python: Utilizando SQLite. Revista Brasileira de Web: Tecnologia, Disponível em: <http://www.revistabw.com.br/revistabw/utilizando-sqlite-com-python/>. Criado em: 14 jan. 2013. Atualizado em: 02 abr. 2018. Acesso em: 15 jun. 2018. REVISTA EPeQ Fafibe. São Paulo: 3. Ed. n.103, 16 nov. 2011. SUMMERFIELD, Mark. Programação em Python 3: Uma Introdução Completa à Linguagem Python. 1. ed. Rio de Janeiro: Alta Books, 2012. SUMMERFIELD, Mark. Rapid GUI Programming With Python and Qt: The Definitive Guide to PYQT Programming. 1. ed. Ann Arbor, Michigan – EUA, 2007. TANGERINO. Como Automatizar a Gestão de Ponto dos seus Funcionários, Belo Horizonte, 02 jan. 2018. Disponível em: <https://www.tangerino.com.br/como-automatizar-gestao-de-ponto-dos-seus-funcionarios/>. Acesso em: 30 abr. 2018. TAVARES. Python e o SQLite, [S.I.]: Caderno de Laboratório, 2016. Disponível em: <https://cadernodelaboratorio.com.br/2016/01/12/python-e-o-sqlite-i/>. Acesso em: 15 jun. 2018. WISMAN, Raymond. Nova Albany EUA. In: Universidade de Indiana Se. Python and Bluetooth. 2015. Disponível em:< >. Acesso em: 29 de out2018.
66
APÊNDICE
APÊNDICE A – ANALISE E ESPECIFICAÇÃO DE REQUISITOS
67
68
69
70
71
72
73
74
APÊNDICE B - TERMO DE ACEITE DO PROJETO
75
76
77