Escola Superior de Tecnologia e Gestão
Instituto Politécnico da Guarda
R E L AT Ó R I O D E P R O J E T O E M
C O N T E X T O D E E S T Á G I O
ARALOGS – REGISTO DE HORAS
DE TRABALHO
DANIEL AMARO GOMES
RELATÓRIO PARA A OBTENÇÃO DO GRAU DE LICENCIADO EM ENGENHARIA INFORMÁTICA
Relatório de Projeto em contexto de Estágio
i
Agradecimentos
Um agradecimento especial à minha família por todo o apoio dado, ao longo da realização desta licenciatura, em especial à minha mãe por todo o esforço que fez para me manter a estudar e proporcionar-me um bom futuro profissional.
Agradeço também à Softinsa, pela oportunidade de estagiar em ambiente profissional e por terem sido acolhedores, em especial ao meu coordenador José Pinto, por toda a ajuda na realização do projeto em contexto de estágio, que com certeza me facilitou e ajudou bastante na realização do mesmo.
Um agradecimento ao meu orientador de estágio, o Professor José Carlos Fonseca, por toda a ajuda dada e disponibilidade para reuniões pessoais, dando me sugestões e formas de realizar facilmente este trabalho e tornando-o melhor por isso.
Por último, agradeço aos meus amigos e amigas, que de uma maneira ou outra transmitiram-me apoio na realização deste projeto e também ao longo do meu percurso académico, e também por me motivarem sempre a não desistir, e continuar a trabalhar pelo meu futuro.
Relatório de Projeto em contexto de Estágio
iii
Ficha de identificação | Elementos Identificativos
AlunoNome: Daniel Amaro Gomes Número: 1012168
Curso: Engenharia Informática
Estabelecimento de Ensino
Escola Superior de Tecnologia e Gestão – Instituto Politécnico da Guarda
Morada: Av. Dr. Francisco Sá Carneiro 50, 6300-559 Guarda Telefone: 271220120 Fax: 271220150
Entidade de Acolhimento
SOFTINSA
Morada: Zona Industrial de Coimbrões 16 3500-618 Viseu Telefone: 213 219 600
Duração do Projeto em Contexto de Estágio
Início: 15 de Julho de 2019 Fim: 2 de Setembro de 2019
Orientador do Projeto (Estabelecimento de Ensino)
Nome: José Carlos Coelho Martins Fonseca Grau Académico: Doutor
Orientador do Projeto (Entidade de Acolhimento)
Relatório de Projeto em contexto de Estágio
v
Resumo
O presente relatório descreve o trabalho realizado no projeto em contexto de estágio realizado na empresa Softinsa.
O projeto consistiu essencialmente em criar uma aplicação Windows, chamada Aralogs, que pudesse informar os colaboradores das horas de trabalho que teriam por registar. Essa aplicação é instalada em todas as máquinas da empresa, na pasta de arranque do computador, para se iniciar no arranque das máquinas. Os colaboradores são avisados por via de um PopUp, que também possibilita o registo das respetivas horas de trabalho no sistema. Nesta aplicação também será possível ao colaborador consultar se as suas horas estariam registadas, escolhendo duas datas e verificar nesse intervalo de tempo, de um determinado mês, ou a partir do início do mês em que se encontra até a data atual.
Com a realização deste projeto, foi possível determinar que esta é uma ótima aplicação para relembrar o colaborador de registar as suas horas de trabalho, bastante útil e de fácil desenvolvimento.
Embora o curto espaço de tempo de duração do estágio, foi possível concluir a aplicação de acordo com os requisitos solicitados, sendo que a parte de instalar a aplicação na pasta de arranque das máquinas será feito posteriormente por parte da Softinsa.
Palavras-chave: Consulta de estado de atividade do colaborador, C#, Registo de
Relatório de Projeto em contexto de Estágio
vii
Abstract
The present report describes all the work done on the project that was carried out on internship context at Softinsa.
The project essentially consists in the creation of a Windows application, Aralogs, that could inform the workers that they would have working hours to fill in. That application is installed on every machine of the company, on the startup folder of the computer, so it could initiate when the machine is turned on. The workers are warned through a PopUp, which also allow them to introduce the respective working hours in the system. On that application it will also be possible to the workers to check if their working hours were introduced, picking two different dates and verify in that time span, from a given month, or from the start of a month the worker is on until current date.
With the realization of this project, it was possible to determinate that this is an optimal application to remind the worker to introduce his working hours, very useful and easy to develop.
Although the short time span of the length of the internship, it was possible to complete the application according to the requirements requested, being that the part of installing the application on the startup folder of the machines, rests under the responsibility of someone of Softinsa.
Keywords: Query of the employee’s activity status, C#, Record of work hours,
Relatório de Projeto em contexto de Estágio
ix
Índice
Agradecimentos ... i
Ficha de identificação | Elementos Identificativos ... iii
Resumo ... v
Abstract... vii
Lista de siglas e acrónimos ... xvii
1. Introdução ... 1
Caraterização sumária da instituição de realização do estágio ... 1
Motivação... 2 Descrição do problema ... 2 Objetivos ... 3 Plano do estágio ... 4 Estrutura do documento ... 5 2. Estado da Arte ... 7 Relógio de Ponto ... 7
Soluções de Controlo de Assiduidade nas empresas ... 8
2.2.1 ClockInEasy ... 10
2.2.2. Homebase ... 10
2.2.3. OnTheClock ... 11
2.2.4. Time Clock Wizard ... 12
Comparação entre a Aralogs e as quatro soluções analisadas ... 13
3. Metodologia ... 15
Metodologia Scrum ... 15
Adaptação do projeto à Metodologia Scrum ... 16
4. Análise de Requisitos ... 18
Diagrama de Contexto ... 19
Diagrama de Casos de Uso ... 21
Atores, Objetivos e Respetivos Casos de Uso ... 22
Descrição Casos de Uso ... 23
4.4.1 Caso de Uso “Consultar Horas de Trabalho” ... 23
4.4.2 Caso de Uso “Verificar Horas de um determinado mês” ... 24
4.4.3 Caso de Uso “Verificar Horas entre duas datas diferentes” ... 25
4.4.4 Caso de Uso “Verificar Horas desde o início do mês atual até à data atual” ... 26
4.4.5 Caso de Uso “Notificar colaborador de inserir horas através de um PopUp ” ... 27
Relatório de Projeto em contexto de Estágio
x
Diagrama de Sequência ... 27
4.5.1 Caso de Uso “Consultar Horas de Trabalho” ... 27
4.5.2 Caso de Uso “Verificar Horas de um determinado mês” ... 28
4.5.3 Caso de Uso “Verificar Horas entre duas datas diferentes” ... 29
4.5.4 Caso de Uso “Verificar Horas desde o início do mês atual até à data atual” ... 29
Diagrama de Classes ... 30
Dicionário de Dados... 32
4.7.1 Classe “Colaborador” ... 32
4.7.2 Classe “Registos Efetuados” ... 32
5. Tecnologias Usadas ... 35
Visual Studio ... 35
5.1.1 . C# ... 35
5.1.2 Microsoft SQL Server ... 35
SQL Server Management Studio ... 36
Windows Event Viewer ... 36
Internet Information Services ... 36
6. Implementação ... 37
Base de Dados ... 37
6.1.1. Tabela Colaboradores ... 37
6.1.2. Tabela Registos Efetuados ... 38
6.1.3. Procedimentos e funções ... 39
Web Service ... 40
6.2.1. Web Form ... 44
6.2.1.1. Web Form do método do Intervalo de Tempo ... 44
6.2.1.2. Web Form Método Mês Atual ... 48
6.2.1.3. Web Form Método Data Atual ... 49
Desenvolvimento da aplicação... 50
6.3.1. Timer ... 50
6.3.2. Condições para definir o que escrever no ficheiro dos logs ... 52
6.3.2.1. 1ª Condição (Passou a hora dos registos) ... 52
6.3.2.2. 2ª Condição (Ainda não está na hora dos registos) ... 54
6.3.2.3. Última condição (Ainda não é dia dos registos) ... 55
6.3.3. Windows Event Viewer ... 56
6.3.3.1. Primeira Condição (Passou a hora dos registos) ... 57
6.3.3.2. Segunda Condição (Ainda não está na hora dos registos) ... 58
Relatório de Projeto em contexto de Estágio
xi
6.3.4. Setup da aplicação ... 60
Testes Feitos ... 61
6.4.1. Método Intervalo de Tempo ... 61
6.4.2. Método Mês Atual ... 62
6.4.3. Método Data Atual ... 63
7. Conclusões ... 65
Referências ... 67
AnexoA1 Procedimentos e Funções do SSMS ... 73
Procedimento “estadoColab_DataAtual” ... 75
Procedimento “ estadoColab_Mensal” ... 77
Procedimento “estadoColab_IntervaloTempo” ... 79
Função “fn_nomeMes_numeroMes”... 81
Anexo A2 Restantes elementos da análise de requisitos ... 83
Diagrama de Estados ... 85
Diagrama de Instalação ... 87
Anexo A3 Windows Service ARA Reminder ... 89
Anexo A4 Setup da Aplicação ARALogs ... 97
Relatório de Projeto em contexto de Estágio
xiii
Índice de Figuras
Figura 1- Logótipo Softinsa... 1
Figura 2 - Exemplo de um relógio de ponto ... 8
Figura 3 - As 4 melhores soluções grátis de controlo de assiduidade nas empresas ... 9
Figura 4 - Interface da aplicação com os respetivos check-in e out ... 10
Figura 5 - Exemplo de check-in e out de alguns empregados na aplicação ... 11
Figura 6 - Exemplo da interface ... 12
Figura 7 - Exemplo da interface ... 13
Figura 8 - Metodologia Scrum ilustrada ... 15
Figura 9 - Arquitetura do Sistema ... 19
Figura 10 - Diagrama de Contexto ... 20
Figura 11 - Diagrama de Casos de Uso ... 21
Figura 12-Diagrama de sequência do caso de uso "Consultar Horas de Trabalho” ... 28
Figura 13-Diagrama de sequência do caso de uso "Verificar Horas de um determinado mês” ... 28
Figura 14 - Diagrama de sequência do caso de uso "Verificar Horas entre duas datas diferentes” ... 29
Figura 15- Diagrama de sequência do caso de uso "Verificar Horas desde o início do mês atual até à data atual” ... 30
Figura 16 - Diagrama de classes ... 30
Figura 17 - Modelo ER ... 31
Figura 18 - Conexão do SSMS à instância do Sql Server Express ... 37
Figura 19 - Web Service com os 3 métodos ... 41
Figura 20- Método 3 (Data Atual) ... 41
Figura 21- Método 2 (Intervalo de Tempo) ... 42
Figura 22- Método 1 (Mês Atual) ... 42
Figura 23- Referência de Serviço ... 43
Figura 24 - Ícone do programa na barra de tarefas. ... 44
Figura 25- Interface Principal ... 45
Figura 26 – Dados provenientes da tabela “Registos Efetuados” da base de dados ... 45
Figura 27 - Código da ligação ao SSMS ... 46
Figura 28- Link da plataforma ARA ... 46
Figura 29- Método Intervalo de Tempo ... 47
Figura 30 - Código método Intervalo Tempo ... 47
Figura 31 - Método Mês Atual ... 48
Figura 32 - Interface método Mês Atual ... 48
Figura 33 - Código do método do Mês Atual ... 49
Figura 34 - Método Data Atual ... 49
Figura 35 - Código método Data Atual ... 50
Figura 36 - Dia do registo das horas no App.config... 51
Figura 37 - Código do Timer ... 51
Figura 38- Código que vai buscar as configs da App.config, para se poder escrever corretamente no ficheiro dos logs. ... 52
Figura 39 – PopUp de aviso ... 53
Figura 40 – Código da 1ª Condição ... 53
Figura 41 – Ficheiro dos logs (1ª Condição) ... 54
Figura 42 - Excerto de código da 2ª condição ... 54
Relatório de Projeto em contexto de Estágio
xiv
Figura 44- Excerto do código da última condição... 55
Figura 45 – Ficheiro dos logs ... 56
Figura 46 - Excerto do código que define qual o registo do Windows a ser selecionado e como irá aparecer escrito ... 56
Figura 47 - Registo a ser utilizado ... 57
Figura 48 - Print da data e hora no WEW, com a origem "Softinsa" ... 57
Figura 49 - Excerto do código que define o que vai aparecer no WEW ... 58
Figura 50 - Print do WEW que mostra o aviso em conforme é preciso registar horas ... 58
Figura 51 - Excerto do código da 2ª condição ... 59
Figura 52 - Print do WEW da 2ª condição ... 59
Figura 53 - Excerto de código da última condição ... 60
Figura 54 - Print do WEW da última condição ... 60
Figura 55 - Condição TRUE (Intervalo de Tempo) ... 61
Figura 56 - Condição FALSE (Intervalo de Tempo)... 62
Figura 57 - Condição TRUE (Mês Atual) ... 62
Figura 58 - Condição FALSE ( Mês Atual) ... 63
Figura 59 - Condição TRUE ( Data Atual) ... 63
Relatório de Projeto em contexto de Estágio
xv
Índice de Tabelas
Tabela 1 - Comparativo entre as aplicações analisadas e projeto ... 14
Tabela 2- Atores, Objetivos e Respetivos Casos de Uso... 22
Tabela 3-Descrição do caso de uso “Consultar Horas de Trabalho " ... 24
Tabela 4 - Descrição do caso de uso "Verificar Horas de um determinado mês" ... 24
Tabela 5 - Descrição do caso de uso “Verificar Horas entre duas datas diferentes" ... 25
Tabela 6 - Descrição do caso de uso " Verificar Horas desde o início do mês atual até à data atual". ... 26
Tabela 7 - Descrição do caso de uso "Notificar colaborador de inserir horas através de um PopUp" ... 27
Tabela 8- Dicionário de Dados da classe "Colaborador" ... 32
Tabela 9 - Dicionário de dados da classe "Registos Efetuados” ... 33
Tabela 10 - Colaboradores ... 37
Relatório de Projeto em contexto de Estágio
xvii
Lista de siglas e acrónimos
C# – C Sharp
ESTG - Escola Superior de Tecnologia e Gestão GPS – Global Positioning System
HTML – Hyper Text Markup Language IBM – International Business Machines IIS – Internet Information Services IPG – Instituto Politécnico da Guarda LAN – Local Area Network
MSSQL – Microsoft Structured Query Language Server SGBDR - Sistema de Gestão de Base de Dados Relacional SQL - Structured Query Language
SSMS – Structured Query Language Server Management Studio TI- Tecnologias de Informação
UC – Unidade Curricular
URL – Uniform Resource Locator VS – Visual Studio
WAN – Wide Area Network WEW – Windows Event Viewer
Relatório de Projeto em contexto de Estágio
1
1. Introdução
O presente relatório, descreve a realização do projeto em contexto de estágio que teve lugar na empresa Softinsa, no âmbito da Unidade Curricular (UC) Projeto de Informática do 3º ano da licenciatura de Engenharia Informática da Escola Superior de Tecnologia e Gestão (ESTG) do Instituto Politécnico da Guarda (IPG),
A realização deste projeto tem uma duração de 280 horas (cerca de um mês e meio), e nele se propõe o desenvolvimento uma aplicação Windows, Aralogs, para auxiliar a empresa Softinsa, e seus colaboradores, quando estes se encontram em incumprimento no que diz respeito ao registo da atividade (horas de trabalho). Este projeto foi escolhido pelo facto de atualmente não existir nenhuma aplicação que avise o colaborador que deverá efetuar o registo das suas horas de trabalho. Apesar de ser da sua responsabilidade o seu registo atempado, verifica-se que muitas vezes isso não é feito dentro do tempo oportuno. Foi assim proposto a elaboração de uma aplicação que seja instalada em cada máquina dos colaboradores, para que possam fazer o registo atempado da sua atividade.
Caraterização sumária da instituição de realização do estágio
A Softinsa, uma subsidiária da IBM (International Business Machines), é especialista em serviços de gestão e desenvolvimento de aplicações e infraestruturas. Com 22 anos de história e experiência no mercado português, conta atualmente com uma equipa de mais de 1000 profissionais, distribuídos por Lisboa e pelos Centros de Inovação de Tomar, Viseu e Fundão (Softinsa, 2020).
Na Figura 1 podemos ver o logótipo da empresa Softinsa.
Figura 1- Logótipo Softinsa (Fonte: Softinsa, 2020)
Relatório de Projeto em contexto de Estágio
2
Motivação
A motivação que me levou a realizar este projeto, foi a possibilidade de o fazer dentro de uma empresa, com o principal objetivo de aprender e desenvolver capacidades em programação, com recurso a ajuda de colegas mais experientes, neste caso em concreto, o meu coordenador de projeto.
Uma das razões para ter escolhido a Softinsa como local para realizar o projeto, foi o facto de que durante as Jornadas de Informática do IPG ter assistido a um
workshop sobre o Deploy de uma aplicação com a IBM Cloud realizado por colaboradores da Softinsa, que me interessou bastante. Já conhecia a empresa, mas desconhecia os seus projetos e o tipo de empregos que proporcionavam, e como já tinha decidido realizar estágio curricular, optei assim por escolher a Softinsa. Outra razão para a escolha da Softinsa, foi pelo facto da sua localização geográfica ser relativamente perto de onde resido, e assim não me causar muitos transtornos a nível de deslocação, para o local de trabalho.
Descrição do problema
O projeto a realizar consiste no desenvolvimento de uma aplicação Windows, que irá recolher dados de um Web Service, de modo a alertar cada colaborador individualmente de uma possível falha de registos de horas na plataforma online ARA.
A ARA é onde os colaboradores irão introduzir as suas horas de trabalho, mas que só posteriormente é que irá ser criada pela Softinsa. No entanto, a Aralogs irá conter desde já um link para o site da ARA, ficando assim logo disponível o fácil acesso dos colaboradores à plataforma ARA, mal ela esteja disponível online.
De seguida, temos uma breve descrição do problema, onde se insere o desenvolvimento da aplicação Windows Aralogs:
A. Contextualização - Atualmente não existe nada que alerte o colaborador que deverá efetuar o registo das suas horas, apesar de ser da sua responsabilidade o
Relatório de Projeto em contexto de Estágio
3
registo atempado das mesmas. No entanto todos os meses existem falhas nos registos, o que tem impacto em termos de fechos de faturação mensais e implica que exista alguém que avise o colaborador em falta que se esqueceu de efetuar o registo. Para tentar evitar ao máximo este tipo de situações, foi pensada uma solução (a Aralogs) que de algum modo avisasse automaticamente o colaborador da falta de registo.
B. Objetivo - Sendo assim, este projeto tem como objetivo o desenvolvimento da aplicação Aralogs que irá estar presente em todas as máquinas da empresa, e que irá alertar o utilizador de que tem horas por registar no mês atual.
C. Utilizadores – Como a Aralogs irá estar presente em todas as máquinas de colaboradores da empresa, idealmente ela será instalada no momento que a máquina será entregue ao respetivo colaborador.
A descrição do problema e seus requisitos são baseados num documento entregue pela Softinsa. Este documento contém os objetivos, requisitos e implementações pretendidas pela empresa, e encontra-se no “Anexo A3 Windows Service ARA Reminder”.
Objetivos
O objetivo principal deste projeto é criar a aplicação Aralogs, para o Sistema Operativo Windows, que semanalmente avise os colaboradores para procederem ao registo das suas horas de trabalho, para que não tenham contratempos ao final do mês aquando do pagamento do salário. A aplicação será instalada em todas as máquinas da empresa e iniciada sempre que se inicia a máquina.
A aplicação precisa de uma base de dados com as todas as informações necessárias (nome e número de colaborador e respetiva data e número de horas de trabalho realizados), bem como procedimentos e funções e um Web Service que utilize essa mesma base de dados, para poder confirmar se as horas foram devidamente registadas. O Web Service também vai disponibilizar três métodos para o
Relatório de Projeto em contexto de Estágio
4
colaborador poder consultar se as horas de trabalho estão registadas.
Os métodos disponibilizados permitem consultar as horas de trabalho entre duas datas diferentes, num determinado mês e partir do mês em que o colaborador se encontra até à data atual.
Como já referido , o colaborador precisa de ser avisado para proceder ao registo das suas horas de trabalho. Sendo assim, no último dia de cada semana, através de um PopUp, o colaborador é avisado que tem horas por registar. Caso um colaborador efetue sempre regularmente o registo das horas, pode também certificar-se que foi tudo registado corretamente através deste PopUp. A aplicação desenvolvida contém já um link que possibilita os colaboradores de acederem à plataforma ARA, assim que a Softinsa a desenvolver.
Este projeto foi realizado por dois estagiários, tendo cada um trabalhado individualmente. Os estagiários partilham a mesma base de dados e os mesmos procedimentos, mas cada um trabalhou sozinho na sua aplicação, nomeadamente na sua interface, e nas suas funcionalidades, tendo, por vezes, havido debate de ideias entre ambos.
Ambas as aplicações foram entregues ao orientador do projeto, tendo ficado encarregue de aproveitar as funcionalidades das duas aplicações, e integrá-las numa única aplicação.
Por fim, tendo em conta os objetivos propostos e sendo o estágio de apenas 280 horas, a instalação da aplicação em todas as máquinas da empresa será realizada por alguém da Softinsa.
Plano do estágio
De seguida apresentam-se as etapas do planeamento relativas ao projeto:
1. Etapa (15/07 – 16/07): Fase de acolhimento e adaptação à Softinsa e receção dos requisitos do projeto.
Relatório de Projeto em contexto de Estágio
5
frente no projeto, se poder testar o cumprimento ou incumprimento do registo das horas de trabalho.
3. Etapa (25/07– 1/08): Implementação de um Web Service com ligação à base de dados.
4. Etapa (2/08 – 29/08): Desenvolvimento da aplicação. 5. Etapa (30/08 – 02/09): Testes e deploy da aplicação.
Estrutura do documento
O presente relatório está organizado por 7 capítulos.
No primeiro capítulo encontra-se a introdução ao trabalho realizado durante o estágio, descrevendo o projeto, respetivos objetivos, motivação para a sua realização, e também a descrição das etapas do projeto e do respetivo tempo despendido na realização do mesmo. O segundo capítulo fala do Estado de Arte do projeto. A seguir vem o terceiro capítulo, que é a Metodologia onde é descrita a metodologia que foi usada na realização do projeto. Depois disso, no quarto capítulo 4, a Análise de Requisitos, é feita a descrição da análise de requisitos do projeto, que mostra os diagramas de contexto, sequência, etc. E também a descrição dos casos de uso, entre outros. Seguidamente, o capítulo 5, das Tecnologias Usadas, onde são definidas todas as tecnologias utilizadas na realização do projeto. O sexto capítulo tem por objetivo descrever a implementação realizada durante o projeto. E por último, temos o sétimo capítulo, onde são apresentadas as conclusões retiradas do projeto realizado durante o estágio.
Relatório de Projeto em contexto de Estágio
7
2. Estado da Arte
Neste capítulo iremos falar do estado de arte do projeto realizado, sendo apresentado como algumas empresas registam a atividade de cada colaborador. Analisam-se que tipo de soluções são utilizadas para poderem verificar se cada colaborador faz o registo atempado da sua atividade nos seus dias de trabalho.
Relógio de Ponto
O Relógio de Ponto é a tecnologia utilizada para controlar e consultar as horas de trabalho dos colaboradores numa empresa (Metaveiro, 2019). A versão mais tradicional desta tecnologia possui uma abertura na parte superior onde é inserido o cartão do colaborador, que dá pelo nome de “cartão de ponto”, onde é carimbada a data e a hora do momento em que é inserido. Este processo ajuda o departamento de Recursos Humanos a controlar a entrada e saída dos colaboradores dos seus turnos de trabalho, confirmando se realizaram todas as horas do trabalho (o habitual é serem oito horas de trabalho) (Metaveiro, 2019).
Nos anos 90 o relógio de ponto passou por atualizações, pois a evolução da tecnologia assim o exigiu. Ao invés de um cartão de ponto, passou-se a utilizar um cartão de proximidade que, através de magnetismo ou de um código de barras, permite ao colaborador ser identificado pelo sistema e admitir a sua entrada/saída, pois o cartão possui o número do colaborador e regista a data e hora em que o cartão foi lido pelo (Metaveiro, 2019).
O relógio de ponto passou por mais uma atualização, porque mais uma vez o avanço da tecnologia o pediu, e desta vez para a recolha de dados utilizando biometria de impressão digital para identificar os colaboradores, que é uma prática muito comum em smartphones (Metaveiro, 2019).
No caso de grandes empresas, foi adotada a solução de relógios de ponto híbridos, ou seja, cartão de proximidade e biometria do colaborador, juntos num só. Estes dispositivos híbridos permitem ao colaborador registar a sua entrada/saída do turno do trabalho em qualquer relógio de ponto, mesmo não estando registado nele,
Relatório de Projeto em contexto de Estágio
8
guardando dados tanto no cartão como no software da empresa. Aqui é então comparada a recolha de dados digitais que está armazenada no cartão com os dados digitais apresentados pelo colaborador (Metaveiro, 2019).
Na Figura 2, está apresentado um exemplo de um relógio de ponto.
Figura 2 - Exemplo de um relógio de ponto (Fonte: Metaveiro, 2019)
Soluções de Controlo de Assiduidade nas empresas
Neste subcapítulo são analisadas algumas das soluções existentes nas empresas, no que diz respeito ao controlo de assiduidade.
Segundo a Capterra, empresa dedicada ao mercado e à análise de software, e por terem uma classificação mínima de 4.0 (de 0 a 5), estas são as quatro melhores soluções do mercado: ClockInEasy, Homebase, OnTheClock, TimeClockWizard (Srivastava, 2019).
Para se poderem registar as horas de trabalho dos colaboradores, é necessário um sistema que registe as horas de entrada e saída do trabalho de cada colaborador.
Relatório de Projeto em contexto de Estágio
9
Também é preciso assegurar que esse sistema seja infalível, para que os colaboradores não arranjem uma forma de contornar o sistema e adulterem as respetivas horas de trabalho (Srivastava, 2019).
Uma solução de controlo de assiduidade pode ajudar uma empresa a gerir as horas de trabalho dos colaboradores. O software permite aos empregados fazer check-in e check-out do local de trabalho através de aplicações móveis e aparelhos biométricos. Alguns produtos também permitem localizar o GPS dos telemóveis para uso empresarial, para que assim possa ser verificado o tempo que os empregados passam no local de trabalho (Srivastava, 2019).
A Figura 3 apresenta as 4 melhores soluções de controlo de assiduidade no mercado, segundo a empresa Capterra, de entre 60 soluções analisadas (Srivastava, 2019).
Figura 3 - As 4 melhores soluções grátis de controlo de assiduidade nas empresas (Fonte: Srivastava, 2019)
Relatório de Projeto em contexto de Estágio
10
2.2.1 ClockInEasy
ClockInEasy é uma aplicação que ajuda empresas a gerir e controlar os seus colaboradores e seus respetivos horários de trabalho, controlando facilmente se todos os colaboradores cumprem as horas de trabalho diárias. Maior parte das empresas utiliza relógios de ponto, normalmente à entrada do local de trabalho, mas este tipo de soluções torna esse processo mais fácil, pois permite que os colaboradores façam check-in e check-out, através do smartphone, tablet, ou até mesmo a partir de um web browser (ClockInEasy, 2020).
Na Figura 4, está apresentado um exemplo de interface da aplicação.
Figura 4 - Interface da aplicação com os respetivos check-in e out (Fonte: Capterra)
2.2.2. Homebase
Homebase é uma aplicação que permite aos responsáveis da empresa criar os horários dos colaboradores e verificar as horas de trabalho de cada colaborador,
Relatório de Projeto em contexto de Estágio
11
através de cada check-in e check-out. Esta aplicação também devolve alertas, caso os colaboradores se atrasem a fazer o check-in, entre outros. Permite também aos colaboradores fazerem o check-in e check-out através de smartphone ou web
browser, e ver diretamente na aplicação o número de horas totais realizadas
(Homebase, 2020).
Na Figura 5, está ilustrado o dashboard da aplicação.
Figura 5 - Exemplo de check-in e out de alguns empregados na aplicação (Fonte: Capterra)
2.2.3. OnTheClock
OnTheClock é uma aplicação que permite aos colaboradores fazerem check-in e
check-out através de smartphone, ou de um web browser, ficando registado na
aplicação a hora e data, bem como a localização de onde foi feito o check-in/out, tem opção de reconhecimento facial e impressão digital para check-in/out (OnTheClock, 2020).
Na Figura 6, está apresentado um exemplo de como aparece os dados do
Relatório de Projeto em contexto de Estágio
12
Figura 6 - Exemplo da interface (Fonte: Srivastava)
2.2.4. Time Clock Wizard
É uma aplicação que permite aos colaboradores fazer check-in e check-out através de smartphones, tablets e web browser, podendo os responsáveis da empresa controlar onde, quando e qual equipamento os colaboradores usam para
check-in/out. A aplicação também envia notificações aos colaboradores, avisando-os de
que têm horas de trabalho por registar (TimeClockWizard, 2020).
Na Figura 7, está ilustrado o processo para ver o calendário de determinado colaborador.
Relatório de Projeto em contexto de Estágio
13
Figura 7 - Exemplo da interface (Fonte: Capterra)
Comparação entre a Aralogs e as quatro soluções analisadas
A realização deste projeto foi baseada em aspetos constantes nas quatro soluções anteriormente analisadas, para ter uma ideia do que existia no mercado, e também para poder ver o que seria possível de incluir no projeto, dado o curto tempo de estágio.
Tendo em conta as quatro aplicações analisadas, foi feito um quadro comparativo entre elas e o projeto Aralogs realizado, que visou as caraterísticas mais importantes e de maior relevância para o projeto.
Relatório de Projeto em contexto de Estágio
14
Tabela 1 - Comparativo entre as aplicações analisadas e projeto
As maiores diferenças entre a Aralogs e as quatro aplicações analisadas são: o facto da Aralogs ser uma aplicação Windows, instalando a aplicação no Startup Folder de todas as máquinas da empresa, para iniciar sempre que se inicia a máquina, e ser preciso instalar-se a aplicação em todas as máquinas da empresa, enquanto que as restantes aplicações têm vários acessos, smartphone, tablets e web browsers. Há também o facto da Aralogs permitir ao colaborador alterar ou eliminar as suas horas de trabalho pois, ao contrário das restantes aplicações, esta não possui um sistema de check-in e check-out, dado que o colaborador apenas introduz o total das horas de trabalho diárias.
Aplicações/ Caraterísticas
ClockInEasy Homebase TimeClock
Wizard OnTheClock ARALOGS
Reconhecimento Facial e/ou Impressão digital
✓
✓
Consulta de Horas na aplicação✓
✓
✓
✓
✓
Notificações/Aler tas
✓
✓
✓
✓
Aplicação para smartphones✓
✓
✓
✓
Alterar ou eliminar horas de trabalho
✓
Acesso Web Browser✓
✓
✓
✓
✓
Relatório de Projeto em contexto de Estágio
15
3. Metodologia
Neste capítulo é abordada a metodologia de desenvolvimento de software usada para realizar o projeto descrito no presente relatório.
Neste estágio, não foi imposta qualquer metodologia específica por parte da Softinsa. No entanto, foi entregue um documento com uma lista de requisitos, que se encontra na seção “Anexo A3 Windows Service ARA Reminder” e o estagiário teve a liberdade para decidir qual o ritmo e estratégia a adotar para os completar, com o devido suporte por parte do coordenador de projeto. Tendo em conta que o projeto foi realizado sob a supervisão do coordenador de projeto, foi sendo feito um acompanhamento constante das dúvidas e dos desenvolvimentos ao longo das suas diversas etapas, e pode-se dizer que foi feita uma adaptação da metodologia ágil Scrum.
Metodologia Scrum
Scrum é uma metodologia ágil para gestão e planeamento de projetos de software. No Scrum, os projetos são divididos em ciclos (tipicamente mensais) chamados
Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades
deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas Sprints no caso do Scrum (desenvolvimentoagil, 2014).
Na Figura 8, está ilustrada a metodologia Scrum.
Figura 8 - Metodologia Scrum ilustrada (Fonte: desenvolvimentoagil,2014)
Relatório de Projeto em contexto de Estágio
16
Adaptação do projeto à Metodologia Scrum
Neste ponto é explicada a metodologia usada, e como foi feita a adaptação à metodologia Scrum, usando apenas alguns passos do seu processo, pois nem todos são precisos devido à natureza específica deste projeto:
Product Backlog - é uma lista contendo todas as funcionalidades desejadas para
um produto (desenvolvimentoagil, 2014).
No caso do presente projeto, o Product Backlog é o documento recebido pela empresa com a lista de requisitos para realizar o projeto, que mais uma vez se encontra na seção “Anexo A3 Windows Service ARA Reminder”.
Sprint Backlog - O Sprint Backlog é uma lista de tarefas que a Scrum Team se
compromete fazer num Sprint (desenvolvimentoagil, 2014).
Em contexto deste projeto, a Scrum Team, que é constituída por dois membros (Daniel Gomes, estagiário do IPG e Diogo Oliveira, estagiário do IPV) segue a ordem dos requisitos propostos no Product Backlog. Os requisitos ficaram divididos por quatro sprints, sendo o primeiro sprint a criação da base de dados, o segundo sprint a criação do Web Service, o terceiro o desenvolvimento da aplicação, e por fim, o último sprint sendo a realização dos testes finais e deploy da aplicação.
Sprint - Este é o termo utilizado para referir um ciclo de trabalho, de duração fixa,
onde a Scrum Team entrega componentes de um produto (scrumportugal, 2017). Neste caso, a Scrum Team vai realizando as tarefas definidas pelo Product Backlog, sem tempo limite, e sempre que termina um dos requisitos, reporta os desenvolvimentos ao Product Owner, neste caso o coordenador do projeto. Embora estejam definidas cinco etapas de trabalho no subcapítulo 1.5, a primeira apenas foi para adaptamento à empresa e para fazer um compasso de espera pelo documento com os objetivos do projeto. No total, foram realizados quatro sprints: o primeiro sprint teve a duração de uma semana (17/07 - 24/07), o segundo voltou a durar uma semana (25/07 - 01/08), o terceiro sprint é o de maior duração, tendo
Relatório de Projeto em contexto de Estágio
17
levado quase um mês (02/08-29/08), e por fim, o último sprint, que foi o mais curto de todos, durou três dias (30/08-02/09).
Daily Scrum - A cada dia do Sprint, a equipa faz uma reunião diária, chamada Daily Scrum. Ela tem como objetivo disseminar conhecimento sobre o que foi feito
no dia anterior (desenvolvimentoagil, 2014).
Dada a reduzida dimensão da equipa de desenvolvimento, para a realização do projeto, não foram feitas estas reuniões diárias. No entanto, sempre que necessário, a Scrum Team reuniu-se com o Product Owner (coordenador) para discutirem ideias, tirar dúvidas de eventuais problemas ocorridos, ou relatar progressos do projeto.
Relatório de Projeto em contexto de Estágio
18
4. Análise de Requisitos
A análise de requisitos é o processo de estabelecimento de serviços que um cliente requer de um sistema e as respetivas restrições sobre as quais opera e é desenvolvido (Sommerville, 2019).
Neste capítulo é apresentada a análise de requisitos, que foram obtidos a partir do documento entregue pela Softinsa, que se encontra na seção “Anexo A3 Windows Service ARA Reminder” Esta análise é descrita através de vários diagramas nomeadamente, o diagrama de contexto, o diagrama de casos de uso, o diagrama de sequência, diagrama de classes, bem como também a descrição dos casos de uso, dos atores, etc.
De seguida temos os requisitos do sistema que consiste numa base de dados, um
web service e a aplicação em si. A. Base de Dados
Numa fase inicial, deverá ser desenvolvida uma base de dados, em que a estrutura de dados contenha as informações relativas aos colaboradores (número e nome) e registos efetuados (data, número de horas, tipo de registo e observações). Isto será semelhante ao que se encontra na base de dados da empresa.
Aqui também serão criadas as respetivas tabelas, os procedimentos e funções.
B. Web Service
De seguida, deverá ser criado um Web Service, que utilize a base de dados, para obter informações do estado do registo da atividade de um colaborador à data atual para o mês atual. O Web Service deverá disponibilizar três métodos: Estado da atividade do colaborador (número de horas de trabalho realizadas) no mês atual, num determinado intervalo de tempo e do início do mês atual até à data atual.
C. Desenvolvimento da aplicação Aralogs
A aplicação a desenvolver é a Aralogs, que ficará instalado nos equipamentos dos colaboradores e será a responsável pelos alertas (através de PopUps) em caso de incumprimento atempado do registo das atividades. A aplicação irá consumir o
Relatório de Projeto em contexto de Estágio
19
incumprimento em relação ao número de horas de trabalho previstas por dia. Para cada colaborador, estão predefinidas oito horas de trabalho diárias, e qualquer registo abaixo de oito horas faz com que a aplicação avise o colaborador que falta registar tempo de serviço.
Na Figura 9, está apresentado a arquitetura do sistema utilizado no projeto.
Figura 9 - Arquitetura do Sistema (Fonte: Elaboração própria)
Diagrama de Contexto
O diagrama de contexto é composto por fluxos de dados que mostram as interfaces entre o sistema e as entidades externas. O diagrama é uma forma de representar o objeto do estudo, o projeto, e sua relação ao ambiente (Vazquez, Carlos; Simões, Guilherme, (2016)).
É apresentado, na Figura 10, o Diagrama de Contexto referente ao sistema utilizado.
O método para Inserir, Alterar e Eliminar horas de trabalho não foi implementado no projeto, apenas tendo sido inserido diretamente os dados dos colaboradores (horas de trabalho e restantes dados) na base de dados. Quando a anteriormente
Relatório de Projeto em contexto de Estágio
20
referida, plataforma ARA, for criada, então este caso de uso fará parte do sistema utilizado no projeto. Os três métodos de verificação de horas (mês, intervalo de tempo e data atual), dizem respeito ao web service e irão devolver TRUE/FALSE, consoante os registos na base de dados, ou seja, TRUE se estiver tudo registado, ou
FALSE, em caso contrário. Finalmente, quanto ao método (Consultar Horas) a
aplicação com recurso à base de dados, é capaz de apresentar todos os dados de registo de horas de trabalho existentes na base de dados.
Figura 10 - Diagrama de Contexto (Fonte: Elaboração própria)
De referir que o retângulo a tracejado azul representa o sistema utilizado na realização do projeto.
Relatório de Projeto em contexto de Estágio
21
Diagrama de Casos de Uso
O diagrama de casos de uso descreve os casos de uso, os atores e as suas respetivas inter-relações (Silveira, 2018).
Na Figura 11 está representado o Diagrama de Casos de Uso do sistema utilizado. Exatamente como no diagrama de contexto apresentado em cima, os casos de uso (Inserir, Alterar e Eliminar Horas de trabalho) não fazem parte do sistema utilizado, pois a plataforma ARA só futuramente irá ser implementada, e só aí estes casos de uso farão parte do sistema.
Relatório de Projeto em contexto de Estágio
22
(Fonte: Elaboração própria)
Mais uma vez, o retângulo a tracejado azul representa o sistema utilizado na realização do projeto.
Atores, Objetivos e Respetivos Casos de Uso
A Tabela 2 define os atores, os casos de uso e seus objetivos. Apenas irão definidos os casos de uso presentes no sistema utilizado, ou seja, os casos de uso (Inserir, Alterar e Eliminar horas de trabalho) e (Consultar Horas de trabalho do ator “Responsável Empresa”), não irão ser definidos.
Tabela 2- Atores, Objetivos e Respetivos Casos de Uso
Ator Casos de Uso Objetivos Colaborador Verificar Horas desde o início do mês atual até à data atual
O objetivo é o colaborador na aplicação selecionar este método e verificar se desde o início do mês atual até a data em que se encontra, foram inseridas todas as horas de trabalho, devolvendo TRUE ou FALSE consoante os registos inseridos.
Verificar Horas entre duas datas diferentes
O objetivo é o colaborador na aplicação escolher duas datas e verificar se todas as horas foram inseridas nesse intervalo de tempo, devolvendo TRUE ou FALSE, consoante os registos inseridos. Consultar
Horas de Trabalho
O objetivo é o colaborador poder consultar as horas inseridas,
diretamente na aplicação carregando no botão indicado que fará a ligação à base de dados. Verificar Horas de um determinado mês O objetivo é o colaborador na aplicação escolher um determinado mês, e verificar se todas as horas foram inseridas nesse mês, devolvendo TRUE ou FALSE, consoante os registos inseridos. Notificar Colaborador de inserir horas através de um PopUp.
O objetivo é o colaborador ser alertado para registar as horas de trabalho, caso estejam em falta ou não.
Relatório de Projeto em contexto de Estágio
23
Descrição Casos de Uso
Neste subcapítulo, mais uma vez, iremos descrever apenas os casos de uso utilizados no sistema, ou seja, os casos de uso casos de uso (Inserir, Alterar e Eliminar horas de trabalho) e (Consultar Horas de trabalho do ator “Responsável Empresa”), não serão descritos. Para tal iremos utilizar a seguinte estrutura: • Descrição: breve resumo do caso de uso a ser descrito;
• Pré-Condição: conjunto de condições que definem como o sistema se deve encontrar antes de se iniciar o caso de uso;
• Caminho Principal: conjunto de passos que o utilizador deve realizar em ordem para ser bem-sucedido no que pretende;
•
Caminhos Alternativos: os casos de uso podem conter cenários alternativosou secundários que contêm variações do tema principal. Exceções, ou o que acontece quando as coisas não correm como previsto, podem também ser descritas.
4.4.1 Caso de Uso “Consultar Horas de Trabalho”
Na Tabela 3, podemos ver a descrição do caso de uso “Consultar Horas de Trabalho”.
Relatório de Projeto em contexto de Estágio
24
Tabela 3-Descrição do caso de uso “Consultar Horas de Trabalho "
4.4.2 Caso de Uso “Verificar Horas de um determinado mês”
Na Tabela 4, podemos ver a descrição do caso de uso “Verificar Horas de um determinado mês”.
Tabela 4 - Descrição do caso de uso "Verificar Horas de um determinado mês"
Ator Primário Colaborador
Nome Consultar Horas de Trabalho.
Descrição O objetivo é o colaborador poder consultar as horas inseridas, diretamente na aplicação carregando no botão indicado que fará a ligação à base de dados.
Pré-Condição O Colaborador acede à sua máquina pelo Login (Login efetuado com sucesso)
Caminho Principal
1. O ator abre a aplicação fazendo duplo clique no ícone.
2. O ator faz um clique no botão “Logs”.
3. A aplicação apresenta todos os registos existentes na base de dados sobre as horas de trabalho do ator. Caminho
Alternativo
Não há caminhos alternativos.
Ator Primário Colaborador
Nome Verificar Horas de um determinado mês.
Descrição O objetivo é o colaborador na aplicação escolher um determinado mês, e verificar se todas as horas foram inseridas nesse mês, devolvendo TRUE ou FALSE, consoante os registos inseridos.
Pré-Condição O Colaborador acede à sua máquina pelo Login (Login efetuado com sucesso)
Caminho Principal
1. O ator abre a aplicação e faz clique com o botão direito do rato e seleciona o método “Mês Atual”.
Relatório de Projeto em contexto de Estágio
25
4.4.3 Caso de Uso “Verificar Horas entre duas datas diferentes”
Na Tabela 5, podemos ver a descrição do caso de uso “Verificar Horas entre duas datas diferentes”.
Tabela 5 - Descrição do caso de uso “Verificar Horas entre duas datas diferentes"
todos os meses do ano.
3. O ator seleciona o mês pretendido.
4. O ator faz um clique sobre o botão “Verify”.
5. A aplicação verifica na base de dados, se todas as horas desse mês foram registadas.
6. A aplicação devolve a message box “As horas deste mês estão todas registadas!!!” caso o método seja TRUE. Caminho
Alternativo
6a- A aplicação devolve a message box “ Tem horas por registar neste mês!!!” caso o método seja FALSE.
Ator Primário Colaborador
Nome Verificar Horas entre duas datas diferentes.
Descrição O objetivo é o colaborador na aplicação escolher duas datas e verificar se todas as horas foram inseridas nesse intervalo de tempo, devolvendo TRUE ou FALSE, consoante os registos inseridos
Pré-Condição O Colaborador acede à sua máquina pelo Login (Login efetuado com sucesso)
Caminho Principal
1. O ator abre a aplicação fazendo duplo clique sobre o ícone para abrir o método “Intervalo de Tempo” e principal interface da aplicação.
2. A aplicação apresenta dois dropdowns que apresentam o calendário do ano.
3. O ator seleciona uma data inicial no primeiro dropdown. 4. O ator seleciona uma data final no segundo dropdown. 5. O ator faz um clique sobre o botão “Verify”.
Relatório de Projeto em contexto de Estágio
26
4.4.4 Caso de Uso “Verificar Horas desde o início do mês atual até à data atual”
Na Tabela 6, podemos ver a descrição do caso de uso “Verificar Horas desde o início do mês atual até à data atual”.
Tabela 6 - Descrição do caso de uso " Verificar Horas desde o início do mês atual até à data atual".
entre essas duas datas foram registadas.
7. A aplicação devolve a message box “As horas neste intervalo de tempo foram registadas!!!” caso o método seja TRUE.
Caminho Alternativo
7a- A aplicação devolve a message box “ Tem horas por registar neste intervalo de tempo!!!” caso o método seja FALSE.
Ator Primário Colaborador
Nome Verificar Horas desde o início do mês atual até à data atual. Descrição O objetivo é o colaborador na aplicação selecionar este método
e verificar se desde o início do mês atual até a data em que se encontra, foram inseridas todas as horas de trabalho, devolvendo
TRUE ou FALSE consoante os registos inseridos.
Pré-Condição O Colaborador acede à sua máquina pelo Login (Login efetuado com sucesso)
Caminho Principal
1. O ator abre a aplicação e faz clique com o botão direito do rato e seleciona o método “Data Atual”.
2. A aplicação verifica na base de dados, se todas as horas desde o início do mês atual até a data em que se encontra foram todas registadas.
3. A aplicação devolve a message box “As horas foram registadas até à data atual!!!” caso o método seja TRUE. Caminho
Alternativo
3a- A aplicação devolve a message box “ Tem horas por registar até à data atual!!!” caso o método seja FALSE.
Relatório de Projeto em contexto de Estágio
27
4.4.5 Caso de Uso “Notificar colaborador de inserir horas através de um PopUp ”
Na Tabela 7, podemos ver a descrição do caso de uso “Notificar colaborador de inserir horas através de um PopUp”.
Tabela 7 - Descrição do caso de uso "Notificar colaborador de inserir horas através de um PopUp"
Diagrama de Sequência
Um diagrama de sequência modela a lógica sequencial, ou seja, dá ênfase à ordenação temporal das mensagens (Silveira, 2018).
De seguida, irão apenas ser apresentados os diagramas de sequência dos casos de uso utilizados no sistema, à exceção do caso de uso (Notificar colaborador de inserir horas através de um PopUp), pois ele tem apenas uma interação, servindo só para enviar um PopUp ao colaborador.
4.5.1 Caso de Uso “Consultar Horas de Trabalho”
Na Figura 12, podemos ver representado o diagrama de sequência do caso de uso “Consultar Horas de Trabalho”.
Ator Primário Colaborador
Nome Notificar colaborador de inserir horas através de um PopUp. Descrição O objetivo é o colaborador ser avisado através de um PopUp,
para inserir as horas de trabalho da respetiva semana.
Pré-Condição O Colaborador acede à sua máquina pelo Login (Login efetuado com sucesso)
Caminho Principal
1. A aplicação envia um PopUp ao colaborador para o lembrar de inserir as horas de trabalho.
2. O ator insere todas as horas de trabalho realizadas na semana em que se encontra.
Caminho Alternativo
2a- Se o ator já inseriu todas as horas de trabalho realizadas, não precisa de efetuar nenhuma ação.
Relatório de Projeto em contexto de Estágio
28
Figura 12-Diagrama de sequência do caso de uso "Consultar Horas de Trabalho” (Fonte: Elaboração própria
4.5.2Caso de Uso “Verificar Horas de um determinado mês”
Na Figura 13, podemos ver representado o diagrama de sequência do caso de uso “Verificar Horas de um determinado mês”.
A partir da tabela “RegistosEfetuados”, o Procedimento “ estadoColab_Mensal” retorna TRUE/FALSE de acordo com os dados inseridos.
Figura 13-Diagrama de sequência do caso de uso "Verificar Horas de um determinado mês” (Fonte: Elaboração própria)
Relatório de Projeto em contexto de Estágio
29
4.5.3 Caso de Uso “Verificar Horas entre duas datas diferentes”
Na Figura 14, podemos ver representado o diagrama de sequência do caso de uso “Verificar Horas entre duas datas diferentes”.
Mais uma vez, a partir da tabela “Registos Efetuados”, o Procedimento “estadoColab_IntervaloTempo”, retorna TRUE/FALSE de acordo com os dados inseridos.
Figura 14 - Diagrama de sequência do caso de uso "Verificar Horas entre duas datas diferentes” (Fonte: Elaboração própria)
4.5.4 Caso de Uso “Verificar Horas desde o início do mês atual até à data atual”
Na Figura 15, podemos ver representado o diagrama de sequência do caso de uso “Verificar Horas entre duas datas diferentes”.
Usando o mesmo processo dos anteriores, é obtida a informação da tabela “Registos Efetuados” e o Procedimento “estadoColab_DataAtual”, retorna
Relatório de Projeto em contexto de Estágio
30
Figura 15- Diagrama de sequência do caso de uso "Verificar Horas desde o início do mês atual até à data atual”
(Fonte: Elaboração própria)
Diagrama de Classes
Um diagrama de classes mostra um conjunto de elementos de modelo estáticos, nomeadamente classes e tipos, os seus conteúdos e as suas relações (Silveira, 2018).
Na Figura 16, podemos ver a representação das duas classes do diagrama de classes.
Figura 16 - Diagrama de classes (Fonte: Elaboração própria)
Relatório de Projeto em contexto de Estágio
31
E na Figura 17, podemos ver o respetivo modelo ER.
Figura 17 - Modelo ER (Fonte: Elaboração própria)
As operações que podem ser executadas nas classes são as seguintes: • Classe Colaborador:
Consultar(): Permite consultar todos os colaboradores existentes e seus dados. De
referir que esta operação não se aplica ao sistema utilizado no projeto, apenas sendo efetuada posteriormente aquando da criação da plataforma ARA.
• Classe Registos Efetuados:
Inserir(): Permite inserir os dados das horas de trabalho realizadas pelos
colaboradores(Número de colaborador, data, número de horas, tipo de registo e observações). Mais uma vez, é de referir que esta operação não se aplica ao sistema utilizado no projeto, já que apenas será desenvolvida aquando da criação da plataforma ARA.
Consultar(): Permite consultar diretamente na aplicação Aralogs todas os registos
de horas de trabalho realizados pelos colaboradores.
Verificar(): Permite fazer a verificação das horas de trabalho dos colaboradores, Colaboradores Numero Nome RegistosEfetuados RegistoID NumeroColab DiaUtil DataRegisto NumeroHoras TipoRegisto Observacoes
Relatório de Projeto em contexto de Estágio
32
Dicionário de Dados
O dicionário de dados consiste em identificar atributos e operações por análise dos vários cenários em que a classe participa (Silveira, 2018).
4.7.1 Classe “Colaborador”
A classe Colaborador apresenta todos os colaboradores presentes na empresa, com apenas os dados mais importantes para o registo de horas de trabalho (Número e nome de colaborador).
A Tabela 8, mostra o dicionário de dados da classe “Colaborador”.
Tabela 8- Dicionário de Dados da classe "Colaborador"
4.7.2Classe “Registos Efetuados”
A classe Registos efetuados apresenta todos os dados dos registos de horas de trabalho feitos por cada colaborador (Número, data [a hora de registo irá sempre ser 18h que é quando acaba o dia de trabalho]), número de horas, tipo de registo [neste caso será sempre “Horas”] e observações).
A Tabela 9, mostra o dicionário de dados da classe “Registos Efetuados”. Atributo Tipo de
Dados
Descrição Valores
Válidos Formato Restrição
Número Colab (Chave primária) Inteiro Número sequencial que identifica de forma única um registo Valores maiores que 0 Até 10 dígitos Obrigatório/ Não alterável
Nome Varchar(150) Nome do colaborador. Carateres Até 50 carateres Obrigatório/ Alterável
Relatório de Projeto em contexto de Estágio
33
Tabela 9 - Dicionário de dados da classe "Registos Efetuados”
Os restantes elementos da análise de requisitos encontram-se na seção “Anexo A2 Restantes elementos da análise de requisitos”.
Atributo Tipo de Dados
Descrição Valores
Válidos Formato Restrição
RegistoID (Chave primária) Numeração automática Número sequencial que identifica de forma única um registo
Valores maiores que 0 Até 10 dígitos Gerado pelo Sistema/Obr igatório/Não alterável Número Colab Inteiro Número sequencial que identifica de forma única um colaborador Valores maiores que 0 Até 10 dígitos Obrigatório/ Alterável
Dia Útil Date Dia da semana das horas de trabalho realizadas. Data Sistema dd/mm/ aaaa Obrigatório /Alterável Data Registo Datetime
Dia e hora das horas de
trabalho realizadas Data e hora do Sistema dd/mm/ aaaa/hh/ mm/ss Obrigatório /Alterável Número Horas
Inteiro Número de horas de trabalho
Valores maiores que 0
Até 2
dígitos Obrigatório/Alterável
Tipo Registo
Varchar(150) Tipo de registo
Efetuado (neste caso irá sempre ser “Horas”).
Carateres Até 50 caratere s Não-obrigatório/ Alterável Observaçõ es
Varchar(150) Comentários quanto ao número de horas (se fez mais que 8 ou menos)
Carateres Até 50 caratere s Não-obrigatório/A lterável
Relatório de Projeto em contexto de Estágio
35
5. Tecnologias Usadas
Este capítulo apresenta e descreve as diversas tecnologias usadas no desenvolvimento do projeto.
Visual Studio
O Visual Studio é uma ferramenta criativa que pode ser usada para editar e compilar código, podendo depois publicar uma app (publish). O Visual Studio inclui compiladores, ferramentas que permitem sugestões para completar códigos, e muitos mais recursos para facilitar o processo de desenvolvimento de software (MicrosoftDocs, 2019).
Esta foi a tecnologia mais usada durante o projeto, tendo sido na própria, que foi desenvolvida a aplicação.
5.1.1. C#
C# é uma linguagem orientada a objetos e que habilita os programadores a construir uma variedade de aplicações robustas e seguras que correm em .NET Framework. Pode-se usar C# para criar aplicações Windows, serviços de Web, entre outros (MicrosoftDocs, 2015).
Foi com esta linguagem que a aplicação foi desenvolvida.
5.1.2 Microsoft SQL Server
O Microsoft SQL Server (MSSQL) é um Sistema de Gestão de Base de Dados Relacional (SGBDR) que suporta uma grande variedade de aplicações de processamento de transações, e análises em ambientes corporativos de Tecnologias de Informação (TI). (Rouse, 2019).
Esta tecnologia foi usada, dado que já se encontra embutida no Visual Studio e de este projeto ter sido todo trabalho em .NET e C# facilitando assim a sua utilização. Durante o trabalho ainda se usou uma outra versão do SQL Server, o SQL Server Express, mas somente na criação de uma instância que faça a ligação entre o Visual Studio e o SQL Server Management Studio (SSMS). Desta forma é possível ver a base de dados, e seus respetivos dados diretamente no Visual Studio.
Relatório de Projeto em contexto de Estágio
36
SQL Server Management Studio
SSMS é um ambiente integrado para gerir qualquer infraestrutura SQL. Com esta ferramenta é possível aceder, configurar, gerir, administrar, e desenvolver todos os componentes do SQL Server (MicrosoftDocs, 2019).
Com o uso desta tecnologia, foi possível criar a base de dados, ou seja, todas as tabelas, procedimentos e funções, foram criadas com o auxílio desta tecnologia.
Windows Event Viewer
O Windows Event Viewer mostra um log de mensagens de sistema e aplicações, incluindo erros, mensagens de informação e avisos. É uma ferramenta útil para resolução de todos os tipos de problemas do Windows (Hoffman, 2018).
Durante o projeto, esta tecnologia foi usada para se poder ver as mensagens do sistema acerca da aplicação desenvolvida.
Internet Information Services
O Internet Information Services (IIS) é um web server da Microsoft que corre em sistemas Windows e aceita pedidos de computadores remotos de clientes e retorna a resposta apropriada. Esta funcionalidade básica permite usar os web servers para partilhar e entregar informação através de Local Area Networks (LAN) como intranets, e Wide Area Networks (WAN), como a Internet (Rouse, 2019).Esta tecnologia foi usada no projeto, para a aplicação se poder conectar ao web service, para poder correr os respetivos procedimentos correspondentes aos métodos de verificação de horas de trabalho e assim também poder se consultar as horas, diretamente na aplicação. IIS foi o web server escolhido, pois é mais fácil de manusear do que o Apache, e também pelo facto de estar bastante integrado com o sistema operativo Windows e a .NET framework, sendo este último. usado no projeto.
Relatório de Projeto em contexto de Estágio
37
6. Implementação
Neste capítulo é feita a descrição das várias fases de desenvolvimento do projeto realizado durante o estágio. As fases de desenvolvimento do projeto, já foram descritas no capítulo 1.4 sendo essas fases a implementação da Base de dados, do
Web Service e o desenvolvimento da aplicação Aralogs.
Base de Dados
Primeiro de tudo, foi feita a instalação do SQL Server Express e SQL Server Management Studio e só depois a criação da base de dados, com a estrutura de dados, as tabelas, os procedimentos e outros objetos necessários.
Como já referido anteriormente, foi necessário instalar o SQL Server Express, para se poder criar uma instância de um servidor local, de modo a que o SSMS se conecte a essa instância.
Na Figura 18, está representado o SSMS corretamente conectado à instância criada.
Figura 18 - Conexão do SSMS à instância do Sql Server Express
6.1.1.Tabela Colaboradores
Na Tabela 10, estão apresentados os colaboradores inseridos na base de dados (número e nome). Para o projeto foram apenas inseridos alguns nomes, para servir de exemplo, mas o único que interessa é o colaborador 6100565, que corresponde ao estagiário.
Relatório de Projeto em contexto de Estágio
38
(Fonte: Elaboração própria)
6.1.2. Tabela Registos Efetuados
Na Tabela 11, estão apresentados os dados relativos ao registo de horas de um colaborador de um mês inteiro (Número, data, número de horas, tipo de registo e observações), neste caso foi escolhido o mês de Maio como exemplo. Quando um registo é inferior a oito horas, o registo não é contabilizado como válido, mas se for superior a oito horas, é contabilizado na mesma, ficando como horas extras do colaborador.
Tabela 11 - Registos Efetuados
Relatório de Projeto em contexto de Estágio
39
6.1.3. Procedimentos e funções
Para podermos aceder aos dados da base de dados, foram criados procedimentos e uma função, que irão ser executados pelos métodos disponibilizados: o estado de atividade no mês atual, num determinado intervalo de tempo e do mês atual até à data atual.
Foram criados quatro scripts (uma função e três procedimentos), que são os seguintes:
a) Procedimento “estadoColab_DataAtual” – Este procedimento diz respeito
ao método do estado de atividade do mês atual até à data atual, ou seja, irá verificar todos os registos de horas de trabalho do colaborador do início do mês em que se encontra até à data atual, considerando também os fins de semana, para evitar erros de registo durante o fim de semana, sendo depois retirados ao número total de dias verificados, só os registos igual ou maior a oito horas é que serão contabilizados, devolvendo FALSE em caso contrário.
b) Procedimento “estadoColab_IntervaloTempo” - Este procedimento diz
respeito ao método do estado de atividade num determinado intervalo de tempo, ou seja, irá verificar todos os registos de horas de trabalho do colaborador a partir de duas datas previamente escolhidas, da mesma forma que o procedimento anterior, também considera os fins de semana, para evitar erros de registo durante o fim de semana, sendo depois retirados ao número total de dias verificados entre as duas datas escolhidas, só os registos igual ou maior a oito horas é que serão contabilizados, devolvendo FALSE em caso contrário.
c) Procedimento “estadoColab_Mensal” - Este procedimento diz respeito ao
método do estado de atividade no mês atual, ou seja, irá verificar todos os registos de horas de trabalho do colaborador no mês em que se encontra, mais uma vez, considerando também os fins de semana, para evitar erros de registo durante o fim de semana, sendo depois retirados ao número total de dias verificados no mês considerado, só os registos igual ou maior a oito horas é que serão contabilizados, devolvendo FALSE em caso contrário.
d) Função “fn_nomeMes_numeroMes” – Esta função está diretamente
relacionada com o procedimento do método do mês atual, pois esta função serve o propósito de atribuir números aos meses do ano, que irá servir de apoio