Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
LEONARDO RIGO RIBEIRO DA SILVA
MATHEUS MARIANO DA SILVA
SISTEMA WEB DE GERENCIAMENTO BIBLIOTECÁRIO
LINS/SP 2º 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
LEONARDO RIGO RIBEIRO DA SILVA
MATHEUS MARIANO DA SILVA
SISTEMA WEB DE GERENCIAMENTO BIBLIOTECÁRIO
Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Banco de Dados.
Orientador: Prof. Me. Fábio Lúcio Meira
LINS/SP 2º SEMESTRE/2013
LEONARDO RIGO RIBEIRO DA SILVA
MATHEUS MARIANO DA SILVA
SISTEMA WEB DE GERENCIAMENTO BIBLIOTECÁRIO
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnólogo em Banco de Dados sob orientação do
Prof. Me. Fábio Lucio Meira.
Data de aprovação: 12 /12/2013
________________________________________
Orientador: Prof. Me. Fábio Lucio Meira
________________________________________
Prof. Esp. Alciano Gustavo G. Oliveira
________________________________________
Prof. Me. Alexandre Ponce de Oliveira
A minha mãe Adriana, que me ilumina e apoia incondicionalmente. Ao meu pai Cláudio, que me guia por quais caminhos percorrer; e a minha irmã Rafaela, que mesmo com pouca idade, me ensina a cada dia uma nova liturgia de amar.
Leonardo Rigo Ribeiro da Silva
Dedico a minha família principalmente aos meus pais Rita e Carlos, que me apoiaram e me incentivaram a nunca desistir, mesmo nos momentos mais difíceis em que eu pensava que não seria possível seguir em frente com este trabalho.
Matheus Mariano da Silva
AGRADECIMENTOS
Primeiramente e acima de tudo, queremos agradecer a Deus por ter nos dado
força e fé quando tudo parecia perdido e incerto; e por permitir que realizássemos
esse grande feito em nossas vidas.
Agradecemos especialmente ao Professor Fábio Lúcio Meira, que aceitou
humildemente em ser nosso orientador neste árduo trabalho e por ter nos passado
um pouco de sua imensa sabedoria.
Agradecemos também ao Prof. Me. Mário Henrique de Souza Pardo que nos
sancionou várias dúvidas e por ter nos apoiado e incentivado durante o
desenvolvimento do trabalho.
A todos os professores que nos ajudaram nas dúvidas decorrentes do curso
durante esses anos, especialmente as professoras Luciane Noronha do Amaral e
Gisele Molina Bocari e aos Professores Anderson Pazin, Adriano Bezerra e Luiz
Fernando de Oliveira Silva.
Ao nosso colega Cleberton Santos por ter nos ajudado na criação do logotipo
do site.
Ao nosso colega de classe João Otávio de Almeida por ter nos ajudado em
várias dúvidas referentes à implementação do sistema.
E por último, mas não menos importante, queremos agradecer especialmente
aos nossos amigos Márcio, Everaldo, Elisangela e Mariana (Turma A) por todo
apoio, companheirismo e por nos ensinarem o verdadeiro significado da amizade.
Leonardo Rigo Ribeiro da Silva
Matheus Mariano da Silva
“São as nossas escolhas que revelam o que realmente somos, muito mais do que as nossas qualidades.”
J. K. Rowling
RESUMO
O objetivo do presente trabalho foi o desenvolvimento de um sistema de gerenciamento web para uma biblioteca, que seja capaz de melhorar as funcionalidades de quem trabalha nela e interagir com quem a frequenta de forma rápida e intuitiva. Para tanto, fez-se necessário um estudo e a utilização de tecnologias para web, tais como Java Server Pages, Servlets, Hypertext Markup Language e jQuery; conjuntamente da tecnologia de banco de dados e da integração que há entre web e uma base de dados. Para um melhor entendimento deste trabalho também é apresentado a análise de negócios e análise de requisitos, que atendem, de maneira mais abrangente, as funcionalidades de uma biblioteca, não tendo em vista uma biblioteca em particular. Tal desenvolvimento deste projeto justifica-se no fato de que a implementação de um sistema de gerenciamento utilizando a web seria viável para uma biblioteca que atrairia mais leitores, sendo que estes teriam acesso às pesquisas online ao rol de obras. Por fim, este documento apresenta uma conclusão sobre o trabalho, em que são descritas as principais dificuldades para se desenvolver para web, e também, apresenta alguns aprimoramentos e ampliações que podem ser realizados em projetos futuros, considerando que o desenvolvimento web e móvel é expansivo. Palavras-chave: Biblioteca. Internet. Site. HTML5. Sistema Web. Banco de dados. JSP. Servlet.
ABSTRACT
The objective of this work was the development of a web management system for a library, which is able to improve the functionality of those who work in it and interact with those who attend quickly and intuitively. Therefore, it was necessary to study and use of web technologies such as Java Server Pages, Servlets, Hypertext Markup Language and jQuery; together technology and database integration that exists between web and a database. For a better understanding of this work also presents business analysis and requirements, serving, more broadly, the features of a library, not aimed at a particular library. Such a development of this project is justified in the fact that the implementation of a management system using the web would be feasible for a library that would attract more readers, and they have access to online surveys to the list of works. Finally, this document presents a conclusion about the work, describing the main difficulty is in developing web and also presents some improvements and extensions that can be realized in future projects, given that development web and mobile is expansive. Keywords: Library. Internet. Site. HTML5. Web System. Database. JSP. Servlet.
LISTA DE ILUSTRAÇÕES
Figura 1.1 - Arquitetura de aplicativo servlet. ............................................................ 20
Figura 1.2- Aquitetura de aplicativo servlet com servidor HTTP. ............................... 20
Figura 1.3 – Mecanismo de uma aplicação Java para acessar um banco de dados.22
Figura 2.1 - Diagrama de Caso de Uso. .................................................................... 30
Figura 2.2 – Diagrama de classes. ............................................................................ 31
Figura 2. 3 – Diagrama de Atividade Login Restrito .................................................. 32
Figura 2. 4 – Diagrama de MVC Login Restrito. ........................................................ 32
Figura 2.5 – Diagrama de Sequência Login Restrito. ................................................ 33
Figura 2. 6 – Diagrama de Atividade Manter Leitor. .................................................. 33
Figura 2. 7 – Diagrama de MVC Manter Leitor. ......................................................... 34
Figura 2. 8 – Diagrama de Sequência Manter Leitor. ................................................ 34
Figura 2.9 – Diagrama de Atividade Manter Autor. ................................................... 35
Figura 2.10 – Diagrama de MVC Manter Autor. ........................................................ 35
Figura 2. 11 – Diagrama de Sequência Manter Autor. .............................................. 36
Figura 2. 12 – Diagrama de Atividade Manter Editora. .............................................. 36
Figura 2. 13 – Diagrama de MVC Manter Editora. .................................................... 37
Figura 2. 14 – Diagrama de Sequência Manter Editora. ........................................... 37
Figura 2.15 – Diagrama de Atividade Manter Obra. .................................................. 38
Figura 2. 16 – Diagrama de MVC Manter Obra. ........................................................ 38
Figura 2. 17 – Diagrama de Sequência Manter Obra. ............................................... 39
Figura 2. 18 – Diagrama de Atividade Efetuar Empréstimo....................................... 40
Figura 2. 19 – Diagrama de MVC Efetuar Empréstimo. ............................................ 40
Figura 2. 20 – Diagrama de Sequência Efetuar Empréstimo. ................................... 41
Figura 2. 22 – Diagrama de MVC Encerrar Empréstimo. .......................................... 42
Figura 2. 23 – Diagrama de Sequência Encerrar Empréstimo. ................................. 42
Figura 2. 24 – Diagrama de Atividade Gerar Multa. .................................................. 43
Figura 2. 25 – Diagrama de MVC Gerar Multa. ......................................................... 43
Figura 2. 26 – Diagrama de Sequência Gerar Multa. ................................................ 44
Figura 2. 27 – Diagrama de Atividade Renovar Empréstimo. .................................... 44
Figura 2. 28 – Diagrama MVC Renovar Empréstimo. ............................................... 45
Figura 2. 29 – Diagrama de Sequência Renovar Empréstimo. ................................. 45
Figura 2. 30 – Diagrama de Atividade Consultar Obra. ............................................. 46
Figura 2. 31 – Diagrama de MVC Consultar Obra. .................................................... 46
Figura 2. 32 – Diagrama de Sequência Consultar Obra. ........................................... 46
Figura 2. 33 – Diagrama de Atividade Efetuar Login (Usuário Leitor). ...................... 47
Figura 2. 34 – Diagrama de MVC Efetuar Login (Usuário Leitor). ............................. 47
Figura 2. 35 – Diagramas de Sequência Efetuar Login (Usuário Leitor). .................. 48
Figura 2. 36 – Diagrama de Atividade Efetuar Reserva. ........................................... 48
Figura 2.37 – Diagrama de MVC Efetuar Reserva. ................................................... 49
Figura 2.38 – Diagrama de Sequência Efetuar Reserva. .......................................... 49
Figura 2.39 – Diagrama do Modelo Relacional do Banco de Dados. ........................ 50
Figura 2.40 – Diagrama do Modelo Lógico do Banco de Dados. .............................. 51
Figura 3.1 – Home Page do Funcionário. .................................................................. 52
Figura 3.2 – Login de Usuários. ................................................................................ 53
Figura 3.3 – Home Page do Leitor. ........................................................................... 53
Figura 3.4 – Visualizar Minhas Reservas. ................................................................. 54
Figura 3.5 – Visualizar Meus Empréstimos. .............................................................. 54
Figura 3.6 – Listar Obras. .......................................................................................... 55
Figura 3.7 – Página de Detalhes da Obra. ................................................................ 56
Figura 3.8 – Carrinho das Reservas. ......................................................................... 56
Figura 3.9 – Pesquisar no Acervo da Biblioteca. ....................................................... 57
Figura 3.10 – Resultado da Pesquisa. ...................................................................... 57
Figura 3.11 – Página Inicial do Bibliotecário. ............................................................. 58
Figura 3.12 – Cadastrar Leitor. .................................................................................. 59
Figura 3.13 – Apresentar Leitor. ................................................................................ 59
Figura 3.14 – Lista de Leitores. ................................................................................. 59
Figura 3.15 – Cadastrar Autor. .................................................................................. 60
Figura 3.16 – Autores. ............................................................................................... 60
Figura 3.17 – Cadastrar Editora. ............................................................................... 61
Figura 3.18 – Lista de Editoras. ................................................................................. 61
Figura 3.19 – Cadastrar Gênero Literário. ................................................................. 61
Figura 3.20 – Gêneros Literários. .............................................................................. 62
Figura 3.21 – Cadastrar Obra. ................................................................................... 62
Figura 3.22 – Apresentar Obra. ................................................................................. 63
Figura 3.23 – Lista de Leitores. ................................................................................. 63
Figura 3.24 – Página de Reservas. ........................................................................... 64
Figura 3.25 – Listar Reservas. .................................................................................. 64
Figura 3.26 – Página de Visualizar Reserva. ............................................................ 65
Figura 3.27 – Página Efetuar Reserva como Empréstimo......................................... 65
Figura 3.28 – Página de Empréstimos. ..................................................................... 66
Figura 3.29 – Página de Efetuar Empréstimo. ........................................................... 66
Figura 3.30 – Página Listar Empréstimos.................................................................. 67
Figura 3.31 – Página Apresentar Empréstimo. .......................................................... 67
Figura 3.32 – Página Empréstimos Multados. ........................................................... 67
LISTA DE ABREVIATURAS E SIGLAS
ASP – Active Server Pages
CDD – Classificação Decimal de Dewey
CGI – Common Gateway Interface
CSS – Cascading Style Sheet
HTML – HyperText Markup Language
HTTP – HyperText Transfer Protocol
HTTPS – HyperText Transfer Protocol Secure
IDE – Integrated Development Environment
ISO – International Organization for Standardization
JDBC – Java Database Connectivity
JEE – Java Enterprise Edition
JME – Java Micro Edition
JSE – Java Standard Edition
JSP – JavaServer Pages
MER – Modelo Entidade Relacionamento
MVC – Modelo Visão Controle
OMG – Object Management Group
PHP – Personal Home Page
RG – Registro Geral
SQL – Structured Query Language
SSL – Secure Sockets Layer
UML – Unitified Modeling Language
XE – Express Edition
XML – Extensible Markup Language
SUMÁRIO
INTRODUÇÃO ......................................................................................... 16
1 TECNOLOGIAS E FERRAMENTAS ................................................... 18
1.1 TECNOLOGIA JAVA ............................................................................... 18
1.2 TECNOLOGIA SERVLET ......................................................................... 19
1.3 JSP ...................................................................................................... 21
1.4 APACHE TOMCAT ................................................................................. 21
1.5 SISTEMA GERENCIADOR DE BANCO DE DADOS ORACLE ...................... 22
1.6 JDBC .................................................................................................... 22
1.7 UNIFIED MODELING LANGUAGE (UML) .................................................. 23
1.8 HTML5 .................................................................................................. 23
1.9 CASCADING STYLE SHEET (CSS) .......................................................... 24
1.10 NETBEANS INTEGRATED DEVELOPMENT ENVIRONMENT (IDE) ............ 25
1.11 ASTAH COMUMMUNITY ....................................................................... 25
1.12 JQUERY .............................................................................................. 25
2 ANÁLISE E PROJETO DE SISTEMA ................................................. 26
2.1 ANÁLISE DE NEGÓCIO .......................................................................... 26
2.1.1 Instrução do Problema .......................................................................... 26
2.1.2 Análise de Mercado .............................................................................. 27
2.1.3 Atores e Envolvidos no Processo ............................................................ 27
2.1.4 Descrição do Ambiente Atual ................................................................. 27
2.2 VISÃO GERAL DO PRODUTO ................................................................. 28
2.2.1 Perspectiva do Produto ......................................................................... 28
2.2.2 Premissas e Dependências.................................................................... 28
2.2.3 Características ..................................................................................... 28
2.2.4. Outros Requisitos do Produto ................................................................ 29
2.3. ANÁLISE DE REQUISITOS ..................................................................... 29
2.3.1. Diagrama de Caso de Uso .................................................................... 30
2.3.2. Diagrama de Classes ........................................................................... 31
2.3.3 Especificações de Histórias e Diagramas ................................................. 31
2.3.3.1 Login Restrito .................................................................................... 31
2.3.3.2 Manter Leitor ..................................................................................... 33
2.3.3.3 Manter Autor ..................................................................................... 35
2.3.3.4. Manter Editora .................................................................................. 36
2.3.3.5. Manter Obra ..................................................................................... 38
2.3.3.6 Efetuar Empréstimo ........................................................................... 40
2.3.3.7 Encerrar Empréstimo ......................................................................... 41
2.3.3.8 Gerar Multa ...................................................................................... 42
2.3.3.9 Renovar Empréstimo .......................................................................... 44
2.3.3.10 Consultar Obra ................................................................................ 45
2.3.3.11 Efetuar Login (Usuário Leitor) ............................................................ 47
2.3.3.12 Efetuar Reserva ............................................................................... 48
2.3.4 Projeto de Banco de Dados ................................................................... 50
2.3.4.1 Diagrama de Dados (MER) ................................................................. 50
2.3.4.2 Mapeamento para Modelo Relacional e Projeto Físico ............................ 51
3 IMPLEMENTAÇÃO .............................................................................. 52
3.1 PÁGINA DE ÍNICIO DO SISTEMA ............................................................. 52
3.2 INTERFACE GRÁFICA DO USUÁRIO ....................................................... 53
3.2.1 Página Inicial do Usuário Leitor .............................................................. 53
3.2.2 Página de Lista de Obras ...................................................................... 55
3.2.2 Página de Detalhes da Obra .................................................................. 55
3.2.2 Reservar Obra ..................................................................................... 56
3.2.2 Pesquisar no Acervo de Obras ............................................................... 57
3.3 INTEFACE GRÁFICA DO BIBLIOTECÁRIO ................................................ 58
3.3.1 Página Inicial do Bibliotecário ................................................................. 58
3.3.2 Cadastrar e Listar Leitor ........................................................................ 58
3.3.3 Cadastrar Autores ................................................................................ 60
3.3.4 Cadastrar Editora ................................................................................. 61
3.3.5 Cadastrar Gênero Literário .................................................................... 61
3.3.6 Cadastrar Obra .................................................................................... 62
3.3.7 Página de Reservas ............................................................................. 64
3.3.8 Página de Empréstimos ........................................................................ 65
CONSIDERAÇÕES FINAIS .................................................................... 68
REFERÊNCIAS BIBLIOGÁFICAS.......................................................... 69
APÊNDICE A ........................................................................................... 72
A.1 ENCERRAR RESERVAS NÃO REALIZADAS ............................................ 72
A.2 BLOQUEAR LEITOR INADIMPLENTE ...................................................... 73
A.3 DESBLOQUEAR LEITOR INADIMPLENTE ................................................ 74
16
INTRODUÇÃO
O hábito da leitura é capaz de realizar mudanças construtivas tanto para a
formação cultural como para formação de uma pessoa como cidadã, e é
na biblioteca, em meio a todos os livros que um mundo diferente é descoberto pelas
crianças, adolescentes e adultos. (DUTRA, 2011)
Contudo, não basta para uma biblioteca ter um grande número de obras com
renomados títulos e clássicos. Um bom gerenciamento e uma organização bem
estruturada são capazes de influenciar no apreço que o cliente tem pelo
estabelecimento. Nos dias atuais, o uso de um sistema informatizado que gerencie
as funções e atividades de uma instituição ou de uma empresa pode ser um
diferencial para se obter um gerenciamento eficaz. A informatização de uma
biblioteca traz benefícios para suas funcionalidades administrativas, pois facilita os
processos de controle sobre o fluxo do acervo de obras e de clientes.
E a realização de consultas e reservas às obras via site web traz para o
usuário mais comodidade e rapidez para a escolha da obra desejada.
Independentemente de onde o usuário estiver ele poderá obter todas as informações
da obra e de seu autor, o que influencia numa tomada de decisão mais rápida para
suas necessidades pessoais ou profissionais, sendo esta a maior justificativa para
que um sistema de gerenciamento de bibliotecas possa ter uma visão para o cliente.
Neste trabalho é apresentado um site web de gerenciamento bibliotecário,
agradável e intuitivo que permite ao frequentador da biblioteca realizar consultas ao
acervo de obras, bem como ao bibliotecário para que possa realizar suas
funcionalidades e gerenciamento das regras de negócios da biblioteca.
Objetiva-se que os leitores da biblioteca sintam mais facilidade e comodidade
para pesquisar os livros de seu agrado no acervo em qualquer lugar que estejam; e
que o fluxo de operações feitas pelo sistema possa agilizar a administração dos
serviços propostos pela biblioteca. Para o desenvolvimento deste trabalho de
conclusão de curso tomou-se como base na linguagem de programação Java
orientada a objetos, e do uso do sistema de gerenciamento de banco de dados
Oracle e do servidor web Apache Tomcat.
Os capítulos deste trabalho estão organizados da seguinte forma: no primeiro
capítulo descreve-se as tecnologias e as ferramentas que se fizeram necessárias
17
para o desenvolvimento deste trabalho; no segundo capítulo trata-se da análise de
negócios e análise de requisitos, em que se discute como as regras de negócios e
como o escopo do sistema proposto foram desenvolvidos; e no terceiro apresenta-se
a implementação e o funcionamento do site.
Por fim, são apresentadas as considerações finais dos autores deste trabalho
de conclusão de curso, abordando uma breve discussão sobre as dificuldades,
assim como, o aprendizado adquirido durante o desenvolvimento deste trabalho de
conclusão de curso.
18
1 TECNOLOGIAS E FERRAMENTAS
Neste primeiro capítulo são abordadas as tecnologias e as ferramentas
utilizadas no desenvolvimento deste projeto.
1.1 TECNOLOGIA JAVA
De acordo com Pamplona (2009), a tecnologia Java não se prende a
nenhuma arquitetura. Sua criação teve início em 1991, sob o nome de Green
Project. Nele trabalharam James Gosling, Mike Sheridan e Patrik Naughton.
Segundo Campos (2006), o projeto pretendia que a linguagem Java fosse
empregada na programação de produtos eletrônicos. As linguagens C e C++ não
atendiam as necessidades que se desejavam da nova linguagem, pois necessitavam
ser compiladas para cada tipo específico de processador. Além do mais, o ciclo de
vida dos produtos eletrônicos são maiores que os de software e haveria de se
manter a compatibilidade retroativa. Assim, iniciou o projeto de linguagem de
programação apropriada a este tipo de nicho: a linguagem Java foi criada. O anúncio
oficial da linguagem foi feito em maio de 1995 na conferência da Sun World em San
Francisco.
As características da linguagem Java são: sua abordagem para orientação a
objetos, compilada e independente de arquitetura de computadores. Estas
características possibilitam a esta linguagem ser robusta e extensível. Podem-se
fazer sistemas que executem em desktop, em rede, para a Internet, com
processamento distribuído, para executar em celulares e palms, entre outros.
A linguagem Java é executada em mais de 850 milhões de computadores
pessoais e em bilhões de dispositivos em todo o mundo, inclusive telefones
celulares e dispositivos de televisão. (Java, 2013)
A linguagem Java é dividida em três principais arquiteturas de acordo com
Deitel (2012): Java Enterprise Edition (JEE) é voltado para o desenvolvimento de
aplicações de larga escala, redes distribuídas e aplicações baseadas na web; Java
Micro Edition (JME) é voltado para o desenvolvimento de aplicações para pequenos
dispositivos limitados de memória, como os smartphones; e Java Standard Edition
(JSE) é utilizado numa vasta gama de aplicações, tais como computadores
19
pessoais, notebooks e arquiteturas com poder de processamento e memória
consideráveis.
1.2 TECNOLOGIA SERVLET
Segundo Kurniawan (2002), a tecnologia Servlet é a base do desenvolvimento
de aplicativos web que utilizam a linguagem de programação Java. É uma das
tecnologias mais importantes, e é subjacente para outra tecnologia Java popular
para o desenvolvimento de aplicativos: Java Server Pages (JSP).
A criação de conteúdos web dinâmicos se tornou possível por meio da
tecnologia Common Gateway Interface (CGI). Entretanto, à medida que a Internet se
tornou mais e mais popular, o CGI começou a apresentar grandes falhas em
aplicativos escalonáveis de Internet. Sendo assim, gradativamente tecnologias
novas e melhores surgiram e substituíram o CGI, e uma dessas foi a tecnologia
Servlet, que foi introduzida pela Sun Microsystems em 1995.
Os benefícios do uso de servlets se dão pelo seu desempenho que é superior
a CGI, pois não há processo de criação para cada solicitação de cliente. Ao invés,
cada solicitação é gerenciada pelo processo contentor de servlet. Depois que um
servlet termina de processar uma solicitação, ele permanece na memória,
aguardando outra solicitação. (KURNIAWAN, 2002)
Os servlets têm acesso a toda a família de bibliotecas Java, incluindo a
biblioteca Java Database Connectivity (JDBC) para acessar bancos de dados
corporativos. Os servlets também podem acessar uma biblioteca de chamadas
específicas de Hypertext Transfer Protocol (HTTP) e receber todos os benefícios da
linguagem Java madura, incluindo a portabilidade, desempenho, reutilização e
proteção contra acidentes. Hoje os servlets são uma escolha popular para as
construções de aplicações web interativas. (ORACLE, 2013)
De acordo com Kurniawan (2002), um servlet é uma classe Java que pode ser
automaticamente carregada e executada por um servidor web especial. Esse
servidor web cliente de servlet é chamado de um contentor servlet, que antigamente
era conhecido como Máquina Servlet pelos desenvolvedores. Os servlets interagem
com clientes por meio de um modelo de solicitação-resposta baseado em HTTP,
pois a tecnologia servlet trabalha sobre HTTP, um contentor servlet precisa suportar
HTTP como o protocolo para solicitações do cliente e respostas de servidor.
20
Entretanto, um contentor servlet também pode suportar protocolos semelhantes, tal
como Hypertext Transfer Protocol Secure (HTTPS), HTTP sobre Secure Sockets
Layer (SSL), para transações seguras.
A figura 1.1, que se encontra logo abaixo, apresenta como é a arquitetura de
um aplicativo serlvet, em que um aplicativo servlet também pode incluir conteúdo
estático, tais como páginas de HyperText Markup Language (HTML) e arquivos de
imagem.
Figura 1.1 - Arquitetura de aplicativo servlet. Fonte: Kurniawan, 2002, p.6.
Segundo Kurniawan (2002), não é preferível a permissão que o contentor
servlet sirva conteúdo estático, pois o conteúdo é mais rápido se for servido por um
servidor de HTTP mais potente, tal como o servidor web Apache. A prática mais
comum é colocar um servidor web na frente, para gerenciar todas as solicitações de
cliente. Por sua vez, o servidor web serve o conteúdo estático e passa aos
contentores servlet todas as solicitações de cliente para servlets.
A figura 1.2, logo abaixo, demonstra como é a arquitetura de uma aplicação
que emprega um servidor de HTTP.
Figura 2.2- Aquitetura de aplicativo servlet com servidor HTTP. Fonte: Kurniawan, 2002, p.6.
21
1.3 JSP
Segundo Schemes (2011) o JSP é uma linguagem orientada para a criação
de páginas e aplicações para a internet. Seu desenvolvimento é em Java. As
páginas criadas são compostas por códigos HTML e Extensible Markup Language
(XML), em conjunção com as tags (etiquetas: funções primárias para Java) especiais
para programar script de servidor em sintaxe Java. O JSP possibilita ao
desenvolvedor a criação de páginas de Internet com aplicações que acessam banco
de dados e manipulam arquivos no formato texto, englobando assim a maioria das
funções de aplicativos web.
É preciso destacar que “a tecnologia JSP é uma extensão da tecnologia servlet”. Isso significa que JSP não substitui servlets como a tecnologia para escrever aplicativos Internet/intranet do lado servidor. Na verdade, JSP foi montada na base de servlet e precisa da tecnologia servlet para trabalhar. (KURNIAWAN, 2002, p. 219)
Precisamente, o JSP resolve as desvantagens da tecnologia servlet, permite
ao programador, por exemplo, interseccionar código com conteúdo estático. Se o
programador trabalhar com gabarito de página HTML, escrito por um web designer,
o programador pode acrescentar um código na página HTML e salvá-lo como um
arquivo.jsp. Se posteriormente, o web designer precisar alterar a cor de algum
elemento no corpo do HTML, simplesmente, abre o arquivo e o edita, de acordo.
Ação que seria totalmente trabalhosa se somente a tecnologia servlet fosse
empregado. (KURNIAWAN, 2002.)
1.4 APACHE TOMCAT
O desenvolvimento do Tomcat foi feito pela Sun Microsystems, mas em 1999
o software foi entregue à Fundação de Software Apache, e se tornou parte do
projeto Jakarta. O Tomcat trabalha como um servidor web, ou seja, ele permite a
solicitação de serviços HTTP para Servlets. Sua principal característica técnica é
estar centrada na linguagem de programação Java, mais especificamente nas
tecnologias de Servlets e de JSP. Esta abordagem rivaliza, por exemplo, com a
usada pela Microsoft com o Active Server Pages (ASP), baseada na linguagem
Visual Basic. (KURNIAWAN, 2002).
22
1.5 SISTEMA GERENCIADOR DE BANCO DE DADOS ORACLE
O Oracle Database 10g Express Edition (Oracle Database XE) é uma versão
gratuita do banco de dados da Oracle. O Oracle Database XE é capaz de criar
tabelas, exibições e outros objetos de banco de dados, importação, exportação e
visualização de dados tabela, executar consultas e scripts de Structured Query
Language (SQL) e gerar relatórios de dados. (ORACLE, 2013)
1.6 JDBC
De acordo com Ricarte (2002), a tenologia Java permite o acesso a bancos
de dados relacionais através das funcionalidades definidas no pacote java.sql e
associados, que definem a biblioteca JDBC. O JDBC é uma Application
Programming Interface (API) para execução e manipulação de resultados
a consultas SQL através de Java. Para desenvolver uma aplicação em Java e
bancos de dados relacionais, é preciso ter disponível o pacote da API JDBC e
possuir o acesso a um servidor de banco de dados relacional; e um driver de JDBC
adequado ao Sistema de Gerenciamento de Banco de Dados (SGBD) que será
utilizado na aplicação. A figura 1.3, a seguir, apresenta como é a organização do
mecanismo de um aplicativo Java, que por meio da utilização da biblioteca JDBC,
consegue o acesso a um banco de dados.
Figura 3.3 – Mecanismo de uma aplicação Java para acessar um banco de dados. Fonte: Ricarte, 2012, adaptado pelos autores.
23
1.7 UNIFIED MODELING LANGUAGE (UML)
De acordo com Pressman (2011), a UML é uma linguagem-padrão para
descrever e documentar projetos de software; usada para visualizar, especificar,
construir e documentar os artefatos de um sistema. Os diagramas de UML ajudam
os desenvolvedores de software a construir um software mais robusto e elaborado,
pois dão uma compreensão maior do funcionamento do sistema desenvolvido.
Desenvolvida na década 1990 por Grady Booch, Jim Rumbaugh e Ivar
Jacobson, a UML combinou grupos de notações de modelagens concorrentes
usadas pela indústria do software na época. No ano de 1997, a primeira versão do
padrão de UML, chamada de UML 1.0, foi apresentado ao Object Management
Group (OMG), uma associação sem fins lucrativos que se dedica a manter
especificações para ser usadas pela indústria de computadores. Contudo, a UML 1.0
foi revisada tornando-se a UML 1.1 e dotada mais tarde naquele ano. Atualmente, o
padrão é a UML 2.0, que agora é um padrão da International Organization for
Standardization (ISO). A UML 2.0 viabiliza treze tipos diferentes de diagramas para
uso na modelagem de software. Entre eles estão os diagramas de classe, atividade,
caso de uso e sequência. (PRESSMAN, 2011)
Segundo Gama (2013), os diagramas de caso de uso descrevem
relacionamentos e dependências entre um grupo de caso de uso e os atores
participantes no processo; os diagramas de atividades descrevem a sequência de
atividades de um sistema. Já os diagramas de sequência apresentam a troca de
mensagens, isto é, chamada de método, entre diversos objetos, numa situação
específica e delimitada. E os diagramas de classe mostram as diferentes classes
que fazem um sistema e como elas se relacionam. São chamados de diagramas
“estáticos” porque mostram as classes, com seus métodos e atributos bem como os
relacionamentos estáticos entre elas: quais classes “conhecem” quais classes ou
quais classes “fazem parte” de outras classes, mas não mostram a troca de
mensagens entre elas.
1.8 HTML5
De acordo com Tableless (2012), o HTML é uma linguagem para publicação
de conteúdo, que pode ser texto, imagem, vídeo, áudio, entre outros, na web. Entre
24
1993 e 1995, o HTML ganhou as versões HTML+, HTML 2.0 e HTML 3.0, onde
foram propostas diversas mudanças para enriquecer as possibilidades da
linguagem. Entretanto, segundo Botelho (2012), o HTML estancou na versão 4.0.1
desde 1999 e não acompanhou as dinâmicas mudanças que ocorreram nos últimos
anos.
Contudo, uma nova versão do HTML fora lançada no ano de 2008, sob o
nome de HTML5. Essa nova versão tem como principal objetivo facilitar a
manipulação do elemento possibilitando o desenvolvedor a modificar as
características dos objetos de forma não intrusiva e de maneira que seja
transparente para o usuário final. (SILVERMAN, 2012)
Segundo Tableless (2012), ao contrário das versões anteriores, o HTML5
fornece ferramentas ao CSS e ao Javascript para fazerem seu trabalho da melhor
maneira possível. O HTML5 permite por meio de suas APIs a manipulação das
características destes elementos, de forma que o website ou a aplicação continue
leve e funcional. As versões antigas do HTML não continham um padrão universal
para a criação de seções comuns e específicas como rodapé, cabeçalho, sidebar,
menus e etc. Não havia um padrão de nomenclatura de IDs, classes ou tags, assim
como, não havia um método de capturar de maneira automática as informações
localizadas nos rodapés dos websites.
Há outros elementos e atributos que tiveram sua função e significado
modificados e que agora podem ser reutilizados de forma mais eficaz. Por exemplo,
elementos como B ou I que foram descontinuados em versões anteriores do HTML
agora assumem funções diferentes e entregam mais significado para os usuários.
(TABLELESS, 2012)
1.9 CASCADING STYLE SHEET (CSS)
De acordo com Silva (2012), o CSS pode ser definido como um mecanismo
simples para adicionar estilos. A vantagem do uso de CSS é a de separar a
marcação HTML, da apresentação do site.
O HTML destina-se unicamente a estruturar e marcar o conteúdo, ficando por
conta das CSS toda a responsabilidade pelo visual do documento, o HTML marca e
estrutura textos, cabeçalhos, parágrafos, links, botões, formulários, imagens e
25
demais elementos da página e o CSS define cores, posicionamento na tela, estilos
de linhas, bordas e tudo o mais relacionado à apresentação. (SILVA, 2012)
1.10 NETBEANS INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)
Popular entre os desenvolvedores de softwares, o NetBeans IDE possibilita
ferramentas necessárias para criar aplicações desktop pessoais, profissionais,
corporativas, para a Internet e plataformas móveis a partir da tecnologia Java, assim
como a linguagem C e C++, Personal Home Page (PHP), JavaScript, e Groovy. O
Netbeans é um software de Open-Source, cuja licença não restringe de nenhuma
maneira a sua distribuição entre os usuários, sendo assim acessível a todos.
(NETBEANS, 2013)
1.11 ASTAH COMUMMUNITY
O Astah Community uma ferramenta para o desenvolvimento de diagramas
que ilustram as interfaces, dependências, relações de acordo com o padrão UML,
proporcionando uma maior agilidade e melhora na modelagem do sistema. Através
dessa ferramenta torna-se possível uma melhor compreensão dos problemas e
facilitando o entendimento entre a equipe de desenvolvimento, pois tem como
objetivo melhorar a comunicação por meio dos diagramas. (ASTAH, 2013)
1.12 JQUERY
Segundo Carvalho (2010), jQuery é uma biblioteca JavaScript criada em 2006
por John Resig que além de muito poderosa e fácil de utilizar, pode ser utilizada e
modificada sem qualquer custo. Essa biblioteca consegue abstrair do desenvolvedor
web muito da programação exigida para criação de recursos de interatividade em
um site.
26
2 ANÁLISE E PROJETO DE SISTEMA
Neste segundo capítulo são apresentadas as análises feitas sobre o
desenvolvimento e o funcionamento do sistema proposto por este projeto de
graduação, bem como a documentação do protótipo e suas regras de negócios.
2.1 ANÁLISE DE NEGÓCIO
Segundo Kerber (2012), a realização de uma análise de negócios foca na
compreensão de como a organização funciona e alcança seus desígnios e define
quais as capacidades que devem possuir para que ela possa prover produtos ou
serviços que atendam aos seus clientes.
Nesta primeira parte do capítulo é envolvida a compreensão das
funcionalidades dos negócios elaborados pela biblioteca para que o projeto de
sistema abranja todas as suas funcionalidades e requisitos.
2.1.1 Instrução do Problema
O cadastro de obras e de leitores, o controle dos empréstimos e as gerações
das multas se tornam muito rudimentares e trabalhosos quando são realizados em
tabela de controle feita a mão, pois geram uma grande quantidade de papéis e
sobrecarga para o bibliotecário, sendo que a implementação de um simples software
de gerenciamento que realizasse essas funções adequadamente iria eliminar toda a
papelada e abrandar o serviço do bibliotecário, além de o controle sobre as obras se
tornar mais eficaz e ágil.
Um leitor que não tenha muito tempo pra ficar vários minutos ou horas para
pesquisar algum livro de seu interesse nas prateleiras da biblioteca, obviamente não
desempenhará uma pesquisa minuciosa para atender sua necessidade, sendo ela
profissional ou pessoal, portanto ao acessar um site em seu computador ou
notebook que lhe permite uma boa consulta a todas as obras contidas na biblioteca
e que possa reservar qual deseja, irá suprir esse problema que o leitor enfrenta,
visto que será apenas necessária a confirmação do empréstimo e da retirada da
obra na propriedade da biblioteca.
27
2.1.2 Análise de Mercado
O protótipo desenvolvido por este projeto procura atender em geral, uma
biblioteca simples, que careça de uma solução informatizada e integrada para atingir
todos os seus processos de negócios e funcionalidades principais.
O projeto também pretende suprir as necessidades dos clientes da biblioteca,
realizou uma integração das funcionalidades da organização com o seu cliente de
uma forma rápida e intuitiva.
2.1.3 Atores e Envolvidos no Processo
O funcionário, que desempenha a função de bibliotecário é responsável pela
inserção e alteração dos dados da obra, do autor, da editora e do leitor. Além de,
efetivar os empréstimos e as devoluções, assim como as multas quando a obra não
é devolvida no prazo determinado.
O leitor é responsável por fazer seu login no sistema, por consultar o acervo e
realizar a reserva da obra.
2.1.4 Descrição do Ambiente Atual
Em uma biblioteca sem um sistema integrado de informática, o bibliotecário
utiliza uma ficha de papel cadastral na qual são registrados os dados pessoais dos
leitores. Essas fichas são organizadas em pastas ou em blocos por ordem
alfabética. Outrossim as obras como livros, atlas e gibis são catalogadas em uma
folha de registro.
Os empréstimos são anotados em uma tabela, na qual são inseridos os dados
do leitor, da obra emprestada e a data de devolução.
Caso ocorra um atraso na devolução da obra, o leitor é cobrado a pagar uma
multa e enquanto a multa não for paga o leitor é bloqueado, ou seja, fica impedido
de realizar outros empréstimos de livros até a realização do pagamento.
Para classificar e organizar as obras, a biblioteca utiliza a Classificação
Decimal de Dewey (CDD). Criada por Melvin Dewey em 1873, que utiliza a
linguagem universal dos números arábicos para a classificação de obras e
documentos.
28
2.2 VISÃO GERAL DO PRODUTO
Por meio desta seção do documento da Análise, o projeto é exposto como um
produto que está suscetível aos olhos do mercado de negócios e aos dos usuários,
além de listar as principais características funcionais, de apresentar as
dependências de execução e uma breve descrição das regras de negócio
específicas que abrangem o funcionamento da biblioteca, utilizado como parâmetro
para o desenvolvimento do sistema.
2.2.1 Perspectiva do Produto
O produto é totalmente autônomo e independente, ou seja, ele não depende ou
interage com algum outro sistema. E sua intenção é agilizar os processos funcionais
de uma biblioteca, auxiliando o funcionário no controle geral das obras contidas, dos
leitores cadastrados e o monitoramento dos empréstimos. E, além disso, este
produto busca atrair e facilitar o público de pessoas que frequentam a organização
bibliotecária, com o fácil acesso aos conteúdos do acervo.
2.2.2 Premissas e Dependências
Para o produto ser acessado é necessário que o usuário, seja ele o
funcionário ou o leitor, possua uma conexão com a rede internet em seu computador
ou dispositivo móvel. E o site é compatível apenas com os navegadores Mozilla
Firefox, Chrome e Safari em suas últimas versões.
2.2.3 Características
A seguir estão listadas as funcionalidades do sistema:
Acesso ao sistema (login) pelos usuários (leitor e funcionário da biblioteca);
Pesquisa de obras do rol de livros da biblioteca, que pode ser classificada
pelo título da obra, nome do autor e editora;
Inserção, alteração e exclusão de obras, autores, editoras e leitores no
sistema pelo bibliotecário;
29
Geração de empréstimos de livros pelos usuários, gerando a data de
devolução;
Aplicação multas aos leitores quando as devoluções são delongadas,
bloqueando o leitor no sistema bibliotecário;
Renovar e encerrar empréstimos;
Realizar reserva de obras através do acesso do leitor no sistema;
2.2.4. Outros Requisitos do Produto
Muitas bibliotecas adotam vários tipos de punição para o leitor que atrasa ou
que não devolve o livro, mas para este projeto a regra adotada é o bloqueio do leitor
no sistema, não podendo realizar empréstimo ou reserva de nenhuma obra do
acervo pelo dobro do tempo em que a obra ficara atrasada.
Um leitor pode realizar apenas um empréstimo por vez; cada empréstimo
pode conter até três obras diferentes, não sendo permitida a repetição de obras. Os
empréstimos possuem uma duração de uma semana, incluindo finais de semanas e
feriados, podendo ser renovados por mais sete dias. As reservas são apenas
efetuadas pelo leitor na sua visão web e só é permitida a reserva de três obras que
não estejam emprestadas ou já reservadas.
2.3 ANÁLISE DE REQUISITOS
Nesta segunda seção do capítulo são levantadas as especificações de
requisitos do projeto proposto.
De acordo com as informações apresentadas por Lamounier (2012), a Análise
de Requisitos é uma etapa em que o desenvolvedor faz um estudo detalhado dos
dados levantados na atividade de Análise de Negócios; de onde são construídos
modelos a fim de representar o sistema de software a ser desenvolvido por este
trabalho de conclusão de curso.
A engenharia de requisitos tem por objetivo, assegurar que o sistema de
software está atendendo as reais necessidades do cliente e verifica se os modelos
construídos na análise de negócios estão de acordo com os requisitos propostos
pelo cliente. (LAMOUNIER, 2012.)
30
Em suma, esta seção traz a documentação das informações e das funções
por meio do estudo dos diagramas de caso de uso, atividade sequência, de Modelo
Visão Controle (MVC) e de sequência; ademais, apresentar a modelagem do banco
de dados.
2.3.1. Diagrama de Caso de Uso
A figura abaixo, figura 2.1, apresenta-se o diagrama de casos de uso que
compreendem as funcionalidades dos atores no sistema.
Figura 2.1 - Diagrama de Caso de Uso. Fonte: Elaborado pelos autores, 2013.
31
2.3.2. Diagrama de Classes
Figura 2.2 – Diagrama de classes. Fonte: Elaborado pelos autores, 2013.
2.3.3 Especificações de Histórias e Diagramas
Esta subseção apresenta abstrações de pequenas histórias narrativas
envolvendo a interação entre os usuários, funcionário e leitor, - outrossim, chamados
de atores – e o sistema. A ideia é que estas pequenas histórias representem as
funcionalidades do sistema desenvolvido.
2.3.3.1 Login Restrito
Para possuir o acesso ao sistema, e de todos os seus recursos, o funcionário
que desempenha a função de bibliotecário se conecta ao sistema utilizando uma
conta com login e senha, pré-cadastrados no sistema.
32
Ao ter os dados autenticados, o funcionário desempenha as prerrogativas
disponíveis de ser o usuário administrador do sistema da biblioteca, ou seja, é o
funcionário que administra as principais funcionalidades do sistema.
Figura 2. 3 – Diagrama de Atividade Login Restrito Fonte: Elaborado pelos autores, 2013.
Figura 2. 4 – Diagrama de MVC Login Restrito. Fonte: Elaborado pelos autores, 2013.
33
Figura 2.5 – Diagrama de Sequência Login Restrito. Fonte: Elaborado pelos autores, 2013.
2.3.3.2 Manter Leitor
É de responsabilidade do funcionário cadastrar, alterar e consultar os
registros de leitores da biblioteca. Após a inserção de um novo leitor, o sistema gera
o nome de usuário e senha do leitor, a partir do e-mail e do número do RG,
respectivamente.
Figura 2. 6 – Diagrama de Atividade Manter Leitor. Fonte: Elaborado pelos autores, 2013.
34
Figura 2. 7 – Diagrama de MVC Manter Leitor. Fonte: Elaborado pelos autores, 2013.
Figura 2. 8 – Diagrama de Sequência Manter Leitor. Fonte: Elaborado pelos autores, 2013.
35
2.3.3.3 Manter Autor
O bibliotecário cadastra, altera e consulta os registros dos autores das obras
contidas no acervo da biblioteca.
Figura 2.9 – Diagrama de Atividade Manter Autor. Fonte: Elaborado pelos autores, 2013.
Figura 2.10 – Diagrama de MVC Manter Autor. Fonte: Elaborado pelos autores, 2013.
36
Figura 2. 11 – Diagrama de Sequência Manter Autor. Fonte: Elaborado pelos autores, 2013.
2.3.3.4. Manter Editora
O bibliotecário cadastra, altera e consulta os registros das editoras presentes
nos livros do acervo da biblioteca.
Figura 2. 12 – Diagrama de Atividade Manter Editora. Fonte: Elaborado pelos autores.
37
Figura 2. 13 – Diagrama de MVC Manter Editora. Fonte: Elaborado pelos autores, 2013.
Figura 2. 14 – Diagrama de Sequência Manter Editora. Fonte: Elaborado pelos autores, 2013.
38
2.3.3.5. Manter Obra
O cadastramento de obras no acervo da biblioteca é realizado pelo
funcionário, que também é responsável pelas alterações e exclusões dos dados.
Figura 2.15 – Diagrama de Atividade Manter Obra. Fonte: Elaborado pelos autores, 2013.
Figura 2. 16 – Diagrama de MVC Manter Obra. Fonte: Elaborado pelos autores, 2013.
39
Figura 2. 17 – Diagrama de Sequência Manter Obra. Fonte: Elaborado pelos autores, 2013.
40
2.3.3.6 Efetuar Empréstimo
O funcionário efetua o empréstimo de obra para um leitor; para realizar um
empréstimo o leitor deve estar cadastrado no banco de dados e não possuir
nenhuma devolução em haver e quando efetuado o empréstimo, o status do título
deverá ser atualizado.
Figura 2. 18 – Diagrama de Atividade Efetuar Empréstimo. Fonte: Elaborado pelos autores, 2013.
Figura 2. 19 – Diagrama de MVC Efetuar Empréstimo. Fonte: Elaborado pelos autores, 2013.
41
Figura 2. 20 – Diagrama de Sequência Efetuar Empréstimo. Fonte: Elaborado pelos autores, 2013.
2.3.3.7 Encerrar Empréstimo
O funcionário encerra o empréstimo de obra para um leitor. Quando efetuado o empréstimo, o status do título deverá ser atualizado.
Figura 2. 21 – Diagrama de Atividade Encerrar Empréstimo.
Fonte: Elaborado pelos autores, 2013.
42
Figura 2. 22 – Diagrama de MVC Encerrar Empréstimo. Fonte: Elaborado pelos autores, 2013.
Figura 2. 23 – Diagrama de Sequência Encerrar Empréstimo. Fonte: Elaborado pelos autores, 2013.
2.3.3.8 Gerar Multa
Se por ventura houver atraso na devolução da obra, o bibliotecário efetua
uma multa, que o bloqueia pelo dobro de tempo de atraso.
43
Figura 2. 24 – Diagrama de Atividade Gerar Multa. Fonte: Elaborado pelos autores, 2013.
Figura 2. 25 – Diagrama de MVC Gerar Multa. Fonte: Elaborado pelos autores, 2013.
44
Figura 2. 26 – Diagrama de Sequência Gerar Multa. Fonte: Elaborado pelos autores, 2013.
2.3.3.9 Renovar Empréstimo
O funcionário possui a funcionalidade de renovar o empréstimo por mais uma
semana, lembrando que a renovação só pode ser efetuada no dia marcado para a
devolução da obra.
Figura 2. 27 – Diagrama de Atividade Renovar Empréstimo. Fonte: Elaborados pelos autores, 2013.
45
Figura 2. 28 – Diagrama MVC Renovar Empréstimo. Fonte: Elaborado pelos autores, 2013.
Figura 2. 29 – Diagrama de Sequência Renovar Empréstimo. Fonte: Elaborado pelos autores, 2013.
2.3.3.10 Consultar Obra
O leitor consulta as informações e a disponibilidade das obras no acervo
bibliotecário, podendo classificar a pesquisa por nome, autor, editora e gênero.
46
Figura 2. 30 – Diagrama de Atividade Consultar Obra. Fonte: Elaborado pelos autores, 2013.
Figura 2. 31 – Diagrama de MVC Consultar Obra. Fonte: Elaborado pelos autores, 2013.
Figura 2. 32 – Diagrama de Sequência Consultar Obra. Fonte: Elaborado pelos autores, 2013.
47
2.3.3.11 Efetuar Login (Usuário Leitor)
Para desempenhar as prerrogativas fornecidas pelo sistema, o leitor deve
informar seu login e sua senha primeiramente. Após a autenticação o leitor será
capaz realizar as reservas das obras desejadas.
Figura 2. 33 – Diagrama de Atividade Efetuar Login (Usuário Leitor). Fonte: Elaborado pelos autores, 2013.
Figura 2. 34 – Diagrama de MVC Efetuar Login (Usuário Leitor). Fonte: Elaborado pelos autores, 2013.
48
Figura 2. 35 – Diagramas de Sequência Efetuar Login (Usuário Leitor). Fonte: Elaborado pelos autores, 2013.
2.3.3.12 Efetuar Reserva
O leitor registra ou cancela a reserva de títulos e quando registrada ou
cancelada, o status da obra deverá ser atualizado.
Figura 2. 36 – Diagrama de Atividade Efetuar Reserva. Fonte: Elaborado pelos autores, 2013.
49
Figura 2.37 – Diagrama de MVC Efetuar Reserva. Fonte: Elaborado pelos autores, 2013.
Figura 2.38 – Diagrama de Sequência Efetuar Reserva. Fonte: Elaborado pelos autores, 2013.
50
2.3.4 Projeto de Banco de Dados
Nesta subseção do segundo capítulo são apresentados como os dados estão
organizados e inseridos no banco de dados do sistema, por meio dos diagramas
relacional e lógico.
2.3.4.1 Diagrama de Dados (MER)
Figura 2.39 – Diagrama do Modelo Relacional do Banco de Dados. Fonte: Elaborado pelos autores, 2013.
51
2.3.4.2 Mapeamento para Modelo Relacional e Projeto Físico
Figura 2.40 – Diagrama do Modelo Lógico do Banco de Dados. Fonte: Elaborado pelos autores, 2013.
52
3 IMPLEMENTAÇÃO
Neste capítulo são apresentadas as páginas web utilizadas na interface
gráfica do sistema web do leitor e do funcionário da biblioteca, tendo em vista que
todas foram desenvolvidas em tecnologia JSP e estilizadas com CSS3.
3.1 PÁGINA DE ÍNICIO DO SISTEMA
Ao acessar o sistema no navegador web a primeira página a ser apresentada
na tela é a que se encontra na figura 3.1. Nesta página estão as informações
básicas do sistema que podem ser visualizados por qualquer usuário na web. É a
partir desta página que se tem acesso as demais funcionalidades, que são vetadas
para os usuários que não possuem cadastro no sistema e/ou que não trabalham na
biblioteca.
Figura 3.1 – Home Page do Funcionário. Fonte: Elaborado pelos autores, 2013.
O bloqueio que se dá aos usuários nas demais funcionalidades deve-se aos
campos de login e senha, apresentados detalhadamente na figura 3.2, que quando
preenchidos devidamente redirecionam o usuário paras as telas de sua respectiva
função.
53
Figura 3.2 – Login de Usuários. Fonte: Elaborado pelos autores, 2013.
3.2 INTERFACE GRÁFICA DO USUÁRIO
Nesta seção são apresentadas as páginas web do sistema na visão do
usuário leitor que possui cadastro na biblioteca.
3.2.1 Página Inicial do Usuário Leitor
Na figura 3.3 é apresentada a página principal utilizada pelo usuário leitor,
que permite o acesso às funcionalidades cabíveis a ele.
Figura 3.3 – Home Page do Leitor. Fonte: Elaborado pelos autores, 2013.
54
Nesta página o usuário pode visualizar os seus dados pessoais e aos livros
que reservou e que pegou como empréstimo no acervo de livros clicando nas
imagens apresentadas na tela. (figura 3.5)
Figura 3.4 – Visualizar Minhas Reservas. Fonte: Elaborado pelos autores, 2013.
Quando o leitor é inadimplente ao devolver o livro em atraso, aparece uma
mensagem que ele está bloqueado para fazer novos empréstimos e reservas na
biblioteca, como pode ser visto na figura 3.5.
Figura 3.5 – Visualizar Meus Empréstimos. Fonte: Elaborado pelos autores, 2013.
55
3.2.2 Página de Lista de Obras
Na figura 3.6, abaixo, é apresentada a listagem do acervo de livros no site.
Nota-se que ao lado de cada obra há um botão para visualizar a obra com mais
detalhes em outra página web.
Figura 3.6 – Listar Obras. Fonte: Elaborado pelos autores, 2013.
3.2.2 Página de Detalhes da Obra
Na página apresentada na figura acima redireciona o usuário leitor para a
página apresentada na figura 3.7 que traz todos os dados do livro selecionado, como
o nome da editora, a quantidade de páginas, o número de chamada no acervo da
biblioteca, o gênero literário e a sinopse; bem como a opção de selecionar a obra
para uma reserva na biblioteca.
56
Figura 3.7 – Página de Detalhes da Obra. Fonte: Elaborado pelos autores, 2013.
3.2.2 Reservar Obra
Como se pode ver na figura 3.8, é apresentada a página em que o usuário
visualiza quais os livros que o usuário selecionara para uma reserva. Podendo
adicionar outro ou remover algum antes de confirmar a reserva.
Figura 3.8 – Carrinho das Reservas. Fonte: Elaborado pelos autores, 2013.
57
3.2.2 Pesquisar no Acervo de Obras
Na figura 3.9 é apresentada, em maior detalhe, como o usuário leitor realiza
uma pesquisa no rol de obras da biblioteca, podendo fazê-la de acordo com o título,
o gênero literário, a editora e o nome do autor da obra. E na figura 3.10 apresenta o
resultado de uma pesquisa realizada pelo título da obra.
Figura 3.9 – Pesquisar no Acervo da Biblioteca. Fonte: Elaborado pelos autores, 2013.
Figura 3.10 – Resultado da Pesquisa. Fonte: Elaborado pelos autores, 2013.
58
3.3 INTEFACE GRÁFICA DO BIBLIOTECÁRIO
Nesta seção, são apresentadas as páginas web do sistema na visão do
administrador bibliotecário.
3.3.1 Página Inicial do Bibliotecário
Na Figura 3.11 é apresentada a página em que bibliotecário é redirecionado
após a inserção correta de seu login e senha no sistema, nesta tela concede-se
todas as funcionalidades do gerenciamento da biblioteca, como o controle dos
empréstimos e reservas e do cadastramento das obras e do leitor.
Figura 3.11 – Página Inicial do Bibliotecário. Fonte: Elaborado pelos autores, 2013.
3.3.2 Cadastrar e Listar Leitor
Na figura 3.12 é apresentada a página de cadastro de dados do leitor, com a
opção de buscar o leitor pelo nome; e na figura 3.13 apresenta-se o resultado da
busca, em que se pode visualizar os dados do leitor e as opções de deletá-lo ou de
alterar seus dados.
59
Figura 3.12 – Cadastrar Leitor. Fonte: Elaborado pelos autores, 2013.
Figura 3.13 – Apresentar Leitor. Fonte: Elaborado pelos autores, 2013.
Na figura 3.14, abaixo, é apresentada a tela que lista todos os leitores
cadastrados no sistema.
Figura 3.14 – Lista de Leitores. Fonte: Elaborado pelos autores, 2013.
60
3.3.3 Cadastrar Autores
Na figura 3.15 é apresentada a página de cadastro dos dados dos autores e
escritores das obras contidas no acervo, e na figura 3.16 apresenta-se como esses
dados são listados ao bibliotecário.
Figura 3.15 – Cadastrar Autor. Fonte: Elaborado pelos autores, 2013.
Figura 3.16 – Autores. Fonte: Elaborado pelos autores, 2013.
61
3.3.4 Cadastrar Editora
Na figura 3.17 é apresentada a página de cadastro das editoras dos livros e
na figura 3.18 é apresentada uma listagem das editoras cadastradas no sistema.
Figura 3.17 – Cadastrar Editora. Fonte: Elaborado pelos autores, 2013.
Figura 3.18 – Lista de Editoras. Fonte: Elaborado pelos autores, 2013.
3.3.5 Cadastrar Gênero Literário
Na figura 3.19 é apresentada a página de cadastramento dos gêneros
literários das obras.
Figura 3.19 – Cadastrar Gênero Literário. Fonte: Elaborado pelos autores, 2013.
62
Na figura 3.20 apresenta-se a página em que os gêneros inseridos no sistema
são listados para o bibliotecário.
Figura 3.20 – Gêneros Literários. Fonte: Elaborado pelos autores, 2013.
3.3.6 Cadastrar Obra
Na figura 3.21 apresenta-se a página de cadastro dos dados pertencentes à
obra, bem como na figura 3.22 apresenta-se estes dados com a opção de apagá-los
e alterá-los.
Figura 3.21 – Cadastrar Obra. Fonte: Elaborado pelos autores, 2013.
63
Figura 3.22 – Apresentar Obra. Fonte: Elaborado pelos autores, 2013.
O administrador bibliotecário também visualiza e pesquisa as obras no acervo
numa tela semelhante a do usuário leitor (figura 3.23), todavia ao selecionar a obra
será a tela apresentada na imagem anterior que ele será redirecionado.
Figura 3.23 – Lista de Leitores. Fonte: Elaborado pelos autores, 2013.
64
3.3.7 Página de Reservas
Na Figura 3.24, que se encontra abaixo, apresenta-se a página para as
funções disponíveis para as reservas de obras, que são visualizar uma reserva em
detalhes e listar todas as reservas efetuadas pelo usuário leitor.
Figura 3.24 – Página de Reservas. Fonte: Elaborado pelos autores, 2013.
Na figura a seguir, figura 3.25, encontra-se a página em que as reservas são
listadas. O funcionário seleciona a reserva para visualizá-la com maiores detalhes
para efetuá-la como empréstimo ou encerrá-la. (figura 3.26)
Figura 3.25 – Listar Reservas. Fonte: Elaborado pelos autores, 2013.
65
Figura 3.26 – Página de Visualizar Reserva. Fonte: Elaborado pelos autores, 2013.
Ao selecionar a opção de efetuar a reserva como empréstimo, o bibliotecário
irá inserir os dados para o empréstimo e confirmando a obra e o leitor pré-
estabelecidos pela reserva. (figura 3.27)
Figura 3.27 – Página Efetuar Reserva como Empréstimo. Fonte: Elaborado pelos autores, 2013.
3.3.8 Página de Empréstimos
Na figura 3.28 são apresentadas as funções para realizar um empréstimo de
uma obra no acervo. Além das funcionalidades comuns de efetuar, pesquisar e listar
os empréstimos, também apresenta-se a função atualizar as multas; que confere, ao
chamar uma stored procedure inserida no banco de dados, se a data de bloqueio do
leitor já passara. Se a data estipulada passou, então o leitor é liberado ao seu
acesso para realizar empréstimos e reservas.
66
Figura 3.28 – Página de Empréstimos. Fonte: Elaborado pelos autores, 2013.
A figura a seguir, figura 3.29, apresenta a página em que um empréstimo é
efetuado. Nesta página o funcionário seleciona o leitor e a obra e confirma a data do
empréstimo e a data posterior de sete dias para a devolução.
Figura 3.29 – Página de Efetuar Empréstimo. Fonte: Elaborado pelos autores, 2013.
Como se pode ver na figura 3.30, ao listar os empréstimos é apresentada a
opção de selecioná-los. E assim, na figura 3.31, quando o leitor atrasa com a
devolução da obra, apresenta-se o status de atraso no empréstimo com a opção de
multá-lo; e quando multado apresenta-se a data de desbloqueio do leitor.
67
Figura 3.30 – Página Listar Empréstimos. Fonte: Elaborado pelos autores, 2013.
Figura 3.31 – Página Apresentar Empréstimo. Fonte: Elaborado pelos autores, 2013.
Por fim, ao clicar na opção de “Atualizar Multas”, apresentada na figura 3.28,
o funcionário irá visualizar os leitores ainda multados. (figura 3.32)
Figura 3.32 – Página Empréstimos Multados. Fonte: Elaborado pelos autores, 2013.
68
CONSIDERAÇÕES FINAIS
Ultimamente, as pessoas não possuem muito tempo para atividades que
merecem cautela e até mesmo a lazeres. Bem como, a realização de uma boa
pesquisa, seja ela pessoal ou profissional, em um rol de livros de uma biblioteca se
torna complicada quando não se tem tempo a disposição. Com a utilização de um
recurso web que lista as buscas supriria essa adversidade cotidiana, e
conclusivamente, este fora nosso tema e objetivo para este trabalho de conclusão
de curso. Um sistema de gerenciamento web em que o frequentador da biblioteca
pode realizar suas pesquisas e reservar o livro que quiser.
A partir de pesquisas e das análises sobre o desenvolvimento web, buscou-se
atingir o objetivo deste trabalho, que fora conquistado com êxito, mesmo com umas
dificuldades técnicas que surgiram em pleno desenvolvimento, tais como: a
programação de Java em páginas web em conjunto com comandos SQL; e o
desenvolvimento de códigos de CSS para a formatação das páginas. Contudo, tais
dificuldades não alteraram o resultado final do que se buscava neste projeto, apenas
exigiram mais atenção no processo de desenvolvimento.
Com isso conclui-se que o sistema desenvolvido fora concluído com
satisfação e que possui condições para atuar como um gerenciador de negócios e
funcionalidades que uma biblioteca possui em sua organização, tendo em vista que,
além de possuir a integração com o cliente, o sistema interage com o bibliotecário
para que suas atividades de trabalho sejam mais fáceis e dinâmicas. O uso do
HTML5 se mostrou interessante, assim como a utilização da biblioteca jQuery, que
facilitou a implantação de certos recursos visuais para as páginas web. A conexão
entre os Servlets e as páginas JSP com o banco de dados Oracle fora inicialmente
trabalhosa e complicada, mas tal atividade se mostrou menos adversa com
pesquisas a novos materiais e de auxílios de professores experientes.
Também se chegou à conclusão de que o desenvolvimento de um sistema
de gerenciamento web com conexão a um banco de dados, assim como qualquer
outro sistema ou projeto, apresenta algumas dificuldades, que por ora, podem ser
grandes ou simples, mas que se tiver certa concentração e dedicação das partes
envolvidas no trabalho o resultado final será obtido satisfatoriamente.
69
REFERÊNCIAS BIBLIOGÁFICAS
ASTAH. Astah Professional. 2013. Disponível em:
<http://astah.net/editions/professional> Acesso em: 18 abr. 2013. BOTELHO, R. As novidades do HTML5. Devmedia. 28 mar. 2012. Disponível em:
<http://www.devmedia.com.br/as-novidades-do-html5/23992> CAMPOS, M. F. Iniciação do Java: com Orientação a Objetos. 2006. Disponível em: <http://www.camposmf.eti.br/java/apostila/IJava.pdf> Acesso em: 19 mar. 2013. CARVALHO, L. A. O que é jQuery? – Vivendo futuro com Liberdade. 2010.
Disponível em: <http://www.webulando.com.br/jquery/o-que-e-jquery> Acesso em: 16 abr. 2013. DEITEL, P.; DEITEL, H. Java: como programar. Tradução Edson Furmankiewicz. 8. ed. São Paulo: Pearson Prentice Hall, 2010. DUTRA, J. Bibliotecas planejam atividades para 2011. Prefeitura Municipal de Ibiporã, Ibiporã, 10 de fev 2011. Disponível em:
<http://www.novamaringa.mt.gov.br/Noticias/Biblioteca-municipal-solange-felix-da-silva-integra-pessoas-e-oferece-ensino-leitura-e-conhecimento-de-graca/> Acesso em: 12 mar. 2013. GAMA, M. Elmentos UML. Manual do Umbrella UML Modeller - KDE Documentation. 1 jun. 2013. Disponível em: <http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-elements.html> JAVA. O que é a tecnologia Java e por que é necessária?. 2013. Disponível em: <http://www.java.com/pt_BR/download/faq/whatis_java.xml> Acesso em: 20 mar. 2013. LAMOUNIER, H. Atividades básicas ao processo de desenvolvimento de Software. 2007. Disponível em: <http://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413> Acesso em: 04 abr. 2013. KERBER, C. B. Resumo do BABOK 2.0: A Análise de Negócios. 2009. Disponível em: <http://www.kerber.com.br/analise-de-negocios-BABOK-resumo-a-analise-de-negocios.php> Acesso em: 01 abr. 2013.
70
KURNIAWAN, B. Java para a Web com Servlets, Jsp e Ejb. 1. ed. Rio de Janeiro:
Ciência Moderna, 2002. NETBEANS. Características do Netbeans IDE. 2013. Disponível em:
<https://netbeans.org/features/ide/index.html> Acesso em: 20 mar. 2013. ORACLE. Oracle Database Express Edition 10g. 2013a. Disponível em:
<http://www.oracle.com/pls/xe102/homepage> Acesso em: 08 abr. 2013. _______. Java Servlet Technology Overview. 2013b. Disponível em:
<http://www.oracle.com/technetwork/java/javaee/servlet/index.html> Acesso em: 30 mar. 2013. PAMPLONA, V. F.. O que é Java? JavaFree.org, 10 out. 2009. Disponível em: <http://javafree.uol.com.br/artigo/871498/> Acesso em: 11 dez. 2011. PRESSMAN, R. S. Engenharia de Software - Uma Abordagem Profissional. 7. ed. Porto Alegre: Bookman, 2011. RICARTE, I. L. M. Interface entre Java e Banco de Dados Relacional. Faculdade de Engenharia Elétrica e de Computação da Universidade Estadual de Campinas (UNICAMP). Campinas, 15 out. 2002. Disponível em: <http://www.dca.fee.unicamp.br/cursos/PooJava/javadb/jdbc.html> Acesso em: 19 mar. 2013. SCHEMES, A. JSP. Tecnologia em Sistemas de Informação de informação –
Universidade do Estado de Santa Catarina (UDESC), 2011 <http://www.comp.ita.br/~gian/tes04/trabalhos/jsp-all.signed.pdf> Acesso em: 29 mar. 2013. SILVA, M. S. CSS e Padrões Web. Site do Maujor, 2012. Disponível em:
<http://www.maujor.com/index.php> Acesso em: 11 abr. 2013. SILVERMAN, M. The history of HTML5. Mashable. 17 jul. 2012. Disponível em:
<http://mashable.com/2012/07/17/history-html5/> Acesso em: 19 mar. 2013. TABELESS. Guia de Referencia de HTML5. 2 jan. 2012. Disponível em:
<http://tableless.com.br/guia-de-referencia-de-html5/#.UXd4dEpj_2k> Acesso em: 03 abr. 2013.
71
________. Visão Geral do HTML5. 2 jan. 2012. Disponível em:
<http://tableless.com.br/html5/?chapter=1> Acesso em: 14 dez. 2013. THOMAZ, M. Regras de negócio na Aplicação, no Banco de Dados ou no Servidor de Aplicação. 2009. Disponível em: <http://www.edudelphipage.com.br/opinioes/regras-sgdb-aplicacao-multicamadas/marcos-thomaz > Acesso em: 22 nov. 2013.
72
APÊNDICE A
Durante o processo de implementação e desenvolvimento deste trabalho de
conclusão de curso, algumas regras de negócios foram tratadas na camada do
banco de dados, ao invés de serem tratadas na camada da própria aplicação. Tal
meio de implementação fora utilizado pelo motivo dos autores terem optado por uma
estratégia de desenvolvimento mais simples e rápida, pois muito sobre a
manipulação de dados em comandos SQL foi-se abordada durante o período do
curso, o que gerou um conhecimento melhor e sobre tal manipulação.
Muito se discute sobre as vantagens e as desvantagens desse tipo de
desenvolvimento.
Segundo Thomas (2009), com uma centralização das regras de negócio no
banco, tanto faz qual a linguagem utilizada na aplicação, pois as regras podem ser
executadas independentemente da aplicação implementada, porém às vezes a
aplicação necessita muito do banco de dados, o que faz com que o acesso a ele
fique lento.
Neste apêndice é apresentado como as regras de negócios da biblioteca
foram centralizadas no banco de dados, por meio de Stored Procedures.
A.1 ENCERRAR RESERVAS NÃO REALIZADAS
Quando o leitor reserva uma obra, mas não comparece até a data máxima da
reserva para retirar a obra, e quando o administrador bibliotecário manda listar as
reservas, durante a listagem das reservas o servlet aciona o código abaixo presente
na DAO:
public boolean encerrarReserva(Reserva r) {
try {
criarConexao("{call cancelarReserva(?)}");
cs.setInt(1, r.getCodigo());
cs.execute();
cs.close();
con.close();
} catch (SQLException e) {
return false;
}
return true;
}
73
Este comando, por meio da biblioteca e conexão JDBC, consiste em chamar
uma Stored Procedure que seleciona na tabela as reservas que tem a data de
retirada anterior á data atual, e que exclui na tabela Reserva e ItemReserva as
reservas não realizadas. Tal procedure encontra-se no código a seguir:
create or replace PROCEDURE"CANCELARRESERVA"(codR number)
AS
data date;
codigo number;
BEGIN
SELECT r.dataretirada
INTO data
FROM reserva r
WHERE r.dataretirada < SYSDATE AND r.codigo = codR;
DELETE FROM itemreserva WHERE codigoreserva = codigo;
DELETE FROM reserva WHERE codigo = codigo;
END;
A.2 BLOQUEAR LEITOR INADIMPLENTE
Ao multar o leitor que possui a entrega das obras de empréstimos atrasadas o
servlet aciona o método abaixo na DAO, que chama uma Stored Procedure no
banco de dados:
public boolean bloquearLeitor(int cod) {
try {
criarConexao("{call BLOQUEARLEITOR(?)}");
cs.setInt(1, cod);
cs.execute();
cs.close();
con.close();
} catch (SQLException e) {
return false
}
return true;
}
Na Stored Procedure, apresentada a seguir, é selecionado na tabela
Empréstimo o código do leitor e a data de devolução dos empréstimos cuja data de
devolução seja anterior à data atual; e logo após faz-se os cálculos que duplicam a
74
diferença entre a data que seria a devolução com a data atual; e adiciona a
diferença encontrada à data atual, encontrando assim a data de desbloqueio do
leitor que é inserida na tabela multa. Por fim, bloqueia-se o leitor com a alteração de
seu status na tabela.
create or replace PROCEDURE BLOQUEARLEITOR2 (codE number)
AS
dataDev date;
cod number;
Cleitor number;
de number;
Cobra number;
dataBloqueio DATE;
BEGIN
SELECT e.codigoleitor, e.datadevolucao
INTO Cleitor,dataDev
FROM emprestimo e
WHERE e.datadevolucao < SYSDATE AND e.codigo = codE;
SELECT (SYSDATE - (dataDev-1)) * 2 INTO de FROM DUAL;
SELECT (SYSDATE + de) INTO dataBloqueio FROM DUAL;
UPDATE multa SET databloqueio = dataBloqueio WHERE
codigoemprestimo = codE;
UPDATE leitor SET status = 1 WHERE codigo = Cleitor;
END;
A.3 DESBLOQUEAR LEITOR INADIMPLENTE
Ao selecionar a opção de atualizar multas, apresentada na figura 3.28, o
servlet aciona o método abaixo presente na DAO, que por sua vez aciona uma
stored procedure no banco de dados:
public boolean desbloquearLeitor(Emprestimo emp) {
try {
criarConexao("{call desbloquearleitor(?)}");
cs.setInt(1, emp.getCodigo());
cs.execute();
cs.close();
con.close();
} catch (SQLException e) {
return false; }
return true;}
75
Na Stored Procedure, apresentada logo abaixo, seleciona-se as multas cuja
data de bloqueio é anterior à data atual, portanto o leitor tem o seu status alterado,
sendo assim desbloqueado para realizar empréstimos e reservas no sistema.
create or replace PROCEDURE "DESBLOQUEARLEITOR" (codE number)
AS
dataDev date;
cod number;
Cleitor number;
Cemp number;
BEGIN
SELECT e.codigo,e.codigoleitor, m.codigoemprestimo
INTO cod,Cleitor, Cemp
FROM emprestimo e, multa m
WHERE m.databloqueio < SYSDATE AND e.codigo =
m.codigoemprestimo AND e.codigo = codE;
UPDATE leitor SET status = 0 WHERE codigo = Cleitor;
DELETE FROM itememprestimo WHERE codigoemprestimo = codE;
DELETE FROM emprestimo WHERE codigo = codE;
END;