Vous êtes sur la page 1sur 55

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOO CMARA.

EMILSON MARINHO SILVA JNIOR JACKELINE CLEMENTINO DA SILVA

SISTEMA DE GERENCIAMENTO BIBLIOTECRIO (SIGEB)

JOO CMARA-RN 2012

EMILSON MARINHO SILVA JNIOR JACKELINE CLEMENTINO DA SILVA

SISTEMA DE GERENCIAMENTO BIBLIOTECRIO (SIGEB)

Relatrio apresentado ao Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte - Cmpus Joo Cmara, como requisito parcial para concluso do Curso Tcnico Subsequente em Informtica, conforme regulamento da Instituio.

Professor Orientador: MSc. Joo Maria Arajo do Nascimento.

JOO CMARA-RN 2012

EMILSON MARINHO SILVA JNIOR JACKELINE CLEMENTINO DA SILVA

SISTEMA DE GERENCIAMENTO BIBLIOTECRIO (SIGEB)

Relatrio apresentado ao Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte - Campus Joo Cmara, como requisito parcial para concluso do Curso Tcnico Subsequente em Informtica, conforme regulamento da Instituio.

Aprovado em: ___/___/___.

BANCA EXAMINADORA

_____________________________________ MSc. Joo Maria Arajo do Nascimento Orientador Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte.

_____________________________________ MSc. Fbio Augusto Procpio de Paiva Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte.

_____________________________________ Edmilson Barbalho Campos Neto Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte.

"O valor de todo o conhecimento est no seu vnculo com as nossas necessidades, aspiraes e aes; de outra forma, o conhecimento torna-se um simples lastro de memria, capaz apenas - como um navio que navega com demasiado peso - de diminuir a oscilao da vida quotidiana." (V. O. Kliutchevski, s.n)

RESUMO O presente relatrio aborda sobre o desenvolvimento de um sistema em Javapara ogerenciamento bibliotecrio em desktop, isto , um software que realiza suas funcionalidades no computador sem a necessidade de internet. O projeto foi denominado como SIGEB (Sistema de Gerenciamento Bibliotecrio). Para que o sistema fosse desenvolvido com base nas funcionalidades de uma determinada biblioteca, o projeto foi implementado a partir da Biblioteca Professora Maria das Vitrias Silva Vilar estabelecidana Escola Estadual Francisco de Assis Bittencourt, escola da rede pblica de ensino, situada na cidade de Joo Cmara no estado do Rio Grande do Norte (RN).O propsito do desenvolvimento do sistemanessa biblioteca foi planejado para atender as suas reais necessidades que so os processos de cadastros de obras, emprstimos, reservas e devolues, assim como, o cadastro de alunos, funcionrios e das pessoas que no esto vinculadas escola, mas tm acesso biblioteca, pois esta aberta comunidade. O projeto tambm foi realizado para proporcionar um progresso no controle do acervo, assim como, viabilizar a automatizao, segurana, a manuteno de registro e agilidade nas atividades rotineiras. O sistema foi desenvolvido na linguagem de programao Java, utilizando o frameworkHibernate para mapear as classes do sistema para o banco de dados, neste caso, o SQL Server 2008. O Hibernate foi usado para reduzir o tempo de desenvolvimento relacionado persistncia de dados e abstrair os cdigos SQL da aplicao, pois o framework Hibernate capaz de transformar as tabelas do banco de dados em objetos Java ou vice-versa e guardar os cdigos SQL no pacote de annotations. Quanto ao ambiente de desenvolvimento para a implementao do sistema, foi utilizado o NetBeans IDE 7.0, o qual serviu tanto para desenvolver os cdigos, quanto para o desenvolvimento da interface grfica. Aps finalizar o projeto, foi possvel abrir os horizontes quanto ao desenvolvimento de softwares que se trata de uma rea to intensa e profunda, com muitos recursos e ferramentas com o objetivo de auxiliar o desenvolvedor.

Palavras-chave: Linguagem Java.Sistema Bibliotecrio.Hibernate.

RESUMEN

Este informe se centra en el desarrollo de un sistema en Java para la gestin bibliotecaria para el software de desktop, es decir, que desempea sus funciones en su computadora sin internet. El proyecto se denomina como SIGEB (Sistema de Gerenciamento Bibliotecrio). Para que el sistema fue desarrollado en base a las caractersticas de una biblioteca particular, el proyecto se llev a cabo en la Biblioteca Professora Maria das Vitrias Silva Vilar establecido en la Escola Estadual Francisco de Assis Bittencourt, la educacin pblica, en la ciudad de Joo Cmara en el estado de Rio Grande do Norte (RN). El objetivo del desarrollo de este sistema de bibliotecas fue diseado para satisfacer las necesidades reales de los procesos que son registros de obras, prstamos, reservas y devoluciones, as como el registro de los estudiantes, de los funcionarios y las personas que no estn vinculados a la escuela pero tiene acceso a la biblioteca, pues es abierto a la comunidad. El proyecto se llev a cabo tambin para proporcionar un avance en el control del acervo, as como permitir la automatizacin, la seguridad, el mantenimiento de registros y la agilidad en las actividades de rutina. El sistema fue desarrollado en lenguaje de programacin Java, utilizando el frameworkHibernate para mapear clases a la base de datos del sistema, en este caso, SQL Server 2008. O Hibernate se utiliza para reducir el tiempo de desarrollo relacionados con la persistencia de los datos y la abstraccin del cdigo SQL de la aplicacin, ya que el frameworkHibernate es capaz de convertir las tablas de la base de datos en objetos Java o al contrario y guardar los cdigos SQL en paquete del anotaciones. En cuanto al entorno de desarrollo para la aplicacin del sistema, se utiliz el NetBeans IDE 7,0, que sirve tanto para desarrollar los cdigos, cmo desarrollar lo design del sistema. Despus de finalizar el proyecto, era posible abrir los horizontes para el desarrollo de software que se trata de un rea tan profunda e intensa, con muchas caractersticas y herramientas para ayudar a los desarrolladores.

Palabras clave: Lenguaje Java. Sistema Bibliotecario. Hibernate.

LISTA DE ILUSTRAES

Figura 1 - Cronograma de execuo das atividades Figura 2 - Principais casos de uso Figura 3 - Generalizao (Herana) entre as classes Figura 4 - Classes do sistema relativas ao acervo Figura 5 - Classes representativas das finalidades principais do sistema Figura 6 - Diagrama de Entidade e Relacionamento Figura 7 - Arquitetura de alto nvel do Hibernate Figura 8 - Arquitetura compreensiva do Hibernate Figura 9 - Arquitetura do Projeto Figura 10 - Arquitetura do modelo padro usado no projeto Figura 11 - Exemplo de classe Java com annotations: Funcionrio Figura 12 - Relacionamento muitos para muitos (M:N) entre Obra e Autor. Figura 13 - Cdigo-fonte para o relacionamento (M:N) entre Obra e Autor Figura 14 - Cdigo-fonte para o relacionamento (M:N) entre Autor e Obra Figura 15 - Cdigo-fonte da classe que contm as chaves primrias das tabelas Figura 16 - Cdigo-fonte da classe designada como PK Figura 17 Relacionamento um para muitos (1:N) Figura 18 Cdigo-fonte do relacionamento uma para muitos Figura 19 Relacionamento de muitos para um (N:1) Figura 20 Cdigo-fonte do relacionamento muitos para um na classe Reserva Figura 21 - Cdigo-fonte mostrando o annotation de herana para a superclasse Figura 22 - Cdigo-fonte mostrando o annotation de herana para a subclasse Figura 23 - Cdigo-fonte mostrando os annotations de herana para a subclasse

12 15 16 17 17 19 21 21 23 24 25 26 27 27 28 28 29 29 30 30 31 32 33

LISTA DE ABREVIATURAS E SIGLAS

API CRUD DAO IDE JDBC SGBD SQL UML XML

ApplicationPrograming Interface Create, Read, Update, Delete Data Access Object Integrated Development Environment Java Database Connectivity Sistema Gerenciador de Banco de Dados Structured Query Language Unified Modeling Language Extensible Markup Language

SUMRIO

1 2 3 4 5 5.1 5.2 5.3 6 6.1 7 7.1 7.2 7.3

INTRODUO10 CARACTERIZAO DO CAMPO EMPRICO12 PROCEDIMENTOS METODOLGICOS13 CRONOGRAMA DE ATIVIDADES14 LEVANTAMENTO DE REQUISITOS15 DIAGRAMA DE CASO DE USO15 DIAGRAMA DE ClASSE16 DIAGRAMA DE ENTIDADE E RELACIONAMENTO19 FUNDAMENTAOTERICA21 HIBERNATE21 PROJETO E IMPLEMENTAO24 ARQUITETURA DO PROJETO24 MAPEAMENTO DAS CLASSES DA APLICAO25 RELACIONAMENTOS ENTRE OBJETOS USANDO HIBERNATE27

7.3.1Relacionamento muitos para muitos (m:n)27 7.3.2Relacionamento um para muitos (1:n)30 7.3.3Relacionamento muitos para um (n:1)30 7.3.4 Herana31 8 9 EXPECTATIVAS FUTURAS35 CONCLUSES E RESULTADOS ........................................................................ 36

REFERNCIAS37 GLOSSRIO38 APNDICE A DIAGRAMA DE CASO DE USO39 APNDICE B DOCUMENTAO DO DIAGRAMA DE CASO DE USO40 APNDICE C DIAGRAMA DE CLASSE50

APNDICE D DIAGRAMA DE ENTIDADE E RELACIONAMENTO51 APNDICE E IMAGEMS DO CAMPO EMPRICO52 ANEXO A FICHA DE CADASTRO DE USURIOS53 ANEXO B FICHA PARA REALIZAO DE EMPRSTIMOS54

10 1 INTRODUO

O projeto foi elaborado durante a prtica profissional, no Curso Tcnico de Informtica Subsequente, no Instituto Federal de Educao, Cincia e Tecnologia do RN (IFRN), campus Joo Cmara. O documento apresentado tem como objetivo promover o desenvolvimento de um aplicativo em desktop destinado Biblioteca Professora Maria das Vitrias Silva Vilar da Escola Estadual Francisco de Assis Bittencourt, situada no municpio de Joo Cmara no estado do Rio Grande do Norte (RN), que atende alunos do ensino mdio no perodo matutino, vespertino e noturno. Visando um melhor controle do acervo e o bom atendimento aos usurios, assim como, viabilizar a automatizao, segurana e agilidade nas atividades rotineiras. Alm de atender as suas reais necessidades contemplando as suas diversas funcionalidades, tambm vai proporcionar a manuteno de registro de livros, assim como, o cadastro de alunos, funcionrios da instituio e pessoas que dela no fazem parte, destacando-se os processos de emprstimo, reserva e devoluo de obras cadastradas no sistema. A motivao para desenvolver um sistema para a biblioteca em questo foi proposto porque se observou a necessidade desta para efetuar suas funcionalidades bsicas com maior segurana e agilidade, pois essas funes estavam sendo feitas de modo no seguro, principalmente para o acervo da biblioteca, porque no feito cadastro e nem controle da quantidade de obras que a biblioteca possui e isto gera perdas de parte do acervo. O sistema de gerenciamento bibliotecrio ir contribuir para a comunidade, os alunos e, principalmente, a escola. Para a escola, esta contribuio retratada em trs quesitos fundamentais: no acesso amplo, j que se trata de uma biblioteca aberta comunidade, o acesso aumentar; na segurana, pois o acervo ter cadastro e controle de quantidade, assim como, os emprstimos sero efetuados de modo que os alunos tero punio se houver quebra na regra, pois atualmente a biblioteca no utiliza de maneira correta as puniespor causa da falta de estrutura tecnolgica, e, por fim, na melhoria do trabalho, ou seja, com o novo sistema os bibliotecrios efetuaro as funcionalidades de maneira mais rpida por causa da agilidade que o sistema ir propor, e consequentemente extinguindo aquela montona atividade de procurar fichas de cadastros e de emprstimos nas prateleiras de arquivos.Para a comunidade e os alunos da prpria instituio, a contribuio que o sistema ir trazer de segurana, porque para efetuar o emprstimo o

11 aluno deve confirmar sua identidade, isso deve ser feito para que o percentual de falsificaes seja diminudo. O desenvolvimento do sistema de gerenciamento bibliotecrio para desktop foi feito usando a linguagem Java, frameworkHibernate, por ser uma ferramenta que mantm o cdigo limpo com relao aos cdigos SQL e o banco de dados para a aplicao foi o SQL Server 2008. A plataforma de desenvolvimento utilizada foi NetBeans IDE 7.0.1. Quanto a sua estrutura, o relatrio est organizado da seguinte forma: no captulo 2 ser apresentada a caracterizao da biblioteca, foco do projeto.No captulo 3 sero expostos os procedimentos metodolgicos utilizados no desenvolvimento.No captulo 4 ser abordado o cronograma de atividades, demonstrando as atividades realizadas durante o processo de desenvolvimento e apresentando a ferramenta ClockingIT. No captulo 5 ser exposto o levantamento de requisitos apresentados na modelagem de diagramas que ilustram as funcionalidades do sistema. No captulo 6 ser discorrida a fundamentao terica a qual faz aluso do que foi necessrio estudar durante o desenvolvimento da prtica profissional, neste caso, o framework Hibernate. No captulo 7 ser exposto o projeto em si, ou seja, como o sistema foi implementado, mostrando a arquitetura do projeto, abordando o modelo padro seguido e o uso do Hibernate. No captulo 8sero abordados todos os trabalhos futuros que podero ser inclusos no sistema, focando a contribuio que ir causar. No captulo 9 sero expostas as concluses gerais e especficas de todo o trabalho feito, falando o que foi aprendido, como e o que contribumos ou o que acrescentamos para a escola.

12 2 CARACTERIZAO DO CAMPO EMPRICO

O desenvolvimento do sistema foi realizado tendo como campo de estudo a Biblioteca Professora Maria das Vitrias Silva Vilar edificada na Escola Estadual Francisco de Assis Bittencourt, situada no municpio de Joo Cmara/RN, atendendo desde ento, alunos do ensino mdio no perodo matutino, vespertino e noturno. A escola funciona atualmente com 15 salas de aula, sala da direo, secretaria acadmica, sala de professores, sala de leitura, sala de vdeo, sala de informtica, biblioteca, quadra de esportes, banheiros, cozinha, cantina e rea livre (ptio). Em relao biblioteca, foco do nosso trabalho, aberta para a comunidade,ou seja, esta poder frequentar a biblioteca normalmente e fazer suas pesquisas dentro do estabelecimento, podendo se cadastrar e realizar emprstimos. A biblioteca funciona em bom estado, ou seja, o ambiente bem ventilado, bem decorado com notcias e informativos, atende a necessidade dos alunos e da comunidade em relao ao processo de ensino e aprendizagem. O espao possui tambm equipamentos que auxiliam nas pesquisas dos alunos, tais como: computadores com acesso a internet. Tambm disponibiliza um acervo bastante variado, contendo: colees, literatura, dicionrios, enciclopdia, contos, poesias, obras regionais, entre outros. As obras so organizadas por sees. Seu funcionamento, em relao ao cadastro de usurios e o emprstimo de exemplares das obras so realizados manualmente com o preenchimento de uma ficha de cadastro, cada usurio cadastrado recebe uma carteirinha para poder realizar outros emprstimos. A renovao de cada exemplar s pode ser realizada uma vez, ou seja, o aluno tem um prazo de cinco dias para realiz-la, porm no h um controle eficaz. Em caso de perda ou roubo o mesmo ter que repor o exemplar com outro, mas como no h controle no cadastro das obras, dificilmente percebe-se a falta de algumas obras perdidas ou roubadas, sendo ento, a maior dificuldade encontrada no funcionamento da biblioteca.

13 3 PROCEDIMENTOS METODOLGICOS

De acordo com a proposta desta prtica profissional de desenvolver um sistema de gerenciamento bibliotecrio, o trabalho estruturou-se em trs fases: na primeira fase, foi realizada uma pesquisa bibliogrfica focando na linguagem Java e no framework Hibernate, o levantamento de requisitos, a criao e a modelagem dos diagramas de caso de uso, de classe e de entidade e relacionamento para auxiliar na especificao do sistema. A segunda fase, cujo objetivo programar e testar os cdigos, foi realizada a construo da interface grfica e a implementao dos cdigos do sistema. E na terceira e ltima fase, foi desenvolvido a elaborao do relatrio final da prtica e a apresentao do sistema. A UnifiedModelingLanguage (UML) contribuiu na construo e elaborao de diagramas para o desenvolvimento deste projeto, porque a UML proporciona uma forma padro para a preparao de planos de arquitetura de projetos de sistemas, incluindo os processos de negcios e funes do sistema" para Booch, Rumbaugh e Jacobson(2006). A partir deste conceito, foram modelados os Diagramas de Caso de Uso (DCU) e Diagrama de Classe (DC) com o objetivo de planejar e projetar como o sistema ir ser desenvolvido. Em relao estrutura lgica do banco de dados foi elaborado o Diagrama de Entidade e Relacionamento (DER) com o objetivo denotificarcomo os dados sero armazenados de acordo com o conceito do mundo real.

14 4 CRONOGRAMA DE ATIVIDADES

As atividades realizadas durante o processo de desenvolvimento foram organizadas e planejadas dentro de um cronograma. Veja na figura 1 as atividades propostas:
Figura 1 - Cronograma de execuo das atividades.

Durante a prtica das atividades foi utilizado um recurso chamado ClockingITcomo um auxlio para quebrar as atividades de alto nvel em etapas. O ClockingIT uma ferramenta de gerenciamento de projetos que permite um amplo controle das tarefas e metas a serem executadas em um tempo, o uso dessa ferramenta traz para a equipe organizao e conhecimento das atividades que esto sendo realizadas, pois o Clocking IT notifica por e-mail todos os desenvolvedores cadastrados. Em suma, este recurso disponibiliza uma coordenao referente ao tempo de atividade realizada, estipulao de prazos para as metas, possui registro das atividades em logs e relatrios, h uma linha do tempo que busca todas as tarefas e metas e apresenta um grfico que mostra o desempenho das tarefas executadas por cada desenvolvedor.

15 5 LEVANTAMENTO DE REQUISITOS

Levantamento de requisitos consiste em dominar a rea especfica que o software ser desenvolvido e entender as necessidades do cliente, dessa forma feita uma listagem das caractersticas e objetivos do sistema, por isso se torna importante para o desenvolvimento deste. Para fazer o levantamento das necessidades do cliente e entender o que o sistema vai automatizar, foi escolhida a tcnica de entrevistas, pois se trata de uma tcnica simples e mantm contato direto com o cliente o que possibilita uma maior compreenso do que ele precisa para seu sistema, diminuindo as chances de ser desenvolvido algo que no estava descrito nos requisitos. Na entrevista o cliente aponta quem so os usurios, quais as necessidades a serem solucionadas, em que ambiente funcionar o sistema, quais as funcionalidades que ele deseja e etc. Na anlise de requisitos para o desenvolvimento do sistema em questo, as funcionalidades principais apontadas foram: cadastro de usurios, cadastro de obras, editoras, autores e sees, realizao de emprstimos, reservas e devolues das obras cadastradas, listar obras, usurios, reservas, emprstimos, entre outros. Usando a modelagem de diagramas, os requisitos funcionais do sistema foram modelados em diagramas de caso de uso, diagrama de classes e diagrama de entidade e relacionamento.

5.1 DIAGRAMA DE CASO DE USO

Primeiramente, ser apresentado o diagrama de caso de uso, o qual apresenta os atores que fazem parte do sistema, alm de suas aes que so ilustradas por elipses denominadas de casos de uso. Na figura 2 so mostrados os atores: aluno, usurio externo que abrange todos aqueles usurios que no fazem parte da instituio de ensino, ou seja, o pblico de fora; funcionrio, e bibliotecrio, sendo que este o ator principal do sistema, pois realiza todas as aes. Analisando o diagrama, percebe-se que todos esses atores so generalizao do ator usurio, esse relacionamento foi utilizado porque o caso de uso que mostra a ao, confirmar a senha de acesso, deve ser realizada por todos os usurios, pois ao solicitar um emprstimo todo usurio deve enviar uma senha para o sistema confirmando sua identidade. Os casos de uso principais mostrados aqui so: cadastro, atualizao e excluso de usurios, obras, editoras, autores e sees, realizao de

16 emprstimos, reservas e devoluo, alm destes tambm so mostrados os casos de uso de confirmar senha de acesso, efetuar login, alterar senha e o efetuar punio sendo este realizado pelo sistema:
Figura 2 - Principais casos de uso.

5.2 DIAGRAMA DE CLASSE

Em sequencia, ser apresentado o diagrama de classe com intuito de mostrar as entidades que compe o sistema a ser desenvolvido, em nvel de design, atravs da modelagem de classes. A figura 3, a seguir, mostra a generalizao entre os usurios do sistema, ou seja, de acordo com o que visto na figura, as classes Aluno, Usurio Externo, Funcionrio e Bibliotecrio recebem atributos e operaes da classe Usurio, sendo assim um relacionamento de herana. Pode ser analisado tambm que a classe referente Bibliotecrio recebe o maior nmero de operaes, pois esta classe demonstra que o bibliotecrio o usurio responsvel por manusear todas as atividades do sistema.A nica operao comum a todos a de realizar a confirmaode acesso, esta operao de confirmar a identidade do usurio no ato de realizar um emprstimo ou uma reserva.

17
Figura 3 - Generalizao (Herana) entre as classes.

Na prxima figura, mostrada a generalizao dos tipos de obras, e as classes relacionadas ao acervo. Analisando a figura 4, observado que h um relacionamento de muitos para muitos entre autor e obra, ou seja, uma obra temvrios autores e um autor tem vrias obras.Tambm pode ser visto as associaes entre a classe Obra e as classes: Editora, Seo, e Exemplar.Este relacionamento atribui que uma obra possui uma seo, umaeditora, e vrios exemplares. Considerando as multiplicidades do relacionamento de associao entre as classes citadas, notado que uma seo e uma editora podem ter nenhuma ou muitas obras e a obra deve ter um exemplar ou um conjunto de exemplares. As classes que esto associadas CDDVD1, TrabalhosCientificos e Dicionrio foram criadas para manter o maior nvel de simplificao possvel, ento estas classes tm a

CDDVD est referenciando uma classe do sistema, a classe de Audiovisuais.

18 funo de demonstrar que o sistema possui controle no cadastro dos tipos relacionados a estes itens do acervo.
Figura 4 - Classes do sistema relativas ao acervo.

A seguir, as classes concernentes s funcionalidades do sistema podem ser vistas na figura 5:


Figura 5 - Classes representativas das finalidades principais do sistema.

19 Na figura 5, visto que o usurio solicita emprstimos e reservas de um exemplar de uma obra especfica, notado tambm que no h relacionamento direto das funes bsicas da biblioteca com a obra em si, ou seja, os emprstimos e reservas so realizados usando o exemplar da obra, sendo que cada obra est localizada em uma seo. Como o usurio pode realizar mais de um emprstimoe/ou reserva, a multiplicidade concernente s classes das funes bsicas e a classe Exemplar de muitos para muitos, isto , um emprstimo pode ter vrios exemplares e vice-versa. O mesmo ocorre com a reserva.

5.3 DIAGRAMA DE ENTIDADE E RELACIONAMENTO

Por fim, ser apresentado o diagrama de entidade e relacionamento, similar ao diagrama de classe, porm h diferenas entre ambos: o diagrama de classe possui um alto nvel de abstrao e apresenta o comportamento das classes por meio de mtodos. O diagrama de entidade e relacionamento essencial para arquitetar quais as tabelas que o banco de dados ir suportar de acordo com o sistema que ser implementado e ainda podem-se observar os relacionamentos entre as entidades que ser o apoio para a criao das classes Java no sistema que ser desenvolvido. Conforme podemos analisar (figura 6), h uma tabela Usurio que disponibiliza atributos para as tabelas Aluno, Usurio Externo, Bibliotecrio e Funcionrio, cada qual com suas caractersticas prprias e comuns, ento ambas recebero o ID2 de Usurio, assim temos um relacionamento de um para um, a mesma forma se aplica a tabela Obra e as tabelas que mostram os tipos de obras, como Livro, Revista, Enciclopdia, Dicionrio, Trabalho Cientfico e CDDVD. Podem-se observar tambm os relacionamentos entre as tabelas: Emprstimo e Exemplar; Reserva e Exemplar que possui multiplicidade de muitos para muitos, por exemplo, um emprstimo pode ter um ou mais exemplares, assim como a reserva, por isso a criao de uma tabela para cada relacionamento, esta tabela deve guardar as chaves primrias de cada tabela relacionada, isto vai refletir quando for feito o mapeamento objeto/relacional na aplicao com o banco de dados, pois em nvel de sistema, denota que um emprstimo pode conter no mnimo um exemplar ou uma coleo de exemplares, do mesmo modo ocorre com a reserva. Temos tambm as tabelas: Obra e Autor, que possuem

ID um atributo de banco de dados usado para identificar cadastros.

20 um relacionamento de muitos para muitos, e novamente criada outra tabela entre elas para conter os Ids das tabelas em questo, tambm visto os relacionamentos de um para muitos no caso das tabelas: Editora, Seo e Exemplar com seus respectivos relacionamentos com a tabela Obra como podemos observar na figura a seguir:
Figura 6 - Diagrama de Entidade e Relacionamento.

As tabelas que esto relacionadas com as tabelas CDDVD, TrabalhoCientifico e Dicionrio foram criadas para deixar o diagrama mais normalizado possvel, ou seja, aumentar o nvel de simplicidade para o controle do sistema, por exemplo, para cada trabalho cientfico h um tipo, o trabalho cientfico do tipo monografia, por exemplo. Para o caso de cadastro de CDDVD,existe a tabela que especifica o seu tipo, a qual vai mostrar que o item em questo pode ser um CD, DVD, Blu-ray, ou etc.

21 6 FUNDAMENTAO TERICA

Para iniciaro desenvolvimento de um sistema importante procurar ferramentas que auxiliem o trabalho deimplementao, seguindo esta concepo foi utilizado o Hibernate como ferramenta para diminuir o uso de cdigos de acesso ao banco de dados e os cdigos StructuredQueryLanguage (SQL3).

6.1 HIBERNATE

O Hibernate um framework para mapeamento objeto/relacional para projetos Java, ou seja, transforma tabelas do banco de dados em objetos Java ou vice-versa, abstraindo o cdigo SQL da aplicao. Alm do mais, de acordo com Galhardo Fernandes e Ferreira Lima (2007, p.08), o Hibernate tambm disponibiliza um poderoso mecanismo de consulta de dados, permitindo uma reduo considervel no tempo de desenvolvimento da aplicao. Para utilizar o Hibernate, basta adicion-lo no class path da aplicao, a plataforma de desenvolvimento NetBeans IDE 7.0.1, utilizada no desenvolvimento deste projeto, j possui o pacote de bibliotecas do Hibernate e seus recursos. Quando se trata de relacionamento entre os objetos da aplicao, este framework possui o Hibernate Annotations que facilita a vida do desenvolvedor, pois a partir dos annotations que so feitos os relacionamentos entre as classes Java. Alm disso, o Hibernate foi criado para que o nmero de arquivos necessrios para o mapeamento dos objetos fosse reduzido, j que sem o pacote Annotations necessrio criar um arquivo de mapeamento para cada tabela da base de dados utilizada, e com Hibernate Annotations basta adicionar as anotaes classe Java. A figura 7, a seguir, mostra a arquitetura de alto nvel do framework Hibernate, nela so apresentadas as camadas de aplicao, do Hibernate e a camada relativa ao banco de dados. Entre a camada de aplicao e do Hibernate h a camada com os objetos persistentes que abrange as classes DAO4 da aplicao. Analisando a estrutura, pode-se observar que a aplicao conectada ao banco de dados por meio de arquivos de configurao designados na camada do Hibernate.

3 4

SQL abordado como Linguagem de consulta estruturada, traduo para StructuredQueryLanguage. DAO um padro usado para persistncia de dados com o objetivo de delimitar as regras de negcios do sistema em si das regras de acesso ao banco de dados.

22
Figura 7 - Arquitetura de alto nvel do Hibernate.

Na prxima figura, apresentada a arquitetura compreensiva, assim denominada porque a abrangnciade toda a interface de negcio e persistncia, abstraindo a aplicao do JDBC e outras APIs adjacentes, assim o Hibernateexecuta o seu papel que abstrair os cdigos SQL:
Figura 8 - Arquitetura compreensiva do Hibernate.

23 A camada de negcio est situada acima da camada de persistncia, pois a sua responsabilidade manter asregras e solicitaes entre banco de dados e aplicao,ou seja, se comporta como cliente na camada de persistncia. Porm, segundo Galhardo e Lima (2007, p.08), vale salientar que algumas aplicaes podem no ter a separao clara entre as camadas de negcio e de persistncia.As principais interfaces so:Session, SessionFactory, TransientObjects, Transaction, TransactionFactory, PersistentObjects eConnectionProvider. A vantagem de utilizar o Hibernate est diretamente ligada ao percentual de reduo de trabalho relacionado persistncia. Segundo a documentao do Hibernate, mostrado que este diminui os cdigos SQL e, principalmente, o trabalho em 95%, por causa de sua arquitetura objeto/relacional, porm no vantajoso para aplicaes que,na maior parte de desenvolvimento, fazem uso de regras de negcios diretamente no banco de dadose usa muitasstored procedures, triggers, e etc.

24 7 PROJETO E IMPLEMENTAO

7.1 ARQUITETURA DO PROJETO

A figura 9, a seguir, mostra a arquitetura para o desenvolvimento do sistema de gerenciamento bibliotecrioproposto aBiblioteca Prof. Maria das Vitrias Silva Vilar situada na Escola Estadual Francisco de Assis Bittencourt:
Figura 9 - Arquitetura do Projeto.

A arquitetura do projeto mostra a camada de viso, a qual o usurio tem acesso; a camada de domnio, que contm todos os objetos relacionados de acordo com o banco de dados; a camada DAO, a qual faz referncia persistncia da aplicao, e por fim, a camada do Hibernate. Com base em padres de projeto, a arquitetura do sistema exibe um modelo padro, o qual tem como objetivo separar a lgica da interface do usurio, permitindo desenvolver e testar separadamente cada parte.No desenvolvimento do projeto seguido um modelo baseadono padro de projeto chamado MVC: Model, View e Controller. Portanto, descrito que o Model est relacionado com a camada de domnio, pois se trata do modelo da aplicao, o qual solicitado quando o usurio escolhe um evento no sistema. OView relativo camada de visoque se trata da interfacegrfica do usurioe o

25 Controller descreve a camada de controle dosistema, sendo esta composta por mtodos e eventos existentes na camada doHibernate e na camada DAO.A figura a seguir ilustra como as camadas da arquitetura do projeto esto dispostas no modelo baseado do MVC:

Figura 24 - Arquitetura do modelo padro usado no projeto.

Analisando a arquitetura do projeto descrita na figura 10, em nvel de relacionamento entre as camadas, observado que o Hibernate separa a viso, que a aplicao de interface do usurio, dobanco de dados, abstraindo os cdigos SQL e minimizando cdigos repetitivos.A camada DAO tem funo de cliente com relao camada de viso, pois ela que faz a conexo entre a aplicao e o Hibernate atravs dos annotations.Todos os mtodos de inserir, excluir, atualizar compostos no CRUD5 e outros mtodos da prpria aplicao esto dentro da camada DAO.Isto feito para que a camada de viso no fique sobrecarregada.

CRUD apontado como Create, Read, Update e Delete, ambos para designar as funes bsicas do banco de dados relacional.

26 7.2 MAPEAMENTODAS CLASSES DA APLICAO

Quando se trabalha com Hibernate necessrio fazer o mapeamento das classes, pois o banco de dados no reconhece dados orientados a objetos, portanto o mapeamento importante para criar um identificador no natural para que a base de dados possa reconhecer os dados e criar os relacionamentos. Ento, mapear significa relacionar cada tabela da base de dados a uma classe doprojeto, isto , buscar atravs da aplicao, as tabelas do banco de dados e transform-las em classes Java. H duas maneiras de fazer o mapeamento: via annotations ou XML, como foi descrito no captulo 7, especificamente na figura 11que mostra a arquitetura de alto nvel doHibernate, assim sendo, este possui dois arquivos para o mapeamentodo banco de dados. Para o desenvolvimento deste projeto foi utilizado o Hibernate Annotations, pois mais fcil e rpido de inserir o cdigo e, sobretudo, no preciso criar nenhum arquivo XML e nem qualquer outro arquivo. A figura abaixo mostra um exemplo de classe do projeto com mapeamento usando o annotations:
Figura 11 - Exemplo de classe Java com annotations: Funcionrio.

Observando

os

annotationspresentes

na

classe

ilustrada

na

figura

11,descrevem-se as seguintes definies: @Entity: o annotation que declara a classe como uma entidade persistente;

27 @PrimaryKeyJoinColumn: nomeia qual coluna a chave primria para a classe, neste caso, h uma herana entre a classe Usurio e Funcionrio, por isso, no annotation est especificado o ID de Usurio, ou seja, funcionrio herda atributos e operaes de usurio; @Table: define qual a tabela do banco de dados que ser mapeada, assim como define qual o banco de dados e o schema que essa tabela faz parte; @NamedQueries: so as queries SQL nomeadas para que no seja necessrio usar cdigos extensos de SQL dentro a aplicao; @Column: declara qual a coluna que ser mapeada.

7.3 RELACIONAMENTOS ENTRE OBJETOS USANDO HIBERNATE

Os relacionamentos tambm so definidos como associaes. Com o Hibernate-annotation possvel mapear todos os relacionamentos existentes entre as tabelas do banco de dados nas classes Java. Para tanto usado os seguintes annotations para definir o tipo de associao: @ManyToMany, @OneToMany, @ManyToOne.

7.3.1

Relacionamento muitos para muitos (m:n)

Um relacionamento de muitos para muitos definido com o annotation @ManyToMany. Para exemplificar este relacionamento, sero utilizadas duas classes da aplicao: a entidade Autor e Obra, pois no contexto do diagrama de entidade e relacionamento, a associao de que uma obra possui um ou vrios autores e vice-versa, sendo que necessrio o uso de outra classe para conter a chave primria de cada classe envolvida, desse modo:
Figura 12 - Relacionamento muitos para muitos (M:N) entre Obra e Autor.

28 Observando o relacionamento, a entidade Obra possui uma coleo de autores e vice-versa.O cdigo-fonte para este relacionamento na classe Obra feito da seguinte forma:
Figura 13 - Cdigo-fonte para o relacionamento (M:N) entre Obra e Autor.

Desde modo, pode ser observado que uma Obra possui uma coleo de autores e vice-versa. O

Analisando o cdigo-fonte, no annotation @ManyToMany definido o tipo de busca por meio do fetch = FetchType.LAZY, que significa que quando for solicitado uma busca o contedo ser trazido apenas uma vez. O @JoinTable indica qual a tabela conter as colunas de identificao para o relacionamento, essas colunas so definidas por @JoinColumn. O annotation @Cascade mostra o tipo de comportamento que a classe deve assumir quando for executada uma insero, atualizao ou excluso, o argumento utilizado foi o CascadeType.SAVE_UPDATE, informando que a ao para a classe com relao a outra ser apenas salvar e atualizar. No final, especificado que a classe recebe uma coleo de objeto do tipo Autor. Para a classe Autor, o cdigo-fonte inserido foi o mesmo, s mudou a posio da definio do @JoinColumn, pois importante analisar que primeiramente definidoa chave primria e depois a chave estrangeira. No annotation @JoinTable os atributos especificados so o nome da entidade que receber as colunas especificadas no @JoinColumn e o atributo inverseJoinColumns, especificando qual a chave estrangeira. Observa-se tambm que criada uma coleo para conter todos os objetos do tipo Obra:
Figura 25 - Cdigo-fonte para o relacionamento (M:N) entre Autor e Obra.

29 Na classe ObraAutor, criada por causa do relacionamento muitos para muitos, o cdigo-fonte :
Figura 15 - Cdigo-fonte da classe que contm as chaves primrias das tabelas.

Neste caso, a chave composta na classe ObraAutor que notificada pelo annotation @EmbeddedId. Essa chave composta faz referncia a classe ObraAutorPK que onde estaro guardadas as chaves primrias das duas classes em relacionamento, alm disso importante que esta classe seja implementada com a interface Serializable, pois indica a serializao das transaes feitas na aplicao. A figura 16 ilustra como so passados os identificadores das duas classes em outra classe, pois o Hibernate no suporta chave composta:
Figura 16 - Cdigo-fonte da classe designada como PK.

O annotation @Emdeddable significa que esta classe possui instncias que so armazenadas como uma parte inseparvel de uma entidade, ou seja, significa que a classe no persiste sozinha. Utiliza-se do annotation @ManyToOne para especificar um relacionamento de muitos para um, o que significa dizer que h muitas obras para um autor

30 e vice-versa, tambm usado o annotation @JoinColumn para informar qual a coluna referente a chave primria de cada classe, e por fim, o @Cascade com o atributo CascadeType.ALL, indicando que todas alteraes sero refletidas na entidade relacionada no banco de dados.

7.3.2

Relacionamento um para muitos (1:n)

Um relacionamento de um para muitos definido com o annotation@OneToMany. Para exemplificar este relacionamento, sero utilizadas duas classes da aplicao: a entidade TipoTrabalhoCientifico e TrabalhoCientifico, sendo que o relacionamento de um para muitos est na entidadeTipoTrabalhoCientifico, ou seja, um tipo de trabalho cientfico possui muitos trabalhos cientficos:
Figura 17 - Relacionamento um para muitos (1:N).

O cdigo-fonte do relacionamento na classe TipoTrabalhoCientifico implementado da seguinte forma:


Figura 18 - Cdigo-fonte do relacionamento uma para muitos.

Analisando o cdigo-fonte, o annotation@OneToMany possui um atributo chamado mappedBy para indicar qual o campo que tem o relacionamento com a entidade TrabalhoCientifico. Pode-se analisar tambm que neste relacionamento criada uma coleo que guardar todos os trabalhos cientficos.

7.3.3

Relacionamento muitos para um (n:1)

Um relacionamento de muitos para um definido com o annotation@ManyToOne. Para exemplificar este relacionamento, sero utilizadas duas classes da aplicao: a

31 entidade Reserva e Usurio, sendo que o relacionamento de muitos para um est na entidade Reserva, ou seja, muitas reservas so feitas por um usurio:
Figura 19 - Relacionamento de muitos para um (N:1).

O cdigo-fonte do relacionamento na classe Reserva definido da seguinte maneira:

Figura 20 - Cdigo-fontedo relacionamento muitos para um na classe Reserva.

Observando o cdigo fonte do relacionamento de muitos para um, no annotation@ManyToOne h um atributo que especifica o tipo de busca por FetchType.EAGER, o que significa que sempre que for solicitado uma busca da classe em relacionamento, os dados desta sero trazidos, isto , sempre que um usurio for listado, a reserva efetuada por este tambm ser trazida. O @JoinColumn indica a coluna a qual faz parte do relacionamento, ento a chave primria de Usurio ser a chave estrangeira na classe Reserva. O annotation@Fetch especifica com o atributo FetchMode.JOIN, que a consulta de Reserva ser feito por uma juno, ou seja, utiliza um Inner Join para carregar a coleo de usurios.

32 7.3.4 Herana

Se tratando de herana, o Hibernate utiliza de trs maneiras: Tabela por classe concreta: cada classe concreta mapeada para uma tabela diferente no banco de dados, sendo que em cada classe so definidas colunas para todos os atributos da classe, inclusive os atributos herdados; Tabela por hierarquia: a herana com este tipo mostra todas as classes mapeadas em uma nica tabela; Tabela por subclasse: mapeia cada tabela, inclusive a classe me, para tabelas que herdam seus atributos. Nesta aplicao foi utilizada a herana de tabela por subclasse, onde so mapeadas, definindo a superclasse e as subclasses. Para definir a classe me se usa o annotation @Inheritance. Para exemplificar a herana, sero utilizadas duas classes da aplicao: a entidade Obra e Livro, onde Obra definida como a superclasse e Livro,a subclasse. O cdigo-fonte da classe Obra mostrado na figura 21,nela, pode-se observar na linha grifada, que a herana definida pelo atributo JOINED, o qual especifica que a entidade referida a superclasse, a qual ir ceder atributos para as subclasses:
Figura 21 - Cdigo-fonte mostrando o annotation de herana para a superclasse.

33 Pode-se notar tambm o annotation@GeneratedValue, ele responsvel em determinar que o Id da classe ser auto incremental, como na aplicao usado banco de dados SQL Server 2008, o tipo de gerao vai se definido por GenerationType.IDENTITY. de grande importncia saber que este annotation no deve ser inserido nas subclasses, pois estas herdam a chave primria da superclasse. O cdigo-fonte da subclasse Livro ilustrado na figura 22:
Figura 22 - Cdigo-fonte mostrando o annotation de herana para a subclasse.

Na linha grifada mostrado o annotation@PrimaryKeyJoinColumn, definindo que a chave primria para a classe, neste caso, o cdigo da entidade Obra. Quando se definido que uma classe herdar atributos de uma superclasse importante que as subclasses tenham uma extenso para a superclasse e retirar os identificadores criados automaticamente no momento de mapear as tabelas do banco de dados, e no mtodo toString deve-se referenciar a classe, buscando o cdigo da superclasse. Veja a seguir o cdigo-fonte completo da entidade Livro:

34

Figura 23 - Cdigo-fonte mostrando os annotations de herana para a subclasse.

Na subclasse permanecem apenas os atributos que so referentes prpria classe, por exemplo, nesta subclasse Aluno, conservam-se os atributos indicativos ao nmero do volume e do ISBN. Isso ocorre pelo fato de essas caractersticas serem apenas para esta subclasse, ou seja, no se encaixa em todas as subclasses que recebem herana da superclasse Obra, um exemplo encontrado a subclasse Revista.

35 8 EXPECTATIVAS FUTURAS

As expectativas futuras aqui abordadas so relativas aos trabalhos futuros que seroacrescidosao sistema de gerenciamento bibliotecrio.Durante a prtica profissional foi apenas desenvolvidos os objetivos relacionados s funcionalidades bsicas do sistema, ou seja, controle de cadastro que abrange a insero, atualizao, excluso e leitura decomponentes, emprstimos, reservas e devolues. Os componentes descritos so usurios, obras, sees, editoras, autores e categorias. Os trabalhos futuros para o sistema desktop se resumem a: Gerao de relatrios PDF, caso seja necessrio fazer levantamentos no sistema, como, por exemplo, uma lista de todos os usurios devedores; Gerao de grficos para mostrar opercentual de emprstimos, reservas e devolues efetuadas por perodo mensal, anual ou semanal, onde o bibliotecrio ter um controle maior das funcionalidades dabiblioteca; Impresso de carteirinhas para certificar que o usurio j possui cadastrado na biblioteca, alm disso, o usurio poder inserir foto no ato do cadastro. A contribuio que estas modificaes podem trazer para a biblioteca mais segurana e controle. O sistema de gerenciamento bibliotecrio tambm foi conceituadopara ter suas funcionalidades Web. O sistema web disponibilizar aos usurios a realizao de reservas e renovaes online,facilitando e aumentando o acesso. Alm disso, os usurios podero ver todas as obras cadastradas no acervo da biblioteca, o que facilita nomomento da necessidade de pesquisa de obra para reserva, por exemplo. J que o usurio no tem acesso ao catlogo de obras do sistema desktop. A ideia de um desenvolvimento de uma aplicao Web mantida, pois como a biblioteca est situada na escola, esta pode aproveitar o sistema online para fazer divulgaes relacionadas educao ou notcias referentes a prpria escola, isso aumentar o nmero de usurios e, consequentemente o reconhecimento das atividades e trabalhos da escola.

36 9 CONCLUSES E RESULTADOS

Ter como campo de pesquisa a Biblioteca Professora Maria das Vitrias Silva Vilar, no s enriqueceu o nosso trabalho, como o tornou mais preciso e significativo, pois foi possvel ter um embasamento mais forte frente a essa prtica profissional. Pesquisar e estudar intensamente e acrescentar aos conhecimentos das prticas executadas em sala de aula aquilo que havamos buscado com a visita ao campo emprico facilitaram um pouco no desenvolvimento do sistema que, de certa forma, auxiliaram na melhor compreenso do trabalho como um todo. Ao fim deste relatrio compreendemos a real necessidade de modelar diagramas antes da implementao, pois ser esta ferramenta que auxiliar na relao entre o cliente e o projeto. Tambm, a importncia de um estudo mais profundo a respeito das ferramentas de trabalho, existe uma gama de frameworks, padres de projetos e metodologias que, portanto, cabe a cada um aplicar um tipo ao seu projeto para obter um melhor desempenho. Vale salientar tambm, a seriedade que devemos ter quanto ao

desenvolvimento, assim como um controle mais rgido atravs de metas de trabalho que devem ser alcanadas dentro de um prazo limite estabelecidas que nos ajudar no decorrer de todo o processo de desenvolvimento do sistema. Para conseguir um bom resultado no trabalho, o desempenho e a persistncia no entendimento de alguns contedos, no nosso caso mais precisamente o uso do hibernate, foram essenciais, pois para se alcanar um resultado esperado necessrio e preciso um conhecimento aprofundado sobre o que e como executar uma prtica de carter profissional. A escola escolhida para a aplicao do sistema foi de suma importncia, nela podermos no s realizar a implantao do sistema como tambm ajudar na melhoria e no acervo a biblioteca de maneira mais rpida e cmoda, e gerando uma maior segurana frente s obras disponveis para emprstimos e reservas. Contudo, foi plausvel, no primeiro momento, adquirir informaes tericas antes de realizar a implementao do sistema, conhecer mais a fundo outras ferramentas, recursos de trabalho, gerando uma maior preciso e eficcia na prtica apresentada. Apesar de alguns prs e contras que ocorreram durante esse processo, o xito foi alcanado, pois a ajuda do professor orientador foi de grande importncia para o resultado final e nos fez abrir os olhos a esta rea to intensa e profunda que o mundo da programao.

37 REFERNCIAS

Autores, V. Documentao do Hibernate 3.[s.d]. Disponvel em GUJ - Guia de Usurios Java: <http://www.guj.com.br/content/articles/hibernate/intruducao_hibernate3_guj.pdf>. Acesso em: 1 de Fev. de 2012. BOOCH, G.;RUMBAUGH, J.;JACOBSON, I. UML:guia do usurio.2 ed. Traduzido por F. Freitas da Silva; C. de Amorim Machado, Trads.) Rio de Janeiro: Elsevier, 2005. GALHARDO,Fernandes; R.; LIMA, G. A. Ferreira. Hibernate com Anotaes. Natal, 2007. HORSTMANN, C. Padres e Projetos Orientados a Objetos (2 ed.). Traduzido por B. Copstein. Porto Alegre: Bookman, 2007. MACHADO, Felipe Nery Rodrigues; ABREU, Maurcio P. deProjeto de Banco de Dados: uma viso prtica. So Paulo: tica, 1996. MABESI, Plnio.mabesi.com. [26 de Jul. de 2011]. Disponvel em: <http://www.mabesi.com/programacao-desktop/1-java/43-programacao-em-java-parainiciantes-com-bluej.html>. Acesso em: 1 de Mar. de 2012. MEDEIROS, Manoel Pimentel. JavaDoc: implementando documentao atravs do Netbeans. [20-?]. Disponvel em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=2495>. Acesso em: 20 de Fev. de 2012. NETO, A. Vicente de Paula. Disponvel em JavaFree.org: <http://www.javafree.org/>. Acesso em 12 de Fev. de 2012. PAIXO, Carlos Feliz. Disponvel em: Grupo de Usurios Java (GUJ) <http://www.guj.com.br>. Acesso em: 28 de Fev. de 2012. PRADO, S. Dicas de Carreira.[24 de Fev. de 2010]. Disponvel <http://sergioprado.org/2010/02/24/como-se-tornar-um-desenvolvedor-de-softwareembarcado/>. Acesso em: 24 de Fev. de 2012. em:

PILONE, D., & MILES, R. Use a cabea:desenvolvimento de software. Rio de Janeiro, Brasil: Alta Books, 2008. SABTOS, Ciro Meneses. Desenvolvimento de Aplicaes Comerciais com Java e NetBeans. Rio de Janeiro: Cincia Moderna Ltda, 2010. SIERRA, Kathy & BATES, Bert.Use a Cabea:Java. 2 ed. Rio de Janeiro, 2005. WINDER, R. R.; GRAHAM, R. Desenvolvendo Software em Java (3 Edio ed.). (A. J. Coelho Corra da Silva, Trad.) Rio de Janeiro: LTC, 2009.

38 GLOSSRIO

Column: declara qual a coluna que ser mapeada. Entity: anotao que declara a classe como persistente. Hibernate: framework para mapeamento objeto/relacional em Java, que abstrai o cdigo SQL da aplicao. Hibernate-annotations: responsvel por fazer o mapeamento. Hibernate-Configuration: responsvel em conter as propriedades. Model, View e Controller: Modelo, Viso e Controlador. NamedQueries: so as queries SQL nomeadas para que no seja necessrio usar cdigos extensos de SQL. PrimaryKeyJoinColumn: nomeia qual coluna a chave primria para a classe. Queries: consultas junto ao banco de dados. Session-factory: mantm o mapeamento objeto-relacional. Table: define qual a tabela do banco de dados que ser mapeada.

39 APNDICE A DIAGRAMA DE CASO DE USO

40

APNDICE B DOCUMENTAO DO DIAGRAMA DE CASO DE USO

Caso de Uso: Realizar Emprstimo Ator Principal: Bibliotecrio O usurio e a obra devem estar

cadastrados no sistema. O usurio deve Pr-condies: est sem punio, alm disso, para realizar o emprstimo, o usurio em questo deve ter uma senha de acesso e a obra no pode estar reservada. O usurio efetua apenas trs emprstimos por vez. Ps-condies: Entregar o exemplar na data estabelecida pelo sistema no ato do emprstimo que contada com dias teis. Caso contrrio, o sistema efetuar a punio por cada dia de atraso. Descrio: O usurio da biblioteca seleciona o exemplar desejado, solicita o emprstimo deste ao bibliotecrio. O bibliotecrio por sua vez, inseri os dados do usurio e do exemplar selecionado no sistema, o sistema, por sua vez, verifica se o usurio est cadastrado no sistema, se afirmativo, solicita a identificao do usurio que ser feita por meio de uma senha. Aps a verificao do usurio, o sistema obtm os dados do exemplar e verifica se este para emprstimo ou se trata do exemplar padro que permanece na biblioteca, se for cadastrado para emprstimo, o sistema verifica a disponibilidade, se estiver disponvel o emprstimo realizado com

41 sucesso, atualizando o status do exemplar emprestado para indisponvel. Se no estiver disponvel o usurio pode realizar uma reserva para o exemplar, caso este no tenha nenhuma reserva solicitada por outro usurio. Caso de Uso: Realizar Reserva Ator Principal: Pr-condies: Bibliotecrio O usurio e o exemplar devem estar cadastrados no sistema, assim como, o exemplar no deve estar reservado e o usurio no pode ter punio, alm disso, o usurio em questo deve ter uma senha de acesso. O nmero mximo de reservas que o sistema permite trs. Ps-condies: O sistema gera um prazo para buscar o exemplar reservado, caso contrrio, a reserva automaticamente cancelada. Descrio: O usurio solicita a reserva ao

bibliotecrio, o bibliotecrio, por sua vez, entra no sistema, inserindo os dados do usurio e do exemplar escolhido.

Primeiramente, o sistema verifica se h cadastro do usurio, se afirmativo, solicita a identificao do usurio, aps isso, confere se o exemplar est cadastrado para emprstimo ou se trata do exemplar padro que permanece na biblioteca, e por fim, se no possui reserva para outro usurio. Caso o exemplar esteja

disponvel, o sistema efetua a reserva com sucesso, atualizando o status do exemplar para indisponvel para reserva.

42 Caso de Uso: Realizar Devoluo Ator Principal: Pr-condies: Bibliotecrio O sistema deve verificar se o emprstimo foi efetuado e se o prazo estabelecido para a devoluo est em dia. Ps-condies: O usurio pode efetuar um novo

emprstimo, se no estiver punido por causa do atraso na entrega do exemplar para a biblioteca. Descrio: O usurio entrega o exemplar ao

bibliotecrio que solicita a devoluo ao sistema que, por sua vez, atualiza o status do exemplar para disponvel e efetua a punio, caso o usurio no tenha devolvido o exemplar na data especificada na nota de emprstimo. Caso de Uso: Efetuar Punio Ator Principal: Pr-condies: _______________________ Verificar se o exemplar est em atraso, assim que a devoluo solicitada. Ps-condies: Efetuar a punio/multa com dias sem realizar emprstimos. Descrio: No ato da devoluo, o sistema verifica se o exemplar devolvido na data

especificada na nota de emprstimo, se afirmativo, a punio no ocorre. Se negativo, o sistema efetuar a penalidade, buscando a data da devoluo prevista no ato do emprstimo e a data de devoluo efetiva. No clculo dos dias de atraso sero contados a partir do primeiro dia aps a data estabelecida para a devoluo.

43 Caso de Uso: Realizar Confirmao com Senha de Acesso Ator Principal: Pr-condies: Usurio O usurio deve ter uma senha de acesso cadastrada no sistema, este cadastro feito quando o usurio for inserir seus dados no sistema para ter acesso s funcionalidades da biblioteca. Ps-condies: Com a senha de acesso cadastrada o usurio pode efetuar emprstimos e reservas. Descrio: Quando o usurio solicitar o emprstimo, o bibliotecrio pesquisa o nome do usurio, o sistema solicita uma senha para confirmar a identificao do usurio. O usurio, por sua vez, inseri sua senha de acesso, o sistema analisa se a senha confere com os dados descritos e faz a liberao do emprstimo se o usurio e senha coincidirem. Caso de Uso: Efetuar Login Ator Principal: Pr-condies: Bibliotecrio O bibliotecrio deve estar cadastrado no sistema. Ps-condies: Monitorar o sistema, podendo inserir, atualizar e remover dados. Assim como, gerar relatrios, realizar emprstimos, reservas e devolues solicitadas pelo usurio. Descrio: O bibliotecrio insere seu login e senha. O sistema constata se o login e senha conferem para o usurio corrente, se sim o sistema liberado, se no o sistema

44 apresenta uma caixa de dilogo

informando ao bibliotecrio que a senha e login no coincidem e/ou o mesmo no est cadastrado. Caso de Uso: Alterar Senha Ator Principal: Pr-condies: Bibliotecrio O usurio esquecer sua senha de acesso ou solicitar uma nova senha. Ps-condies: O usurio fica apto para realizar

emprstimos e reservas, opcionalmente. Descrio: Esta ao acionada caso o usurio esquece sua senha ou necessita mud-la. Quando o usurio solicita a alterao de senha, o bibliotecrio busca os dados no sistema e solicita uma alterao ao sistema, este responde, enviando uma mensagem de concluso com sucesso. Caso de Uso: Inserir Dados Ator Principal: Pr-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. Ps-condies: O cadastro pode ser realizado aps a autenticao do usurio. Descrio: Um novo usurio solicita o cadastro ao bibliotecrio que preencher a janela de cadastro e solicitar ao sistema a insero de novos dados, o sistema, por sua vez, pega os dados colocados na tela e lana-os ao banco de dados. Caso de Uso: Atualizar Dados Ator Principal: Pr-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema.

45 Ps-condies: A atualizao de dados pode ser feitas depois que a autenticao do usurio confirmada. Descrio: Um usurio j cadastrado no sistema solicita ao bibliotecrio a atualizao de seus dados cadastrados no sistema, o bibliotecrio abre a tela de atualizao, pesquisa o usurio em questo e solicita ao sistema a atualizao dos dados, o sistema, por sua vez, busca o usurio no banco de dados e faz a atualizao dos dados. Caso de Uso: Excluir Dados Ator Principal: Pr-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. Ps-condies: A excluso pode ser realizada aps a autenticao do usurio. Descrio: O usurio que estiver inativo no sistema ser excludo do mesmo. O bibliotecrio abre a tela de listagem de usurios, pesquisa o usurio e solicita a excluso dos dados do usurio inativo ao sistema, o sistema, por sua vez, apaga do banco de dados todas as informaes do usurio inativo solicitado. Caso de uso: Gerar Relatrio Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve ter usurio e senha cadastrados no sistema. Depois da autenticao do login, o bibliotecrio pode gerar qualquer tipo de relatrio. O bibliotecrio solicita um relatrio especificando o tipo que

46 deseja gerar, isto , se quer gerar relatrio de usurios, autores, sees, obras, categorias, reservas ou emprstimos. Caso de uso: Listar Usurio Ator principal: Pr-condies: Ps-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de usurios, o sistema abre uma Descrio: tela mostrando as possveis listagens se por aluno, funcionrio, bibliotecrio, usurio externo ou listar todos os usurios. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Usurios Com Pendncias Ator principal: Pr-condies: Ps-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de usurios com pendncias, o Descrio: sistema abre uma tela para que o bibliotecrio faa a escolha do tipo de listagem se por aluno, funcionrio, bibliotecrio, usurio externo ou listar todos os usurios pendentes. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Usurios Devedores Ator principal: Pr-condies: Ps-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de usurios devedores, o sistema abre uma tela mostrando as possveis listagens se por Descrio: aluno, funcionrio, bibliotecrio, usurio externo ou listar todos os usurios devedores. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Obras Ator principal: Pr-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema.

47 Ps-condies: Descrio: _______________________ O bibliotecrio solicita relatrio de obras, o sistema abre uma tela mostrando as possveis listagens se por livros, revistas, dicionrios, enciclopdias, trabalhos cientficos, CDs e DVDs ou listar todas as obras. Alm disso, o bibliotecrio poder listar o tipo de item por autor, ttulo, editora, seo ou ano de edio. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Obras Disponveis Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de obras disponveis, o sistema abre uma tela mostrando as possveis listagens se por livros, revistas, dicionrios, enciclopdias, trabalhos cientficos, CDs e DVDs ou listar todas as obras. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Obras Reservadas Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de obras reservadas, o sistema abre uma tela mostrando as possveis listagens se por livros, revistas, dicionrios, enciclopdias, trabalhos cientficos, CDs e DVDs ou listar todas as obras que esto com status reservado. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Obras Emprestadas Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita relatrio de obras emprestadas, o sistema abre uma tela mostrando as possveis listagens se por livros, revistas, dicionrios, enciclopdias, trabalhos cientficos,

48 CDs e DVDs ou listar todas as obras que esto com status indisponvel. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Autores Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita a listagem dos autores cadastrados, o sistema gera um arquivo PDF. Caso de uso: Listar Sees Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita a listagem das sees cadastradas, o sistema gera um arquivo PDF. Caso de uso: Listar Tipo CDDVD Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita a listagem das categorias cadastradas para especificar qual o tipo da multimdia, o sistema gera um arquivo PDF. Caso de uso: Listar Idioma Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita a listagem de idiomas cadastrados, o sistema gera um arquivo PDF. Caso de uso: Listar Tipo Trabalho Cientfico Ator principal: Pr-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema.

49 Ps-condies: Descrio: _______________________ O bibliotecrio solicita a listagem dos tipos de trabalhos cientficos cadastrados, o sistema gera um arquivo PDF. Caso de uso: Listar Reservas Ator principal: Pr-condies: Ps-condies: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________

O bibliotecrio solicita a listagem de reservas realizadas. O Descrio: sistema mostra uma tela para que o bibliotecrio faa a escolha do perodo (Semanalmente, mensalmente ou anualmente) ou listar todas as reservas. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF. Caso de uso: Listar Emprstimos Ator principal: Pr-condies: Ps-condies: Descrio: Bibliotecrio O bibliotecrio deve efetuar login no sistema. _______________________ O bibliotecrio solicita a listagem de emprstimos realizados. O sistema mostra uma tela para que o bibliotecrio faa a escolha do perodo (Semanalmente, mensalmente ou anualmente) ou listar todos os emprstimos. O bibliotecrio faz a escolha e o sistema gera um arquivo PDF.

50 APNDICE C DIAGRAMA DE CLASSE

51

APNDICE D DIAGRAMA DE ENTIDADE E RELACIONAMENTO

52 APNDICE E IMAGEMS DO CAMPO EMPRICO Biblioteca Professora Maria das Vitrias Silva Vilar

53 ANEXO A FICHA DE CADASTRO DE USURIOS

54 ANEXO B FICHA PARA REALIZAO DE EMPRSTIMOS

Vous aimerez peut-être aussi