UNIÃO EDUCACIONAL MINAS GERAIS S/C LTDA FACULDADE DE CIÊNCIAS APLICADAS DE MINAS Autorizada pela Portaria nº 577/2000 – MEC, de 03/05/2000 BACHARELADO EM SISTEMAS DE INFORMAÇÃO TRABALHO DE FINAL DE CURSO BIBLIOTECA ONLINE Projeto Funcional MARCIO DE OLIVEIRA 2004 ii MARCIO DE OLIVEIRA BIBLIOTECA ONLINE Projeto Funcional Trabalho de Fim de Curso apresentado a UNIMINAS, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientador: Prof. Ms. Silvio Bacalá Júnior Uberlândia 2004 iii MARCIO DE OLIVEIRA BIBLIOTECA ONLINE Projeto Funcional Trabalho de Fim de Curso apresentado a UNIMINAS, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Banca Examinadora: Uberlândia, 10 de dezembro de 2004 _______________________________________ Prof. MSc. Silvio Bacalá Junior _______________________________________ Profª. DSc. Kátia Lopes Silva _______________________________________ Prof. Márcio dos Reis Caetano iv AGRADECIMENTOS Agradeço à minha querida esposa Elizene dos Reis Oliveira e minha pequena filha Mariana Reis OLiveira que ao longo destes 4 anos, abriu mão de uma grande parcela de nosso convívio familiar para que na faculdade eu pudesse me preparar para enfrentar uma nova realidade profissional vivida por mim. Agradeço aos meus pais e irmãos pelo incentivo, paciência e colaboração, aos funcionários e professores da Uniminas pelo apoio, especialmente agradeço ao meu orientador Prof. Msc. Silvio Bacalá Júnior que com muita dedicação contribuiu em minha formação pessoal e profissional, e aos colegas de curso pela amizade e companheirismo de sempre. v RESUMO Este trabalho tem como principal objetivo fazer um estudo sobre o desenvolvimento de um Web site. É um projeto audacioso que apenas está no começo, e ao seu final irá contribuir facilitando a vida de alunos e professores. Estudos mostram que tornar a Biblioteca acessível via Web é um sonho realizável que dará muito trabalho mas que vai trazer um diferencial a Uniminas depois de sua conclusão. Certamente, após alguns aspectos pode-se pensar além deste projeto e objeto de futuras monografias, o desenvolvimento de um programa para o controle total da biblioteca, uma necessidade identificada junto à coordenadora da Biblioteca. Palavras chave: Trabalho, Objetivo, Desenvolvimento, Web site, Diferencial, Programa, Controle total. vi ABSTRACT This project has as main objective to do a study on development of a web site. It is an audacious project that is just in the beginning, and at its end, it will contribute facilitating the students' and teachers’ life. Studies show that to turn the Library accessible by Web it is a realizable dream that will give a lot of work but that will bring differential to Uniminas after its conclusion. Certainly, after some aspects it can be thought besides this project and object of future monographs, the development of a program for the total control of the library, an identified necessity to of the Library’s coordinator. Keywords: Project, Objective, Development, Web site, Differential, Program, Total control. vii Sumário p. RESUMO.......................................................................................................................... v ABSTRACT..................................................................................................................... vi LISTA DE FIGURAS ....................................................................................................... x LISTA DE ABREVIATURAS.......................................................................................... xi CAPITULO 1 – Introdução.................................................................................................... 1 CAPITULO 2 – História ........................................................................................................ 3 2.1– O computador......................................................................................................... 4 2.2 - A Internet............................................................................................................... 5 2.3 – A Biblioteca Informatizada.................................................................................... 6 CAPITULO 3 – Conceitos e Definições................................................................................. 8 3.1 – O Projeto ............................................................................................................... 9 3.2 – Tecnologias para o desenvolvimento de aplicações web ...................................... 11 3.2.1 – HTML .............................................................................................................. 12 3.2.2 – CGI .................................................................................................................. 12 3.2.3 – ISAPI e NSAPI................................................................................................. 12 3.2.4 – ASP .................................................................................................................. 13 3.2.5 – PHP .................................................................................................................. 13 3.2.6 – JAVA ............................................................................................................... 14 3.2.7 – APPLETs e SERVLETs ................................................................................... 14 CAPITULO 4 – A Biblioteca Uniminas ............................................................................... 15 4.1 – Funcionalidades................................................................................................... 18 CAPITULO 5 – O projeto Online ........................................................................................ 20 5.1 – Diagramas de casos de uso .................................................................................. 20 5.1.1 – Atores............................................................................................................... 20 5.1.2 – Casos de uso ..................................................................................................... 21 5.2 – Requisitos funcionais do projeto .......................................................................... 23 5. 2 .1 - Nome: Consultar Livro ................................................................................... 24 5. 2 .2 - Nome: Consultar Fitas de vídeo...................................................................... 24 5. 2 .3 - Nome: Consultar CD ...................................................................................... 25 5. 2 .4 - Nome: Consultar Folhetos .............................................................................. 25 5. 2 .5 - Nome: Consultar Artigos ................................................................................ 25 5. 2 .6 - Nome: Consultar Periódicos ........................................................................... 25 viii 5. 2 .7 - Nome: Consultar Dissertação ......................................................................... 26 5. 2 .8 - Nome: Consultar Teses e Monografias ........................................................... 26 5. 2 .9 - Nome: Efetuar Empréstimo ............................................................................ 26 5. 2 .10 - Nome: Reservar Acervo ............................................................................... 28 5. 2 .11 - Nome: Validar Usuário................................................................................. 29 5. 2 .12 - Nome: Devolver Empréstimo ....................................................................... 29 5. 2 .13 - Nome: Renovar Empréstimo......................................................................... 30 5. 2 .14 - Nome: Atualizar usuário............................................................................... 31 5. 2 .15 - Nome: Atualizar Acervo............................................................................... 32 5. 2 .16 - Nome: Incluir Acervo................................................................................... 32 5. 2 .17 - Nome: Cadastrar Usuário.............................................................................. 33 5. 2 .18 - Nome: Cadastrar Funcionário ....................................................................... 34 5. 2 .19 - Nome: Gerar Multas ..................................................................................... 34 5. 2 .20 - Nome: Gerar Notificação.............................................................................. 35 5. 2 .21 - Nome: Bloquear Usuário .............................................................................. 36 5.3 – Diagramas de Interação ...................................................................................... 36 5.3.1 – Diagramas de Seqüência .................................................................................. 37 5.3.2 – Diagramas de Colaboração .............................................................................. 37 5.3.3 – Diagramas de Seqüência versus Diagramas de Colaboração............................. 38 5.3.3.1 - Nome: Consultar Livro .................................................................................. 38 5.3.3.2 - Nome: Consultar Fitas de vídeo..................................................................... 39 5.3.3.3 - Nome: Consultar CD ..................................................................................... 39 5.3.3.4 - Nome: Consultar Folhetos ............................................................................. 40 5.3.3.5 - Nome: Consultar Artigos ............................................................................... 40 5.3.3.6 - Nome: Consultar Periódicos .......................................................................... 41 5.3.3.7 - Nome: Consultar Dissertação......................................................................... 41 5.3.3.8 - Nome: Consultar Teses e Monografias .......................................................... 42 5.3.3.9 - Nome: Efetuar Empréstimo ........................................................................... 42 5.3.3.10 - Nome: Reservar Acervo............................................................................... 43 5.3.3.11 - Nome: Validar Usuário................................................................................ 43 5.3.3.12 - Nome: Validar Usuário................................................................................ 44 5.3.3.13 - Nome: Devolver Empréstimo ...................................................................... 44 5.3.3.14 - Nome: Renovar Empréstimo........................................................................ 45 5.3.3.15 - Nome: Atualizar Usuário ............................................................................. 45 ix 5.3.3.16 - Nome: Atualizar Acervo .............................................................................. 46 5.3.3.17 - Nome: Incluir Acervo .................................................................................. 46 5.3.3.18 - Nome: Cadastrar Usuário............................................................................. 47 5.3.3.19 - Nome: Gerar Multas .................................................................................... 47 5.3.3.20 - Nome: Gerar Notificação............................................................................. 48 5.3.3.21 - Nome: Bloquear Usuário ............................................................................. 48 CAPITULO 6 – Conclusão .................................................................................................. 50 REFERÊNCIAS BIBLIOGRÁFICAS............................................................................ 53 x LISTA DE FIGURAS p. FIGURA 1 - TELA DA PÁGINA DA UNIMINAS.............................................................................. 6 FIGURA 2 - DIAGRAMA DE SEQÜÊNCIA PARA O CASO DE USO VALIDAR USUÁRIO .................... 10 FIGURA 3 - DIAGRAMA DE ATIVIDADE PARA O CASO DE USO CADASTRAR LIVRO NOVO .......... 10 FIGURA 4 - DIAGRAMA DE CASOS DE USO DO SISTEMA BIBLIOTECA ....................................... 22 FIGURA 5 – DIAGRAMA DE CASO DE USO PARA O PACOTE CONSULTAR ACERVO ..................... 22 FIGURA 6 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR LIVRO .................................................... 38 FIGURA 7 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR FITAS DE VÍDEO ...................................... 39 FIGURA 8 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR CD......................................................... 39 FIGURA 9 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR FOLHETOS .............................................. 40 FIGURA 10 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR ARTIGOS .............................................. 40 FIGURA 11 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR PERIÓDICOS .......................................... 41 FIGURA 12 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR DISSERTAÇÃO....................................... 41 FIGURA 13 - DIAGRAMA DE SEQÜÊNCIA CONSULTAR TESES E MONOGRAFIAS ........................ 42 FIGURA 14 - DIAGRAMA DE SEQÜÊNCIA EFETUAR EMPRÉSTIMO............................................. 42 FIGURA 15 - DIAGRAMA DE COLABORAÇÃO RESERVAR ACERVO ........................................... 43 FIGURA 16 - DIAGRAMA DE SEQÜÊNCIA VALIDAR USUÁRIO................................................... 43 FIGURA 17 - DIAGRAMA DE COLABORAÇÃO VALIDAR USUÁRIO............................................. 44 FIGURA 18 - DIAGRAMA DE SEQÜÊNCIA DEVOLVER EMPRÉSTIMO .......................................... 44 FIGURA 19 - DIAGRAMA DE SEQÜÊNCIA RENOVAR EMPRÉSTIMO............................................ 45 FIGURA 20 - DIAGRAMA DE SEQÜÊNCIA ATUALIZAR USUÁRIO ............................................... 45 FIGURA 21 - DIAGRAMA DE COLABORAÇÃO ATUALIZAR ACERVO .......................................... 46 FIGURA 22 - DIAGRAMA DE SEQÜÊNCIA INCLUIR ACERVO ..................................................... 46 FIGURA 23 - DIAGRAMA DE COLABORAÇÃO CADASTRAR USUÁRIO ........................................ 47 FIGURA 24 - DIAGRAMA DE COLABORAÇÃO GERAR MULTAS ................................................. 47 FIGURA 25 - DIAGRAMA DE SEQÜÊNCIA GERAR NOTIFICAÇÃO ............................................... 48 FIGURA 26 - DIAGRAMA DE COLABORAÇÃO BLOQUEAR USUÁRIO .......................................... 48 xi LISTA DE ABREVIATURAS ASP – Active Server Pages CDU – Classificação Decimal Universal CGI – Common Gateway Interface COMUT – Programa de Comutação Bibliográfica do IBICT FGV – Fundação Getúlio Vargas FPU – Faculdade Politécnica de Uberlândia S/C LTDA HTML – Hyper Text Markup Language HTTP – Hyper Text Transfer Protocol IBICT – Instituto Brasileiro de Informação em Ciência e Tecnologia IE6 – Internet Explore 6 IP – Internet Protocol MEC – Ministério da Educação e Cultura PC – Personal Computer / Computador pessoal TCP – Transmission Control Protocol UFU – Universidade Federal de Uberlândia UML – Unified Modeling Language UNIMINAS – União Educacional Minas Gerais S/C LTDA UNITRI – Sociedade de Ensino do Triangulo S/C LTDA WWW – World Wide Web CAPITULO 1 – Introdução Foram três anos de estudos e sempre usando a biblioteca Uniminas, nos intervalos, antes das aulas ou mesmo aos sábados, convivendo com filas, demora e mais demora, livros emprestados e já com uma lista de espera, muitas vezes saindo da biblioteca de mãos vazias. Em uma noite assim, sem sucesso de conseguir o livro, depois de esperar em uma fila porque este se encontrava na lista de espera, surgiu a idéia de tornar a biblioteca desta instituição online, ou seja, levar a biblioteca para casa não só dos alunos e professores da Uniminas, mas de toda a comunidade. A biblioteca tendo um processo mais ágil de empréstimo, consulta e reserva de livros, periódicos e revistas, minimizando as filas e possibilitando ao aluno maior disponibilidade de tempo. Por meio deste recurso, poderá ser feita a pesquisa de quais livros a biblioteca dispõe, quais estão emprestados e quais estão na lista de espera, disponibilizando-se para reserva os livros disponíveis, bastando, para isso apenas a “Matricula” e “Senha”, cabendo ao aluno confirmar pessoalmente o empréstimo. Assim, a Uniminas ficará no mesmo nível de outras faculdades de Uberlândia, como UFU, UNITRI, FPU, que já disponibilizam este serviço à comunidade há algum tempo, ainda que no inicio e com algumas limitações. Neste estudo serão abordadas várias etapas no desenvolvimento de um sistema Web, desde o levantamento dos requisitos, passando pela análise e projeto, incluindo casos de uso, documentação de módulos e arquivos, diagramas, interfaces e diretrizes para a implementação. Este projeto está dividido em três partes: projeto gráfico, projeto de banco de dados e o projeto funcional que vai ser o foco desta pesquisa, em que será abordada a dificuldade em se trabalhar com as linguagens existentes e as soluções oferecidas pelo mercado, um breve histórico e os requisitos necessários para sua implementação, possibilitando que seja feita uma avaliação e com isso serem apresentadas melhorias. Esta pesquisa contém praticamente todas as informações relacionadas à matéria, divididas em quatro capítulos interligados. Seu principal intuito é primeiro desenvolver e colocar em prática o que foi aprendido, aprofundando um pouco mais no assunto; em segundo lugar é sanar um problema de filas e demora no atendimento ao aluno e colocar a biblioteca Uniminas acessível à comunidade pela Internet. 2 O trabalho está dividido da seguinte forma: O capitulo 2 traz um pouco de história, dando uma noção de como a evolução tecnológica está acelerada, os computadores, de máquina grande a dimensões cada vez menores, a Internet de um uso exclusivo militar à popularidade mundial e as bibliotecas de bem organizadas a sua informatização e acessibilidade via Internet. No capitulo 3 é realizado um estudo dirigido ao embasamento teórico em que serão apresentados conceitos e definições sobre linguagem, códigos e as ferramentas utilizadas na criação de uma página, como também o aprimoramento de uma já existente, que é o caso da Uniminas. A seguir no capitulo 4, é feita a apresentação da biblioteca Uniminas englobando os processos utilizados na consulta e empréstimo de livros e o sistema utilizado para este serviço. São relatados os requisitos funcionais da biblioteca da Uniminas, coletados a partir de entrevistas com a bibliotecária, funcionárias e com o responsável pelo programa hoje implantado na Faculdade. O projeto vem propor também, algumas sugestões, em busca de aprimoramento e maior qualidade nos serviços prestados pela biblioteca apontando caminhos para sua viabilização. O capitulo 5, tem o objetivo de fazer a demonstração dessas definições e inovações propostas, apresentando os passos, documentos, interfaces e códigos, bem como fundamentação e diretrizes para o desenvolvimento do projeto. A abordagem dos resultados obtidos bem como os objetivos alcançados e as necessidades identificadas a partir destes, dificuldades encontradas e o aprendizado utilizando-se da prática do que foi aprendido ao longo de quatro anos será tema do capitulo 6. 3 CAPITULO 2 – História A globalização da economia e o avanço tecnológico têm surpreendido muitas empresas, instituições e indivíduos. A resposta da sociedade às mudanças tem sofrido as influências desta “surpresa”. Tanto governo quanto o setor privado têm sido levados a tomar medidas rápidas a fim de se adequarem aos novos padrões sociais e econômicos. Agravou-se uma tensão entre vários parâmetros que, se não eram estáveis, não se pressupunha serem tão elásticos. Qualidade, redução de tempo e custos têm sido levados a extremos pelas mãos da tecnologia e a dicotomia expressa no ditado popular “a pressa é inimiga da perfeição” corre o risco de desaparecer. O cliente foi elevado ao topo da pirâmide de valores das empresas e do mercado e passa a exigir cada vez mais rapidez, qualidade e menores preços. Quem não estiver apto a oferecê-los em conjunto pode perder a corrida da sobrevivência. Essa “surpresa”, em parte tem seu fundamento. O aumento da velocidade da informação e as transformações sociais advindas não deixam dúvidas de que estamos já algum tempo no que tem sido comentado como a sociedade do conhecimento. A informação passa a ser a principal mercadoria deste inicio de século enquanto proliferam os meios de armazená-la e transmiti-la. O microcomputador transforma-se em eletrodoméstico e os satélites disseminam informações por todo o planeta. Todos assistimos um pouco perplexos à queda dos preços do hardware. Em contraposição, os custos com o desenvolvimento de aplicativos, os softwares, têm se mantido ou mesmo aumentado, gerando uma situação antagônica. As pressões dos clientes e o aumento da competitividade têm colocado muitas empresas em dificuldades. A solução não é mais apenas técnica. É também, e, principalmente, estratégica. O homem utilizou-se de diversos meios até hoje para armazenar e transmitir informações. Dos desenhos nas paredes das cavernas até os computadores, a informação adquiriu várias e diferentes dimensões. Este conceito é importante para nos desassociarmos da informação como palavra escrita e estarmos abertos para outras formas de comunicação existentes ou a serem criadas. É claro que a informação em sua dimensão gráfica desempenhou um papel importante na história humana, mas serviços como o www (World wide web) da Internet mostra que antigas formas de comunicação e tratamento da informação estão sendo resgatadas 4 sob nova ótica. A vantagem sobre a televisão é a rapidez na recuperação da informação como resultado da organização sistemática dos dados. 2.1– O computador Até fins da década de setenta os computadores estavam associados à idéia de máquinas grandes, de custo elevado e inacessível às pessoas comuns. E realmente eram. Embora indivíduos de maior poder aquisitivo pudessem adquiri-los, ninguém se dispunha a ocupar um enorme espaço físico (aproximadamente 100 m², fora os custos com piso falso para as fiações e com refrigeração), com uma máquina que pouco tinha a oferecer a nível doméstico. Apenas em empresas e instituições existiam os chamados mainframes ou computadores de grande porte. Em torno deles reunia-se um quadro de profissionais elitizado que contribuía para mantê-lo afastado do cidadão comum. Seus produtores eram poucos e grandes, mais preocupados em expandir seus mercados do que em desenvolver novas tecnologias. Os avanços tecnológicos levaram à criação dos circuitos integrados, mais conhecidos como chips, e através de um processo continuo de evolução, permitiram a criação de computadores cada vez menores e com poder de processamento elevado. O produto mais conhecido gerado por esta tecnologia é o microcomputador, também chamado de PC – Personal Computer/ (Computador Pessoal). Atualmente, as empresas fabricantes dos microprocessadores investem muito em pesquisas e novas tecnologias vêm surgindo com muito mais potência e preços mais competitivos e acessíveis. Estes investimentos têm reflexos imediatos em nossas vidas. Se nas novelas ele já garantiu seu papel como ator, em nosso cotidiano ele toma ares de protagonista: jornais anunciam vendas diariamente, conversamos com eles ao telefone, nos quiosques bancários, nos shoppings, os nossos filhos já utilizam este recurso nas escolas e, não raras vezes já se tornaram membros da família, aliados no trabalho e no lazer. A despeito dessas tendências humanóides, os computadores continuam a ser construídos em bases metálicas e plásticas. A chamada tecnologia plug-and-play, onde tudo o que você deveria saber era ligar o micro na tomada, ainda não é uma realidade. 5 2.2 - A Internet A Internet é uma rede, com mais de 30 anos de idade, que começou com os Estados Unidos vivendo uma real ameaça de ataque nuclear depois da instalação de mísseis russos em Cuba. A utilização de uma rede que interligava as bases militares foi à estratégia militar para proteger a comunicação em caso de ataque. Ela ligava máquinas diferentes entre si através de linhas redundantes de maneira que, mesmo que uma ou várias bases fossem reduzidas a pó, as outras estações ainda conseguiriam se comunicar entre si. Assim, Fidel Castro foi uma das pessoas que teve papel decisivo na criação da rede que interligou vários computadores em algumas universidades e centros de pesquisa envolvidos com projetos militares. Seus primeiros usuários foram os cientistas que usavam a rede para trocar mensagens de correio eletrônico e ligar-se remotamente a computadores distantes, tornando-se tão útil que as universidades envolvidas começaram a ligar seus departamentos, mesmo os que não tinham nada a ver com o projeto. Na década de 80, uma rede nacional de pesquisa dos Estados Unidos conectando os cinco grandes centros regionais de supercomputação passou a ser chamada de Internet e em pouco tempo já interligava os maiores centros de pesquisa do mundo. Em 1992 a Internet teve seu crescimento acelerado por razão da criação da World Wide Web que veio para finalmente organizar um pouco as informações. O maior problema na época que era a desorganização generalizada da rede. Hoje, devido a seu papel importante, a web é confundida com a própria Internet, da qual faz parte. Dessa forma, possui uma força única na historia das telecomunicações sendo capaz de servir de porta de entrada, não só a todos os serviços da Internet, mas também invadir a praia dos tradicionais serviços de voz (telefone), televisão, rádio e mídias impressas, sem falar do impacto que está tendo nos hábitos da sociedade, mudando as regras do comércio e das relações humanas. Assim, podemos definir a World Wide Web como sendo o nome do serviço mais popular da Internet, que por sua vez é o nome dado ao conjunto de computadores, provedores de acesso, satélites, cabos e serviços que formam uma rede mundial baseada em uma coleção de protocolos de comunicação conhecidos como TCP / IP. Com o advento da www (web) surgiu à necessidade de utilizar técnicas para desenvolver páginas com o intuito de organizar e dar uma melhor apresentação, navegabilidade e interatividade, por que não dizer mais funcional. Os Web designers, detentores dessa técnica, começam a difundi-la, e em pouco tempo o 6 mundo se rendeu a mais este serviço oferecido pela Internet. Hoje a criação e o uso de páginas se tornou rotina, tanto que o açougue da esquina tem já sua página na Internet oferecendo seus serviços online, quanto uma grande empresa que mostra a cara para o mundo oferecendo seus produtos para exportação. 2.3 – A Biblioteca Informatizada A informatização das bibliotecas não é recente, pois desde 1960 já se desenvolvem programas unicamente com o intuito de controlar todas as funções de uma biblioteca, desde a consulta ao acervo, empréstimos e devoluções até funções de controles financeiros como custos para a manutenção e receitas geradas com o pagamento de multas por atraso. O próximo passo seria torná-las acessíveis via Internet, uma vez que este serviço é o que faltava já que as Universidades dispunham da interligação entre elas, e a idéia agora era abri-las a comunidade em geral. No Brasil grande parte das bibliotecas de instituições e ou estados dispõe de páginas para consulta, com acesso de qualquer lugar e sem limite de horas, algumas com mais ou menos utilidades dependendo do tempo que está no ar. Figura 1 - Tela da página da Uniminas 7 A figura 1 mostra a página da Uniminas que apresenta opções de consultas variadas sobre: Cursos de graduação e pós-graduação; Cursos de extensão; processo seletivo; serviços ao aluno e biblioteca, este último quando selecionado apresenta informações sobre espaço físico, livros, cd e outros itens que fazem parte do acervo da biblioteca, não disponibilizando nenhum serviços de consulta e ou empréstimos e outros. Conforme pesquisa em sites de outras escolas de Uberlândia, tais como UFU, UNITRI, FPU, este serviço encontra-se ainda no inicio, com algumas limitações, mas servirá como uma boa fonte de pesquisa. Estudando o projeto funcional para um planejamento adequado dos serviços a serem disponibilizados, busca-se um maior conhecimento na área de manipulação de scripts, entrada de dados e respostas a usuários. Ao elaborar o projeto de desenvolvimento deste sistema web, serão produzidos, documentos, interfaces e códigos, necessários à implantação do mesmo, ficando a faculdade com a decisão de colocá-lo em prática ou não. Desta forma o aluno poderá melhor se preparar para atuar de forma mais adequada, num mercado cheio de oportunidades e desafios, uma vez que este estudo possibilita uma melhor vivência da realidade, enquanto aplica os conhecimentos adquiridos. 8 CAPITULO 3 – Conceitos e Definições Este projeto aborda várias etapas no desenvolvimento de um sistema web que é um sistema computacional implementado na plataforma web, meio virtual formado pelos servidores web que mantém sites. A world wide web é o nome do serviço mais popular do conjunto de computadores, provedores de acesso, satélites, cabos e serviços que formam a mais popular rede mundial de computadores: a Internet. Esta rede está baseada em uma coleção de protocolos de comunicação, que são conjuntos de regras e formatos que os computadores devem seguir para haver comunicação entre eles em uma rede. Regras e formatos representados por aspectos semânticos, sintáticos, temporais e através dos quais um computador pode se comunicar com outro por meio de uma linha telefônica ou placa de rede sem que o usuário precise se preocupar em saber qual o meio físico que está sendo utilizado. Criados com o intuito de realizar a intercomunicação de computadores, têm como função controlar como a informação é passada de uma rede a outra, como manipular o endereçamento contido nos pacotes, a fragmentação dos dados e a checagem de erros. IP (Internet Protocol) é um protocolo para comunicação de redes Internet responsável pela transmissão de um computador com outros conectados à rede (host-to-host), definindo a forma de endereçamento que permite a localização de um computador na Internet, usando para isso um conjunto de dígitos chamado de endereço IP. Já o TCP (transmission Control Protocol) é um protocolo orientado à conexão, que oferece um serviço confiável pelo fato de trabalhar com números de reconhecimento seqüenciais e positivos e sua ação se estende a toda a trajetória da informação, onde ele procura garantir o sucesso da transmissão, e por ser propósito geral, pode ser adaptado para ser usado com uma variedade de sistemas. Na Web a implementação do hipertexto é realizada com base no protocolo HTTP (Hyper Text Transfer Protocol) – Protocolo de Transferência de Hipertexto. Hipertexto é uma forma não linear de publicação de informações onde palavras que aparecem no texto podem levar a outras seções de um documento, outros documentos ou até outros sistemas de informação, fugindo da estrutura linear original de um texto simples. Esta baseada em ligações entre pontos chamados de âncoras. As ligações entre as âncoras são chamadas de vínculos (links). Vínculos de 9 hipertexto são implementados em textos publicados na web usando uma linguagem declarativa chamada de HTML – Hyper Text Markup Language. HTML é a linguagem padrão utilizado na WWW desde seu surgimento e que permite a montagem de Hipertextos, por meio dos quais o usuário pode “navegar” através de links em palavras que permitirão que o usuário possa se aprofundar em determinado assunto até o nível que desejar (é usada para marcar um arquivo de texto simples, sem formatação alguma, visualizável em qualquer editor de textos. Se um arquivo de texto simples receber uma extensão de nome de arquivo “html” ou “htm”, um navegador como o Internet Explorer irá tentar interpretá-lo como HTML). 3.1 – O Projeto O projeto está dividido em três partes: o projeto gráfico, mostrando os passos da confecção da interface gráfica de um web site, seguindo, no caso da Uniminas, o padrão da sua página que será responsável pela visualização e envio de informação para o usuário; o projeto de banco de dados que mostra como essas informações estão armazenadas e quais eventos irão acioná-las, apresentando, também, respostas a possíveis perguntas do usuário e as ligações com cada interface gerenciando as informações inerentes ao sistema de biblioteca; e o projeto funcional responsável pelo processamento destas informações e pela geração dinâmica da interface no lado servidor, oferecendo serviços ao usuário tais como processar os pedidos de informações gerando respostas de forma dinâmica. A interação entre estes três projetos pode ser vista por meio de diagramas de seqüência que mostram a troca de mensagens entre as classes na realização de um caso de uso. Mostram também como os cenários de casos de uso serão implementados. A figura 2 mostra como isso ocorre, utilizando o caso de uso Validar usuário, que é, o usuário aluno entrando no sistema e este fazendo a sua validação antes de permitir sua entrada e acesso às funcionalidades oferecidas nesta página. Ela define o que cada módulo desempenha quando o usuário entra no sistema, e este sistema faz sua validação através das solicitações de matricula e senha, buscando no banco de dados e interagindo por meio da interface gráfica. 10 Figura 2 - Diagrama de Seqüência para o caso de uso Validar Usuário Também foi usado o diagrama de atividades que tem por finalidade documentar um fluxo de execução de algum procedimento, processo ou rotina, podendo ser utilizado para detalhar os passos de um caso de uso ou para documentar um processo qualquer executado ou automatizado pelo sistema. A figura 3 mostra o diagrama de atividade para o caso de uso Cadastrar Livro Novo, ou seja a seqüência para sua execução. Figura 3 - Diagrama de Atividade para o caso de uso Cadastrar Livro Novo 11 O diagrama de atividade da figura 3 para o caso de uso cadastrar livro novo inicia-se com o técnico informando o código ID do livro a ser cadastrado, o sistema verifica a existência deste código através de consulta no banco de dados, a partir daí tem duas opções que dependem do resultado de sua pesquisa: se sim (“existe”) coloca na tela informações sobre o exemplar e permite a inclusão de mais exemplares emitindo etiqueta e salvando a nova quantidade de exemplares disponíveis na base; se não, permite a criação do novo exemplar juntamente com o seu código e suas informações cadastrais como quantidade, editora, etc; emite etiqueta com novo código e salva quantidade disponível na base de dados. O objetivo é desenvolver um planejamento adequado dos serviços a serem disponibilizados, através do levantamento dos requisitos funcionais (quais serviços o site deve oferecer), passando pela análise – tarefa que envolve, antes de tudo um trabalho de descoberta, refinamento, modelagem e especificação das necessidades e desejos relativos ao sistema. Os resultados obtidos são utilizados para modelar partes específicas do sistema incluindo casos de uso, arquivos, interfaces, diretrizes para implementação e documentação de módulos. Assim é possível obter uma amplitude no foco do estudo dos casos de uso que garante uma especificação correta, facilitando a implementação. Desse modo, o módulo de entrada do usuário no sistema, para reserva de livros por exemplo, será representado por meio de casos de uso, e modelados todos seus eventos associados. Para codificação, caracterizada por um conjunto de instruções executáveis no computador, que serão executadas pelo hardware do sistema considera-se também sua geração a partir dos modelos produzidos com o uso de ferramentas. A linguagem a ser trabalhada será a PHP, uma linguagem de scripting, gratuita e com código-fonte aberto, utilizada para a criação de páginas dinâmicas na web. 3.2 – Tecnologias para o desenvolvimento de aplicações web Estas tecnologias são utilizadas para desenvolver aplicações que rodam no servidor e apresentam pontos em comum que são: o usuário não pode ver o código fonte; não estão sujeitas as incompatibilidades de browsers; tem mais facilidade de acessarem bases de dados sem gerar falhas de segurança e em geral ao serem chamadas; obtém a informação que o usuário deseja; formatam essa informação em HTML e devolvem HTML pronto para o usuário. O usuário só vê o resultado final. 12 3.2.1 – HTML HTML é a mais antiga por ser uma das primeiras linguagens a ser desenvolvida e a entrar em nossas casas e, ainda, é a mais usada. É uma linguagem apenas para apresentação de textos, muito estática que define apenas qual a forma de apresentação do conteúdo, com algumas restrições de dispositivos para melhorar a programação, ou seja, não dispõem de muitos recursos, principalmente os mais atuais, os quais torna uma programação mais dinâmica. Uma vantagem de seu uso é a de poder ser feito em qualquer editor de textos e ainda assim surge a necessidade do uso de outras tecnologias. Hoje em dia nenhum site na web é produzido apenas com o uso de HTML. 3.2.2 – CGI CGI é abreviação de Common Gateway Interface. Não é uma linguagem, é um padrão que determina a forma de comunicação entre o servidor web e uma outra aplicação rodando no servidor web, determinando de que forma o servidor web deverá chamar esta outra aplicação, quais informações serão passadas para aplicação e quais informações serão passadas de volta para o servidor web. É um padrão entre os diversos servidores existentes, o que é uma vantagem, porém é uma aplicação e precisa seguir padrões estabelecidos pelo sistema operacional. Este é que determina que cada aplicação tenha o seu processo, uma área de memória isolada de todas as outras aplicações. A inicialização deste processo é algo que consome muito tempo da máquina. Cada usuário que dispara uma aplicação CGI está gerando a inicialização de um processo, tornando a execução de aplicações CGI onerosa para o servidor web. Comenta-se que o CGI roda “Out-ofProcess”, ou seja, em um processo de memória independente do servidor web. Por isso ele tem baixa escalabilidade, ou seja, com um hardware X(qualquer) aplicações CGI suportam um número menor de usuários do que aplicações criadas em outras tecnologias. Enfim, são programas que podem ser escritos em diversas linguagens , como PERL, Clipper ou C. 3.2.3 – ISAPI e NSAPI ISAPI assim como o CGI é um padrão de comunicação entre o servidor web e uma outra aplicação que esteja rodando no servidor web e define como o servidor deverá chamar esta outra aplicação e quais dados serão trocados entre eles. Ao contrario do CGI, porém, o padrão ISAPI permite que a aplicação rode In-Process, ou seja, no mesmo processo de memória que o servidor web. Este fato torna uma 13 aplicação ISAPI muito mais escalável do que uma aplicação CGI. É um padrão proprietário da Microsoft o que resulta em uma aplicação ISAPI só rodar no servidor IIS da Microsoft. Seu desenvolvimento é algo muito complexo, exigindo um conhecimento profundo do servidor web. NSAPI, baseada numa biblioteca de funções C para implementação de programas dinâmicos na web, roda em servidores Netscape. Como vantagem destaca-se que a cada requisição HTTP a uma NSAPI abre sobre uma nova thread e não um novo processo. Apresenta certas similaridades com a tecnologia ISAPI da Microsoft. 3.2.4 – ASP ASP assim como o ISAPI, roda In-Process, o que faz com que tenha melhor desempenho que o CGI. Ao contrario do ISAPI, o ASP não é compilado e sim interpretado, sendo seu interpretador nada mais do que uma aplicação ISAPI. Apesar de ser conhecida como “Linguagem ASP”, pode-se dizer que o ASP não tem uma linguagem própria pois é na verdade um driver que permite que as linguagens de script já existentes (Vbscript, Javascript) rodem no servidor e não na estação do usuário. Oferece mais recursos e, devido a sua arquitetura (interpretado), não possui uma performance tão boa quanto uma aplicação ISAPI. Devido à facilidade de ser uma linguagem de script que pode ser produzida até no bloco de notas, baseada em visual basic (VbScript, mais precisamente) e sua programação exige um conhecimento mais apurado, é uma linguagem até certo ponto dinâmica usada principalmente em sites que necessitam de um ambiente seguro. Tornou se bem mais popular que o desenvolvimento com ISAPI, tanto que foi assumida como padrão de desenvolvimento pela própria Microsoft (Windows DNA) e em versões futuras promete ser compilada e integrada ao VB, fato este que deixa a desejar porque não roda em qualquer plataforma ficando presa à plataforma windows. Pode também rodar em Linux, só que sua instalação não é tão simples o que faz a preferência na escolha de outras aplicações. 3.2.5 – PHP PHP é um pacote que permite separar a porção HTML dos scripts CGI no código C, possibilitando que possa se alterar o HTML sem precisar recompilar o código C. PHP também pode ser considerada uma linguagem de programação ‘peão’, pois permite que as pessoas façam coisas sem nenhuma experiência de programação anterior. É executada no servidor e pode ser embutida na HTML, além 14 de suportar a maioria dos bancos de dados atuais, como MySQL, PostgreSQL, InterBase, Oracle e SQL server. Reúne as vantagens de ser dinâmico e acessível a qualquer programador não exigindo maiores conhecimentos da linguagem, permitindo trabalhar com imagens e não ficando restrito a uma plataforma especifica para rodar. 3.2.6 – JAVA JAVA possui muitos recursos a mais que a linguagem HTML, por isso é utilizado para tornar a página mais dinâmica ou simplesmente para embelezá-la. Trata-se de uma linguagem recente com código pequeno e que nos últimos anos ganhou espaço principalmente em telecomunicações como celulares, computadores de bordo em carros e via satélite. Foi desenvolvida para ser uma linguagem robusta, independente de plataforma ou sistema operacional e totalmente orientadas a objeto que se popularizou com pequenos aplicativos chamados applets. Possibilitando uma diversidade na sua aplicação. Não é uma linguagem fácil, exigindo bom conhecimento de quem se propõe trabalhar com ela. 3.2.7 – APPLETs e SERVLETs APPLETs são aplicações criadas em linguagem Java especialmente para rodar dentro de uma página web na estação cliente eles tomam para si um determinado espaço na página e nesta área fazem a sua tarefa. SERVLETs são aplicações escritas em JAVA, sendo executadas em servidores WWW para algum tipo de processamento cliente-servidor, como acesso à banco de dados e aplicações multi-threaded. É um programa que estende a funcionalidade de um web server, gerando conteúdo dinâmico e interagindo com os clientes, utilizando o modelo request/response, ou seja, requisição/resposta. Sendo a linguagem JAVA projetada para ser independente de plataforma, é possível escrever um servlet para um servidor UNIX, que poderá ser instalado em um windows NT, sem a necessidade de reescrever o código ou recopilá-lo. Uma vantagem, é que cada requisição HTTP gera somente a abertura de uma nova thread e não um novo processo. Além disso, acessos subseqüentes a uma servlet encontram o programa já carregado na memória do servidor, reduzindo o tempo de resposta percebido pelo usuário. Neste capitulo foram trabalhados alguns conceitos e definições que irão servir para desenvolvimento do projeto. No próximo capitulo será elaborado a especificação do sistema Biblioteca. 15 CAPITULO 4 – A Biblioteca Uniminas A biblioteca Uniminas1 completou agora em julho 4 anos, e possui acervo informacional considerável de 9.860 exemplares, referentes a livros e teses, 34 títulos de periódicos e 53 fitas de vídeo e cd-rom. À medida que novos cursos vão sendo autorizados pelo MEC e os que estão em processo de reconhecimento necessitam obedecer às regras de 5 exemplares para cada 10 alunos. A tendência é que novos livros são adquiridos e como conseqüência o crescimento deste acervo. Composta por uma biblioteca central e uma setorial, nas áreas de Ciências Biológicas, Ciências da Saúde, Ciências Exatas e da terra, Ciências Humanas, Ciências Sociais e Aplicadas, Engenharias, Lingüística, Letra e Artes, abrange as áreas de pesquisa, ensino e extensão. Ocupa uma área física total de 535m², distribuída entre serviços técnicos e administrativos, área para estudo em grupo e individual, balcão de empréstimo, terminais para pesquisa na base de dados local e terminais para pesquisa na Internet . As bibliotecas estão abertas a toda comunidade universitária, com orientação para uma utilização mais eficiente e eficaz dos recursos informatizados e do atendimento qualitativo das demandas referente a informações; normalmente impostas pelo desenvolvimento das atividades do ensino, pesquisa e extensão da comunidade usuária. Diante dessa realidade, a Instituição precisa ter um controle sobre este acervo. A biblioteca com seus funcionários seriam pouco para manter manualmente este controle. Atualmente, a tecnologia oferece soluções para quase tudo, e o leque de sua abrangência a cada dia ganham mais espaço. No ramo de controle de bibliotecas não seria diferente, pois existem no mercado umas enormes quantidades de programas se encaixando no tamanho e nas necessidades das bibliotecas. Existe também a possibilidade de construção de tal aplicação, o que, neste caso, fica um pouco mais oneroso, além de gastar mais tempo. A Uniminas optou por um sistema de uma empresa de Belo Horizonte que faz a distribuição, exigindo apenas algumas adaptações à realidade do campus, com suporte em Belo Horizonte e aqui em Uberlândia por meio de um funcionário da própria Faculdade. O sistema adotado é o Microisis for Windows, fornecido pela 1 Página da Uniminas: Acesso: 11 abr. 2004. 16 Unesco. Trata-se de um sistema integrado, multiusuário, que automatiza os serviços de catalogação, consultas, circulação, empréstimo e estatísticas. Todos os documentos que compõem o acervo, ou seja, livros, periódicos, fitas de vídeo, etc, estão inseridos na base Microisis, que auxilia no gerenciamento das informações e permite acesso fácil e ágil à informação desejada. O software permite também a entrada e edição de dados bibliográficos, itens, cabeçalhos de assunto, autoridades e leitores. A Biblioteca Uniminas participa como solicitante do COMUT (Programa de Comutação Bibliográfica do IBICT), que visa a obtenção de copias de artigos de periódicos técnico-científicos, teses e anais de congressos. O acesso ao acervo é livre, a consulta local aberta ao publico em geral e o empréstimo domiciliar restrito a comunidade Uniminas. Professores e técnicos da Uniminas podem se inscrever nas bibliotecas enquanto os alunos são inscritos automaticamente na matricula. As bibliotecas possuem infra-estrutura de automação para garantir a geração e disponibilização de serviços e produtos informacionais adequados à demanda da comunidade acadêmica. Podem ser feitos levantamentos bibliográficos automatizados e pesquisas pela Internet por meio de agendamento telefônico ou pessoalmente, bastando o usuário levar um disquete vazio. O usuário também pode utilizar o serviço de comutação bibliográfica para solicitar cópias de documentos que constem no acervo de bibliotecas de outras faculdades. Oferece também serviços como consulta local a todo o acervo, empréstimo domiciliar, renovação de empréstimo desde que o mesmo não esteja na pasta de reserva, reserva de obra emprestada junto ao balcão de empréstimo, empréstimo de material informacional num prazo de duas horas para uso fora da biblioteca, orientação pela normalização de trabalhos científicos, treinamento para otimizar a utilização da biblioteca, acesso a terminais para digitação e pesquisa na Internet e elaboração de fichas catalográficas das publicações técnico-científicos da Uniminas. A aquisição dos livros do acervo tem início com o professor que identifica a necessidade de adoção de um determinado livro, o qual trará melhor desenvolvimento para a sua disciplina, verificando primeiro a existência ou não do livro na biblioteca. Existindo, confirma quantidade, e se não atender ao número determinado de alunos, procura o coordenador do curso para juntos estudarem a real necessidade ou as alternativas possíveis tais como a substituição por outro. O 17 processo tem início através do fornecimento pela secretaria, do meio para o fim do semestre, de uma planilha EXCEL em disquete, para a coordenação com o número de alunos. A biblioteca participa como executora fazendo o levantamento de preços via Internet. Decidindo pela compra, é passado à secretaria da biblioteca que ficará com a pesquisa de preços e a procura das edições mais novas. Concluído esse trabalho, é passado para o setor financeiro o pedido com quantidade, local, preço e prazo para a aquisição. Também é passado o mesmo relatório a bibliotecária para adiantamento de sua catalogação. Ao mesmo tempo, as funcionárias dão inicio ao processo de registro. Enfim, adianta-se todo processo na espera entre a aquisição e chegada dos livros. Com a chegada da encomenda é feita à conferência da nota com o pedido, registrando todo o material adquirido por permuta, compras ou doação e são carimbados e catalogados (descrição física do material), classificados utilizando-se o CDU (Classificação Decimal Universal), Index (Classificação por assunto utilizando cabeçalhos da FGV2), etiquetados e finalmente passados ao setor inserção na base de dados, trabalho este feito na biblioteca do centro. Também são observados os seguintes critérios na aquisição do acervo: bibliografias básicas e leituras complementares dos cursos; solicitações dos coordenadores e corpo docente; regra de compra de 10% dos alunos matriculados mais um exemplar para o professor e um fixo na biblioteca como livro texto; para leitura complementar a regra é dois a quatro exemplares; e aquisição adicionais para melhor atender aos usuários também é levada em conta. Como a atualização dos livros é rápida e não sendo possível acompanhá-la, a Uniminas adotou comprar somente livros de edição nova. As análises de catálogos referentes a lançamentos de títulos e periódicos, são realizadas pela bibliotecária, coordenadores e docentes da área. Hoje a biblioteca conta no seu quadro de pessoal com uma equipe de sete funcionárias, sendo uma bibliotecária graduada na área e outras seis funcionárias com conhecimento adquirido através de anos, dando apoio diferenciado a comunidade Uniminas. O próximo passo rumo a evolução desse serviço é tornar essas facilidades acessíveis via Web. Por meio do levantamento dos serviços atualmente oferecidos pela biblioteca de forma presencial com a identificação e detalhamento dessas funcionalidades será possível estabelecer a especificação de cada requisito e os 2 Fundação Getúlio Vargas 18 parâmetros necessários para torná-los disponíveis online, estabelecendo assim o foco do projeto. 4.1 – Funcionalidades As funcionalidades aqui identificadas vão fazer parte da página da Uniminas mais precisamente na aba biblioteca, que ao ser clicado aparecerão às opções de navegabilidade onde o usuário poderá escolher entre “Consulta” ou “Reserva”. Ao selecionar “Consulta” surgirá outras duas opções todos os cursos ou especificar curso. Esta seleção permitirá uma filtragem maior sobre o assunto a ser pesquisado resultando numa economia de tempo para o usuário uma vez que a procura ficará restrita ao assunto de seu interesse. Feito a escolha por todos, aparece a opção livros e periódicos, sendo que periódicos engloba também as monografias e, quando selecionado, terá opções por data e se é periódicos ou monografia. Optando por livros, poderá ser feita uma pesquisa através de opções por assunto, autor, editora ou título. Com isso, esta pesquisa deixa campo para um estudo mais detalhado a respeito dessa consulta que poderá ser feita online. O usuário poderia fazer a pesquisa de uma determinada página ou do conteúdo do livro por meio do seu índice, sendo feito, um procedimento de digitalização de todo acervo da biblioteca. Este estudo pode ser objeto de futuras monografias. Quando a escolha for “Reserva”, será direcionado para uma área segura na qual o campo de preenchimento, “Matricula” e “Senha” serão obrigatórios. Caso haja alguma coisa fora dos parâmetros, esta tela ficará reaparecendo por mais três vezes e depois disso voltará à página principal da Uniminas. Caso não tenha problemas será direcionado para: Acervo, onde se pode visualizar a situação do acervo se o mesmo encontra-se emprestado, reservado ou se faz parte do acervo que não pode sair da biblioteca; Reserva, podendo visualizar as reservas inclusive a que o usuário fez mostrando se o livro já retornou a instituição, e já sendo avisado na tela para que o usuário encaminhe-se à biblioteca, munido de carteira estudantil para a efetivação do empréstimo; Empréstimo, que mostra a situação do exemplar, histórico de quanto tempo está emprestado e quanto falta para ser devolvido, ou se o atraso em dias e as taxas incidentes sobre tal. Estas funcionalidades serão modeladas por meio do diagrama de caso de uso. Casos de uso são usados para capturar os requisitos funcionais do sistema. São agrupados em pacotes e permitem organizar o sistema em nichos de funcionalidades, sendo que cada nicho deverá produzir alguma coisa útil. 19 Este capítulo foi desenvolvido através de pesquisa e de uma entrevista concedida pela Bibliotecária Elza, que esteve sempre pronta a esclarecimentos, detalhando junto com os alunos todas as funcionalidades necessárias detectadas em conversas com as funcionárias do setor, acompanhando sua rotina diária, também alunos de outros cursos e períodos da Instituição e em reuniões com o responsável pelo programa na Uniminas. 20 CAPITULO 5 – O projeto Online Com base em pesquisa feita junto à biblioteca, através da entrevista e seguindo o capitulo anterior, agora estas funcionalidades vão ser oferecidas pela biblioteca online e neste capitulo poderão ser mais bem detalhadas, buscando sua real finalidade e importância dentro do sistema sendo descritas pelos diagramas de casos de uso. 5.1 – Diagramas de casos de uso Um caso de uso é uma técnica de modelagem usada para descrever o que um novo sistema deve fazer ou o que um sistema existente já faz. Tem como propósitos decidir e descrever os requisitos funcionais do sistema, resultantes de acordo entre o cliente e/ou usuários finais e desenvolvedores de software, fornecer uma descrição clara e consistente do que o sistema deve fazer de forma que possa ser utilizado ao longo do processo de desenvolvimento e modelagem do projeto (RUMBAUGH, JACOBSON, BOOCH; 2000). Os componentes primários de um caso de uso são: 5.1.1 – Atores Os atores, são representados por alguém ou algo que interage com o sistema. É quem ou o que usa o sistema, ou seja envia ou recebe mensagens para ou do sistema ou troca informações com o sistema. Atores desempenham os casos de uso e um único ator pode desempenhar muitos casos de uso. Um caso de uso pode ter reciprocamente vários atores desempenhando-o e são mais úteis quando se está propondo os casos de uso. Não precisam ser humanos, embora sejam representados como bonecos humanos nos diagramas de caso de uso, como, por exemplo, o caso de um sistema externo que necessita de alguma informação do sistema sendo modelado. Neste projeto são definidos três atores que vão fazer parte do sistema com suas permissões e responsabilidades: Ator Técnico: funcionário na biblioteca Uniminas responsável pela manutenção do sistema, atualização de dados tanto de acervo quanto de funcionários, inclusão do acervo, cadastro de funcionários e usuários; Ator Relógio: é o relógio, contador de tempo do sistema interagindo com o banco de dados, disparando eventos de geração de multas, notificação e envio ao aluno, 21 bloqueando este usuário na base de dados. Também notifica e envia para o primeiro da lista de reserva da devolução de acervo na biblioteca; Ator Usuário: refere-se ao aluno, professores e comunidades em geral que tem acesso à página Uniminas e a biblioteca online. A comunidade com acesso apenas às consultas e os alunos e professores além da consulta acessam a outras funcionalidades, bastando para isso à validação de sua senha. 5.1.2 – Casos de uso Caso de uso é definido como sendo um “conjunto de seqüências de ações executadas por um sistema que produzem um resultado observável significativo para um ator particular”. Descreve do ponto de vista dos atores, um grupo de atividades num sistema que produz um resultado concreto e tangível e sempre é inicializado por um ator, direta ou indiretamente. Um caso de uso é uma classe, não um objeto, a qual descreve a funcionalidade como um todo, inclusive alternativas possíveis, erros e exceções que podem ocorrer durante a execução do caso de uso. A finalidade do diagrama de casos de uso é determinar somente a funcionalidade que deverá ser oferecida pelo sistema modelado. Um diagrama de casos de uso contém elementos gráficos que representam o sistema, os atores e os casos de uso, mostrando os diferentes relacionamentos entre esses elementos, tais como generalização, associação e dependência. A associação ocorre quando há uma parte do comportamento que é semelhante em mais de um caso de uso e não se quer ficar copiando a descrição deste comportamento. Então o uso de associação de inclusão quando houver repetição em dois ou mais casos de uso separados evita a duplicação da tarefa. A generalização é utilizada quando tem um caso de uso que é semelhante a outro, mas faz um pouco mais, dando uma outra maneira de capturar cenários alternativos, e seu uso é indicado para descrever uma variação em comportamento normal sem a necessidade de descrição com muito rigor. A associação por extensão é semelhante à generalização mas possui mais regras. O caso de uso estendido pode acrescentar comportamento para o caso de uso base, usada para descrever uma variação em comportamento normal com a necessidade de utilizar a forma mais controlada, explicando os pontos de extensão no caso de uso base. 22 A figura 4 ilustra um diagrama de casos de uso que mostra uma visão global do sistema biblioteca online. Figura 4 - Diagrama de Casos de Uso do Sistema Biblioteca A figura 5 ilustra o pacote Consultar Acervo que contém os casos de uso referentes à consulta e explora todas as suas funcionalidades. Figura 5 – Diagrama de Caso de Uso para o pacote Consultar Acervo 23 5.2 – Requisitos funcionais do projeto Após a elaboração dos diagramas, é preciso fazer uma descrição dos requisitos funcionais de cada caso de uso, bem documentada e detalhada. Nesse ponto o detalhamento do caso de uso é muito importante para que se consiga abranger tudo a fim que se evite o risco de uma implementação incorreta ocasionando atrasos e até mesmo o risco de o projeto não atender às necessidades dos usuários do sistema. O detalhamento deve descrever os passos para execução dos cenários, indicar o evento de ativação, pré e pós-condições, sugestões de telas, fazer referência aos requisitos associados na lista de requisitos não funcionais, e se necessário, criar diagramas de atividades e estados para detalhar melhor o caso de uso. A descrição dos requisitos deve conter o objetivo do caso de uso, quais atores inicializam a sua execução e em quais situações, o fluxo de mensagens entre atores e casos de uso, fluxo alternativo no caso de exceções ocorridas no sistema e como o caso de uso termina e qual valor produzido para o ator. Cada caso de uso deve estar contido dentro de um subsistema especifico, devendo todos os passos ser executados por ele. O documento de requisitos descreve o detalhamento de cada um dos casos de uso, e cada especificação (detalhamento) de um caso de uso deve conter: nome, refere ao nome do caso de uso; prioridade, que aponta o grau de prioridade do caso de uso sob o ponto de vista do usuário, tendo como opção essencial, importante e desejável; pré-condição e pós-condição, indicando as condições exigidas pelo sistema para disparar o evento, tanto para o inicio (pré) quanto para a finalização (pós); atores, que são os elementos externos que interagem com o sistema, como por exemplo usuários ou máquinas; fluxo Principal, que descreve o que normalmente ocorre quando o caso de uso é “executado” e os fluxos alternativos, que mostram comportamentos opcionais ou exceções em relação ao comportamento normal (fluxo principal). Os requisitos não funcionais, também chamados de suplementares, aplicamse a todo o sistema e, portanto, devem ser registrados numa outra seção à parte podem determinar tecnologias ou algoritmos específicos a serem utilizados, e normalmente procuram garantir compatibilidade com sistemas existentes ou restringem a maneira como a funcionalidade descrita será implementada. Com base nos requisitos, o processo de análise cria um modelo conceitual do modelo de objetos. O modelo de análise faz abstrações e evita resolver problemas que 24 deveriam ser abordados na fase de programação visual. Problemas esses geralmente estão relacionados à tecnologia, com linguagem, plataforma, banco de dados e outros. A seguir são apresentadas as especificações dos casos de uso para o sistema de bibliotecas. 5. 2 .1 - Nome: Consultar Livro Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de livros da biblioteca. Fluxo principal: (1) Informar Argumento de pesquisa (2) Selecionar o tipo de pesquisa (3) Recuperar dados do objeto selecionado na base de dados (4) Exibir dados do objeto selecionado (5) Informar situação de exemplares do objeto selecionado Fluxo secundário: Objeto selecionado não cadastrado (3.1) Exibir mensagem “OBJETO SELECIONADO NÃO CADASTRADO” (3.2) Ir para (1) 5. 2 .2 - Nome: Consultar Fitas de vídeo Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de fitas de vídeo. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 25 5. 2 .3 - Nome: Consultar CD Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de CD existentes Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .4 - Nome: Consultar Folhetos Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de folhetos. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .5 - Nome: Consultar Artigos Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de artigos. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .6 - Nome: Consultar Periódicos Prioridade: Importante Pré-condição: Conexão via Internet 26 Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de periódicos. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .7 - Nome: Consultar Dissertação Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de dissertações. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .8 - Nome: Consultar Teses e Monografias Prioridade: Importante Pré-condição: Conexão via Internet Pós-condição: Consulta realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário acesso à pesquisa de teses e monografias. Fluxo principal: (1) Extender “consultar livros” usando tipo de pesquisa específico 5. 2 .9 - Nome: Efetuar Empréstimo Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Empréstimo realizado Atores: Usuário, técnico 27 Objetivo: Oferecer ao usuário cadastrado a possibilidade do empréstimo via internet do acervo disponibilizado para empréstimo. Fluxo principal: (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados (3) Verificar status do usuário (4) Exibir dados do usuário (5) Para cada objeto selecionado para empréstimo (6) Selecionar o objeto de empréstimo (7) Recuperar dados do objeto selecionado na base de dados (8) Exibir dados do objeto selecionado para confirmação (9) Verificar disponibilidade do objeto selecionado para o usuário (10) Atualizar disponibilidade do objeto selecionado para “Emprestado” (11) Incluir objeto selecionado em Empréstimo, informando a data prevista para a devolução (12) Salvar objeto selecionado na base de dados (13) Liberar empréstimo, salvando na base de dados do usuário (14) Exibir mensagem “PROCESSO REALIZADO COM SUCESSO” (15) Exibir mensagem “COMPARECER NA BIBLIOTECA” Fluxos secundários: Matricula inválida (2.1) Exibir mensagem “MATRICULA INVÁLIDA” (2.2) Voltar para (1) Senha inválida (2.1) Exibir mensagem “SENHA INVÁLIDA” (2.2) Exibir mensagem “TENTE OUTRA VEZ” (2.3) vá para (1) Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” (2.2) Ir para (1) 28 5. 2 .10 - Nome: Reservar Acervo Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Reserva realizada Atores: Usuário, técnico Objetivo: Oferecer ao usuário cadastrado a possibilidade da reserva via internet do acervo disponibilizado para empréstimo. Fluxo principal: (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados (3) Verificar status do usuário (4) Exibir dados do usuário (5) Selecionar o objeto de reserva (6) Recuperar dados do objeto selecionado na base de dados (7) Exibir dados do objeto selecionado para confirmação (8) Verificar disponibilidade do objeto selecionado para o usuário (9) Atualizar disponibilidade do objeto selecionado para “Reservado” (10) Salvar Reserva na base de dados (11) Exibir mensagem “PROCESSO REALIZADO COM SUCESSO” Fluxos secundários: Objeto selecionado consta na lista de reserva (6.1) Exibir mensagem “OBJETO JÁ RESERVADO” (6.2) Retornar Objeto selecionado não Cadastrado (6.1) Exibir mensagem “OBJETO NÃO CADASTRADO” (6.2) Retornar a página principal Senha inválida (2.1) Exibir mensagem “SENHA INVÁLIDA” (2.2) Exibir mensagem “TENTE OUTRA VEZ” (2.3) Vá para (1) Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” (2.2) Retornar a página principal 29 5. 2 .11 - Nome: Validar Usuário Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Validação realizada Atores: Usuário, técnico Objetivo: Verifica se o usuário é quem diz ser e só então liberando acesso aos serviços disponibilizado via internet do acervo Uniminas. Fluxo principal: (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados (3) Verificar status do usuário (4) Exibir dados do usuário (5) Liberar acesso do usuário Fluxos secundários Matricula inválida (2.1) Exibir mensagem “MATRICULA INVÁLIDA” Senha inválida (2.2) Exibir mensagem “SENHA INVÁLIDA” (2.3) Exibir mensagem “TENTE OUTRA VEZ” Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” 5. 2 .12 - Nome: Devolver Empréstimo Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Informação sobre devolução realizada Atores: Usuário, técnico Objetivo: Informa ao usuário cadastrado a situação do seu empréstimo, como data de devolução e possíveis atrasos já com valores calculados de multas. Fluxo principal: (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados 30 (3) Verificar status do usuário (4) Exibir dados do usuário (5) Exibir caso tenha algum empréstimo (6) Exibir mensagem “DATA DO EMPRÉSTIMO:__/__/____/.” (7) Exibir mensagem “DATA DA DEVOLUÇÃO:__/__/____/.” Fluxos secundários: Devolução em atraso (8) Bloquear usuário (9) Exibir mensagem “COMPARECER NA BIBLIOTECA” (10) Gerar notificação de atraso (11) Enviar mensagem via E-mail Matricula inválida (2.1) Exibir mensagem “MATRICULA INVÁLIDA” Senha inválida (2.1) Exibir mensagem “SENHA INVÁLIDA” (2.2) Exibir mensagem “TENTE OUTRA VEZ” Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” 5. 2 .13 - Nome: Renovar Empréstimo Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Renovação realizada Atores: Usuário, técnico Objetivo: possibilita ao usuário cadastrado a facilidade da renovação do seu empréstimo via internet, desde que o mesmo não se encontra na lista de reserva. Fluxo principal: Para cada renovação (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados (3) Verificar status do usuário (4) Exibir dados do usuário (5) Selecionar o objeto de renovação (6) Recuperar dados do objeto selecionado na base de dados 31 (7) Exibir dados do objeto selecionado para confirmação (8) Verificar disponibilidade do objeto selecionado para o usuário (9) Atualizar disponibilidade do objeto selecionado para “Renovado” (10) Salvar Renovação na base de dados (11) Liberar Renovação, salvando na base de dados do usuário (12) Exibir mensagem “PROCESSO REALIZADO COM SUCESSO” Fluxos secundários Objeto selecionado consta na lista de reserva (6.1) Exibir mensagem “OBJETO NÁ RESERVA” (6.2) Retornar a página principal Senha inválida (2.1) Exibir mensagem “SENHA INVÁLIDA” (2.2) Exibir mensagem “TENTE OUTRA VEZ” Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” 5. 2 .14 - Nome: Atualizar usuário Prioridade: Essencial Pré-condição: Usuário cadastrado Pós-condição: Atualização realizada Atores: Usuário, técnico Objetivo: Atualiza dados importantes do usuário, como mudança de período, endereço, se tem pendências na biblioteca ou no financeiro. Fluxo principal: (1) Usuário informa matricula e senha (2) Recuperar dados do usuário na base de dados (3) Verificar status do usuário (4) Exibir dados do usuário (5) Atualiza dados do usuário Fluxos secundários: Matricula inválida (2.1) Exibir mensagem “MATRICULA INVÁLIDA” Senha inválida 32 (2.1) Exibir mensagem “SENHA INVÁLIDA” (2.2) Exibir mensagem “TENTE OUTRA VEZ” Usuário não cadastrado (2.1) Exibir mensagem “USUÁRIO NÃO CADASTRADO” 5. 2 .15 - Nome: Atualizar Acervo Prioridade: Importante Pré-condição: Necessidade da atualização Pós-condição: Atualização realizada Atores: Técnico Objetivo: Oferecer ao técnico a possibilidade da atualização de todo o acervo da biblioteca, quanto a aumento dos exemplares, perdas e outros . Fluxo principal: (1) Informar Argumento da atualização (2) Selecionar o tipo de atualização (3) Recuperar dados do objeto selecionado na base de dados (4) Exibir dados do objeto selecionado (5) Informar situação do objeto selecionado (6) Atualizar dados do objeto selecionado Fluxos secundários Objeto selecionado não cadastrado (3.1) Exibir mensagem “OBJETO SELECIONADO NÃO CADASTRADO” 5. 2 .16 - Nome: Incluir Acervo Prioridade: Essencial Pré-condição: Técnico cadastrado Pós-condição: Acervo registrado na base de dados Atores: Técnico Objetivo: Oferecer ao técnico a possibilidade da inclusão do acervo adquirido pela instituição na base de dados. Fluxo principal: 33 (1) Técnico informa tipo de Acervo (2) Recuperar dados do tipo do acervo na base de dados (3) Exibir dados do objeto e obter confirmação (4) Obter o número de exemplares a incluir (5) Informar edição e ano dos exemplares a serem incluídos (6) Para cada exemplar a ser incluído (7) Pegar número do próximo exemplar (8) Criar o exemplar na base de dados (9) Atualizar edição e ano do exemplar (10) Atualizar data de aquisição do exemplar com a data do sistema (11) Atualizar o status do exemplar como “Disponível” (12) Incluir o exemplar na base de dados (13) Salvar o exemplar na base de dados (14) Exibir a mensagem “Inclusão de acervo realizada com sucesso” Fluxos secundários Tipo de acervo inexistente (2.1) Tipo de acervo inexistente 5. 2 .17 - Nome: Cadastrar Usuário Prioridade: Essencial Pré-condição: Técnico cadastrado Pós-condição: Usuário cadastrado na base de dados Atores: Técnico Objetivo: Função de inclusão na base de dados da instituição todos os dados dos novos usuários. Fluxo principal: (1) Técnico informa dados do usuário (2) Verificar existência do usuário na base de dados (3) Criar Objeto Usuário com dados informados (4) Solicitar todos os dados do usuário (5) Atualizar dados do usuário (6) Incluir usuário na base de dados (7) Salvar usuário na base de dados 34 (8) Exibir a mensagem “Cadastro realizado com sucesso” Fluxos secundários: Usuário já cadastrado (2.1) Exibir mensagem “Usuário já está cadastrado” (2.2) Vá para (1) 5. 2 .18 - Nome: Cadastrar Funcionário Prioridade: Essencial Pré-condição: Técnico cadastrado Pós-condição: Funcionário cadastrado na base de dados Atores: Técnico Objetivo: Função de cadastro de novos funcionários . Fluxo principal: (1) Técnico informa dados do funcionário (2) Verificar existência do funcionário na base de dados (3) Criar Objeto funcionário com dados informados (4) Solicitar todos os dados do funcionário (5) Atualizar dados do funcionário (6) Incluir funcionário na base de dados (7) Salvar funcionário na base de dados (8) Exibir a mensagem “Cadastro realizado com sucesso” Fluxo secundário Funcionário já cadastrado (2.1) Exibir mensagem “Funcionário já está cadastrado” (2.2) Ir para (1) 5. 2 .19 - Nome: Gerar Multas Prioridade: Essencial Pré-condição: Atraso na devolução Pós-condição: Geração de Multas Atores: Relógio 35 Fluxo principal: (1) Sistema informa data de devolução do empréstimo (2) Recuperar dados do empréstimo na base de dados (3) Verificar status do empréstimo (4) Exibir dados do empréstimo (5) Exibir caso não devolvido o empréstimo (6) Exibir mensagem “DATA DO EMPRÉSTIMO:__/__/____/.” (7) Exibir mensagem “DATA DA DEVOLUÇÃO:__/__/____/.” (8) Verificar dias de atraso (9) Gerar multa de R$1,00 por dia de atraso (10) Incluir multa na base de dados (11) Incluir multa para o usuário (12) Atualizar disponibilidade do objeto selecionado para “Em atraso” (13) Salvar multa na base de dados (14) Encerrar 5. 2 .20 - Nome: Gerar Notificação Prioridade: Essencial Pré-condição: Atraso na devolução Pós-condição: Geração e envio de Notificação Atores: Relógio Fluxo principal: (1) Sistema informa data de devolução do empréstimo (2) Recuperar dados do empréstimo na base de dados (3) Verificar status do empréstimo (4) Exibir dados do empréstimo (5) Verificar a não devolução do empréstimo (6) Gerar notificação (7) Gerar mensagem “DATA DO EMPRÉSTIMO:__/__/____/.” (8) Gerar mensagem “DATA DA DEVOLUÇÃO:__/__/____/.” (9) Verificar dias de atraso (10) Gerar notificação de multa (11) Incluir notificação na base de dados 36 (12) Enviar notificação de atraso e multa para o usuário (13) Atualizar disponibilidade do usuário para “Em atraso” (14) Salvar notificação na base de dados (15) Encerrar 5. 2 .21 - Nome: Bloquear Usuário Prioridade: Essencial Pré-condição: Atraso na devolução Pós-condição: Bloqueio do usuário na base de dados Atores: Relógio Fluxo principal: (1) Sistema informa data de devolução do empréstimo (2) Recuperar dados do empréstimo na base de dados (3) Verificar status do empréstimo (4) Exibir dados do empréstimo (5) Verificar a não devolução do empréstimo (6) Verificar “DATA DO EMPRÉSTIMO:__/__/____/.” (7) verificar “DATA DA DEVOLUÇÃO:__/__/____/.” (8) Verificar dias de atraso (9) Gerar bloqueio do usuário a (10) Incluir bloqueio na base de dados (11) Enviar notificação de bloqueio e multa para o usuário (12) Atualizar disponibilidade do usuário para “Bloqueado” (13) Salvar Bloqueio na base de dados (15) Encerrar 5.3 – Diagramas de Interação São modelos que descrevem como grupos de objetos colaboram em algum comportamento. Um diagrama de interação captura o comportamento de um caso de uso mostrando vários objetos e as mensagens que são passadas entre estes objetos ao longo da execução de um caso de uso. É utilizado para representar 37 a implementação de um cenário especifico de um caso de uso e sua ênfase é mostrar a relação entre as classes e os objetos do modelo, documentando a arquitetura do sistema ainda como projeto. Existem dois tipos de diagramas de interação: diagramas de seqüência e diagramas de colaboração. 5.3.1 – Diagramas de Seqüência Utilizado para mostrar como um cenário específico de um caso de uso será implementado, mostrando as trocas de mensagens entre as classes na realização de um caso de uso, com ênfase na seqüência de ocorrência no tempo. Na parte superior do diagrama estão representadas as classes e os atores, e as linhas pontilhadas que saem dessas classes servem para posicionar seus métodos no diagrama. As setas que ligam os projetos de classes a outra, são os envios de mensagens (métodos) e os respectivos retornos. Estas mensagens podem ser do tipo síncrona ou assíncrona. Sendo síncrona, quando o objeto que enviou a mensagem fica aguardando o retorno para continuar o processamento é representada por uma seta com ponta cheia; e assíncrona, quando o objeto envia a mensagem e continua seu processamento, ocorrendo à execução concorrente de dois métodos representada por uma seta com ponta vazada. 5.3.2 – Diagramas de Colaboração Dentro de um digrama de colaboração, os objetos são mostrados como ícones e sua seqüência indicada pela numeração das mensagens. Similar ao diagrama de seqüência, também procura mostrar a troca de mensagens entre as classes. É utilizado para representar a implementação de um cenário específico de um caso de uso. Sua ênfase é mostrar a relação entre as classes e os objetos do modelo. Normalmente pode-se escolher entre utilizar o diagrama de colaboração ou o digrama de seqüência. 38 5.3.3 – Diagramas de Seqüência versus Diagramas de Colaboração São muitos desenvolvedores e muitas as opiniões a respeito do uso de um ou outro no auxilio do desenvolvimento de um sistema. Cada diagrama com sua peculiaridade positiva e negativa, ou, até nem tanto, apenas preferências de um programador por um dos tipos de diagramas, com as mais diversas justificativas para o uso deste e não daquele. O que todos concordam é que uma das principais características de qualquer forma de um diagrama de interação, seja ele de seqüência ou de colaboração é sua simplicidade, podendo ver facilmente as mensagens observando diagrama. Um dos problemas com diagramas de interação é que seu uso pode ser inadequado na exploração de alternativas. Próximo passo deste projeto é trabalhar com os diagramas de interação dos casos de uso estudados anteriormente. A partir deles são criados os outros documentos que vão definir a estrutura e o comportamento do sistema. A seguir são apresentados os diagramas de interação para todos os casos de uso deste projeto de sistema de bibliotecas, mostrando o desenvolvimento com os dois tipos de diagramas, com isso pode-se ter uma noção das dificuldades e facilidades de um e do outro, das diferentes formas de leitura e interpretação. 5.3.3.1 - Nome: Consultar Livro Figura 6 - Diagrama de Seqüência Consultar Livro A figura 6 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto livro e o exibe na tela. 39 5.3.3.2 - Nome: Consultar Fitas de vídeo Figura 7 - Diagrama de Seqüência Consultar Fitas de vídeo A figura 7 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto fitas de vídeo e o exibe na tela. 5.3.3.3 - Nome: Consultar CD Figura 8 - Diagrama de Seqüência Consultar CD A figura 8 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto CD e o exibe na tela. 40 5.3.3.4 - Nome: Consultar Folhetos Figura 9 - Diagrama de Seqüência Consultar Folhetos A figura 9 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto folhetos e o exibe na tela. 5.3.3.5 - Nome: Consultar Artigos Figura 10 - Diagrama de Seqüência Consultar Artigos A figura 10 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto Artigos e o exibe na tela. 41 5.3.3.6 - Nome: Consultar Periódicos Figura 11 - Diagrama de Seqüência Consultar Periódicos A figura 11 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto periódicos e o exibe na tela. 5.3.3.7 - Nome: Consultar Dissertação Figura 12 - Diagrama de Seqüência Consultar Dissertação A figura 12 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto dissertação e o exibe na tela. 42 5.3.3.8 - Nome: Consultar Teses e Monografias Figura 13 - Diagrama de Seqüência Consultar Teses e Monografias A figura 13 mostra o sistema interagindo com o usuário através da interface gráfica, solicitando argumento para pesquisa e uma vez informado faz a interação com o banco de dados, cria o objeto teses e monografias e o exibe na tela. 5.3.3.9 - Nome: Efetuar Empréstimo Figura 14 - Diagrama de Seqüência Efetuar Empréstimo A figura 14 mostra o sistema interagindo com a interface gráfica e banco de dados, uma vez que o usuário entra na biblioteca e faz opção de efetuar empréstimo. O Sistema solicita matricula e senha e as recupera na base de dados, depois disto solicita o argumento de empréstimo também recuperando no banco de dados, cria o objeto de empréstimo (livro) e exibe na tela para confirmação, uma vez confirmada atualiza na base de dados passando seu status para emprestado e salva exibindo mensagem para comparecimento. 43 5.3.3.10 - Nome: Reservar Acervo Figura 15 - Diagrama de Colaboração Reservar Acervo A figura 15 mostra os passos realizados pelos objetos e classes e a interação entre eles. Primeiro o sistema executando a parte funcional solicitando matricula e senha através da interface gráfica em seguida interage com a base de dados. 5.3.3.11 - Nome: Validar Usuário Figura 16 - Diagrama de Seqüência Validar Usuário A figura 16 mostra a parte funcional solicitando ao usuário matricula e senha através da interface gráfica (tela), e então recupera as informações na base de dados do usuário. 44 5.3.3.12 - Nome: Validar Usuário Figura 17 - Diagrama de Colaboração Validar Usuário A figura 17 trata do mesmo tema da anterior que é validar usuário só que representada através do diagrama de colaboração que mostra os passos do primeiro que é a solicitação de matricula, ao ultimo que a exibição do objeto (usuário). 5.3.3.13 - Nome: Devolver Empréstimo Figura 18 - Diagrama de Seqüência Devolver Empréstimo A figura 18 mostra que depois do usuário informar matricula e senha o controlador do sistema interage com a base de dados para saber se existe e então cria no banco o objeto (matricula/senha), e só ai verifica se tem empréstimo ligado ao objeto, existindo interage agora com a interface gráfica exibindo as informações de empréstimo como data de empréstimo e devolução. 45 5.3.3.14 - Nome: Renovar Empréstimo Figura 19 - Diagrama de Seqüência Renovar Empréstimo No diagrama mostrado na figura 19, depois dos passos de solicitação, recuperação e criação de matricula e senha o sistema solicita o nome do material a ser renovado, recuperando e criando este objeto na base de dados verificando sua disponibilidade para renovação, se sim exibe mensagem de OK através da interface gráfica. 5.3.3.15 - Nome: Atualizar Usuário Figura 20 - Diagrama de Seqüência Atualizar Usuário A figura 20 mostra o técnico efetuando a atualização do usuário através da interface gráfica que interage com o sistema até a validação (confirmação) da matricula e senha, daí por diante a comunicação acontece direto entre a base de dados e interface gráfica, ou seja, é exibido na tela o banco de dados que permite a atualização no objeto usuário. 46 5.3.3.16 - Nome: Atualizar Acervo Figura 21 - Diagrama de Colaboração Atualizar Acervo A figura 21 mostra o sistema solicitando do técnico matricula e senha, que digita através da interface gráfica, o próximo passo é a indicação do argumento a ser atualizado, ao ser informado o sistema busca na base de dados criando o objeto acervo e pedindo sua atualização. Também através da interface gráfica o técnico realiza a atualização direto na base de dados e só depois o sistema salva no banco de dados 5.3.3.17 - Nome: Incluir Acervo Figura 22 - Diagrama de Seqüência Incluir Acervo A figura 22 mostra o técnico que entra no sistema e informa o tipo do acervo a ser incluído, o controle verifica sua existência em caso negativo cria objeto (acervo) estabelecendo o ID, a partir daí através da interface gráfica solicita os dados direto com a base de dados, finalizando com o sistema incluindo o objeto (livro) no banco de dados. 47 5.3.3.18 - Nome: Cadastrar Usuário Figura 23 - Diagrama de Colaboração Cadastrar Usuário A figura 23 mostra o técnico cadastrando o usuário, o sistema solicita matricula e senha e verifica a existência na base de dados, existindo exibe através da interface gráfica mensagem de usuário já cadastrado, se não cria matricula e senha para o objeto usuário solicitando dados ao técnico que os digita direto na base do objeto (usuário) criado e então o sistema inclui (salva) o novo usuário no banco de dados. 5.3.3.19 - Nome: Gerar Multas Figura 24 - Diagrama de Colaboração Gerar Multas A figura 24 mostra o controle solicitando datas de empréstimo e devolução ao relógio que informa através da interface gráfica, e então o sistema recupera os dados do empréstimo cria o objeto acervo e verifica se existe atraso, existindo atualiza o objeto acervo para status atrasado, cria também o objeto multas e salva esse objeto no cadastro do usuário. 48 5.3.3.20 - Nome: Gerar Notificação Figura 25 - Diagrama de Seqüência Gerar Notificação A figura 25 mostra o sistema solicitando datas de empréstimo e devolução ao relógio que estabelece estas informações, o controle recupera estes dados no banco de dados que cria o objeto (dados), exibe o objeto e verifica a não devolução gerando a notificação ao controle que a envia ao servidor de e-mail que fará chegar ao usuário. 5.3.3.21 - Nome: Bloquear Usuário Figura 26 - Diagrama de Colaboração Bloquear Usuário A figura 26 mostra o controle solicitando informações de empréstimo e devolução, o relógio informando as datas e então o sistema recupera na base de dados, cria o objeto (livro) e atualiza o status para atrasado. É responsabilidade também do controle o bloqueio do usuário e a ordem de emissão de notificação. 49 O objetivo deste processo foi identificar as características técnicas, funcionais e estruturais básicas do sistema da Biblioteca Online, apontando o desenvolvimento na direção correta. Procurou-se identificar todos os requisitos a partir dos casos de uso e atividades específicas para elaboração da especificação técnica, programação e testes do sistema, conhecidos como requisitos funcionais. O comentário feito ao final de cada diagrama tem como objetivo facilitar o entendimento e direcionar para uma correta implementação. Ele foi feito no intuito de explorar o que realmente se vê nos diagramas seja de seqüência ou de colaboração, o que objetos e classes fazem diante de uma determinada situação, também para melhor identificação das classes muitas vezes encobertos na suas funcionalidades. Portanto é preciso estar atento para os requisitos não funcionais que se aplicam a todo o sistema podendo determinar tecnologias ou algoritmos específicos a serem utilizados, normalmente garantem a compatibilidade com sistemas existentes, devem ser registrados de outra forma como exemplo: A Biblioteca Online deverá ser compatível com as plataformas Windows e Linux; deverá estar disponível nos dias úteis 98% do tempo entre 8:00 e 23:00 horas, e nos finais de semana 98% do tempo entre 8:00 e 16:00 horas; valores monetários referentes a multas devem ser emitidos em reais; o sistema deverá ser acessado através de browsers IE6 e Netscape 6; o sistema precisa ser desenvolvido em PHP, para manter compatibilidade tecnológica com o restante da página Web da Uniminas.. 50 CAPITULO 6 – Conclusão A biblioteca presente em uma instituição educacional seja ela municipal, estadual, federal, particular ou gratuita é de fundamental importância pois permite ampliar e desenvolver no aluno o bom hábito da leitura, da pesquisa e de estudos complementares ao assunto (tema) abordado em sala de aula. Assim, pode-se concluir que a qualidade de uma biblioteca se deve tanto ao seu acervo e freqüência com que é visitada, quanto ao continuo investimento em atualizações, aquisições novas e até o aumento de edições já existentes. Funciona como um incentivo aos alunos, professores e comunidade que podem ter na biblioteca uma referência para seus estudos, usufruindo a praticidade de ter exemplares de diferentes autores, edições e pensamento, sobre um mesmo assunto dessa forma oferecendo visões diferentes para uma mesma idéia. Não menos importante nos dias de hoje o fato de ser a biblioteca informatizada e manter seu acervo sobre controle direto de atualizações, compras, empréstimos, devoluções e não devoluções através de programas específicos ao gerenciamento de bibliotecas o que proporciona mais agilidade e segurança no trabalho oferecido pela biblioteca e seus funcionários. Em época de tecnologia, sair na frente, oferecendo o diferencial de ter suas funcionalidades disponibilizadas via Internet, como serviços de consultas, empréstimos, renovações tudo diretamente da casa do aluno, estendido a professores e comunidade, proporciona a oportunidade para que alunos possam colocar em prática o que foi aprendido, melhorando assim seu conhecimento obtido em estudos teóricos, vivendo algo próximo da realidade, permitindo que dúvidas que venham surgindo no andamento dos estudos e que são resolvidas junto com o orientador e professores da Instituição. Percebe-se que o desenvolvimento de um projeto como este é de grande importância no aprendizado, isso pela sua dificuldade que no inicio é quase intransponível mas que toma forma à medida que avança nas pesquisas e estudos a respeito, tornando enriquecedor para quem participa de sua construção. Foram seguidos passos, primeiramente a identificação do problema que neste caso é “a fila na biblioteca da Uniminas, para aquisição de livros”. Feito isto foi preciso pesquisar as possíveis soluções e o que estava sendo planejado nesse sentido. Entre as soluções apresentadas ou trabalhadas pela coordenação da instituição estão: compra de um software que suportar a demanda por um tempo limitado e tem preço de aquisição elevado e suas atualizações no mesmo nível de 51 preços; atualização do software existente na biblioteca também com custo alto além de não resolver sua defasagem em relação a outros programas de controle; a aquisição do modelo que hoje roda na UFU também foi cogitada mas abandonada pois o mesmo encontra-se desatualizado e operando no limite, e embora seja uma boa opção já que é um software completo e bem robusto. Hoje em dia, grandes empresas e instituições educacionais buscam e precisam que seus custos sejam baixos e que as soluções propostas sejam duráveis e possam dar retorno. Não querem investir em produtos caros que são novos e causam uma dependência técnica da empresa que vendeu, além de ter que investir em atualizações muitas vezes onerosas demais. Essas mesmas empresas e mercado em geral estão em busca de soluções baratas, inovadoras, custos baixos e profissionais capacitados competentes no desenvolvimento dessas soluções. Muitas vezes buscam estes profissionais dentro da própria empresa e no caso da Uniminas buscar essa solução dentro da sala de aula com alunos e professores é uma opção vantajosa para os dois lados. Por isso a apresentação deste projeto visa solucionar o problema desenvolvendo o sistema Biblioteca online, com custo baixo envolvendo alunos que estão vivendo o problema e o aprendizado de tecnologias novas. O projeto funcional foi desenvolvido tendo como referência livros da própria Uniminas, baseados na ferramenta UML. Uma dificuldade encontrada foi à existência de poucos títulos a respeito na biblioteca, e na Internet poucos sites disponibilizam algo sobre o assunto. No começo a pesquisa também foi difícil uma vez o que precisava ser feito para alcançar os resultados não estava bem determinado e com o inicio das orientações o estudo tornou-se mais fácil. Passou-se então a trabalhar com a documentação através dos diagramas de casos de uso, de seqüência, de atividade e colaboração, e suas especificações. Para um programador iniciante foi difícil já que os diagramas foram feitos manualmente no Word e PowerPoint, tornando mais fácil à medida que avançava e como resultado um trabalho bem estruturado que atende ao que foi proposto inicialmente. É preciso fazer das necessidades diárias da instituição fontes para aprimoramento de seus alunos, que desenvolveriam programas (soluções) para problemas identificados junto à administração, que poderia repassá-los por meio de temas para possíveis monografias específicas ou bônus de incentivos em mensalidades aos alunos que aceitarem o desafio. Fazer deste trabalho um ponto 52 de partida e não um fim, é válido futuramente como uma outra monografia a implementação seguindo este roteiro, pois o aluno vivenciara a tarefa de implementar algo feito por outro aluno.A dificuldade encontrada será uma bagagem valiosa de conhecimento, outro aspecto é tornar este acervo digitalizado, dando a oportunidade de o usuário fazer a pesquisa de uma determinada página ou do conteúdo do livro através do seu índice. Enfim, a Instituição tem vários campos de atuação e conseqüentemente novos temas e desafios que servirão de apoio no aprendizado. É possível notar que este projeto é realizável, e que pode ser inicio de um novo projeto de gerenciamento de Bibliotecas, com a participação de alunos de graduação, pós-graduação e professores da Uniminas. Seria uma forma de aliar a aquisição dos conhecimentos teóricos, com a prática efetiva, trazendo como resultado a produção de software de apoio às atividades acadêmicas e administrativas da Uniminas. 53 REFERÊNCIAS BIBLIOGRÁFICAS STERLING, H.; ANDREI, Z. PHP Guia do desenvolvedor. São Paulo: editora Berkeley, 2001. RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. UML Guia do usuário. Rio de Janeiro: editora Campus, 2000. CAY, S.H.; GARY, C. Core JAVA volume I – Fundamentos. São Paulo: editora Makron Books, 2001. YOURDON, E.; ARGILA, C. Análise e Projeto Orientados a objetos. São Paulo: editora Makron Books, 1999. ROWLEY, J. Informática para bibliotecas. Brasília: Briquet de Lemos/Livros, 1994. PAGINA PRINCIPAL DA UNIMINAS. Disponível em: www.uniminas.br Acesso em: 11 abr. 2004. TECNOLOGIAS UTILIZADAS PARA DESENVOLVER APLICAÇÕES PARA SERVIDORES WEB. Disponível em: www.bufaloinfo.com.br/windna/WinDNA.asp. Acesso em: 20 ago. 2004. TECNOLOGIAS PARA INTERNET. Disponível em: www.jspbrasil.com.br/jsp/tutoriais/tutorial.jsp?idTutorial=001.013 .acesso em 20 ago. 2004.