centro estadual de educação tecnológica paula souza

Propaganda
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
KALIANE APARECIDA PILON BACHIEGA
DESENVOLVIMENTO DE SISTEMA PARA CONTROLE DAS
ATIVIDADES DO SETOR DE ESTÁGIO DA FATEC DE LINS
LINS/SP
1º SEMESTRE/2013
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
KALIANE APARECIDA PILON BACHIEGA
DESENVOLVIMENTO DE SISTEMA PARA CONTROLE DAS
ATIVIDADES DO SETOR DE ESTÁGIO DA FATEC DE LINS
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnóloga em Banco de Dados.
Orientador: Prof. Me. Anderson Pazin
LINS/SP
1º SEMESTRE/2013
KALIANE APARECIDA PILON BACHIEGA
DESENVOLVIMENTO DE SISTEMA PARA CONTROLE DAS
ATIVIDADES DO SETOR DE ESTÁGIO DA FATEC DE LINS
Trabalho de Conclusão de Custo apresentado à
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnóloga em Banco de Dados sob orientação do
Prof. Me. Anderson Pazin.
Data de Aprovação: 18/06/2013
_____________________________________
Orientador (Prof. Me. Anderson Pazin)
_____________________________________
Profª Me. Gisele Molina Becari
_____________________________________
Prof. Me. Adriano Bezerra
A Deus, a meu esposo Naylor, aos meus
pais Marineide e Aparecido Gilberto, a minha irmã
Natashi e a minha avó Lourdes, in memorian.
Kaliane Aparecida Pilon Bachiega
AGRADECIMENTOS
Agradeço a Deus por ser o detentor de tudo e por ter me concedido essa
conquista. Aproveito também, para manifestar a minha gratidão ao meu esposo
Naylor pela compreensão, paciência, carinho, apoio e incentivo durante a realização
deste trabalho. Não poderia esquecer-me de incluir aqui, meus pais, minha irmã e a
minha avó Lourdes, in memorian, por sempre me incentivarem e serem o motivo por
estar aqui hoje. Com alegria fico grata pela oportunidade de cumprir uma promessa
a alguém que foi muito especial em minha vida, minha avó.
A todos os funcionários da FATEC e amigos que conquistei, gostaria de dizer
que foram muito importantes e que sempre serão lembrados com muito carinho.
Gostaria de agradecer ao meu orientador Prof. Me. Anderson Pazin por todo
apoio e atenção, a todos que direta ou indiretamente contribuíram para realização
deste trabalho e aos professores: Prof. Me. Mario Henrique S. Pardo, Prof. Me.
Fábio Lúcio Meira, Profª Mª Luciane Noronha do Amaral, Profª Mª Adriana de Bortoli,
Prof. Me. Julio Fernando Lieira, Prof. Me. Adriano de Souza Marques, Prof. Me.
Alexandre Ponce de Oliveira, Prof. Me. Luiz Fernando de Oliveira Silva, Profª Mª
Gisele Molina Becari, Prof. Dr. Luciano Soares de Souza, Prof. Me. Adriano Bezerra,
Prof. Dr. Renato Correia de Barros, Prof. Me. Alexandre Teso, Profª Mª Elaine V. H.
de Moraes, Prof. Me. Euclides Reame Junior, Prof. Me. João Luiz C. de Moraes,
Prof. Me. Luiz Antonio Cabañas, Prof. Me. Rogerio Pinto Alexandre, Profª Mª Sandra
Maria G. Bertozzo.
Por fim, muito obrigada a todos com quem tive a grande oportunidade de
conviver durante meu período de estágio na FATEC. Em especial ao Rafael
Hamamura com quem aprendi muito e ao Bruno Floriano pelo tema deste trabalho.
RESUMO
O meio de organização do trabalho mudou extremamente se comparado há
apenas algumas décadas. O que antes, em sua maioria, era realizado manualmente
agora enfrenta as mudanças e facilidades trazidas pela computação. Todavia, ainda
existem setores que não contam com sistemas informatizados para auxílio nas
atividades realizadas diariamente. Nesse contexto encontra-se o setor de estágio da
FATEC de Lins. A informatização desse setor, através do desenvolvimento de um
sistema web, pode contribuir para facilitar e aprimorar as atividades ali realizadas,
por permitir o acesso a informações mais rapidamente, por exemplo. Deste modo,
este trabalho objetiva o desenvolvimento de uma aplicação web para o referido
setor, com foco nas tecnologias utilizadas, no sentido de poder contribuir para o
aprimoramento dos seus processos cotidianos, por meio da agilização da geração
de documentos e relatórios, bem como facilitar o acesso a dados de empresas e
estagiários. O sistema conta com áreas para cadastros, acompanhamento das
atividades realizadas pelos estagiários, possibilita que estagiários preencham o seu
relatório mensal, disponibiliza informações sobre vagas de estágio e permite
diversas consultas aos dados nele inseridos. Para que o objetivo fosse concretizado
foram utilizadas as seguintes tecnologias: Java Server Faces (JSF), PrimeFaces,
Hibernate, Java Enterprise Edition (JEE), o banco de dados Mysql , IReports e
Integrated Development Environment (IDE) Netbeans.
Palavras-chave: setor de estágio, aplicação web, primefaces, JSF.
ABSTRACT
The means of the organization of work has changed greatly compared a few
decades ago. What before, mostly done manually was now facing the changes and
facilities brought about by computing. However, there are still areas that do not have
systems to aid in daily activities. In this context is the internship department of
FATEC Lins. The computerization of this department through the development of a
web system can help to facilitate and enhance the activities carried out there by
allowing access to information more quickly, for example. Being so, this work aims to
develop a web application for this sector, with a focus on technologies used in order
to contribute to the improvement of their daily processes through streamlining of
document generation and reporting, as well as facilitate access to business data and
trainees. The system has areas for records, monitoring of activities performed by the
trainees, enables trainees meet their monthly report provides information on
apprenticeship positions and allows various queries against the data contained
therein. To that goal was achieved were used the following technologies: Java Server
Faces (JSF), PrimeFaces, Hibernate, Java Enterprise Edition (JEE), the MySQL
database, iReports and Integrated Development Environment (IDE) Netbeans.
Keywords: internship department, web application, primefaces, JSF.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Alunos e estagiários Brasil. ................................................................... 19
Figura 1.2 – Porcentagem de alunos no ensino superior presencial e superior à
distância. ................................................................................................................... 20
Figura 1.3 – Página voltada a empresas no site da CIEE ......................................... 22
Figura 1.4 – Página voltada a estudantes e estagiários no site da CIEE. ................. 24
Figura 1.5 – Página voltada a instituições de ensino no site da CIEE....................... 24
Figura 2.1 – Fases do Programa Java. ..................................................................... 28
Figura 2.2 – Camadas da plataforma Java EE. ......................................................... 29
Figura 2.3 – Framework JSF. .................................................................................... 31
Figura 2.4 – Árvore de componentes. ....................................................................... 32
Figura 2.5 – Codificação e decodificação página JSF. .............................................. 33
Figura 2.6 – Exemplo de DataTable. ......................................................................... 34
Figura 2.7 – Código para criação do DataTable. ....................................................... 35
Figura 2.8 – Arquivo hibernate.cfg.xml. ..................................................................... 36
Figura 2.9 – Esquema de como o Hibernate funciona. ............................................. 38
Figura 2.10 – Interface de linha de comando. ........................................................... 41
Figura 2.11 – Interface gráfica do programa MySQL Workbench. ............................ 41
Figura 3.1– Diagrama de atividade gerenciar login de usuários................................ 48
Figura 3.2– Diagrama MVC gerenciar login de usuários. .......................................... 49
Figura 3.3 – Diagrama de sequência gerenciar login de usuários............................. 49
Figura 3.4 – Diagrama de atividade manter estagiário. ............................................. 51
Figura 3.5– Diagrama MVC manter estagiário. ......................................................... 51
Figura 3.6 – Diagrama de sequência manter estagiário. ........................................... 52
Figura 3.7 – Diagrama de atividade solicitar consulta de estagiário.......................... 52
Figura 3.8 – Diagrama MVC solicitar consulta de estagiário. .................................... 53
Figura 3.9 – Diagrama sequência solicitar consulta de estagiário............................. 53
Figura 3.10 – Diagrama de atividade assinalar documentos entregues. ................... 54
Figura 3.11 – Diagrama de MVC assinalar documentos entregues. ......................... 55
Figura 3.12 – Diagrama de sequência assinalar documentos entregues. ................. 55
Figura 3.13 – Diagrama de atividade confirmar nova vaga de estágio...................... 56
Figura 3.14 – Diagrama MVC confirmar nova vaga de estágio. ................................ 56
Figura 3.15 – Diagrama sequência confirmar nova vaga de estágio......................... 56
Figura 3.16 – Diagrama de atividade realizar termo de compromisso. ..................... 57
Figura 3.17 – Diagrama de MVC realizar termo de compromisso. ............................ 58
Figura 3.18 – Diagrama de sequência realizar termo de compromisso. ................... 58
Figura 3.19 – Diagrama de atividade confirmar carga horária de estágio. ................ 60
Figura 3.20 – Diagrama de MVC confirmar carga horária de estágio. ...................... 61
Figura 3.21 – Diagrama de sequência confirmar carga horária de estágio. .............. 61
Figura 3.22 – Diagrama de atividade manter vaga de estágio. ................................. 62
Figura 3.23 – Diagrama MVC manter vaga de estágio. ............................................ 63
Figura 3.24 – Diagrama sequência manter vaga de estágio. .................................... 63
Figura 3.25 – Diagrama de atividade preencher relatório a. ..................................... 65
Figura 3.26 – Diagrama MVC preencher relatório a. ................................................. 65
Figura 3.27 – Diagrama sequência preencher relatório a. ........................................ 66
Figura 3.28 – Diagrama de atividade preencher relatório b. ..................................... 66
Figura 3.29 – Diagrama MVC preencher relatório b. ................................................. 67
Figura 3.30 – Diagrama sequência preencher relatório b. ........................................ 67
Figura 3.31– Diagrama de caso de uso completo. .................................................... 68
Figura 3.32 – Diagrama de classes. .......................................................................... 69
Figura 3.33 – Modelo de entidade e relacionamento. ............................................... 70
Figura 4.1 – MySQL Workbench e estrutura da tabela usuário. ................................ 72
Figura 4.2 – Implementação do componente DataTable de cursos. ......................... 73
Figura 4.3– Página inicial do sistema. ....................................................................... 74
Figura 4.4 – Controle de Login. ................................................................................. 75
Figura 4.5 – Função func_doLogin. ........................................................................... 75
Figura 4.6 – método doGetPassword. ....................................................................... 76
Figura 4.7 – Função func_busca_Cep. ..................................................................... 77
Figura 4.8 – Área do responsável de estágio. ........................................................... 78
Figura 4.9 – Área do estagiário. ................................................................................ 78
Figura 4.10 – Área da empresa. ................................................................................ 79
Figura 4.11 – Consulta de convênio. ......................................................................... 80
Figura 4.12 – Criação de novo relatório. ................................................................... 80
Figura 4.13 – Criação de novo relatório diário........................................................... 81
Figura 4.14 – Cadastro de novo relatório diário. ....................................................... 81
Figura 4.15 – Conclusão de relatório diário. .............................................................. 81
Figura 4.16 – Conclusão de relatório diário. .............................................................. 82
Figura 4.17 – Conclusão de relatório diário. .............................................................. 83
Figura 4.18 – Editor de texto. .................................................................................... 84
Figura 4.19 – Página 1 do Plano de Estágio. ............................................................ 84
Figura 4.20 – Página 2 do Plano de Estágio. ............................................................ 85
Figura A.1 – Adicionar plug-ins no Netbeans. ........................................................... 93
Figura A.2 – Adicionar plug-ins do Ireport no Netbeans. ........................................... 94
Figura A.3 – Ícone da ferramenta Ireport no Netbeans. ............................................ 94
Figura A.4 – Janela para criar conexão com o banco. .............................................. 94
Figura A.5 – Tipo de conexão com o banco. ............................................................. 95
Figura A.6 – Configuração de conexão com o banco................................................ 96
Figura A.7 – Welcome to Jaspersoft. ........................................................................ 97
Figura A.8 – Welcome to Window. ............................................................................ 97
Figura A.9 – Janela para escolha do tema. ............................................................... 98
Figura A.10 – Criação relatório.................................................................................. 98
Figura A.11 – Relatório com tema cherry. ................................................................. 99
Figura A.12 – Relatório após modificação. ................................................................ 99
Figura A.13 – Barra de ferramentas do IReport . ...................................................... 99
Figura A.14 – Interface para criação de consultas SQL. ......................................... 100
Figura A.15 – Aba Report Inspector. ....................................................................... 101
Figura A.16 – Relatório compilado. ......................................................................... 102
LISTA DE QUADROS
Quadro 3.1 – Necessidades e Prioridades ................................................................ 47
Quadro 3.2 – Eventos e Casos de Uso A. ................................................................. 48
Quadro 3.3 – Eventos e Casos de Uso B. ................................................................. 50
Quadro 3.4 – Eventos e Casos de Uso C. ................................................................ 59
Quadro 3.5 – Eventos e Casos de Uso D. ................................................................ 64
LISTA DE ABREVIATURAS E SIGLAS
ABRES – Associação Brasileira de Estágios
AJAX – Asynchronous JavaScript and Extensible Markup Language
APIs - Application Programming Interfaces
CIEE – Centro de Integração Empresa Escola
EIS – Enterprise Information Systems
HTML – Hypertext Markup Language
HTTP – HyperText Transfer Protocol
IDEs – Integrated Development Environments
JDBC – Java Database Connectivity
JDK – Java Development Kit
JEE – Java Enterprise Edition
JME – Java Micro Edition
JPA – Java Persistence API
JSE – Java Standart Edition
JSF – Java Server Faces
JVM – Java Virtual Machine
MER – Modelo de Entidade e Relacionamento
MVC – Model View Controller
MYD – MyDara
MYI – MyIndex
PDF – Portable Document Format
POJO – Plain Old Java Object
SO – Sistema Operacional
SQL – Structured Query Language
UI – User Interface
URL – Uniform Resource Locator
XHMTL – Extensible Hypertext Markup Language
XML – Extensible Markup Languague
INEP/MEC – Instituto Nacional de Estudos e Pesquisas Educacionais e pelo
Ministério da Educação
SUMÁRIO
LISTA DE ILUSTRAÇÕES ..................................................................... 8
LISTA DE QUADROS .......................................................................... 11
LISTA DE ABREVIATURAS E SIGLAS ................................................ 12
INTRODUÇÃO ..................................................................................... 14
1 SETOR DE ESTÁGIO ........................................................................ 16
1.1 LEIS DE ESTÁGIO .............................................................................................. 16
1.2 DADOS SOBRE O ESTÁGIO NO BRASIL .......................................................... 18
1.3 AGENTES DE INTEGRAÇÃO DE ESTÁGIO ...................................................... 20
1.4 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 25
2 TECNOLOGIAS ENVOLVIDAS ......................................................... 26
2.1 JAVA.................................................................................................................... 26
2.1.1 Java Enterprise Edition .............................................................................. 29
2.2 JAVA SERVER FACES (JSF) ............................................................................. 30
2.3 PRIMEFACES ..................................................................................................... 33
2.4 HIBERNATE ........................................................................................................ 35
2.5 MYSQL ................................................................................................................ 40
2.6 O SERVIDOR TOMCAT ...................................................................................... 42
2.7 GERAÇÃO DE RELATÓRIOS ............................................................................. 43
2.8 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 43
3 ANÁLISE E PROJETO DO SISTEMA ................................................ 45
3.1 ANÁLISE DE NEGÓCIO ...................................................................................... 45
3.1.1 Instrução do Problema ............................................................................... 45
3.1.2 Atores e Envolvidos no Processo............................................................... 45
3.1.3 Descrição do Ambiente Atual ..................................................................... 46
3.2 VISÃO GERAL DO PRODUTO ........................................................................... 47
3.2.1 Perspectiva do Produto .............................................................................. 47
3.2.2 Características ........................................................................................... 47
3.3 ANÁLISE E PROJETO DO SISTEMA ................................................................. 47
3.3.1 Casos de Usos, Diagramas de Atividades, MVC e Diagramas de
Sequência ........................................................................................................... 47
3.4 DIAGRAMA DE CLASSES .................................................................................. 69
3.5 PROJETO DE BANCO DE DADOS .................................................................... 70
3.6 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 71
4 IMPLEMENTAÇÃO ............................................................................ 72
4.1 BANCO DE DADOS ............................................................................................ 72
4.2 IMPLEMENTAÇÃO DO SISTEMA WEB ............................................................. 73
4.3 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 85
CONCLUSÃO ....................................................................................... 86
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................... 88
APÊNDICE A – Instalação do plugin iReport no Netbeans ................... 93
A.1 PASSOS DE INSTALAÇÃO................................................................................ 93
A.2 EXEMPLO DE CRIAÇÃO DE UM RELATÓRIO ................................................. 96
A.3 CONSIDERAÇÕES FINAIS .............................................................................. 102
14
INTRODUÇÃO
Atualmente a computação vem facilitando os processos de trabalho. Dessa
maneira, o que antes era organizado manualmente em muitas fichas e armários
dentro de uma empresa, hoje é realizado e mais satisfatoriamente organizado por
sistemas desenvolvidos pela computação. Assim, contratos e formulários podem ser
preenchidos através da Internet e enviados a longas distâncias em apenas
segundos.
Deste modo, é possível observar que o meio de organização do trabalho
mudou extremamente se comparado há apenas algumas décadas.
Alguns avanços tecnológicos produzem um grande impacto nas
organizações empresariais, inclusive na sociedade como um todo, exigindo
uma completa alteração na forma de agir diante desta nova realidade.
Atualmente, devido à revolução da informação, uma extraordinária mudança
está fazendo com que passemos da sociedade industrial para a sociedade
da informação. Os pilares desta nova sociedade, que é fortalecida a cada
dia, estão baseados na TI e nos valores intangíveis. (AGRASSO; ABREU,
2000, p.12)
Tendo em vista as facilidades proporcionadas pelo uso de sistemas
computacionais, torna-se menos viável para uma empresa continuar com as antigas
formas de organizações e realizações de suas atividades cotidianas. Laudon (2007),
afirma que investimentos em sistemas e tecnologias da Informação são necessários,
uma vez que se tornaram de extrema importância na prática de negócios garantindo
a sobrevivência das empresas. Rainer e Cegielski (2011) defendem o ponto de vista
de que as organizações hoje não vivem mais sem as tecnologias de informação e
que as mesmas se tornaram partes integrantes de cada área de uma organização.
Seguindo esse pensamento, constata-se que na Faculdade de Tecnologia de
Lins “Professor Antonio Seabra” – FATEC Lins, o setor de estágio encontra-se hoje,
sem um sistema específico para atender ao seu fluxo de atividades. A tramitação de
documentos necessários para contratação de estagiários é feita por meio dos
próprios alunos, que levam até as empresas interessadas os documentos para
convênio, ou através do site da faculdade onde os documentos estão acessíveis.
Assim, torna-se onerosa a tarefa de organizar esses documentos e realizar o
acompanhamento das atividades de estágio de cada aluno, bem como os relatórios
entregues e acompanhamento das cargas horárias.
15
Acredita-se, que a informatização do setor de estágio da FATEC de Lins
poderá contribuir para agilizar as atividades diárias. Pois, por meio do
desenvolvimento de um programa específico para atender as necessidades deste
setor, o acompanhamento dos planos de estágio de cada aluno poderá vir a ser
realizado com maior eficácia.
Sendo assim, esta monografia tem por objetivo o desenvolvimento de um
sistema web para o setor de estágio da faculdade com foco nas tecnologias
utilizadas. Por meio do sistema proposto, pretende-se tornar possível uma nova
forma de organização de trabalho, contribuindo no desempenho diário das tarefas
desenvolvidas. Para que esses objetivos possam ser concretizados, utilizar-se-á as
seguintes tecnologias: Java Server Faces (JSF), PrimeFaces, Hibernate, Java
Enterprise Edition (JEE), o banco de dados Mysql, IReports e Integrated
Development Environment (IDE) Netbeans.
Quanto à organização do trabalho, no primeiro capítulo será realizada uma
análise de mercado em busca de sua compreensão e investigação dos serviços já
existentes para controle no setor de estágio. No segundo capítulo serão
apresentadas as descrições das tecnologias necessárias para a realização desta
monografia. No terceiro capítulo constará a análise de sistema. O capítulo quatro
apresentará informações sobre a implementação do sistema.
16
1 SETOR DE ESTÁGIO
Nesse capítulo encontram-se informações sobre o que é o estágio e as leis
que o regem.
1.1 LEIS DE ESTÁGIO
O estágio é um ato educativo, que se desenvolve em um ambiente de
trabalho visando à integração dos estudantes com o mercado, é realizado através de
supervisão por parte do professor orientador da instituição de ensino e também por
um supervisor da parte cedente, como consta na Lei 11.788/2008, Art. 1º (BRASIL,
2008).
Pode enquadrar-se na categoria de estagiário o aluno que se encontra nas
situações onde os requisitos são (BRASIL, 2008):

Estar frequentando o ensino regular em instituições de educação superior,
de educação profissional, ou de ensino médio;

Os que estiverem frequentando educação especial;

E também, os que estiverem nos anos finais do ensino fundamental, na
modalidade profissional da educação de jovens e adultos.
Alunos estrangeiros devidamente matriculados em cursos superiores podem
realizar atividade de estágio, todavia o prazo do visto temporário necessita condizer
com o período previsto para o cumprimento do estágio como consta no Art. 4º
(BRASIL, 2008).
O estágio é dividido em duas categorias, o obrigatório e o não obrigatório. O
estágio obrigatório é aquele, que constitui parte da grade curricular de um curso,
contendo a especificação das horas necessárias e sendo requisito para obtenção de
diploma. O estágio não obrigatório é aquele que não se encontra no projeto
pedagógico do curso como requisito para aprovação, sendo desta forma opcional.
(BRASIL, 2008)
O estágio não é considerado um vínculo empregatício, desde que esteja
dentro das normas regidas perante a lei. Desta forma, não lhe cabe encargos
sociais, trabalhistas e previdenciários como consta no Art. 3º (BRASIL, 2008).
Todavia, para que o vínculo não seja formado há alguns requisitos necessários a
17
serem cumpridos: matrícula e frequência do educando em uma das modalidades de
ensino citadas acima e realização do termo de compromisso de estágio. As
atividades desenvolvidas no estágio necessitam corresponder àquelas que são
especificadas no seu termo de compromisso. (BRASIL, 2008)
Podem contratar estagiários pessoas e órgãos, que encontram-se em
situação prevista no Art. 9º.
Art. 9º As pessoas jurídicas de direito privado e os órgãos da administração
pública direta, autárquica e fundacional de qualquer dos Poderes da União,
dos Estados, do Distrito Federal e dos Municípios, bem como profissionais
liberais de nível superior devidamente registrados em seus respectivos
conselhos de fiscalização profissional, podem oferecer estágio [...].(BRASIL,
2008, p.11)
Existem requisitos necessários ao órgão ou pessoa cedente de estágio para
que a oportunidade de estágio possa ser oferecida. Esses requisitos são:

Realização de um termo de compromisso entre a instituição de ensino e o
educando;

A parte cedente necessita dispor de instalações, que proporcione ao
educando local adequado para a aprendizagem social, profissional e
cultural;

Há a necessidade de um funcionário responsável na área de atuação do
estagiário, para supervisionar as atividades realizadas pelo mesmo;

Contratar ao estagiário um seguro contra acidentes;

Possuir os documentos que comprovem a relação do estágio e no mínimo
a cada seis meses enviar à instituição de ensino, relatórios das atividades
desenvolvidas. (BRASIL, 2008)
Quanto às obrigações relativas à instituição de ensino, cabe-lhe a celebração
do termo de compromisso de estágio com educando e também com a parte cedente.
A instituição de ensino deve ainda: realizar a avaliação das instalações concedidas
ao ambiente de estágio, indicar o professor que será responsável pela supervisão
das atividades, requerer relatórios das atividades desenvolvidas no prazo máximo de
seis meses, cuidar para que o termo de compromisso seja cumprido e informar a
parte cedente o calendário do ano letivo. (BRASIL, 2008)
Segundo o Art. 10º (BRASIL, 2008), as horas diárias de estágio serão
definidas entre a instituição, o estagiário, ou responsável, caso o mesmo seja menor
18
de idade, e também entre a parte cedente. No entanto, cabe ressaltar que não se
deve ultrapassar seis horas diárias (30 horas semanais) de estágio em casos nos
quais o educando seja um estudante de ensino superior, de educação profissional
de nível médio ou do ensino regular. Quando a modalidade de ensino frequentada,
corresponder a de nível de educação especial e dos anos finais do ensino
fundamental, ou na profissional de educação de jovens e adultos, a quantidade de
horas não deve ultrapassar quatro horas diárias, totalizando 20 horas semanais.
Apenas pode realizar estágio com carga horária de até 40 horas semanais o
educando, que frequenta curso onde a prática e o ensino teórico são alternados.
Nesse caso a prática realizada através do estágio, necessita ser realizada em
períodos onde não irão ocorrer aulas presenciais.
Conforme os Art. 11, Art. 12 e Art. 13 (BRASIL, 2008), a duração de um
estágio no mesmo local não poderá ultrapassar dois anos, cabendo exceção
somente ao educando portador de deficiência. A cada um ano de estágio é
assegurada férias de 30 dias ao aluno, caso o estágio seja remunerado, as férias
também serão.
O site do Centro de Integração Empresa – Escola (CIEE), trás um
demonstrativo comparativo entre a antiga lei que regia as atividades de estágio e a
nova lei. Dentre as principais mudanças, o site da CIEE (CIEE, 2012a), pontua a
regulamentação da carga horária limite de estágio, a duração do estágio no mesmo
local não podendo este ultrapassar dois anos, a designação de um professor
orientador e a exigência de relatórios. Quanto às modificações na lei a respeito da
parte cedente do estágio, cabe-lhes a nomeação de um supervisor para cada dez
estagiários. Essas regulamentações citadas à cima, não constavam na antiga Lei
6494/77.
1.2 DADOS SOBRE O ESTÁGIO NO BRASIL
Segundo o site da Associação Brasileira de Estágio (ABRES, 2012a), logo
após o sancionamento da Lei 11.788/2008, o número de estagiários diminuiu em 20
mil no ensino superior e 40 mil no ensino médio, totalizando uma perca de 60 mil
estagiários. O mesmo site ainda mostra que o número de vagas ofertadas para
estágio em outubro de 2009 caiu em 40%. Todavia, nos meses seguintes, algumas
empresas após se adaptarem as novas leis começaram a contratar estagiários
19
novamente.
Em 2010 de acordo com o site da ABRES (2012b), foi realizado um censo
pelo Instituto Nacional de Estudos e Pesquisas Educacionais e pelo Ministério da
Educação (INEP/MEC) para uma compreensão da situação em que se encontram os
estudantes brasileiros e o seu relacionamento com as atividades de estágio. Os
dados mostraram que no Brasil existem 8.357.675 alunos no ensino médio e no
nível superior existem 6.379.299, onde 5.499.120 são de cursos presenciais e
930.179 correspondem a alunos matriculados em ensino superior à distância,
conforme representado nas figuras 1.1 e 1.2. Houve no ano correspondente a
pesquisa, um aumento de 13,8% de estagiários cursando nível superior e um
aumento de 4% de estagiários cursando nível médio. O número mais elevado de
estagiários de nível superior deve-se as limitações, impostas pela Lei 11.788/2008,
para estagiários que estão no ensino médio. (ABRES, 2012b)
Figura 1.1 – Alunos e estagiários Brasil.
Fonte: ABRES, 2012b.
20
Figura 1.2 – Porcentagem de alunos no ensino superior presencial e superior
à distância.
Fonte: ABRES, 2012b.
Segundo a pesquisa realizada pelo INEP/MEC de 2010 e disponibilizada pelo
site da ABRES (2012b), são ofertadas um milhão de vagas de estágios no Brasil, as
vagas para os estudantes de nível superior são de 740 mil. Contudo, esse número
ainda não é suficiente, uma vez que apenas 14,5% dos estudantes acabam
conseguindo uma vaga para poder realizar as atividades de estágio. A pesquisa
citada considera a oportunidade de estágio uma fonte importante para manutenção
dos alunos nos cursos superiores, pois apenas 44,6% dos alunos que ingressam no
nível superior de ensino concluem o curso, sendo uma das maiores causas a
dificuldade financeira. Desta forma, o estágio constituindo-se uma forma de renda e
a abertura de uma porta para a carreira profissional do estudante, podendo ajudar a
diminuir os números de desistências nos cursos superiores.
Quanto aos números relativos a estágio para alunos de ensino médio e
educação profissional, a pesquisa realizada em 2010 pelo INEP/MEC, de acordo
com o site da ABRES (2012b), mostra que apenas 260 mil são contemplados pela
oportunidade de estágio, o que representa 3,1% dos estudantes desta modalidade
de ensino. O censo citado acima contabilizou 8,6 milhões de alunos matriculados no
ensino médio, e que podem estagiar a partir dos 16 anos. Apenas 2,57% desses
estudantes estavam cursando o nível médio técnico. A pesquisa coloca como ponto
relevante que 3,4 milhões de estudante frequentam a escola no período noturno,
fato que corresponde à pretensão dos mesmos de conseguirem uma atividade para
poderem contribuir com a renda da família. (ABRES, 2012b)
1.3 AGENTES DE INTEGRAÇÃO DE ESTÁGIO
Agentes de integração de estágio são entidades que buscam aproximar as
21
instituições de ensino, os alunos e as partes cedentes de estágio, bem como buscar
espaço de mercado para a atividade de estágio. Segundo o Art. 5º (BRASIL, 2008) e
o site da ABRES (2012c), a atividade de agente de integração de estágio tem por
deveres:

O cadastro de alunos;

A identificação das propostas e oportunidades de vagas de estágio;

Cuidar para que as condições de realização de estágio previstas em lei
sejam cumpridas;

Encaminhar os contratos para seguro de estágio e preparar toda a
documentação necessária (acordo de cooperação entre instituição de
ensino e parte concedente de estágio, termo de compromisso de estágio e
seguro contra acidentes pessoais);

Realizar a organização dos cadastros das partes cedentes de estágio,
bem como selecionar os locais para a realização dos mesmos.

Realizar encaminhamento dos estudantes aos estágios ofertados pelas
partes cedentes.
Além das atribuições acima, segundo o site da ABRES (2012c), os agentes
de integração podem ainda deixar a disposição das instituições de ensino,
informações como: total de alunos cadastrados, quantidade de alunos realizando
estágio e relação de estudantes em estágio por curso.
De acordo com o Art. 5º (BRASIL, 2008), é vedada qualquer cobrança pelos
agentes de integração em relação aos estudantes pela concessão de seus serviços.
Os agentes de integração de estágio podem responder civilmente se encaminharem
estudantes para estágios, cujas atividades não estejam de acordo com as
especificadas nas grades curriculares do aluno.
Existem vários sites que realizam a atividade de agentes de integração, que
buscam estreitar o relacionamento entre estudantes, empresas e intuições de
ensino. Nesses sites são encontradas informações e esclarecimentos sobre as leis
que regem a atividade de estágio, deveres que cabem as empresas, alunos e
instituições de ensino. Existem áreas distintas para cadastros de empresas,
estudantes e instituições de ensino, com informações referentes ao interesse de
cada um. Como exemplo de site que promove o papel de agente integrador pode-se
citar o CIEE, uma instituição que é mantida pelo empresariado nacional e que não
22
visa finalidades lucrativas, promovendo desta forma a integração entre todos os
envolvidos na relação de estágio. (CIEE, 2012b)
No site do CIEE (2012c), existem áreas especificas para as empresas
poderem:

Realizar cadastros;

Recuperar senhas;

Enviarem propostas de estágio;

Realizarem pré-convênios;

Cadastrar supervisores de estágios;

Certificados de seguro;

Encaminhados para a oportunidade de estágio;

Estagiários contratados;

Recesso de estágio;

Relatório de atividades desenvolvidas no estágio;

Rescisões de contratos.
Os exemplos acima podem ser visualizados na figura 1.3.
Figura 1.3 – Página voltada a empresas no site da CIEE
Fonte: CIEE, 2012c.
23
Este site, CIEE, que promove a função de agente de integração, também
possui áreas reservadas a estagiários e instituições de ensino, como mostradas nas
figuras 1.4, e 1.5.
Na área de estudantes, no site do CIEE (2012d), podem ser encontradas
funcionalidades para alunos que ainda não foram contemplados com estágio e
querem realizar seu cadastro no site, como também funcionalidades para estudantes
que já foram contemplados com a oportunidade de estágio. As funcionalidades
disponibilizadas para os estudantes são:

Área para cadastro;

Área para atualização de dados;

Banco de vagas de estágio ofertadas;

Currículo do estudante;

Cursos à distância;

Histórico de vagas;

Testes de capacitação;

Testes de temperamentos entre outras.
O aluno que já realiza a atividade de estágio possui as seguintes áreas
segundo o site CIEE (2012d):

Certificado de seguro;

Curso primeiro estágio;

Declaração de estágio;

Pagamento de bolsa;

Relatório de estágio.
As instituições de ensino podem realizar as seguintes operações no site da
CIEE (CIEE, 2012e):

Cadastro do orientador de estágio;

Atestado de estágio;

Cartaz de vagas de estágio ofertadas;

Estagiários contratados por curso;

Estagiários contratados por empresa;

Estudantes em seleção para estágio;

Plano de estágio;

Relatórios de Atividades;
24

Rescindidos por curso;

Síntese de relatórios;

Termo de realização.
Figura 1.4 – Página voltada a estudantes e estagiários no site da CIEE.
Fonte: CIEE, 2012d.
Figura 1.5 – Página voltada a instituições de ensino no site da CIEE
Fonte: CIEE, 2012e.
25
1.4 CONSIDERAÇÕES SOBRE O CAPÍTULO
As funcionalidades coletadas no site de integração CIEE, colaboram para um
entendimento dos requisitos que um sistema de controle de estágio deve conter.
Tendo como base as pesquisas realizadas sobre as funcionalidades disponibilizadas
pelos sites de agentes de integração de estágio, observam-se requisitos que se
tornam essenciais para um sistema de controle de estágio são eles:

Áreas específicas voltadas ao perfil de quem irão acessa-las, como por
exemplo, empresas, alunos e administrador responsável pelas atividades
de estágio;

Controle de frequência dos estagiários;

Áreas para realização de cadastros de alunos e empresas;

Disponibilização de formulários oficiais, convênios entre outros;

Controle de início e término dos contratos de estágio;

Desenvolver restrições de acesso a certas áreas do sistema;

Possibilitar consultas sobre dados dos estagiários;

Manter um controle sobre os documentos entregues;
No próximo capítulo serão abordadas a tecnologias que foram utilizadas para
a realização deste trabalho monográfico.
26
2 TECNOLOGIAS ENVOLVIDAS
Nesse capítulo encontram-se informações sobre as tecnologias utilizadas
para realização desta monografia.
2.1 JAVA
Segundo Mendes (2009), Java é uma linguagem de programação orientada a
objetos, altamente portável e com alto desempenho. Sendo constituída pela
linguagem de programação propriamente dita, uma plataforma formada por
Application Programming Interfaces1 (APIs) e por uma máquina virtual Java. Esta
linguagem pode ser considerada simples ao permitir que desenvolvedor não se
preocupe com infraestruturas como o hardware e o sistema operacional em que o
seu aplicativo será executado, o que facilita o seu desenvolvimento. Como facilitador
pode ser citado também, o fato de Java implantar o conceito de reuzabilidade de
códigos evitando a repetição desnecessária dos mesmos. Dentre os fatores de Java
ser considerada uma linguagem de alto desempenho, é que ela conta com um
recurso conhecido como garbage colletctor (coletor de lixo), que trabalha em
segundo plano liberando memória que não se encontra mais em uso. Isso permite
que a memória desalocada possa ser utilizada por outras partes do sistema,
aumentando o seu desempenho. (MENDES, 2009)
Linguagens de programação como C e Pascal, por exemplo, possuem seus
respectivos códigos fontes, que ao serem compilados geram um código binário e
este é compatível a um determinado sistema operacional (SO). Se o desenvolvedor
precisar migrar de um sistema operacional para outro é necessário reescrever
pedaços da aplicação onde o código fonte é específico para aquele sistema
operacional. Isso ocorre devido ao fato de que a aplicação pode se comunicar com
bibliotecas específicas de um sistema. (CALEUM, 2013)
Java é uma linguagem interpretada e compilada e utiliza o recurso de uma
máquina virtual, Java Virtual Machine (JVM). Esse fato possibilita a sua
independência em relação à plataforma utilizada (sistemas operacionais e tipos de
1
Uma interface entre aplicativo e programação (API) é um conjunto de instruções e padrões de
programação para acesso a um aplicativo de software baseado na web, ou ferramenta de web. Uma
empresa de software lança seu API para o público de modo a que outros criadores de software
possam desenvolver produtos acionados por esse serviço. (ROOS, 2013)
27
dispositivos, por exemplo). Para isso, a JVM funciona como um tradutor entre a
aplicação e o sistema operacional de forma a realizar chamadas ao SO que foram
requisitadas pela aplicação. Deste modo aplicação não se comunica diretamente
com o sistema operacional, tornando-a independente. (CALEUM, 2013)
Segundo Deitel (2007), programas desenvolvidos em Java possuem cinco
fases e são elas:

Edição: o código fonte é escrito em um programa editor, também podendo
ser utilizado ambientes de desenvolvimento integrados (IDEs – Integrated
Development Environments) e é armazenado em uma unidade de disco
com a extensão java.

Compilação: o código fonte é compilado e produz os bytecodes2 que são
armazenados em um arquivo de extensão class e executados pela JVM.
Os bytecodes são independentes das plataformas (hardwares e SOs),
sendo por isso portáveis.

Carga: é o processo em que os arquivos class que possuem os bytecodes
são carregados na memória principal.

Verificação: enquanto os bytecodes são carregados é feita uma
verificação para constatar se os eles são válidos e não quebram restrições
de segurança do Java.

Execução: nesta fase os bytecodes são executados pela JVM.
Na figura 2.1, estão representadas as fases de um programa escrito em Java,
descritas acima.
A linguagem Java, possui três edições sendo elas:

Java Standart Edition (JSE): possibilita o desenvolvimento e a
implementação de aplicativos Java em desktops e em servidores,
oferecendo entre outros recursos segurança e portabilidade. (ORACLE,
2013c)

Java Enterprise Edition (JEE): tem como alvo aplicações voltadas para a
Internet e é muito utilizada em desenvolvimentos de aplicativos
empresariais. (ORACLE, 2013b)

2
Java Micro Edition (JME): oferece conjunto de tecnologias que
A linguagem Java é interpretada, ou seja, após a compilação é gerado um arquivo intermediário
(nem texto nem executável) no formato bytecode, que poderá ser executado em qualquer arquitetura
(Windows, Linux, Mac e Unix) que tenha uma máquina virtual Java instalada. (MENDES, p.20, 2009).
28
disponibiliza recursos para desenvolvedores criarem aplicações voltadas à
dispositivos em que recursos de hardware são limitados. Essa plataforma
é utilizada, por exemplo, em dispositivos móveis como smartphones.
(ORACLE, 2013a)
A criação de programas em Java exige que o desenvolvedor possua o Java
Development Kit (JDK), que consiste em um ambiente de desenvolvimento onde são
encontradas ferramentas para a criação e testes de aplicações. (ORACLE, 2013d)
Figura 2.1 – Fases do Programa Java.
Fonte: CyberSphera, 2013.
29
2.1.1 Java Enterprise Edition
Segundo Sampaio (2011), a plataforma Java JEE trata-se de uma plataforma
voltada ao desenvolvimento de aplicações coorporativas, o que significa ter o intuito
de resolver problemas organizacionais ou empresariais.
Essa plataforma divide-se em quatro camadas: cliente, apresentação,
negócios e Enterprise Information Systems, que serão apresentadas abaixo:
3
Na camada cliente temos o web browser ou applets , podendo ter também
aplicações Java rodando dentro do Java EE client container. Na camada de
apresentação (ou Web Tier) temos os componentes web da arquitetura
Java EE, como Java Server Pages (JSP), Servlets e Java Server Faces. Na
camada de negócios rodamos os componentes remotos que implementam
4
regras de negócio ou representam entidades de dados, os Enterprise
Javabeans e Web Services. Finalmente, na camada EIS (Enterprise
Information Systems) temos os servidores de recursos corporativos, como:
Servidores de Banco de Dados ou Mainframes. (SAMPAIO, 2011, p. 20 e
21)
Na figura 2.2 abaixo são ilustradas as camadas da plataforma JEE.
Figura 2.2 – Camadas da plataforma Java EE.
Fonte: Sampaio, 2011, p.19.
3
Applets são aplicativos computacionais que possuem características limitadas, requerem poucos
recursos de memória para serem executadas e, normalmente, são portáveis entre sistemas
operacionais. Os applets escritos [...] em linguagem computacional Java são os mais populares.
(GAUDIO, 2013).
4
Uma classe de entidade é um objeto Java simples e antigo (POJO), uma classe Java simples que é
identificada como uma entidade pela anotação @Entity. (NETBEANS, 2013)
30
A plataforma Java JEE é baseada em containers5 e para cada tipo de
aplicação programada baseada nesta plataforma existe um container específico.
Para exemplificar, podem ser citados os exemplos que Sampaio (2011, p. 20),
descreve: “Aplicações servidoras web rodam em um container Web. [...]. E
aplicações clientes que utilizam componentes Java EE rodam no Aplication Client
Container.”
Ainda segundo Sampaio (2011), todas as aplicações feitas utilizando o Java
JEE precisam de um container. Um dos containers mais utilizado para aplicações
web é o Apache Tomcat, sendo este puramente web.
2.2 JAVA SERVER FACES (JSF)
Segundo Geary e Horstmann (2012), o JSF é um framework6 baseado em
componentes, é utilizado para o desenvolvimento de interface de usuário, User
Interface (UI). É formado por componentes de UI, programação orientada a eventos
e permite que desenvolvedores criem componentes adicionais.
[...] o framework JSF é responsável pela interação com os dispositivos
clientes e fornece ferramentas para unir a apresentação visual, a lógica da
aplicação e a lógica de negócios de uma aplicação web. Entretanto, o
escopo do JSF, restringe-se na camada de apresentação. (GEARY;
HORSTMANN, 2012, p.24)
Na figura 2.3 é exemplificada a visão desse framework.
O JSF trabalha com a arquitetura model-view-controller. Essa arquitetura
segundo Minetto (2007) representa o conceito da separação do desenvolvimento de
uma aplicação em três camadas. Essas camadas são:
Model – gerencia o comportamento dos dados da aplicação.
View – gerencia a saída gráfica e textual da parte da aplicação visível ao
usuário.
Controller – interpreta as entradas de mouse e teclado do usuário,
comandando a Visão e o Modelo para se alterarem de forma apropriada.
Todas as requisições feitas pelo usuário são enviadas ao Controller. Este
5
Dificilmente uma aplicação gráfica é composta por um único componente, mas sim por vários
componentes inter-relacionados. Para este tipo de aplicação, um componente fundamental é a área
onde os demais componentes da aplicação estarão dispostos. Um componente que pode conter
outros componentes é denominado um container. (RICARTE, 2002)
6
“[...] um framework de desenvolvimento é uma “base” de onde se pode desenvolver algo maior ou
mais específico. É uma coleção de códigos-fonte, classes, funções, técnicas e metodologias que
facilitam o desenvolvimento de novos softwares.”. (MINETTO, 2007, p.17).
31
manipula os dados usando o Model e invoca a View correta, de acordo com
a ação executada ou com os resultados vindos do Model.
(MINETTO, 2007, p.19)
Figura 2.3 – Framework JSF.
Fonte: Geary; Horstmann, 2012, p.24.
De acordo com Geary e Horstmann (2012), o JSF desempenha o papel do
controller, pois relaciona a interface com o modelo. Ele reage aos eventos criados
pelos os usuários criando essa comunicação com o modelo. Este por sua vez,
atualiza os seus dados com base nos valores criados pelo evento e o JSF retorna os
dados processados novamente a interface. Para exemplificar, pode-se pensar em
uma página de login de usuário, em que o usuário digita seu nome e sua senha.
Esses dados são passados pelo JSF ao modelo que realiza o processamento para
verificar se os dados são válidos. A resposta originada por esse processamento é
devolvida a interface pelo JSF.
Esse framework, o JSF, funciona da seguinte maneira: primeiramente o
navegador se conecta a página inicial Extensible Hypertext Markup Language
(XHMTL) da aplicação. O JSF lê esta página e suas tags7. Cada uma dessas tags
está ligada a uma classe chamada tag handler, que consiste em uma classe de
manipulação de tags. Ao serem lidas, essas tags constroem uma árvore de
componentes, que formam uma estrutura de dados contendo objetos Java para cada
uma das tags da interface da página JSF. Por exemplo, o objeto UIInput criado,
possui correspondência com um campo h:inputText no arquivo JSF. Na figura
7
Tags são rótulos usados para informar ao navegador como deve ser apresentado o website.
(HTML.NET, 2013)
32
2.4 é representada a árvore de componentes, acima citada.
Figura 2.4 – Árvore de componentes.
Fonte: Geary; Horstmann, 2012, p.26.
Após a execução das tags handlers do JSF, a página Hypertext Markup
Language (HTML) é rendenizada. Isto significa que as tags do JSF são convertidas
a tags HTML simples. Para cada componente das tags JSF, existe um rendenizador.
Esse processo é chamado de codificação.
Em seguida ocorre o processo de decodificação. Para exemplificar esse
processo usar-se-á o exemplo de envio de formulário. Após o usuário digitar seu
nome e senha ele aciona o botão enviar. Então, o navegador envia os dados deste
formulário para o servidor web através do método POST (método em que os
parâmetros passados não podem ser visualizados através da Uniform Resource
Locator8 (URL)). Dados de formulários são pares de strings, e esses pares são
armazenados em uma tabela hash9. Através do processo de decodificação o JSF
possibilita os componentes, construídos através da execução das tags handllers do
JSF, inspecionar e interpretar os dados da tabela hash. O componente UIInput
atualiza o bean através dos valores passados pelo usuário.
Um bean é uma classe Java que expõe propriedades e eventos a um
framework como o JSF. Uma propriedade é um valor nomeado de um
determinado tipo que pode ser lido e/ ou escrito [...], ou seja, a convenção
familiar get/set.(GEARY; HORSTMANN, 2012, p.16).
8
URL consiste em um endereço de um arquivo na Internet. É usada com frequência para localizar
páginas web, por exemplo: www.google.com. (MICROSOFT, 2013)
9
Tabela hash trata-se de um array unidimensional e a execução de uma função hash é necessária
para o acesso a cada entrada da tabela. Cada entrada da tabela pode ter um ou mais registros.
(NUNES, 2008)
33
Outro componente, o UICommand, realiza a verificação para saber se o botão
enviar foi acionado. Caso positivo, um evento é disparado para iniciar o processo de
login. (GEARY; HORSTMANN, 2012)
Na figura 2.5 é ilustrado o processo de codificação e decodificação de
páginas JSF.
Figura 2.5 – Codificação e decodificação página JSF.
Fonte: Geary; Horstmann, 2012, p.27.
2.3 PRIMEFACES
Segundo Çivici no manual PrimeFaces User’s Guide, PrimeFaces é um
framework de componentes para JSF, utilizado para a criação de interface de
usuário. Seu foco é trazer simplicidade aos desenvolvedores.
Esse framework oferece ao desenvolvedor de aplicação um rico conjunto de
componentes e possui Asynchronous JavaScript and Extensible Markup Language10
(AJAX) nativo. Alguns desses componentes são listados a seguir:

Menu:
esse componente possui recursos para posicionamentos de
menus estáticos e dinâmicos;
10

Editor de HTML;

InputMask: componente para formatação de campos;
[...] é uma tecnologia para atualização de páginas web no navegador do cliente sem que o
formulário tenha que ser submetido e a resposta criada. [...] O resultado para o usuário é uma
apresentação mais estável, sem a temida atualização total de página. (GEARY; HORSTMANN,
2012).
34

DataTable: componente de iteração de dados (tabela de dados). Esse
componente disponibiliza ações como paginação AJAX, filtragem (para
busca de dados), seleção de dados, busca por filtragem entre outros
recursos;

Dialog: apresentação de mensagem sobreposta à página atual.
Na figura 2.6 é ilustrado o componente DataTable com filtragem de dados e
na figura 2.7 é apresentado o código disponibilizado no site do PrimeFaces para
construção do DataTable.
Figura 2.6 – Exemplo de DataTable.
Fonte: PrimeFaces, 2013.
35
Figura 2.7 – Código para criação do DataTable.
Fonte: PrimeFaces, 2013.
2.4 HIBERNATE
Segundo o site Jboss (2013), a persistência de dados através da linguagem
Java, por muito tempo foi algo que envolvia desenvolvedores em grandes
dificuldades. De um lado encontravam-se banco de dados relacionais e de outro, a
necessidade dos dados dessas tabelas serem representados em forma de objetos
para a aplicação Java. Então, surge o framework Hibernate, que consiste em uma
solução para o mapeamento Objeto/Relacional. Mapeamento Objeto/Relacional
refere-se ao mapeamento de tabelas de um banco de dados relacional para uma
classe Java ou de uma classe Java para uma tabela de banco de dados relacional.
Em suma, esse framework cuida do relacionamento da aplicação Java com o banco
de dados.
A portabilidade também era um problema. Muitos bancos de dados possuem
dialetos próprios, esse fato tornava dificultosa a tarefa de migração de um banco de
dados para o outro. O framework Hibernate, facilita essa tarefa, uma vez que se
36
necessária a mudança de um banco de dados para outro, caberá ao desenvolvedor
apenas mudar algumas configurações no Hibernate. (GONÇALVES, 2007)
O Hibernate precisa ser configurado para que possa estabelecer a conexão
com
o
banco
de
dados.
Essa
configuração
encontra-se
no
arquivo
hibernate.cfg.xml e possui as seguintes propriedades:

hibernate.connection.driver_class:
nesta
propriedade
está
contido o nome da classe do driver Java Database Connectivity (JDBC)
utilizado para a conexão com o banco de dados. O driver utilizado no
programa desenvolvido para o setor de estágio é o driver para banco de
dados MySQL.

hibernate.connection.url: URL de conexão com o banco de dados.

hibernate.connection.username: nome do usuário do banco de
dados, que o Hibernate utiliza para realizar a conexão.

hibernate.connection.password: senha que o Hibernate utiliza para
se conectar ao banco.

hibernate.dialect: cada banco de dados possui um dialeto11. Essa
propriedade especifica qual é o dialeto que o Hibernate utilizará para
realizar a comunicação com o banco. No programa em questão foi
utilizado o dialeto para MySQL. (GONÇALVES, 2008a)
A figura 2.8 tem por finalidade exemplificar as propriedades acima descritas e
representa o hibernate.cfg.xml utilizado no projeto.
Figura 2.8 – Arquivo hibernate.cfg.xml.
Fonte: Elaborada pelo autor, 2013.
11
Um dialeto encapsula todas as diferenças em como o Hibernate deve comunicar-se com um banco
de dados particular para completar algumas tarefas como obter um valor de sequência ou estruturar
uma consulta SELECT. (JBOSS, 2013)
37
Segundo Carvalho (2007), a realização do mapeamento entre as classes Java
e as tabelas do banco, no Hibernate, podem ser realizados através de arquivos
Extensible Markup Languague (XML), diretamente no código Java ou pela Java
Persistence API JPA. A interação entre os códigos de programação e o banco
ocorre por meio do Hibernate Session. Este pode ser entendido como um
gerenciador de persistência, que realiza atividades como: consultas, execução de
operações de inserção, atualização e remoção de cada instância de classes que
estão mapeadas pelo Hibernate.
Para simplificar, “Um objeto Session pode ser considerado como uma sessão
de comunicação com o banco de dados através de uma conexão JDBC.”
(GONÇALVES, 2007, p.521)
É necessária uma classe Java para que se possa trabalhar com o Hibernate.
Esta classe possui o objeto SessionFactory que é responsável por armazenar os
mapeamentos e configurações do Hibernate. A figura 2.9 exemplifica o esquema de
trabalho utilizado por este framework.
Um objeto instanciado pode estar em um entre três tipos diferentes de
estágios. Esses estágios são:
Transient: Objeto em memória, porém não foi salvo ainda;
Persistent: Objeto já salvo, porém em cachê no SessionFactory, mas pode
ser que ainda não esteja no banco de dados;
Detached: Objeto já persistido no banco de dados. (CARVALHO, 2007)
De acordo com Saab (2011), algum tempo depois da criação do Hibernate foi
desenvolvida a especificação API (JPA) tendo como base funcionalidades contidas
no Hibernate. Pela grande popularidade e influência da empresa Sun Microsystems,
que criou a JPA, esta se tornou rapidamente conhecida. Por este motivo os
criadores do Hibernate implementaram a especificação JPA para manter a
compatibilidade com as especificação de da plataforma JEE como JSF, por
exemplo. A JPA disponibiliza anotações para que classes Java simples se tornem
entidades que representem as tabelas contidas em um banco de dados. Esse
processo é conhecido como Mapeamento Objeto/Relacional.
A figura 2.9 representa um esquema de funcionamento do Hibernate.
38
Figura 2.9 – Esquema de como o Hibernate funciona.
Fonte: Carvalho, 2007.
Segundo Gonçalves (2008a), a JPA é baseada em um conceito chamado
Plain Old Java Object (POJO), que utiliza ideias de outros frameworks de
persistência
com
o
intuito
de
realizar
a
padronização
do
mapeamento
Objeto/Relacional em Java. “Na JPA, os objetos persistentes são denominados
entidades (Entities). Uma entidade é um objeto simples (POJO), que representa um
conjunto de dados persistidos no banco.” (GONÇALVES, 2008ª, p. 101)
No pacote javax.persistence encontram-se as classes e interfaces desta
API. O que possibilita o desenvolvedor fazer o mapeamento da aplicação através de
anotações conhecida também por Java Annotations.
Os objetos contidos nos POJOs (entidades de persistência) possuem diversas
anotações. Na API JPA cada anotação é precedida pelo símbolo de arroba “@” e
possui um significado. Algumas dessas anotações são:
@Entity – A entidade. Indica que essa classe é uma entidade (entity bean),
que nada mais é do que um POJO, representando um objeto de negócio.
Sem a definição de um parâmetro adicional, é assumido que o valor padrão
será o nome da classe.
@Table – Mapeia o nome da tabela. Caso não seja utilizado o parâmetro
name, o valor padrão assumido é o nome da classe.
@Id – O identificador da entidade. Normalmente se refere à chave primaria
39
da tabela relacional.
@GeneratedValue – Define que terá seus identificadores automaticamente
gerados. Isso é chamado de geração de id e é especificado por essa
anotação.
@Column – Mapeia o nome da coluna existente na tabela relacional. É
importante frisar que o Hibernate assume os atributos da classe como os
mesmos nomes da tabela existente no banco de dados. A utilização dessa
anotação com o atributo name se faz necessário nesse caso, uma vez que
existem campos de nomes diferentes no modelo relacional com relação à
classe.
[...]
@OneToMany – Define uma relação de “um-para-muitos” do utilizado em
banco de dados relacional. Possui um atributo chamado mappedBy para
definir o atributo da outra Entidade no qual é referenciado.
@ManyToOne – Define uma relação de “muitos-para-um” do utilizado em
banco de dados relacional.
@JoinColumn - São usadas para especificar a coluna que contém a chave
estrangeira de cada relacionamento, os conhecidos Inner Joins de um
relacionamento SQL. (GONÇALVES, p.104, 2008a).
Outro ponto importante a ser ressaltado sobre JPA é que de acordo com o
que descreve Araújo e Guizzo (2012), é ela que especifica como os frameworks de
mapeamento Objeto/Relacional irão funcionar na plataforma Java, não sendo assim
um framework de mapeamento propriamente dito. Por isso JPA pode ser entendido
um conjunto de especificações. Deste modo o Hibernate realiza a tarefa das
persistências implementando as especificações JPA. Apesar de ter esse papel
importante para a persistência de dados em um banco de dados relacional, o
Hibernate trabalha de forma transparente ao desenvolvedor. Pois, este se concentra
em grande parte do tempo, na utilização de anotações e interfaces que a API JPA
disponibiliza.
Outro conceito necessário para a persistência de dados na linguagem Java é
a API JDBC. Essa API permite que uma aplicação Java possa se conectar e
comunicar com um banco de dados relacional, enviar comandos Structured Query
Language12 (SQL) para execução e recuperação dos resultados desses comandos.
Para o acesso ao banco de dados, também é necessário um driver JDBC, que
consiste em uma biblioteca Java. Este driver é importante para a conexão com o
banco de dados e é disponibilizado pelo próprio fornecedor do banco. (LOZANO,
2008)
12
SQL é uma linguagem estruturada de consultas para o banco de dados. É a linguagem padrão para
as realizações de operações com banco de dados. (INTELLECTUALE, 2013)
40
2.5 MYSQL
Segundo o site MYSQL (2013d), o MySQL é um banco da dados registrado
pela Oracle Corporation e possui duas licenças, sendo uma gratuita e outra, uma
licença comercial padrão da Oracle que é paga. Para o presente trabalho foi
utilizado o banco de dados MySQL Community Edition, que possui código fonte
aberto e é distribuído gratuitamente.
Esse banco é escrito na linguagem de programação C e C++ e é aceito por
diversos sistemas operacionais como: Linux, Windows, FreeBSD, Solaris e Mac OS
X (MYSQL, 2013b). O MySQL aceita tipos de dados como: numéricos, data e string
(caracteres e bytes) (MYSQL, 2013e). Quanto à questão relacionada a limites de
capacidade deste banco de dados, ele possui suporte para grande volume de dados.
Existem usuários que possuem até 200.000 tabelas armazenadas no MySQL e
cerca de 5.000.000.000 linhas de dados. Ele suporta até 64 índices por tabela,
sendo que cada índice pode ter de uma a 16 colunas.(MYSQL, 2013a)
Em relação à conectividade, o MySQL possui conectores e APIs que
disponibilizam ao programa cliente (programa que se conecta e utiliza recursos do
banco), acesso a protocolos e recursos MySQL. Isso permite que conexões e
instruções MySQL possam ser executadas de outros programas escritos em outras
linguagem de programação. Um exemplo de conector é o Connector/J, que fornece
driver JDBC possibilitando a conexão com o banco de dados a partir de um
programa escrito em Java. (MYSQL, 2013g)
O MySQL disponibiliza ao usuário a possibilidade manipulação de dados
através de interface de linha de comando ou através de um programa de interface
gráfica como o MySQL Workbench. Nas figuras 2.10 e 2.11 são representadas a
interface por linha de comando e a interface gráfica garantida pelo Workbench.
(MYSQL, 2013h)
Através da interface gráfica o MySQL Workbench fornece ao usuário
ferramentas para conexão, consulta e modelagem de dados, por exemplo. Esta
última permite a criação do modelo de entidade e relacionamento 13 (MER) das
tabelas do banco de dados. E possibilita ainda, que através do MER, tabelas
possam ser criadas automaticamente e vice e versa através do recurso de
13
“O Modelo Entidade-Relacionamento tem o objetivo de representar as estruturas de dados da
forma mais próxima do mundo real dos negócios.”. (DEVMEDIA, 2009)
41
engenharia reversa. (MYSQL, 2013h)
Figura 2.10 – Interface de linha de comando.
Fonte: Elaborada pela autora, 2013.
Figura 2.11 – Interface gráfica do programa MySQL Workbench.
Fonte: Elaborada pela autora, 2013.
O MySQL, possui diferentes mecanismos para armazenamento de dados.
Esses mecanismos são conhecidos como motores de armazenamento. O motor
escolhido para a realização desta monografia foi o InnoDB.
O InnoDB é um mecanismo de armazenamento que possui segurança e alto
42
desempenho. Segue o modelo ACID14 para transações como rollback15, commit16 e
crash-recovery (capacidade de proteção de dados do usuário). Suporta o conceito
de Foreign Key (chave estrangeira) para manter a integridade dos dados perante
restrições. “Cada tabela InnoDB tem um índice de chave primária chamado de índice
de agrupamento que organiza os dados para minimizar a Input/Output (entrada e
saída de dados) para pesquisas de chave primária.” (MYSQL, 2013c). Este é o
motor de armazenamento padrão do MySQL 5.5.5.
Nas versões anteriores a 5.5.5 do MySQL, o MyISAM era o motor de
armazenamento padrão. Neste mecanismo as tabelas são gravadas em três
formatos de arquivos diferentes. Um arquivo possui extensão frm, responsável pelo
armazenamento do tipo de tabela, outro tem extensão MyDara (MYD) e é um
arquivo de dados e por último se tem o arquivo de índices de extensão MyIndex
(MYI). (MYSQL, 2013f)
2.6 O SERVIDOR TOMCAT
Segundo o site Caleum (2013), o servidor Tomcat, desenvolvido pela
fundação Apache, consiste em um Servlet Container, que suporta funcionalidades
proporcionadas por tecnologias como JSP, JSF e Servlets. E é indicado para quem
está interessado em aplicações web.
Existem servidores web que não englobam todas as especificações JEE, mas
somente aquelas que são necessárias para o desenvolvimento web. Para esses
servidores foi criado um termo a partir do JEE 6 que é “application server web
profile”. O servidor Tomcat enquadra-se nessa definição.
Um Servlet Container
pode ser descrito como um container usado para o desenvolvimento de servlets.
(GAMA, 2010)
Servlets são classes Java executadas do lado servidor, que trabalham com
requisições HyperText Transfer Protocol
17
(HTTP) que são enviadas por clientes
(página web) e envio de resposta para essas requisições. Os servlets possuem
14
“O modelo ACID é um dos mais velhos e importantes conceitos da teoria de Banco de Dados. Ele
define quatro pontos que todos os SGBD devem ter: atomicidade, consistência, isolamento e
durabilidade.” (MACÊDO, 2011).
15
“Comando que desfaz os efeitos dos comandos da transação.”. (KNEIPP; ALBUQUERQUE, 2005).
16
“Comando que grava definitivamente os efeitos dos comandos de uma transação (insert, delete e
update).”. (KNEIPP; ALBUQUERQUE, 2005).
17
Protocolo de comunicação utilizado na web. (ANDRADE, 2009)
43
ciclos de vida que incluem o seu carregamento, inicialização, atendimento de
requisições, finalização e descarregamento. Esse ciclo de vida é gerenciado pelo
Servlet Container que também pode ser definido como um módulo de um servidor
web. (SILVA, 2009)
2.7 GERAÇÃO DE RELATÓRIOS
Em 2001 Teodor Danciu desenvolveu o JasperReports, uma biblioteca de
código fonte aberto escrita em Java, para auxiliar desenvolvedores na geração de
relatórios. Pois, até então as ferramentas existentes para tal tarefa não eram
distribuídas
gratuitamente.
Para
usar
esta
biblioteca
era
preciso
que
o
desenvolvedor tivesse conhecimento do formato XML, usado para criação de
relatórios. Fato esse que tornava a tarefa difícil para programadores iniciantes.
Todavia, um ano mais tarde Giulio Toffoli desenvolveu uma ferramenta que permitiu
o desenvolvimento visual (por meio de interface gráfica) de relatórios através de uma
ferramenta chamada IReport. Essa ferramenta gráfica utilizava como base a
biblioteca JasperReports, o que facilitou muito o desenvolvimento de relatórios. O
IReport, também foi escrito na linguagem de programação Java. (GONÇALVES,
2008b)
Tendo em vista a necessidade de geração de relatórios em Portable
Document Format (PDF) no sistema, a ferramenta IReport foi utilizada na presente
monografia com este propósito.
A ferramenta em questão também dispõe de suporte para o banco de dados
que possam ser cessados através do driver JDBC. (GONÇALVES, 2008b)
No final desta monografia consta um apêndice contendo um tutorial de
instalação e criação de relatório com o IReport.
2.8 CONSIDERAÇÕES SOBRE O CAPÍTULO
Como visto, este capítulo teve o propósito de apresentar e esclarecer as
tecnologias, que foram utilizadas para a realização deste trabalho monográfico. A
linguagem Java apresenta como grande vantagem o fato de ser uma linguagem
portável e disponibilizar a programadores APIs e frameworks, que facilitam o seu
desenvolvimento de aplicações.
44
No próximo capítulo serão abordados detalhes sobre o desenvolvimento do
programa para controle do setor de estágio da FATEC de Lins.
45
3 ANÁLISE E PROJETO DO SISTEMA
Neste capítulo encontram-se descritas as etapas de desenvolvimento do
sistema de controle de estágio, sendo importante para a compreensão do mesmo.
3.1 ANÁLISE DE NEGÓCIO
3.1.1 Instrução do Problema
Atualmente o setor de estágio da FATEC de Lins, não possui um sistema
informatizado para a realização de seus processos diários como, por exemplo,
controle de documentos entregues e pendentes, acompanhamento de entrega de
relatórios e controle sobre os contratos de estágio que irão vencer. Deste modo, as
realizações das tarefas tornam-se onerosas, pois a cada necessidade de
modificação ou consulta de dados referentes aos estagiários e mesmo vencimentos
de convênios entre a FATEC Lins e as empresas cedentes de estágio, é preciso
consultar inúmeros formulários contidos em pastas dentro de armários. Tais
dificuldades fazem com que as informações sobre o andamento de contratos,
documentos entregues e vencimentos de convênios nem sempre estejam
atualizadas.
A implantação de um sistema voltado às necessidades deste setor contribuirá
para um acompanhamento mais detalhado das atividades realizadas pelos
estagiários e poderá funcionar como um facilitador para a realização de convênios
entre as empresas cedentes de estágio e a instituição de ensino FATEC Lins. Por
meio do sistema, dados poderão ser visualizados, alterados e atualizados com maior
rapidez sem a necessidade de consultas a formulários manuscritos.
3.1.2 Atores e Envolvidos no Processo
Os atores envolvidos no processo são: responsável pelo setor de estágio, os
estagiários e as empresas cedentes de estágio.
O responsável pelo setor de estágio possui permissões para consultar,
alterar, incluir e excluir dados das empresas e estagiários, juntamente com
46
funcionalidades como gerenciamento das movimentações mensais dos estagiários,
data de início e término de contratos e convênios.
Cabe às empresas cedentes de estágio confirmar cargas horárias realizadas
pelos estagiários, encaminhar documentos referentes ao convênio com a instituição
de ensino, realizar termo de compromisso de estágio e disponibilizar comunicado de
abertura de vagas.
Aos estagiários são atribuídas funcionalidades como: realizar cadastro, ter
acesso às vagas de estágio ofertadas e o preenchimento dos relatórios mensais de
estágio.
3.1.3 Descrição do Ambiente Atual
O setor de estágio da FATEC de Lins, não é informatizado. Por conseguinte,
a realização de suas atividades ainda é feita por meio de formulários manuscritos e
quando o aluno consegue uma vaga para estagiar, é o mesmo que encaminha até
as empresas os documentos necessários como termo de compromisso de estágio e
realização de convênio e também é responsável por entregar todos os documentos
necessários para a celebração de tais contratos. Todos esses documentos
necessitam ser assinados tanto pelas partes responsáveis na instituição de ensino,
quanto pelas partes responsáveis nas empresas cedentes de estágio.
Como parte das atividades de estágio, o estagiário deve entregar relatórios de
atividades mensais que devem ser assinados por seus orientadores.
Ao responsável pelo setor de estágio cabe verificar se há documentos e
relatórios pendentes, vencimentos de contratos e possíveis renovações dos
mesmos. Haja vista, que todos esses documentos são armazenados em pastas
contidas em armários, e toda vez que se necessita fazer uma consulta para inteirarse das particularidades de cada estagiário ou das empresas cedentes de estágio
existe a necessidade de se procurar por esses dados em diversas pastas.
Assim, as atividades tornam-se exaustivas e corre-se o risco de possuir
informações ultrapassadas não condizentes com as mudanças ocorridas como, por
exemplo, o vencimento de convênios entre a FATEC e as empresas cedentes de
estágio.
47
3.2 VISÃO GERAL DO PRODUTO
3.2.1 Perspectiva do Produto
O produto em questão trata-se de um sistema independente, visto que não
recebe dados oriundos de outros sistemas ou softwares. O objetivo do
desenvolvimento
desse
sistema
é
buscar
maior
eficiência
por
meio
da
informatização do setor de estágio. Deste modo, buscar-se-á confiabilidade de
dados sobre estagiários e empresas fazendo com que se tenham informações atuais
sobre os mesmos.
3.2.2 Características
Quadro 3.1 – Necessidades e Prioridades
Necessidades
Gerenciamento de login dos usuários do sistema
Gerenciamento de estagiários
Gerenciamento da documentação para a formalização do estágio
Gerenciamento de relatórios (consultas)
Gerenciamento de vagas de estágio
Gerenciamento de carga de horária de estágio mensal
Realização de contrato de convênio
Empresa insere plano de estágio (atividades que serão
desenvolvidas pelo estagiário)
Estagiário preenche relatório de estágio
Prioridades
Alta
Alta
Alta
Alta
Alta
Alta
Alta
Alta
Alta
Fonte: Elaborado pela autora, 2012.
3.3 ANÁLISE E PROJETO DO SISTEMA
Nesta seção são explicitados os requisitos, o que irão cooperar para melhor
compreensão das funcionalidades e que irão compor o sistema para controle de
estágio.
3.3.1 Casos de Usos, Diagramas de Atividades, MVC e Diagramas de Sequência
Especificação Caso de Uso A – Casos de uso gerais aos atores: esses
casos de uso tratam de funcionalidades em comum a todos os atores envolvidos no
48
sistema.
Quadro 3.2 – Eventos e Casos de Uso A.
Identificação Caso de Uso
Descrição
Evento
Resposta
Gerenciar login Atores
A.1
solicitam Dados dos Página inicial
de usuários
realização
de usuários.
do
dos
login,
usuários
cadastramento,
alteração
e
recuperação
de
senha.
Fonte: Elaborado pela autora, 2012.
A.1 Gerenciar login de usuários: este caso de uso representa a
funcionalidade responsável pelo gerenciamento de login. Esta possibilita também o
cadastro de usuários, recuperação de senha e alteração de senha. As figuras 3.1,
3.2 e 3.3 representam respectivamente os diagramas de atividade, MVC e
sequência.
Figura 3.1– Diagrama de atividade gerenciar login de usuários.
Fonte: Elaborada pela autora, 2012.
49
Figura 3.2– Diagrama MVC gerenciar login de usuários.
Fonte: Elaborada pela autora, 2012.
Figura 3.3 – Diagrama de sequência gerenciar login de usuários.
Fonte: Elaborada pela autora, 2012.
Especificação Caso de Uso B – Ator Principal – Responsável pelo setor
de estágio: os casos de uso descritos abaixo se referem às funcionalidades
referentes ao responsável pelo setor de estágio da FATEC.
50
Quadro 3.3 – Eventos e Casos de Uso B.
Identificação Caso de Uso
B.1
Manter
Estagiário
B.2
Manter Empresa
B.3
Solicitar
consulta
estagiários
B.4
Solicitar
consulta
empresas
de
de
B.5
Assinalar
documentos
entregues
B.6
Confirmar nova
vaga de estágio
B.7
Consultar vagas
de estágio
B.8
Realizar termo
de compromisso
B.9
Realizar
convênio
Descrição
Responsável pelo
setor de estágio
realiza cadastro
do estagiário
Responsável pelo
setor de estágio
realiza
de
empresa
Responsável pelo
setor de estágio
solicita consulta
de estagiários
Responsável pelo
setor de estágio
solicita consulta
de empresas
Responsável pelo
setor de estágio
assinala
documentos
entregues
Responsável pelo
setor de estágio
confirma
recebimento de
solicitação
de
vaga de estágio
Responsável pelo
setor de estágio
realiza consulta a
solicitação
de
vagas de estágio
Responsável pelo
setor de estágio
realiza termo de
compromisso de
estágio
Responsável pelo
setor de estágio
realiza convênio
Evento
Resposta
Dados
do Cadastro,
Estagiário
mensagem
Dados
da Cadastro,
empresa
mensagem
Relatório de
estagiários
Relatório de
empresas
Assinalar
campos
Campo
assinalado
Confirmação,
mensagem
Relatório de
vagas
solicitadas
Dados termo PDF Termo
de
de
compromisso compromisso
Dados
convênio
PDF
Convênio
Fonte: Elaborado pela autora, 2012.
B.1 Manter Estagiário: este caso representa a funcionalidade que permite
realizar o cadastro dos estagiários. Os dados do estagiário são inseridos pelo
responsável pelo setor de estágio e então o sistema os envia ao banco de dados.
51
Abaixo se encontram as figuras 3.4, 3.5 e 3.6, que representam respectivamente os
diagramas de atividade, MVC e sequência desta funcionalidade.
Figura 3.4 – Diagrama de atividade manter estagiário.
Fonte: Elaborada pela autora, 2012.
Figura 3.5– Diagrama MVC manter estagiário.
Fonte: Elaborada pela autora, 2012.
52
Figura 3.6 – Diagrama de sequência manter estagiário.
Fonte: Elaborada pela autora, 2012.
B.2 Manter Empresa: este caso de uso possibilita realizar o cadastro de
empresas concedentes de estágio. Os digramas desta funcionalidade não serão
ilustrados, pois são semelhantes aos digramas representados no caso de uso B.1
Manter Estagiário.
B.3 Solicitar consulta de estagiários: este caso de uso representa a
funcionalidade que permite consultar os estagiários cadastrados. Deste modo, o
sistema permitirá consultas de estagiários por: documentos entregues, datas de
início e término de convênio, por empresa e por curso. As figuras 3.7, 3.8 e 3.9
representam respectivamente os diagramas de atividade, MVC e sequência desta
funcionalidade.
Figura 3.7 – Diagrama de atividade solicitar consulta de estagiário.
Fonte: Elaborada pela autora, 2012.
53
Figura 3.8 – Diagrama MVC solicitar consulta de estagiário.
Fonte: Elaborada pela autora, 2012.
Figura 3.9 – Diagrama sequência solicitar consulta de estagiário.
Fonte: Elaborada pela autora, 2012.
B.4 Solicitar consulta de empresas: este caso de uso representa a
funcionalidade que permite consultar as empresas cedentes de estágio. Os
diagramas foram suprimidos por apresentarem um fluxo semelhante aos do caso de
uso B.3 Solicitar consulta de estagiários.
54
B.5 Assinalar documentos entregues: este caso de uso representa a
funcionalidade, que possibilita que a relação de documentos entregues pelo
estagiário sejam assinaladas. Cada estagiário possui uma lista de documentos
necessários para a realização da atividade de estágio e muitas vezes esses
documentos não são entregues. Ao receber um novo documento, o responsável pelo
setor de estágio poderá assinalar o campo ao qual se refere o documento entregue.
As figuras 3.10, 3.11 e 3.12 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade. Para a criação dos diagramas foi
utilizado o exemplo em que os relatórios de estágio são assinalados. Os diagramas
dos demais documentos, que são assinalados como entregue, foram suprimidos por
serem similares aos aqui ilustrados.
Figura 3.10 – Diagrama de atividade assinalar documentos entregues.
Fonte: Elaborada pela autora, 2012.
55
Figura 3.11 – Diagrama de MVC assinalar documentos entregues.
Fonte: Elaborada pela autora, 2012.
Figura 3.12 – Diagrama de sequência assinalar documentos entregues.
Fonte: Elaborada pela autora, 2012.
B.6 Confirmar nova vaga de estágio: este caso de uso representa a
funcionalidade referente ao responsável pelo setor de estágio que o permite validar
uma nova vaga de estágio oferecida por uma empresa. As figuras 3.13, 3.14 e 3.15
representam respectivamente os diagramas de atividade, MVC e sequência desta
funcionalidade.
56
Figura 3.13 – Diagrama de atividade confirmar nova vaga de estágio.
Fonte: Elaborada pela autora, 2012.
Figura 3.14 – Diagrama MVC confirmar nova vaga de estágio.
Fonte: Elaborada pela autora, 2012.
Figura 3.15 – Diagrama sequência confirmar nova vaga de estágio.
Fonte: Elaborada pela autora, 2012.
57
B.7 Consultar vagas de estágio: este caso de uso representa a
funcionalidade de realizar consulta as vagas de estágio ofertadas pelas empresas.
Deste modo haverá um controle das vagas, que cada empresa disponibiliza aos
alunos da FATEC. Os diagramas desta funcionalidade foram suprimidos por
apresentarem um fluxo semelhante aos da funcionalidade B.3 Solicitar consulta de
estagiários.
B.8 Realizar termo de compromisso: este caso de uso representa a
funcionalidade que permite a realização do termo de compromisso de estágio. Após
a realização do termo de compromisso o mesmo é gerado em PDF. As figuras 3.16,
3.17 e 3.18 representam respectivamente os diagramas de atividade, MVC e
sequência desta funcionalidade.
Figura 3.16 – Diagrama de atividade realizar termo de compromisso.
Fonte: Elaborada pela autora, 2012.
58
Figura 3.17 – Diagrama de MVC realizar termo de compromisso.
Fonte: Elaborada pela autora, 2012.
Figura 3.18 – Diagrama de sequência realizar termo de compromisso.
Fonte: Elaborada pela autora, 2012.
59
B.9 Realizar convênio: este caso de uso possibilita solicitar ao sistema a
realização de convênio entre a instituição de ensino FATEC e a empresa cedente de
estágio. Ao solicitar a realização de convênio, o sistema irá gerar um arquivo digital
em PDF contendo o contrato de convênio. Os diagramas desta funcionalidade foram
suprimidos por apresentarem um fluxo semelhante aos do caso de uso B.8 Realizar
termo de compromisso.
Especificação Caso de Uso C – Ator Principal – Empresas cedentes de
estágio: esses casos de uso referem-se a funcionalidades disponibilizadas para as
empresas cedentes de estágio.
Quadro 3.4 – Eventos e Casos de Uso C.
Identificação Caso de Uso
C.1
Realizar
convênio
C.2
Realizar termo
de compromisso
C.3
Confirmar carga
horária
de
estágio
C.4
Solicitar consulta
de estagiários
C.5
Manter plano de
estágio
C.6
Solicitar abertura
vaga de estágio
Consultar vagas
de estágio
C.7
C.8
Declarar
preenchimento
Descrição
Empresa realiza
convênio
Empresa realiza
termo
de
compromisso de
estágio
Empresa
confirma carga
horária
de
estágio realizada
pelo
estagiário
mensalmente
Empresa solicita
consulta
de
estagiários
Empresa insere
plano de estágio
(atividades que
serão
desenvolvidas
pelo estagiário)
Empresa solicita
vaga de estágio
A
empresa
solicita
ao
sistema
a
consulta
de
vagas de estágio
ofertadas
A
empresa
declara
Evento
Dados
convênio
Dados termo
de
compromisso
Resposta
PDF
Convênio
PDF Termo
de
compromisso
Confirmação,
mensagem
Relatório de
estagiários
Dados plano Confirmação,
de estágio
mensagem
Dados vaga Confirmação,
de estágio
mensagem
Relatório de
vagas
ofertadas
Confirmação,
mensagem
60
de vaga
preenchimento
de
vaga
solicitada
Fonte: Elaborado pela autora, 2012.
C.1 Realizar convênio: este caso de uso possibilita solicitar ao sistema a
realização de convênio com a instituição de ensino FATEC. Ao solicitar a realização
de convênio, o sistema irá gerar um arquivo digital em PDF contendo o contrato de
convênio. Os diagramas desta funcionalidade foram suprimidos por apresentarem
um fluxo semelhante aos da funcionalidade B.8 Realizar termo de compromisso.
C.2 Realizar termo de compromisso: este caso de uso representa a
funcionalidade que permite realizar o termo de compromisso de estágio. Após a
realização do termo de compromisso o mesmo é gerado em PDF. Os diagramas
desta funcionalidade foram suprimidos por apresentarem o mesmo fluxo da
funcionalidade “realizar termo de compromisso”, ilustrada no caso de uso B.8
Realizar termo de compromisso.
C.3 Confirmar carga horária de estágio: este caso de uso trata a
funcionalidade que permite confirmar ou modificar a carga horária de estágio
realizada pelo aluno mensalmente. As figuras 3.19, 3.20 e 3.21 representam
respectivamente os diagramas de atividade, MVC e sequência desta funcionalidade.
Figura 3.19 – Diagrama de atividade confirmar carga horária de estágio.
Fonte: Elaborada pela autora, 2012.
61
Figura 3.20 – Diagrama de MVC confirmar carga horária de estágio.
Fonte: Elaborada pela autora, 2012.
Figura 3.21 – Diagrama de sequência confirmar carga horária de estágio.
Fonte: Elaborada pela autora, 2012.
C.4 Solicitar consulta de estagiários: este caso de uso representa a
funcionalidade que permite a empresa consultar os dados de seus estagiários. Os
diagramas desta funcionalidade não serão apresentados por serem os mesmos
apresentados no caso de uso B.3 Solicitar consulta de estagiários.
C.5 Inserir plano de estágio: cada estagiário necessita de um plano de
estágio, este caso de uso representa a funcionalidade que permite preencher os
62
campos referentes ao plano de estágio do aluno. Os diagramas desta funcionalidade
são semelhantes aos representados no caso de uso D.2 Preencher relatório, por
isso não estão aqui ilustrados.
C.6 Manter vaga de estágio: este caso de uso consiste na funcionalidade
que possibilita solicitar abertura de vaga de estágio. Ao realizar a oferta de vaga, a
mesma é disponibilizada ao responsável pelo setor de estágio. As figuras 3.22, 3.23
e 3.24 representam respectivamente os diagramas de atividade, MVC e sequência
desta funcionalidade.
Figura 3.22 – Diagrama de atividade manter vaga de estágio.
Fonte: Elaborada pela autora, 2012.
63
Figura 3.23 – Diagrama MVC manter vaga de estágio.
Fonte: Elaborada pela autora, 2012.
Figura 3.24 – Diagrama sequência manter vaga de estágio.
Fonte: Elaborada pela autora, 2012.
C.7 Consultar vagas de estágio: depois de solicitada vagas de abertura de
estágio, a empresa cedente de estágio poderá visualizar a relação de vagas que
ofertou. Este caso de uso representa a funcionalidade que permite a visualização
das vagas acima citadas. Os diagramas desta funcionalidade foram suprimidos por
apresentarem um fluxo semelhante aos ilustrados no caso de uso B.3 Solicitar
consulta de estagiários.
64
C.8 Declarar preenchimento de vaga: depois de realizada a seleção do
candidato à vaga de estágio ofertada pela empresa, a mesma poderá declarar que a
vaga foi preenchida. Este caso de uso trata a funcionalidade descrita acima. Os
diagramas desta funcionalidade não serão apresentados por serem semelhantes
aos digramas da funcionalidade B.6 - confirmar nova vaga de estágio.
Especificação Caso de Uso D – Ator Principal – Estagiário: as
especificações aqui contidas, dizem respeito aos casos de uso que representam as
funcionalidades disponibilizadas aos estagiários.
Quadro 3.5 – Eventos e Casos de Uso D.
Identificação Caso de Uso
Descrição
Evento
D.1
Consultar vagas Estagiário
de estágio
consulta relatório
de
vagas
ofertadas
D.2
Preencher
Estagiário
Dados
relatório
preenche relatório relatório
de estágio
Resposta
Relatório de
vagas
ofertadas
Confirmação,
mensagem
Fonte: Elaborado pela autora, 2012.
D.1 Consultar vagas de estágio: este caso de uso diz respeito a
funcionalidade que permite visualizar novas vagas de estágio ofertadas. Depois de
validadas pelo responsável do setor de estágio, as novas vagas são disponibilizadas
para que os alunos interessados possam acessá-las. Os diagramas desta
funcionalidade foram suprimidos por apresentarem um fluxo semelhante aos
ilustrados no caso de uso B.3 Solicitar consulta de estagiários.
D.2 Preencher relatório: todo estagiário deve preencher relatórios mensais
contendo as atividades de estágio que realizou. Este caso de uso representa a
funcionalidade que possibilita preencher esses relatórios. As figuras 3.25, 3.26, 3.27,
3.28, 3.29 e 3.30 representam respectivamente os diagramas de atividade, MVC e
sequência desta funcionalidade. Esta funcionalidade possui dois controles, pois um
relatório pode ter várias atividades relacionadas a ele.
65
Figura 3.25 – Diagrama de atividade preencher relatório a.
Fonte: Elaborada pela autora, 2012.
Figura 3.26 – Diagrama MVC preencher relatório a.
Fonte: Elaborada pela autora, 2012.
66
Figura 3.27 – Diagrama sequência preencher relatório a.
Fonte: Elaborada pela autora, 2012.
Figura 3.28 – Diagrama de atividade preencher relatório b.
Fonte: Elaborada pelo autor, 2012.
67
Figura 3.29 – Diagrama MVC preencher relatório b.
Fonte: Elaborada pela autora, 2012.
Figura 3.30 – Diagrama sequência preencher relatório b.
Fonte: Elaborada pela autora, 2012.
68
A figura 3.28 abaixo ilustra o diagrama de caso de uso do sistema.
Figura 3.31– Diagrama de caso de uso completo.
Fonte: Elaborada pela autora, 2012.
69
3.4 DIAGRAMA DE CLASSES
Figura 3.32 – Diagrama de classes.
Fonte: Elaborada pela autora, 2012.
70
3.5 PROJETO DE BANCO DE DADOS
Figura 3.33 – Modelo de entidade e relacionamento.
Fonte: Elaborada pela autora, 2012.
71
3.6 CONSIDERAÇÕES SOBRE O CAPÍTULO
Neste capítulo foi realizada a análise de requisitos do sistema por meio de
levantamento de requisitos, diagramas de atividade, MVC, sequência e caso de uso.
Esses passos de análise possibilitam que possa haver uma visualização geral do
sistema.
No próximo capítulo serão abordados assuntos que fazem referência ao
desenvolvimento do sistema web.
72
4 IMPLEMENTAÇÃO
Para a implementação desse projeto foram utilizadas as tecnologias já
explanadas no capítulo dois. Este presente capítulo tem por finalidade, introduzir a
maneira como essas tecnologias foram utilizadas para o desenvolvimento da
aplicação web de controle das atividades desenvolvidas no setor de estágio da
FATEC de Lins. Deste modo, aqui serão mostradas as principais telas das
funcionalidades desenvolvidas no sistema.
4.1 BANCO DE DADOS
Após a finalização do projeto e análise do sistema, o banco de dados foi
implementado. O banco utilizado, como já descrito no segundo capítulo, foi o MySQL
5.5. Para facilitar a criação de tabelas e funções foi utilizada a sua interface gráfica
conhecida como MySQL Workbench. Este mesmo programa, também foi utilizado
para construir o modelo entidade relacionamento das tabelas. Sua interface para
criação de tabelas pode ser observada na figura 4.1.
Figura 4.1 – MySQL Workbench e estrutura da tabela usuário.
Fonte: Elaborada pela autora.
73
4.2 IMPLEMENTAÇÃO DO SISTEMA WEB
O sistema foi desenvolvido utilizando-se o padrão de projeto Model View
Controller (MVC) utilizando frameworks como JSF, PrimeFaces e Hibernate.
As páginas de interface com o usuário foram desenvolvidas utilizando o
framework JSF juntamente com o PrimeFaces. Na página web do PrimeFaces podese encontrar uma boa documentação do framework onde é possível observar
diversos modelos de componentes para construção de páginas de interface. Esses
componentes facilitam o processo de desenvolvimento da aplicação. Para ilustrar
um exemplo da facilidade obtida pelo uso desses componentes, a figura 4.2 ilustra a
criação de uma tabela dinâmica que foi utilizada muitas vezes no decorrer do
desenvolvimento do sistema.
Figura 4.2 – Implementação do componente DataTable de cursos.
Fonte: Elaborada pela autora, 2013.
74
Ao iniciar pela primeira vez o sistema é necessário cadastrar a instituição de
ensino e um responsável pelo setor de estágio. Esses dados são necessários para
que se possa acessar o sistema, quando não há nenhuma informação na base de
dados.
Na página index.xhtml da aplicação é disponibilizado aos usuários: uma área
de login, que também possibilita a recuperação de senha; uma área de cadastro
para empresa e uma área de cadastro para estagiários. A tela inicial do sistema é
mostrada na figura 4.3.
Figura 4.3– Página inicial do sistema.
Fonte: Elaborada pela autora, 2013.
Para a criação das funcionalidades citadas acima, foram desenvolvidas
funções no banco de dados.
Para a realização de login é utilizada a função
“func_doLogin”. Essa função recebe como parâmetro o e-mail e a senha, que foram
digitados pelo usuário e retorna dados do usuário se os dados passados no login
estiverem corretos ou zero se os dados passados forem incorretos. Essa função é
importante, pois o sistema possui três áreas diferentes de acordo com o tipo de
usuário e através do valor de retorno desta função o usuário é direcionado a área a
qual pertence. As figuras 4.4 e 4.5 representam respectivamente o controle
responsável pelo gerenciamento de login e a função implementada no banco. Para a
75
autenticação de login são usados conceitos conhecidos como filtros. Esses são
utilizados para que arquivos, ou seja, certas páginas não possam ser acessadas por
quem não tenha permissão.
Figura 4.4 – Controle de Login.
Fonte: Elaborada pela autora, 2013.
Figura 4.5 – Função func_doLogin.
Fonte: Elaborada pela autora, 2013.
76
Ainda em relação ao gerenciamento de login, existe um método, que é
utilizado no processo de envio da senha para o e-mail do usuário. Em caso de
esquecimento de senha, basta apenas que o usuário digite seu e-mail e acione o
botão “Recuperar Senha”. O método responsável por esta ação chama-se
“doGetPassword” e é apresentada na figura 4.6. Ele recebe como parâmetro um email digitado e o passa para o método “isValidUser” da classe “LoginDAO”. Este se
encarrega de retornar a senha para o e-mail digitado. Se os dados requisitados
forem encontrados, então é chamado o método “sendEmail” da classe “Email”, que é
encarregado de realizar o envio da senha para o e-mail do usuário que a requisitou.
Figura 4.6 – método doGetPassword.
Fonte: Elaborada pela autora, 2013.
Em relação a funções inseridas no banco de dados, existe uma função que
está envolvida no processo de busca automática de cidade, logradouro e bairro
através de um determinado CEP. Ela foi utilizada para realização de cadastros de
usuários. Primeiro essa função executa uma instrução do tipo Select em uma tabela
do banco de dados chamada “cep_log_index” e compara os cinco primeiros
números do CEP passado pelo usuário com os registros desta tabela, para que
possa encontrar em que estado o CEP está inserido. É realizada também, uma
consulta na tabela “cep_unico”, pois para cidades que apresentam apenas um CEP
existe uma tabela separada. Se a busca na tabela CEP único for diferente de vazio é
retornado ao sistema apenas o nome da cidade a que o CEP se refere. Caso a
busca pela tabela de CEP único retornar vazia, ocorre o processo de busca do CEP
na tabela do estado em que o mesmo está inserido. Neste caso é retornado ao
sistema o logradouro, a cidade, o estado e o bairro referente ao CEP inserido. Os
passos acima descritos podem ser observados na figura 4.7.
77
Figura 4.7 – Função func_busca_Cep.
Fonte: Elaborada pela autora, 2013.
A aplicação web possui áreas especificas de acordo com os usuários que irão
acessá-las. Estas áreas são dividas em: área do responsável de estágio, área da
empresa e a área do estagiário. Cada uma dessas áreas apresenta funcionalidades
diferentes em função das necessidades de seus usuários. A figura 4.8, 4.9 e 4.10
ilustram respectivamente as funcionalidades do responsável pelo setor de estágio,
estagiário e empresa cedente de estágio. Na área do responsável pelo setor de
estágio, por exemplo, é possível observar diversas funcionalidades divididas por
assuntos pertinentes a estagiários, empresas entre outras. Ao clicar em cada aba do
menu localizado a esquerda da página serão mostradas as funcionalidades
disponíveis a seus respectivos assuntos. Para exemplificar, ao clicar na aba de
estagiário, serão encontradas funcionalidade que permitem ao responsável pelo
setor de estágio: consultar, cadastras, alterar e excluir estagiários.
78
Figura 4.8 – Área do responsável de estágio.
Fonte: Elaborada pela autora, 2013.
Figura 4.9 – Área do estagiário.
Fonte: Elaborada pela autora, 2013.
79
Figura 4.10 – Área da empresa.
Fonte: Elaborada pela autora, 2013.
O responsável pelo setor de estágio tem acesso aos dados de estagiários e
empresas concedentes de estágio, como por exemplo, contratos. Deste modo, este
usuário do sistema pode acompanhar as datas de início e término de contrato de
estágio, de convênios com empresas, entre outros. Essa funcionalidade é
apresentada na figura 4.11.
80
Figura 4.11 – Consulta de convênio.
Fonte: Elaborada pela autora, 2013.
Ao criarem um login no sistema, os estagiários podem ter acesso a vagas de
estágios ofertadas e também desenvolverem seus relatórios. Esses relatórios de
estágio podem ser gerados em PDF para impressão e entrega ao responsável pelo
setor de estágio, como requisito obrigatório das tarefas, que compõe a atividade de
estágio.
Para confecção deste relatório o estagiário primeiro cria um relatório contendo
informações como mês, horas cumpridas entre outras. Após criar o relatório, ele
pode inserir no mesmo várias atividades, que consistem nas tarefas realizadas
diariamente. E por fim, ao terminar de inserir todas as atividades o estagiário aciona
a opção concluir relatório inserindo deste modo as informações pertinentes para a
conclusão do relatório mensal. A funcionalidade aqui descrita está ilustrada nas
figuras 4.12, 4.13, 4.14 e 4.15.
Figura 4.12 – Criação de novo relatório.
Fonte: Elaborada pela autora, 2013.
81
Figura 4.13 – Criação de novo relatório diário.
Fonte: Elaborada pela autora, 2013.
Figura 4.14 – Cadastro de novo relatório diário.
Fonte: Elaborada pela autora, 2013.
Figura 4.15 – Conclusão de relatório diário.
Fonte: Elaborada pela autora, 2013.
82
Para a geração de documentos de convênio, termo de compromisso bem
como os planos e relatórios de estágio foi utilizado o plugin do IReports no
Netbeans. Esse plugin oferece uma interface gráfica para a criação de relatórios, o
que facilita o seu desenvolvimento. A figura 4.17 ilustra a estrutura de um
documento criado no IReports.
Os dados que serão inseridos na estrutura do
relatório estão especificados em uma instrução SQL que o IReport realiza ao banco
de dados. Essa SQL recebe como parâmetro o código que identifica o documento o
qual o usuário deseja gerar. O que possibilita que os relatórios sejam gerados a
partir de parâmetros passados pelos usuários via web, é a configuração de uma
conexão com o banco de dados e um Bean gerenciado. Este último recebe os dados
envidados por uma página JSF e os envia para a classe “RelatorioUtil” , esta por sua
vez, os envia para o relatório que foi escolhido. A figura 4.16 exibe a tela em que
um convênio entre a instituição FATEC de Lins e uma empresa foi gerado como
exemplo.
O responsável pelo setor de estágio possui uma funcionalidade, que o
possibilita modificar dinamicamente o conteúdo do contrato de estágio e também
termo de compromisso de estágio. Para isso é utilizado o componente editor do
PrimeFaces. O modelo de editor de texto utilizado no presente trabalho pode ser
observado na figura 4.18.
Figura 4.16 – Conclusão de relatório diário.
Fonte: Elaborada pela autora, 2013.
83
Figura 4.17 – Conclusão de relatório diário.
Fonte: Elaborada pela autora, 2013
84
Figura 4.18 – Editor de texto.
Fonte: Elaborada pela autora, 2013.
As figuras 4.19 e 4.20 abaixo ilustram um documento em PDF, gerado pelo
sistema, que representa o exemplo de um plano de estágio.
Figura 4.19 – Página 1 do Plano de Estágio.
Fonte: Elaborada pela autora, 2013.
85
Figura 4.20 – Página 2 do Plano de Estágio.
Fonte: Elaborada pela autora, 2013.
Pode-se ressaltar que os exemplos de documento de Plano de Estágio
ilustrado nas figuras anteriores, representam apenas um exemplo do relatório citado.
4.3 CONSIDERAÇÕES SOBRE O CAPÍTULO
Este capítulo tratou apenas de algumas funcionalidades do sistema. Insta
salientar, que todos os requisitos propostos no capítulo três foram desenvolvidos.
Existem outras funcionalidades como: alteração de senha, busca por dados de
estagiário e empresa, entre outros que não foram aqui ilustrados.
86
CONCLUSÃO
Nesse trabalho foi apresentado o desenvolvimento de um sistema web para o
setor de estágio da FATEC de Lins objetivando a informatização das atividades
cotidianas desse setor. O sistema contou com três áreas distintas, separando as
funcionalidades por usuários de acordo com as rotinas de cada um.
As tecnologias utilizadas mostraram-se eficazes para efetivação dos objetivos
propostos. Java Server Faces aliado a PrimeFaces contribuiu para a criação de
páginas dinâmicas de modo simples e atendeu as necessidades geradas pelo
sistema, ao disponibilizar componentes úteis e de fácil utilização para criação de
consultas, inserção, exclusão e alterações de dados.
Ao fazer uso de uma linguagem orientada a objetos e um banco de dados
relacional, tornou-se necessário uma ferramenta que realizasse o mapeamento
objeto-relacional. O ORM Hibernate juntamente com JPA mostrou sua importância
para conectar essas duas tecnologias. Por meio deles foram geradas classes que
representam entidades do banco de dados relacional MySQL utilizado neste
trabalho. Entretanto, houveram algumas regras de relacionamentos entre tabelas,
que ao serem representadas por classes de entidades, tiveram que ser modificadas
em relação ao modelo criado automaticamente. O modelo MVC, também permitiu
que o sistema fosse desenvolvido de modo claro ao separar as interfaces, controles
e modelos.
Conclui-se também que, o plug-in iReport foi de grande contribuição para a
geração dinâmica de documentos por meio do sistema. Não obstante, esse plug-in
não possui suporte para que ao introduzir um campo dinâmico em meio a campos
estáticos, esses se reorganizem em função do campo dinâmico introduzido. Para
sanar essa dificuldade, foi criada uma funcionalidade que permite armazenar o
conteúdo de texto estático na base de dados e deste modo os textos dos
documentos podem ser alterados caso haja necessidade.
Por derradeiro, acredita-se que após a implantação do sistema no setor de
estágio da FATEC de Lins, o mesmo atuará como um facilitador no processo das
atividades diárias, contribuindo na agilização da realização de cadastros, consultas e
geração de relatórios.
Apesar de outras dificuldades comumente encontradas no desenvolvimento
87
de um projeto desse porte, os requisitos levantados no capítulo de análise foram
cumpridos e como trabalhos futuros pode-se citar a implantação do sistema dentro
do servidor da instituição FATEC de Lins e a coleta de informações sobre a utilidade
das funcionalidades desenvolvidas.
88
REFERÊNCIAS BIBLIOGRÁFICAS
ABRES.
Mapa
do
estágio
no
Brasil.
Disponível
<http://www.abres.org.br/v01/stats/> Acesso em: 12 out. 2012b.
em:
______.
Abres
realiza
pesquisa
sobre
estágio.
Disponível
<http://www.abres.org.br/v01/pesquisaabres/> Acesso em: 12 out. 2012a.
em:
______. Dúvidas frequentes. Disponível em: <http://www.abres.org.br/v01/faqs/>
Acesso em: 21 out. 2012c.
ANDRADE, Wagner. Afinal, o que é HTTP?. 2009. Disponível em: <
http://imasters.com.br/artigo/11513/redes-e-servidores/afinal-o-que-e-http/> Acesso
em: 21 fev. 2013.
ARAÚJO, E. C.; GUIZZO, G. JPA/Hibernate ou NoSQL, qual utilizar – Revista
Java Magazine 103. 2012. Disponível em: < http://www.devmedia.com.br/jpahibernate-ou-nosql-qual-utilizar-revista-java-magazine-103/24386> Acesso em: 13
fev. 2013.
BRASIL. Decreto-Lei nº 11.788, de 25 de setembro de 2008. Nova Cartilha
Esclarecedora sobre a lei do estágio, Brasília, DF.
CALEUM. Apostila Java para Desenvolvimento Web. Capítulo 3 O que é Java
EE?. Disponível em: < http://www.caelum.com.br/apostila-java-web/o-que-e-javaee/> Acesso em: 14 fev. 2013.
CARVALHO, Marcio S. Persistindo Objetos com Java, Hibernate e PostgreSQL,
2007. Disponível em: <http://www.devmedia.com.br/persistindo-objetos-com-javahibernate-e-postgresql/4149> Acesso em: 13 fev. 2013.
CIEE. CIEE esclarece dúvidas sobre a nova lei do estágio. Disponível em:
<http://www.ciee.org.br/portal/nova_lei_estagio.asp> Acesso em: 10 out. 2012a.
______.
Página
inicial
do
portal
institucional.
Disponível
em:
<http://www.ciee.org.br/portal/institucional/index.asp> Acesso em: 27 out. 2012b.
______.
Pré-cadastro
exclusivo
para
empresas.
Disponível
<http://www.empresas.ciee.org.br/portal/empresas/precad.asp> Acesso em: 27
2012c.
______.
Portal
dos
estudantes.
Disponível
em:
http://www.empresas.ciee.org.br/portal/estudantes/index.asp> Acesso em: 27
2012d.
______.
Portal
das
escolas.
Disponível
em:
http://www.empresas.ciee.org.br/portal/escolas/index.asp> Acesso em: 27
2012e.
ÇIVICI, Çagatay. PrimeFaces User´s Guide 3.5. Disponível
http://primefaces.org/documentation.html> Acesso em: 13 fev. 2013.
em:
em:
out.
<
out.
<
out.
<
89
CYBERSPHERA. Processo de criação de um programa. Disponível em: <
http://www.cybersphera.com.br/java/processo-de-criacao-de-um-programa/> Acesso
em: 20 mar. 2013.
DEVMEDIA. MER e DER. 2009. Disponível em: < http://www.devmedia.com.br/mere-der/14332> Acesso em: 21 fev. 2013.
GAMA, Alexandre. Servlets simples e prático, Parte 1. 2010. Disponível em: <
http://www.devmedia.com.br/servlets-simples-e-pratico-parte-i/18637> Acesso em:
14 fev. 2013.
GAUDIO,
Anderson
C.
Applets
em
Java.
Disponível
em:
http://profanderson.net/files/appletsemjava.php> Acesso em: 18 fev. 2013.
<
GEARY, D.; HORSTMANN C. Core JavaServer Faces. Tradução Lúcia Helena. 3.
ed. Rio de Janeiro: Alta Books, 2012. p. 12-31.
GONÇALVES, Edison. Desenvolvendo Aplicações Web com JSP Servlets,
JavaServer Faces, Hibernate, EJB3 Persistence e Ajax. 1. ed. Rio de Janeiro:
Editora Ciência Moderna Ltda, 2007.
______. Dominando JavaServer Faces e Facelets Utilizando Spring 2.5,
Hibernate e JPA. 1. ed. Rio de Janeiro: Editora Ciência Moderna Ltda, 2008a.
______. Dominando Relatórios JaperReport com iReport. 1. ed. Rio de Janeiro:
Editora Ciência Moderna Ltda, 2008b.
HTML.NET. O que são tags HTML. Disponível em:
br.html.net/tutorials/html/lesson3.php> Acesso em: 20 fev. 2013.
<
http://pt-
INTELLECTUALE.
O
que
é
SQL?.
2013.
Disponível
em:
http://cursosdeprogramacao.com.br/blog/o-que-e-sql/> Acesso em: 21 fev. 2013.
<
JBOSS. Hibernate – Relational Persistence for Idiomatic Java. Disponível em: <
http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/> Acesso em: 12
fev. 2013.
KNEIPP, R. E.; ALBUQUERQUE, R. C. Transações no Oracle – Commit, Rollback
e Savepoint. 2005. Disponível em: < http://www.devmedia.com.br/transacoes-nooracle-commit-rollback-e-savepoint/349> Acesso em: 18 fev. 2013.
LAUDON K. C.; LAUDON J. P. Sistemas de informação gerenciais. Tradução
Thelma Guimarães.7. ed. São Paulo: Pearson Prentice Hall, 2007.
LUCKOW, D. H.; MELO, A. A. Programação Java para a Web. 3. ed. São Paulo:
Novatec Editora Ltda, 2012.
LOZANO, Fernando. Artigo Java Magazine 41 – JDBC de Ponta a Ponta: Parte 1.
2008. Disponível em: < http://www.devmedia.com.br/artigo-java-magazine-41-jdbcde-ponta-a-ponta-parte-1/10187> Acesso em: 12 fev. 2013.
90
MACÊDO,
Diego.
O
modelo
ACID.
Disponível
em:
http://www.diegomacedo.com.br/o-modelo-acid/> Acesso em: 18 fev. 2013.
<
MENDES, Douglas R. Programação em Java com ênfase em Orientação a
Objetos. São Paulo: Novatec, 2009. p. 16 – 24.
MICROSOFT.
Hiperlinks
I:
Noções
Básicas.
Disponível
em:
http://office.microsoft.com/pt-br/frontpage-help/hiperlinks-i-nocoes-basicasRZ006086600.aspx?section=5> Acesso em: 20 fev. 2013.
<
MINETTO, Elton L. Frameworks para Desenvolvimento em PHP. Disponível em: <
http://www.novateceditora.com.br/livros/frameworks/capitulo9788575221242.pdf>
Acesso em: 18 fev. 2013.
MySQL. MySQL 5.5 Reference Manual 1.3.2. The Main Features of MySQL.
Disponível em: < http://dev.mysql.com/doc/refman/5.5/en/features.html> Acesso em:
15 fev. 2013a.
______. MySQL 5.5 Reference Manual 2.1.1. Operating Systems Suppoted by
MySQL
Community
Server.
Disponível
em:
<
http://dev.mysql.com/doc/refman/5.5/en/supported-os.html> Acesso em: 15 fev.
2013b.
______. MySQL 5.5 Reference Manual 14.3. The InnoDB Storage Engine.
Disponível
em:
<
http://dev.mysql.com/doc/refman/5.5/en/innodb-storageengine.html> Acesso em: 15 fev. 2013c.
______. MySQL 5.5 Reference Manual Chapter 1. General Information.
Disponível em: < http://dev.mysql.com/doc/refman/5.5/en/introduction.html> Acesso
em: 15 fev. 2013d.
______. MySQL 5.5 Reference Manual Chapter 11. Data Types. Disponível em: <
http://dev.mysql.com/doc/refman/5.5/en/data-types.html> Acesso em: 15 fev. 2013e.
______. MySQL 5.5 Reference Manual Chapter 14. Storage Engines. Disponível
em: < http://dev.mysql.com/doc/refman/5.5/en/storage-engines.html> Acesso em: 15
fev. 2013f.
______. MySQL 5.5 Reference Manual Chapter 22. Connectors and APIs.
Disponível em: < http://dev.mysql.com/doc/refman/5.5/en/connectors-apis.html>
Acesso em: 15 fev. 2013g.
______. MySQL 5.5 Reference Manual Chapter 25. MySQL Workbench.
Disponível em: < http://dev.mysql.com/doc/refman/5.5/en/workbench.html> Acesso
em: 15 fev. 2013h.
91
NETBEANS. Introdução às aplicações Java EE6. Disponível em: <
http://netbeans.org/kb/docs/javaee/javaee-gettingstarted_pt_BR.html> Acesso em:
20 fev. 2013.
NUNES, Paulo. Conceito de Tabela Hash. 2008. Disponível em:
http://www.knoow.net/ciencinformtelec/informatica/tabeladehash.htm#vermais>
Acesso em: 9 fev. 2013.
<
OLIVEIRA, Renato. G. Desenvolvimento baseado em componentes – Revista
Java
Magazine
110.
2012.
Disponível
em:
<
http://www.devmedia.com.br/desenvolvimento-baseado-em-componentes-revistajava-magazine-110/26550> Acesso em: 18 fev. 2013.
ORACLE. About Java for Mobile Devices. Disponível em: <
http://www.oracle.com/technetwork/java/javame/javamobile/overview/about/index.htm
l> Acesso em: 17 mar. 2013a.
______. Java Platform, Enterprise Edition (Java EE). Disponível em: <
http://www.oracle.com/br/technologies/java/overview/index.html#readmore>
em: 17 mar. 2013b.
Acesso
______.
Java
SE
at
a
Glance.
Disponível
em:
<
http://www.oracle.com/technetwork/java/javase/overview/index.html> Acesso em: 17
mar. 2013c.
______. Readme Java Platform, Standard Edition 7 Development Kit. Disponível
em: < http://www.oracle.com/technetwork/java/javase/jdk-7-readme-429198.html >
Acesso em: 8 fev. 2013d.
PRIMEFACES.
DataTable
–
Filtering.
Disponível
em:
<
http://www.primefaces.org/showcase/ui/datatableFiltering.jsf> Acesso em: 11 fev.
2013.
RAINER, R. K.; CEGIELSKI, C. G. Introdução a sistemas de informação.
Tradução Daniel Vieira. 3. ed. Rio de Janeiro: Elsevier, 2011.
RICARTE,
Ivan
L.
M.
Containers.
2002.
Disponível
em:
<
http://www.dca.fee.unicamp.br/cursos/PooJava/graphic/containers.html> Acesso em:
18 fev. 2013.
ROOS, Dave. Como aproveitar melhor uma API para conferência online.
Disponível em: < http://informatica.hsw.uol.com.br/conferencia-api1.htm> Acesso
em: 20 fev. 2013.
SAAB, Felipe N. Hibernate Annotations – Artigo Java Magazine 90. 2011.
Disponível em: <http://www.devmedia.com.br/hibernate-annotations-artigo-javamagazine-90/20433> Acesso em: 12 fev. 2013.
SAMPAIO, Cleuton. Java Enterprise Edition 6: devenvolvendo aplicações
corporativas. 1. ed. Rio de Janeiro: Brasport, 2011. p. 15-22.
92
SILVA, F. A.; SILVA, F. B. Máquinas Virtuais Java e .NET. Disponível em:
<http://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s2008/Trabalho/g25_texto.pdf>
Acesso em: 8 fev. 2013.
SILVA, Izalmo P. Artigo Java Magazine 66 – Desenvolvendo Java para web.
2009. Disponível em: < http://www.devmedia.com.br/artigo-java-magazine-66desenvolvendo-java-para-web/12289> Acesso em: 14 fev. 2013.
SOBRAL, Diogo. Componentização em Java: da concepção à publicação. 2011.
Disponível em: <http://www.gonow.com.br/blog/2011/05/18/componentizacao-emjava-da-concepcao-a-publicacao/> Acesso em: 18 fev. 2013.
93
A APÊNDICE A – Instalação do plugin iReport no Netbeans
Esse apêndice trata-se de um tutorial de instalação do plugin da ferramenta
iReport utilizado para geração de relatórios no sistema de controle de estágio.
A.1 PASSOS DE INSTALAÇÃO
Primeiramente é necessário baixar o plugin do iReport, isso pode ser
realizado através do site do Netbeans “netbeans.org”, na guia Plugins. Após baixar é
preciso descompactar o arquivo. Então, com o Netbeans aberto deve-se acionar a
janela ferramentas e selecionar a opção “Plug-ins”. A janela referente às opções de
plug-ins é mostrada na figura A.1
Figura A.1 – Adicionar plug-ins no Netbeans.
Fonte: Elaborada pela autora, 2013.
A opção “Adicionar plug-ins” deve ser acionada e os arquivos que foram
baixados devem ser selecionados como mostra a figura A.2. Deve-se clicar na
opção instalar, desse modo os plug-ins serão instalados no Netbeans. Ao terminar a
instalação irá aparecer na barra de ferramentas do Netbeans um ícone referente ao
iReport. Esse ícone é ilustrado na figura A.3.
94
Figura A.2 – Adicionar plug-ins do Ireport no Netbeans.
Fonte: Elaborada pela autora, 2013.
Figura A.3 – Ícone da ferramenta Ireport no Netbeans.
Fonte: Elaborada pela autora, 2013.
Figura A.4 – Janela para criar conexão com o banco.
Fonte: Elaborada pela autora, 2013.
Agora basta somente configurar a conexão com o banco de dados. Para isso,
95
é necessário acionar o novo ícone do iReport criado na barra de ferramentas do
Netbeans (figura A.3). Ao acionar o ícone irá aparecer a janela ilustrada na figura
A.4, nesta janela deve-se escolher a opção new. Após, deve aparecer outra janela
para que se possa escolher o tipo de conexão. É necessário escolher a opção
Database JDBC Connection, como mostra a figura A.5.
Figura A.5 – Tipo de conexão com o banco.
Fonte: Elaborada pela autora, 2013.
Após escolher o tipo de conexão, o botão next é habilitado e deve-se
configurar a conexão com o banco. Segundo Luckow e Melo (2012), essa conexão
serve para realização de testes dos documentos desenvolvidos no iReport, pois
quando o documento criado for executado dentro da aplicação, a conexão utilizada é
a que foi configurada para o projeto. Ainda de acordo com os mesmos autores,
abaixo são explicados os valores que os campos de configuração de conexão
recebem:

Name irá receber o nome que deseja-se colocar na conexão;

O campo JDBC Driver será selecionado o driver utilizado para a conexão;

O campo JDBC URL recebe o endereço do banco de dados e o nome do
banco de dados que será utilizado;

Username é o campo em que é inserido o login para o banco;

Password recebe a senha do usuário.
96
A janela em que se configura os campos explicados acima são mostrados na
figura A.6.
A ferramenta iReport permite que após as configurações acima explanadas,
seja realizado um teste para verificação da conexão. Ao selecionar o botão Test na
janela de configuração de conexão, a ferramenta irá solicitar a senha do banco e
tentará conectar-se a ele. Caso a configuração esteja correta, será exibida uma
mensagem de conexão realizada com sucesso.
Figura A.6 – Configuração de conexão com o banco.
Fonte: Elaborada pela autora, 2013.
A.2 EXEMPLO DE CRIAÇÃO DE UM RELATÓRIO
Na aba janela do Netbeans existe a opção Welcome to Jaspersoft IReport
Designer como mostra a figura A.7. Essa opção possibilita que possa haver escolha
do tema que se deseja incluir no relatório. Ao clicar nessa opção irá aparecer a
interface, ilustrada na figura A.8, onde deve-se selecionar a opção Step 2.
97
Figura A.7 – Welcome to Jaspersoft.
Fonte: Elaborada pela autora, 2013.
Figura A.8 – Welcome to Window.
Fonte: Elaborada pela autora, 2013.
Em seguida irá aparecer a janela com temas pré-moldados. Então basta
selecionar o tema desejado.
98
Figura A.9 – Janela para escolha do tema.
Fonte: Elaborada pela autora, 2013.
Após escolhido o tema deve-se clicar na opção Open this Template e
aparece uma janela onde deverá ser escolhido o nome para o relatório. Essa janela
é ilustrada na figura A.9.
Figura A.10 – Criação relatório.
Fonte: Elaborada pela autora, 2013.
99
Foi escolhido o tema cherry e o seu modelo é apresentando na figura A.10
abaixo. O modelo inicial foi modificado retirando-se alguns componentes para que
ficassem com a aparência ilustrada na figura A.11.
Figura A.11 – Relatório com tema cherry.
Fonte: Elaborada pela autora, 2013.
Figura A.12 – Relatório após modificação.
Fonte: Elaborada pela autora, 2013.
Para a construção do relatório foi utilizada os dados inseridos nas tabelas
empresa, usuários, site_custom e instituição do banco de dados MySQL. É
necessário para isso, construir a uma consulta em SQL para que esses dados sejam
trazidos do banco. Esse processo pode ser realizado por meio da interface
selecionando o ícone destacado na figura A.12
Figura A.13 – Barra de ferramentas do IReport .
Fonte: Elaborada pela autora, 2013.
100
Na próxima janela que irá aparecer deve-se escolher a opção Query
Designer, e aparecerá uma interface para que se escolha com quais tabelas e
campos se pretende trabalhar. No canto esquerdo da figura A.13 é possível
observar, que existe uma lista de tabelas do banco de dados com o qual se está
trabalhando. Deste modo, basta clicar na tabela desejada e arrastar até o meio da
janela e então selecionar os campos que queira que apareça no relatório. Os
relacionamentos entre as tabelas são feito de modo automático.
Figura A.14 – Interface para criação de consultas SQL.
Fonte: Elaborada pela autora, 2013.
A aba Report Inspector localizada a esquerda no Netbeans, permite que os
campos trazidos pela consulta SQL sejam introduzidos no relatório, bastando para
isso clicar no campo de solta-lo na parte do relatório onde ele deve aparecer. Essa
aba é mostrada na figura A.14.
101
Figura A.15 – Aba Report Inspector.
Fonte: Elaborada pela autora, 2013.
Após a efetivação desses passos é possível realizar um teste para saber
como ficará o relatório. Para isso, deve-se selecionar a opção Preview na barra do
IReport e obter-se-á o resultado mostrado na figura A.15.
102
Figura A.16 – Relatório compilado.
Fonte: Elaborada pela autora, 2013.
A.3 CONSIDERAÇÕES FINAIS
Neste Apêndice foi explicado e ilustrado como instalar e configurar o plug-in
do IReport no Netbeans e também um exemplo prático de criação de um relatório.
Dados os exemplos é possível observar a simplicidade que o IReport oferece para a
criação de relatórios.
Download