UNIVERSIDADE CATÓLICA DE GOIÁS DEPARTAMENTO DE COMPUTAÇÃO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO BIBLIOTECA VIRTUAL UTILIZANDO FRAMEWORK MENTAWAI PABLO SILVA BORGES RICARDO AUGUSTO RIBEIRO DE MENDONÇA GOIÂNIA/GO JUNHO/2007 ii2 UNIVERSIDADE CATÓLICA DE GOIÁS DEPARTAMENTO DE COMPUTAÇÃO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO BIBLIOTECA VIRTUAL UTILIZANDO FRAMEWORK MENTAWAI Trabalho de Conclusão de Curso apresentado por Pablo Silva Borges e Ricardo Augusto Ribeiro de Mendonça à Universidade Católica de Goiás, como requisito parcial para obtenção do título de Bacharéis em Ciência da Computação a ser aprovada pela Banca Examinadora: Professor Vicente Paulo de Camargo, UCG – Orientador Goiânia, 14 de junho de 2007. iii 3 BIBLIOTECA VIRTUAL UTILIZANDO FRAMEWORK MENTAWAI PABLO SILVA BORGES RICARDO AUGUSTO RIBEIRO DE MENDONÇA Trabalho de Conclusão de Curso apresentado por Pablo Silva Borges e Ricardo Augusto Ribeiro de Mendonça à Universidade Católica de Goiás, como parte dos requisitos para obtenção do título de Bacharel em Ciência da Computação. ____________________________________ Professor Vicente Paulo de Camargo Orientador _________________________________ Professor Dr. José Luiz de Freitas Júnior Coordenador de Projeto Final de Curso iv 4 DEDICATÓRIA Ao professor Vicente Paulo de Camargo, orientador depositada. acadêmico, Aos pelo nossos apoio amigos e pelo confiança apoio e compreensão. Às nossas famílias, pelo incentivo em todas as fases de nossas vidas. v5 AGRADECIMENTOS Agradecemos primeiramente a Deus, pela oportunidade de dar esse salto tão importante em nossas vidas acadêmicas e profissionais, sempre com saúde e força de vontade. Agradecemos a todos os professores e colaboradores com os quais tivemos a oportunidade e o prazer de aprender. Em especial, agradecemos aos nossos amigos e familiares pela compreensão e incentivo durante o período de pesquisas e elaboração deste projeto final. E a todos aqueles que de alguma forma ajudaram e apoiaram-nos nos mais diversos momentos que passamos. vi6 RESUMO Atualmente, com a difusão da internet e a exploração de suas características, como o uso de aplicações Web, sente-se a necessidade, nos diversos ramos de atuação empresarial, de adequação à realidade tecnológica que cada vez se torna mais presente no nosso meio. Surgem assim mudanças de paradigma entre as organizações, a fim de conquistar o cliente e facilitar cada vez mais a manipulação e, principalmente, a disponibilização das informações. Diante dessa realidade, várias ferramentas têm surgido todos os dias com o objetivo de suprir tal deficiência. O projeto de Biblioteca Virtual vem se caracterizar como uma ferramenta versátil, que utiliza os mais variados e eficientes mecanismos de gerenciamento, manipulação e tratamento das informações com o intuito de agilizar as funções administrativas dos operadores e oferecer aos usuários todas as facilidades e particularidades que uma aplicação Web possui, como a disponibilização da informação em tempo real, qualquer que seja o lugar através do qual se dá o acesso. Seguindo padrões como RUP, para projeto e desenvolvimento da aplicação, e MARC, para manipulação das informações dos acervos adquiridos, e utilizando-se de um framework específico. Palavras-Chave: Biblioteca, Virtual, aplicação Web, padrão MARC, padrão RUP. vii 7 ABSTRACT Currently, with internet diffusion and its characteristics’ exploration, like Web applications use, there’s need of adjusting to the technological reality that becomes, day after day, more present between us. In this way, paradigm changes appear among organizations in order to conquer clients and make easier and easier the manipulation and availability of information to them. Over this reality, many tools have appeared every day with the objective of supplying such deficiency. The Virtual Library project comes to characterize itself as a versatile tool, which uses the most varied and efficient mechanisms of management, manipulation and treatment of information with intention of speeding the operators’ administrative functions and offering to users all the facilities and particularities that a Web application has, like realtime availability of information. Following standards as RUP, to design and development of application, and MARC, for manipulating information about acquired books, and by making use of a specific framework, the system provides all functionalities of a well structured common library, with this difference: its accessibility, that just requires internet connection. Keywords: Library, Virtual, Web application, MARC standard, RUP standard. viii 8 BIBLIOTECA VIRTUAL UTILIZANDO FRAMEWORK MENTAWAI SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS xi LISTA DE FIGURAS xii 1. INTRODUÇÃO 13 2. UMA VISÃO SOBRE AS FORMAS DE BIBLIOTECA 15 2.1. A EVOLUÇÃO DA BIBLIOTECA 15 2.2. O PADRÃO MARC 17 2.2.1. Componentes de um registro MARC 19 2.2.2. Formato MARC – Benefícios e Vantagens 21 2.2.3. O MARC no Brasil 23 2.2.4. Complementos 24 3. DESENVOLVIMENTO DE SOFTWARE ORIENTADO A OBJETOS 25 3.1. ORIENTAÇÃO A OBJETOS 25 3.2. UML 25 3.3. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 26 3.4. RUP - RATIONAL UNIFIED PROCESS 27 3.4.1. Conceitos Básicos 28 3.4.2. Estrutura do RUP 30 3.4.3. Elementos Essenciais do Processo 31 3.4.4. Fases 33 3.4.5. Complementos 34 3.5. WEB 2.0 34 3.6. DESIGN PATTERNS 36 3.6.1. 37 Padrões de Projeto na programação Web 9ix 3.6.2. 3.7. 4. Vantagens e Desvantagens do uso de Design Patterns 39 FRAMEWORKS 39 3.7.1. Frameworks Específicos 40 3.7.2. Frameworks de Visão 42 O SISTEMA DE BIBLIOTECA VIRTUAL 44 4.1. VISÃO DO PROJETO BIBLIOTECA VIRTUAL 45 4.1.1. Escopo 46 4.1.2. Posicionamento 47 4.1.3. Descrições dos Envolvidos e Usuários 49 4.2. 4.3. REQUISITOS DO SISTEMA BIBLIOTECA VIRTUAL 51 4.2.1. Requisitos Funcionais 51 4.2.2. Requisitos Não Funcionais 58 4.2.3. Glossário 58 DOCUMENTO DE ANÁLISE DO SISTEMA BIBLIOTECA 60 VIRTUAL 4.4. 4.3.1. Relação dos Requisitos 60 4.3.2. Organização dos Requisitos 61 4.3.3. Expansão dos Casos de Uso 63 4.3.4. Modelo Conceitual 74 DOCUMENTO DE PROJETO DO SISTEMA BIBLIOTECA 75 VIRTUAL 4.5. 4.4.1. Diagrama de Seqüência 75 4.4.2. Diagrama de Classes do Projeto 84 4.4.3. Modelo de Entidade e Relacionamento (MER) 85 ARQUITETURA DO SISTEMA BIBLIOTECA VIRTUAL 85 4.5.1. Apresentação 86 4.5.2. Controle 87 4.5.3. Negócio 87 4.5.4. Persistência 87 4.5.5. Entidade 88 10x 4.5.6. 5. Visão Geral CONCLUSÃO 89 91 REFERÊNCIAS BIBLIOGRÁFICAS 92 GLOSSÁRIO 94 ANEXO I CAMPOS DE UM REGISTRO MARC 99 ANEXO II EXEMPLO DE REGISTRO NO FORMATO MARC 106 xi 11 LISTA DE ABREVIATURAS E SIGLAS AOP ASCII CALCO Programação Orientada a Aspectos American Standard Code for Information Interchange Catalogação Legível por Computador CGI Common Gateway Interface CMM Capability Maturity Model CSS Cascading Style Sheets CVS Concurrent Versioning System EJB Enterprise JavaBean HTML HyperText Markup Language IBICT Instituto Brasileiro de Informação em Ciência e Tecnologia IoC Inversão de Controle IDE Integrated Development Environment JEE Java Enterprise Edition JSF Java Server Faces JSP Java Server Pages JSTL MARC JSP Standard Tag Library Machine Readable Cataloging Record MVC Model View Controller OPAC Online Public Access Catalog RUP Rational Unified Process SEI Software Engineering Institute PDS Plano de Desenvolvimento de Software UML Unified Modeling Language XML eXtensible Markup Language WWW World Wide Web 12 xii LISTA DE FIGURAS Figura 1 − Simbologia do padrão MARC. 18 Figura 2 − Exemplo de um registro MARC, ainda uma string no formato de comunicação MARC. Figura 3 − Desenvolvimento Iterativo/Incremental. 19 27 Figura 4 − Exemplo de Fases e Dimensões do RUP. 30 Figura 5 − Arquitetura do Struts. 41 Figura 6 − Diagrama de caso de uso do Sistema de Biblioteca Virtual. 73 Figura 7 − Modelo conceitual do Sistema de Biblioteca Virtual. 74 Figura 8 − Diagrama de seqüência autenticar associado. 75 Figura 9 − Diagrama de seqüência autenticar bibliotecário. 76 Figura 10 − Diagrama de seqüência manter acervo. 77 Figura 11 − Diagrama de seqüência manter acervo por MARC 21. 78 Figura 12 − Diagrama de seqüência manter associado. 79 Figura 13 − Diagrama de seqüência manter bibliotecário. 80 Figura 14 − Diagrama de seqüência manter empréstimo. 81 Figura 15 − Diagrama de seqüência manter reserva. 82 Figura 16 − Diagrama de seqüência registrar devolução. 83 Figura 17 − Diagrama de classes do Sistema de Biblioteca Virtual. 84 Figura 18 − Modelo de Entidade e Relacionamento do Sistema de Biblioteca Virtual. 85 Figura 19 − Arquitetura MVC. 86 Figura 20 − Arquitetura do Sistema Biblioteca Virtual. 89 13 BIBLIOTECA VIRTUAL UTILIZANDO FRAMEWORK MENTAWAI CAPÍTULO 1 INTRODUÇÃO Cada vez mais a era digital se faz presente em nosso meio, seja ele acadêmico, profissional ou comercial. Nos diversos ramos empresariais já vêm se criando a concepção de que, ou se acompanha a tendência tecnológica que o mundo vive, ou não se terá espaço no mercado futuro. Baseado nisso, hoje dificilmente encontra-se uma empresa de médio ou até pequeno porte que não possua ao menos um Web site. Atualmente a difusão da internet torna-se cada vez mais acentuada e explorada sob diversos prismas, haja vista que ela possui um poder uniforme de propagar a informação, maior que qualquer outro meio de comunicação. Nesse aspecto difundiu-se o conceito do uso de aplicações Web, que manipulariam a informação e a disponibilizaria sem que fosse necessária a presença física do operador do sistema [2]. Surgem, assim, mudanças de paradigma entre as organizações a fim de conquistar o cliente e facilitar cada vez mais a manipulação e a disponibilização das informações a ele. Especificamente sobre a biblioteconomia, o maior problema é de fácil visualização: a dificuldade de acesso ao acervo, não por falta de estrutura física das bibliotecas - pelo contrário, muitas são conhecidas pela sua grandiosidade -, mas principalmente por um dos fatores que mais influencia a vida das pessoas no mundo globalizado de hoje - a falta de tempo [1]. Imagine, por exemplo, a facilidade de se consultar, de qualquer lugar, a qualquer hora, informações sobre obras necessárias para realização de um trabalho acadêmico, necessitando apenas de uma conexão com a internet - sem a necessidade de perder horas no trânsito para se locomover até uma biblioteca, com uma reunião marcada em poucos minutos, ou a biblioteca mais próxima se localizar na cidade vizinha, e, ao chegar ao local, descobrir que o material já estava sob empréstimo. 14 Essa é uma realidade que já ocorre nos dias atuais, nas diversas bibliotecas existentes no país, mas o conhecimento das características de controle de acervos de uma biblioteca ainda não é muito disseminado o que dificulta a sua compreensão. Esse trabalho propõe o desenvolvimento de um sistema de biblioteca que utilizará mecanismos de gerenciamento, manipulação e tratamento das informações, baseando-se em padrões reconhecidos, como RUP (Rational Unified Process), para projeto e desenvolvimento de aplicações. O Sistema também usará tecnologias de ponta, como a Web 2.0, que permite ao usuário operar o sistema mais facilmente, de forma prática e intuitiva. Além disso, serão escolhidos um ou mais frameworks que facilitem e dêem qualidade ao desenvolvimento da aplicação. Como as bibliotecas utilizam o padrão MARC para catalogação de acervos e também para comunicação entre bibliotecas para troca de informações, esse sistema apresentará o padrão MARC para auxiliar na catalogação eletrônica das informações, visto que esse padrão é pouco difundido no mundo acadêmico e também na esfera empresarial. O referido trabalho é composto basicamente de cinco capítulos. O primeiro capítulo faz uma breve introdução sobre o diferencial da realização do trabalho, descrevendo também sua estrutura organizacional. O segundo capítulo descreve sobre as formas de biblioteca, tanto as antigas quanto as emergentes. Também dispõe sobre o padrão MARC, utilizado pela maioria dos sistemas de bibliotecas, bem como suas pré-evoluções e derivações. O terceiro capítulo faz referência às tecnologias utilizadas no desenvolvimento do software, como Orientação a Objetos, UML, RUP e frameworks que poderão ser escolhidos (ou combinados) para o desenvolvimento da aplicação em questão. O quarto capítulo dispõe sobre o Sistema de Biblioteca Virtual, suas características, objetivos e aspirações dos autores com o desenvolvimento do projeto. Por fim, o quinto e último capítulo apresenta a conclusão, bem como sugestões para trabalhos futuros. 15 CAPÍTULO 2 UMA VISÃO SOBRE AS FORMAS DE BIBLIOTECA 2.1. A EVOLUÇÃO DA BIBLIOTECA As inovações tecnológicas têm-se mostrado cada vez mais presentes nas atividades de nosso dia a dia, haja vista que todas as áreas de atuação estão em constante evolução para que consigam ter um melhor desempenho e qualidade em suas atividades. Grande parte das tarefas que há muito tempo vêm sendo desenvolvidas manualmente, em um processo desgastante, cansativo e não muito eficiente, passaram, com o advento da internet, das redes de computadores e dos sistemas integrados, a ser automatizadas e a tornar mais fácil a vida não só de quem provém os serviços, mas de quem os obtém. No entanto, antes de tudo, faz-se necessário discorrer sucintamente sobre a biblioteca convencional, suas características e principalmente suas limitações, que levaram à necessidade da interferência da tecnologia nesse meio. As tecnologias da imprensa, máquina de escrever, telefone, telex, mimeógrafo, microfilme, cartão perfurado nas margens, computador, disco ótico, redes eletrônicas e agora a internet afetaram e tem afetado a biblioteca ao longo do tempo. Algumas dessas tecnologias, tais como o microfilme e o disco ótico, tiveram suas primeiras aplicações testadas dentro de uma biblioteca [3]. Assim, apesar das dificuldades financeiras que tradicionalmente a biblioteca enfrenta, por não oferecer um lucro explicito e apenas fornecer fonte de pesquisa aos interessados, as novas tecnologias foram, paulatinamente, incorporadas às suas atividades, provocando mudanças internas e na maneira de prover produtos e serviços aos usuários. Não que não houvesse restrições por parte dos envolvidos na sua organização, mas o problema é que a tecnologia chegou atropelando, se infiltrando nas mais diversas áreas. E nos últimos anos tal mudança tecnológica tem sido cada vez maior num espaço temporal cada vez menor. Diferentes perspectivas para o gerenciamento de recursos de informação estão sendo discutidas, podendo-se destacar o conceito de “biblioteca virtual”. 16 Na área da Biblioteconomia e da Documentação, o conceito de virtual vem sendo usado toda vez que se deseja ressaltar a utilização de infra-estrutura tecnológica de base eletrônica e rede de computadores e ainda há muita confusão entre os conceitos de biblioteca informatizada, biblioteca digital e biblioteca virtual. Na busca por uma explicação para os impactos da tecnologia na geração, publicação e disponibilidade de documentos com base na tecnologia do computador, a história da biblioteca pode ser dividida em três períodos principais: [11] A biblioteca tradicional, de Aristóteles até o início da automação de bibliotecas; A biblioteca moderna ou informatizada, em que os computadores foram usados para serviços básicos, como catalogação e organização do “estoque” / acervo; A biblioteca eletrônica (ou biblioteca do futuro), pensada como uma nova estratégia para o resgate de informações. Neste ponto, distinguem-se dois prismas: a biblioteca virtual, onde é possível consultar informações sobre os acervos e reservá-los para um empréstimo futuro, e a biblioteca digital, onde o texto completo dos documentos está disponível on-line. No entanto, ambas podem ser acessadas remotamente de uma localidade qualquer, por meio de uma rede de computadores, favorecendo a acessibilidade universal. Nesta concepção revolucionária, de biblioteca digital, os “livros virtuais” não sofrerão mais os problemas de suas contrapartes físicas, podendo ser duplicados quantas vezes se desejar. A própria biblioteca será “infinita”, pois não haverá limites para o número de acervos que possa conter, desde que estruturada e disponibilizada em computadores poderosos, interligados a redes de alta velocidade. Porém, o foco desse trabalho é a biblioteca virtual. Ela proporciona o gerenciamento das tarefas internas desenvolvidas pelos operadores da biblioteca, facilitando o acesso a outros sistemas de informação, a troca de mensagens e a recuperação de arquivos, bem como a importação de acervos de outras instituições, segundo o padrão MARC, tornando o acervo próprio sempre atualizado e completo. Além disso, permite que usuários externos acessem as informações sobre os acervos presentes, interajam com o sistema e façam reservas on-line, de acordo com a disponibilidade atual, dando praticidade a essa operação. A partir destas definições, o entendimento de biblioteca virtual fica mais claro, uma vez que os autores da área não têm um conceito único de biblioteca virtual nem de biblioteca digital. Uns afirmam que há diferença entre elas, outras as vêem como sinônimas. De forma clara e objetiva, a “virtual” diria respeito mais à forma de acesso às informações presentes no acervo da biblioteca, sem a presença física dos envolvidos no processo, enquanto a “digital” 17 faria jus à forma como a informação e os documentos requisitados seriam disponibilizados, de forma independente de uma estrutura física, pois todo o acervo seria digitalizado. 2.2 O PADRÃO MARC O padrão MARC foi criado nos anos 70 pela Library of Congress, com a finalidade de possibilitar que registros bibliográficos pudessem ser manipulados em computadores. O MARC recebeu modificações ao longo do tempo e passou a ser denominado USMARC nos anos 80 e MARC 21 no final dos anos 90. É utilizado na organização de catálogos de bibliotecas em todo o mundo. A sigla MARC significa Machine Readable Cataloging Record, ou seja, registro catalográfico legível por computador. Registro catalográfico significa um registro bibliográfico, tradicionalmente apresentado em uma ficha catalográfica que inclui uma descrição (título, responsabilidade, edição, dados sobre o material, descrição física, etc.), a entrada principal e as entradas secundárias (“pontos de acesso” que permitem recuperar itens em um catálogo), cabeçalhos de assunto (descritores retirados de listas padronizadas de termos que descrevem o conteúdo do item) e os números de chamada (código de classificação, em geral alfanumérico, que reúne itens de mesmo assunto em um mesmo local físico) [5]. O padrão MARC é composto por diversos campos padronizados, que contém representação de dados e metadados bibliográficos. Cada campo é identificado por uma seqüência de três dígitos (etiqueta), por exemplo: 100 para o campo autor, 130 para o campo título, 300 para o campo descrição física, etc. E tais campos podem, ainda, conter subcampos. O registro MARC contém sinalizadores que marcam o registro armazenado e auxiliam na leitura e interpretação desse registro. Os sinalizadores indicam o início e o término dos campos e subcampos. Por exemplo, ao invés de palavras, usam-se os códigos 260 $a $b $c para marcar o campo que contém os subcampos “área de publicação”, “local de publicação”, “nome da editora” e “data de publicação” em cada registro. Os “sinalizadores” MARC auxiliam os computadores na leitura e interpretação do registro, marcando o registro bibliográfico para armazenamento em meio magnético [13]. A Figura 1 apresenta um fragmento de um registro, mostrando os sinalizadores de texto e seus correspondentes no padrão MARC. 18 Figura 1: Simbologia do padrão MARC [5] A Figura 1 mostra os sinalizadores para campos, indicadores e subcampos. O número “100” corresponde à etiqueta que representa o campo onde está o nome do autor. Os indicadores correspondem a duas posições de caracteres localizados após cada etiqueta. Na primeira linha da Figura 1, os indicadores para o campo “100” são os caracteres “1” e “#” (o símbolo # significa que o indicador não é usado). Um indicador de valor “1” no campo de título, correspondente ao “100” e significa que deverá haver uma entrada de título no catálogo. Cada tipo de dado em um campo é chamado “subcampo” e é precedido pelo código do subcampo, representado por letras minúsculas. Na Figura 1, o campo “300” tem o subcampo “a” que representa o número de páginas. O código do subcampo é precedido por um delimitador. Delimitadores são caracteres usados para separar subcampos e podem ser representados por diferentes símbolos (@, (), $, _, etc.). Na Figura 1, o delimitador é o sinal “$”. Existem diferentes formas pelas quais um registro bibliográfico pode ser representado: uma ficha catalográfica tradicional (cartão), as telas dos sistemas informatizados de bibliotecas OPAC, já descritas, e as telas de edição de dados de softwares que trabalham com o padrão MARC. Além desses, o padrão MARC possui um formato de comunicação que segue a norma ISO 2709, e é utilizado quando o objetivo é o intercâmbio de registros bibliográficos. O formato de armazenamento interno é convertido para o formato de comunicação para que os registros possam ser transferidos entre sistemas [5]. A seguir serão descritos mais detalhadamente os componentes de um registro MARC. 19 2.2.1 Componentes de um registro MARC A Figura 2 exemplifica um registro MARC. Figura 2: Exemplo de um registro MARC, ainda uma string no formato de comunicação MARC [5] No formato de comunicação, precedendo a parte do registro bibliográfico que contém os dados, existem duas seqüências de caracteres chamadas “líder” e “diretório”. Além delas, há de se ressaltar uma terceira seqüência: os campos variáveis. 2.2.1.1 Líder Armazena informações necessárias ao processamento do registro. Contém códigos ou números identificados pela posição relativa do caracter. O líder possui tamanho fixo de 24 caracteres e é o primeiro campo de um registro MARC. 20 2.2.1.2 Diretório Série de entradas que contém a etiqueta (tag), tamanho e posição inicial de cada campo variável em um registro. Cada entrada do diretório possui 12 caracteres e a sequência de diretórios é encerrada por um caracter delimitador de campo (ASCII 30). 2.2.1.3 Campos variáveis O conteúdo propriamente dito é armazenado em campos variáveis, os quais são identificados por etiquetas compostas por três algarismos. Cada campo termina com um caracter delimitador de campo. O último campo variável num registro termina co3m um caracter delimitador de campo e um caracter delimitador de registro (ASCII 29). Existem dois tipos de campos variáveis: campos variáveis de controle e campos variáveis de dados. a) Campos variáveis de controle. Composto pelo grupo 00X. São estruturalmente diferentes dos campos variáveis de dados. Não possuem indicadores nem códigos de subcampos. Podem conter um único elemento de informação ou uma série de dados com tamanho fixo, identificados pela posição relativa dos caracteres. b) Campos variáveis de dados. Composto pelo grupo 0XX-9XX. Armazenam informações não estruturadas, de tamanho variável. Neste grupo são utilizados dois tipos de designação de conteúdo: indicadores e códigos de subcampos. O grupo 9XX está reservado para implementações locais. Indicadores: São as duas posições iniciais de caracter do início de cada campo variável. Contém valores que interpretam ou suplementam os dados armazenados no campo. Os indicadores são independentes e podem ser caracteres ou algarismos. Quando o uso de indicadores não é aplicável, o caracter branco (ASCII 32) é usado para preencher a posição. O uso de espaço em branco numa posição definida de indicadores pode possuir significado ou indicar que nenhuma informação foi indicada. Códigos de subcampo: Conjunto de dois caracteres que precedem cada elemento de dados que requeira tratamento separado em um campo. Um código de subcampo consiste de um delimitador (ASCII 31 para MARC e ASCII 94 para CDS/Isis) seguido por identificador de elemento de dados. Identificador de elemento 21 de dados pode ser caracteres numéricos ou alfabéticos em caixa baixa. Subcampos são definidos de forma independente para cada subcampo, mas preservam o mesmo significado sempre que possível. Subcampos são definidos para fins de identificação, não de arranjo. 2.2.2 Formato MARC – Benefícios e Vantagens Os benefícios e vantagens para uma biblioteca que adere ao padrão MARC 21, certamente vão além dos que serão destacados a seguir neste trabalho. Muitos se perguntam por que devem usar o formato MARC, se podem obter resultados igualmente satisfatórios através de uma solução bem mais simples, sem se preocupar com tantos detalhes, aparentemente inúteis. Esta poderá ser a indagação de um profissional de informática, encarregado de estudar uma solução para a automação da biblioteca local, porem cabe aos bibliotecários não se deixar levar pelas facilidades e resultados imediatos, considerando com atenção as seguintes questões: [5] a) Importância do registro bibliográfico. Os catalogadores sabem que a catalogação original de um título dá muito trabalho, portanto, custa caro, pois requer profissionais qualificados e experientes, geralmente de salário mais alto e demanda tempo. Por isso, uma vez catalogado determinado título, os dados devem ter sua integridade preservada, isto é, os registros bibliográficos devem ser considerados um bem valioso e permanente da Biblioteca. Podemos considerar que, basicamente, a automação de uma biblioteca envolve três elementos: Registros bibliográficos em meio magnético (base bibliográfica); Software para a manipulação adequada dos registros bibliográficos; e equipamentos (computadores) para armazenar e processar os dados. Cada um destes elementos demanda custos que irão variar de acordo com o tamanho e necessidades da biblioteca. Tanto o software como os computadores tornam-se obsoletos em um espaço de tempo cada vez mais curto, devido à constante evolução tecnológica, e requer investimentos para sua eventual substituição. A base bibliográfica, porém, não deve estar sujeita a um re-trabalho ao longo do tempo e isto se consegue através da adoção de um formato padrão, como o MARC 21, pois o mesmo garante a completa portabilidade dos dados bibliográficos, no caso de uma troca de sistema. Esta questão pode ser melhor compreendida na experiência relatada por Paranhos, quando afirma: 22 “... a UFPR, por participar da Rede Bibliodata..., ao adquirir seu sistema aplicativo para gerenciamento das bibliotecas em 2001, já dispunha de 55.000 registros referentes a livros em formato padrão MARC, que puderam ser imediatamente importados no sistema... Assim, a construção da base bibliográfica é o investimento de caráter permanente no processo de informatização de bibliotecas. Sistemas aplicativos, cada vez mais potentes, representam alternativas para eventuais mudanças em seu uso; equipamento tem caráter evolutivo rápido, demandando reserva de recursos para substituição e/ou atualização tecnológica. Já a base bibliográfica, dependendo de como é construída, pode implicar em re-trabalho, conforme se tenha respeito ou não a padrões na prática biblioteconômica e no software aplicativo selecionado: se a base é construída em respeito a padrões, é um ativo permanente que não vai exigir re-trabalho na hipótese de migração entre sistemas que também o adotem.” b) Aquisição de registros já catalogados. A expressão: “catalogação cooperativa” ou “catalogação por cópia”, do termo em inglês: “copy cataloging” é bastante comum. Refere-se à incorporação na base local de registros a partir de outras bases, catalogados por outras instituições. Desta maneira consegue-se ter vantagens em termos de tempo (a catalogação de um título será muito mais rápido) e conseqüentemente de menor custo. Isto fica evidente, quando há adesão a um padrão como o MARC 21, pois a maioria dos títulos existentes já foi catalogada em MARC e se encontram em alguma base de dados. Embora nem todas as bases permitam a cópia gratuita de registros, existem muitas em que isto é possível e outros a um custo relativamente baixo, de forma que sempre é melhor copiar do que fazer uma catalogação original. A catalogação cooperativa tem como ideal que um livro seja catalogado uma única vez na sua origem e todas as bibliotecas que vierem a adquirilo, copiem seu registro bibliográfico de alguma fonte disponível [12]. c) Escolha do software. É notório que os softwares mais importantes de automação de bibliotecas, tanto do mercado nacional como internacional, implementam o formato MARC. Daí a adesão a este padrão para a construção da base bibliográfica, facilitará no momento da escolha de um sistema de automação. As opções de software são muitas, mas é importante salientar que a avaliação mais favorável deve ser para aquele que permite a importação e exportação de registros no formato MARC. Com isto, a migração dos dados da base bibliográfica será tranqüila, sem descaracterizar os registros e sem perda de informações. 23 d) Benefícios para os usuários. O objetivo maior da informatização de uma biblioteca deve ser a satisfação dos seus usuários. Um dos principais fatores que levam à satisfação dos usuários é, sem dúvida, relacionado à recuperação da informação. O sistema de recuperação precisa dar respostas satisfatórias às perguntas do usuário, isto é, recuperar o que se deseja, nem mais, nem menos, o que em termo técnicos é conhecido por baixa revocação e alta precisão. O formato MARC poderá contribuir para que isto aconteça, através de sistemas de recuperação que se valem da identificação de cada elemento da informação bibliográfica, como os dados codificados, campos e subcampos que atribuem significado ao conteúdo, maximizando a precisão e minimizando a revocação. Branton e Chen-Gaffey [13] confirmam isto em um tutorial publicado na Internet, dizendo: “Standardized bibliographic data input, utilizing MARC formats, insures the integrity of the online public catalog in storage and retrieval of information. When we talk about MARC, we hope to convey its importance to those who create and maintain MARC data in the online public catalog. Without good, accurate MARC records, patrons cannot find the great resources in the library. An OPAC, to some extent, hides the intricacies of MARC from the patron, but without MARC, the patron would not find the resources. MARC format cataloging has proven, for over thirty years, to be the most reliable foundation in building databases for the OPAC.” 2.2.3 O MARC no Brasil A introdução do MARC no Brasil se deu através de projetos de formatos MARC compatíveis, como o formato CALCO da Fundação Getúlio Vargas, Formato IBICT e o Mini CALCO da Universidade Federal de Minas Gerais. O Projeto CALCO (termo que é um acrônimo do termo MARC, pois quer dizer CAtalogação Legível por COmputador) deu origem à Rede Bibliodata que, devido ao formato CALCO, inicialmente chamava-se “Rede Bibliodata/CALCO”, dando início às suas atividades em 1980. Em 1996 a base de dados do sistema Bibliodata/CALCO foi migrada para o formato USMARC e todas as bibliotecas cooperantes passaram a usar este formato (USMARC) como padrão para catalogação bibliográfica. A partir de 2000 passou a adotar o formato MARC 21. O Catálogo Coletivo Bibliodata representa hoje a maior base bibliográfica em formato MARC 21 do Brasil e, sem dúvida, da América Latina, tornando-se uma Utilidade Bibliográfica brasileira que serve 24 como provedora de registros bibliográficos em MARC 21 para muitas bibliotecas brasileiras, principalmente bibliotecas universitárias [7]. Apesar de já terem passado mais de vinte anos desde a introdução do MARC, ou MARC compatível, no Brasil, a adesão a este padrão ainda encontra resistências por parte de muitas bibliotecas e bibliotecários, bem como fornecedores de software de automação de bibliotecas. Isto acontece, talvez, por acharem o MARC muito complexo e difícil de implementar, ou por desconhecerem os benefícios diretos e indiretos que a adesão a um padrão como este poderá trazer. Alguém poderá argumentar que tudo o que o MARC pode proporcionar em termos de resultados para atender as necessidades de uma biblioteca, é perfeitamente possível obter através de um sistema desenvolvido localmente, sob medida e de forma simplificada. Quando isto acontece, geralmente, mais cedo ou mais tarde, o trabalho precisa ser refeito, pois vale a máxima que afirma: “A simplificação na entrada impõe restrições na saída” [7]. 2.2.4 Complementos O padrão MARC tem um papel preponderante no desenvolvimento do Sistema de Biblioteca Virtual de que trata este trabalho, haja vista que é um padrão robusto utilizado pela grande maioria das instituições bibliotecárias bem estruturadas, que são o foco da aplicação. Ele será utilizado para importação e exportação de dados do acervo, de forma automática, bem como para a padronização de todo e qualquer obra ou documento que venha a fazer parte de tal acervo. Informações adicionais sobre o MARC, como conteúdo dos campos utilizados em seu registro e até um exemplo de elaboração de tal registro a partir de dados da obra, estão disponíveis nos Anexos I e II deste trabalho. 25 CAPÍTULO 3 DESENVOLVIMENTO DE SOFTWARE ORIENTADO A OBJETOS 3.1 ORIENTAÇÃO A OBJETOS A orientação a objetos, também conhecida como Desenvolvimento Orientado a Objetos, é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos [14]. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Hoje existem duas vertentes no projeto de sistemas orientados a objetos. O projeto formal, normalmente utilizando técnicas como a notação UML e processos de desenvolvimento como o RUP; e a programação extrema (XP - Extreme Programming), que utiliza pouca documentação, programação em pares e testes unitários [14]. Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definidos nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. 3.2 UML A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira geração. A UML não é um método de desenvolvimento, o que significa que ela não diz a seqüência das ações a serem desenvolvidas ou como desenhar o sistema, mas ele lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Basicamente, a UML permite que desenvolvedores visualizem os produtos e serviços de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora 26 o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML. A UML é uma linguagem para especificação, documentação, visualização e desenvolvimento de sistemas orientados a objetos. Sintetiza os principais métodos existentes, sendo utilizada para modelagem de sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de softwares sob diversas perspectivas de visualização. Facilita a comunicação de todas as pessoas envolvidas no processo de desenvolvimento de um sistema - gerentes, coordenadores, analistas, desenvolvedores - por apresentar um vocabulário de fácil entendimento. 3.3 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Muitas organizações têm, aos poucos, entendido a importância de um processo de desenvolvimento de software bem documentado e bem definido para o sucesso de seus projetos de software. O desenvolvimento do CMM (Capability Maturity Model) pelo Instituto de Engenharia de Software (Software Engineering Institute - SEI) se tornou um norte, um padrão que muitas organizações começaram a seguir quando não possuíam uma base definida. Através dos anos, os desenvolvedores dessas organizações têm obtido conhecimento em tal processo, e a partir disso criado e disseminado internamente seus próprios processos de desenvolvimento de software. A documentação usada internamente seria seguida no desenvolvimento de vários desses softwares. Infelizmente, na prática, esses processos internos quase nunca são seguidos, pois se chega a um ponto em que passam a ser raramente atualizados, e se tornam obsoletos. Outras organizações de desenvolvimento de software não têm processo algum, e precisam de um ponto de partida, um processo inicial para colocá-las no caminho do rápido e eficiente desenvolvimento de produtos de software cada vez melhores [8]. Um processo é um conjunto de passos parcialmente ordenados com a intenção de atingir uma meta. Em engenharia de software, a meta é criar um software ou aperfeiçoar um existente; em engenharia de processos, a meta é desenvolver ou aperfeiçoar um processo. Em termos de modelagem de negócios, o processo de desenvolvimento de software é um processo de negócios. Ele descreve uma família de processos de desenvolvimento de software relacionados que compartilha uma estrutura comum, uma arquitetura de processos 27 comum. Ele proporciona uma abordagem disciplinada para a atribuição de tarefas, como ilustra a Figura 3, e de responsabilidades dentro de uma organização de desenvolvimento. Figura 3: Desenvolvimento Iterativo/Incremental [8] Quando um sistema de software é desenvolvido começando do zero, o desenvolvimento é o processo de criação de um sistema a partir dos requisitos. Porém, depois que os sistemas tiverem tomado forma, os desenvolvimentos subseqüentes serão o processo de adaptação do sistema aos requisitos novos ou modificados. Isso se aplica durante todo o ciclo de vida do sistema. 3.4 RUP - RATIONAL UNIFIED PROCESS O Rational Unified Process® (também chamado de processo RUP®) é um processo de desenvolvimento de software. Sua meta é garantir a produção de software de alta qualidade que atenda às necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis. Nas subseções a seguir, apresentam-se alguns conceitos básicos, estrutura e fases do RUP [8]. 28 3.4.1 Conceitos Básicos 3.4.1.1 Papel O conceito mais central no processo de desenvolvimento de software é o conceito de Papel. O Papel define o comportamento e as responsabilidades de um indivíduo ou de um conjunto de indivíduos que trabalham juntos como uma equipe, no contexto de uma organização de engenharia de software. 3.4.1.2 Atividade Os papéis possuem atividades que definem o trabalho que executam. Uma atividade é algo que um papel faz e produz um resultado significativo no contexto do projeto. A atividade tem uma finalidade clara, normalmente expressa em termos da criação ou atualização de alguns artefatos como um modelo, uma classe, um plano. 3.4.1.3 Passos As atividades são divididas em passos. Os passos podem pertencer a três categorias principais: - Passos de reflexão: nos quais o indivíduo que executa o papel compreende a natureza da tarefa, reúne e examina os artefatos de entrada e formula a saída. - Passos de execução: nos quais o indivíduo que executa o papel cria ou atualiza alguns artefatos. - Passos de revisão: nos quais o indivíduo que executa o papel analisa os resultados em relação a alguns critérios. 3.4.1.4 Orientações de Trabalho As atividades podem possuir Orientações de Trabalho associadas, que apresentam conselhos práticos e técnicas úteis para o papel que executa a atividade. 29 3.4.1.5 Artefato As atividades possuem artefatos de entrada e saída. Um artefato é um produto de trabalho do processo: os papéis usam os artefatos para executar atividades e produzem artefatos ao executarem as atividades. Os artefatos são de responsabilidade de um único papel e promovem a idéia de que todas as informações no processo devem ser de responsabilidade de uma pessoa específica, apesar de muitas outras podem utilizá-lo e, talvez, até atualizá-lo se tiverem permissão. Observe que "artefato" é o termo utilizado no RUP. Outros processos utilizam termos como produto de trabalho, unidade de trabalho e outros, para designar o mesmo elemento. 3.4.1.6 Template Templates são "modelos" ou protótipos de artefatos. Associados à descrição do artefato estão um ou mais templates que podem ser utilizados para criar os artefatos correspondentes. Os templates estão vinculados à ferramenta que será usada. 3.4.1.7 Relatório Os modelos e os elementos de modelo podem ter relatórios associados a eles. Com a ajuda de uma ferramenta, um relatório extrai informações sobre os modelos e os elementos de modelo. 3.4.1.8 Fluxo de Trabalho Uma simples enumeração de todos os papéis, atividades e artefatos não constitui um processo; é necessária uma forma para descrever as seqüências significativas das atividades que produzem algum resultado importante e para mostrar as interações entre os papéis. O fluxo de trabalho é uma seqüência das atividades que produzem um resultado de valor observável. 30 3.4.2 Estrutura do RUP A Figura 4 mostra a estrutura do RUP. Por exemplo, nas iterações iniciais, dedica-se mais tempo aos requisitos. Já nas iterações posteriores, gasta-se mais tempo com implementação. O processo proposto pelo RUP possui 2 estruturas, ou se preferir, 2 dimensões: - O eixo horizontal é a Dimensão de Tempo. Ele mostra o progresso de um projeto através do tempo, representando o aspecto dinâmico do processo quando ele é aprovado e descrevendo fases, marcos e iterações. - O eixo vertical é a Dimensão de Conteúdo. Ele representa o aspecto estático do processo, como ele é descrito em termos de componentes, disciplinas, atividades, fluxos de trabalho, artefatos e papéis do processo. Figura 4: Exemplo de Fases e Dimensões do RUP [8] 31 3.4.3 Elementos Essenciais do Processo 3.4.3.1 Visão - Desenvolver uma visão No RUP, o artefato Visão captura requisitos de nível alto e restrições de design, para fornecer ao leitor uma compreensão do sistema a ser desenvolvido. Ele fornece informações para o processo de aprovação do projeto e está, portanto, diretamente relacionado ao Caso de Negócio. Ele comunica os principais questionamentos relacionados ao projeto e funciona como um regulador com base no qual todas as decisões futuras deverão ser validadas. 3.4.3.2 Plano - Gerenciar para o Plano O Plano de Desenvolvimento de Software (PDS) coleta todas as informações necessárias para gerenciar o projeto. O PDS é usado para planejar a programação do projeto e as necessidades de recursos e para acompanhar o andamento da programação. Ele aborda áreas como: Organização do Projeto, Programação (Plano do Projeto, Plano de Iteração, Recursos, Ferramentas), Plano de Gerenciamento de Requisitos, Plano de Gerenciamento de Configuração, Plano de Resolução de Problemas, Plano de Garantia de Qualidade , Plano de Teste, Casos de Teste, Plano de Avaliação e Plano de Aceitação do Produto. 3.4.3.3 Riscos - Diminuir os Riscos É essencial identificar e combater os itens de risco mais alto no início do projeto e acompanhá-los, juntamente com outras questões relacionadas. Juntamente com cada risco, deve haver um plano para diminuí-lo. Isso serve como um ponto focal para o planejamento das atividades do projeto e é a base em torno da qual as iterações são organizadas. 3.4.3.4 Caso de Negócio - Examinar o Caso de Negócio O Caso de Negócio fornece as informações necessárias, do ponto de vista de um negócio, para determinar se vale ou não a pena investir no projeto. 32 A principal finalidade do Caso de Negócio é desenvolver um plano econômico para realizar o projeto Visão. Uma vez desenvolvido, o Caso de Negócio é usado para fazer uma avaliação precisa do Retorno do Investimento (ROI) fornecido pelo projeto. Ele fornece a justificativa para o projeto e estabelece suas restrições econômicas. E também fornece informações para os tomadores de decisões econômicas sobre o valor do projeto e é usado para determinar se o projeto deve continuar. 3.4.3.5 Arquitetura - Projetar uma Arquitetura de Componentes No RUP, a arquitetura de um sistema de software (em um determinado ponto) é a organização ou a estrutura dos componentes significativos do sistema que interagem, através de interfaces, com componentes compostos de interfaces e de componentes sucessivamente menores. Cada visão arquitetural aborda algum conjunto específico de interesses, específico para os envolvidos no processo de desenvolvimento: usuários, designers, gerentes, engenheiros de sistema, analistas de manutenção e outros. Isso serve como um meio de comunicação entre o arquiteto de software e outros membros da equipe do projeto, com relação a decisões significativas do ponto de vista da arquitetura, tomadas a respeito do projeto. 3.4.3.6 Protótipo - Criar e Testar o Produto Gradativamente O RUP é uma abordagem iterativa de criação, de teste e de avaliação de versões executáveis do produto, a fim de afastar os problemas e resolver os riscos e as questões o mais cedo possível. 3.4.3.7 Avaliação - Avaliar os Resultados Regularmente A comunicação aberta contínua com dados objetivos obtidos diretamente de atividades em andamento e as configurações do produto em desenvolvimento são importantes em qualquer projeto. As Avaliações de status regulares oferecem um mecanismo para abordar, comunicar e resolver questões de gerenciamento, questões técnicas e riscos do projeto. 33 3.4.3.8 Mudanças - Gerenciar e Controlar Mudanças Assim que o primeiro protótipo for colocado diante dos usuários (e geralmente mesmo antes disso), as mudanças serão solicitadas. Para controlar essas mudanças e efetivamente gerenciar o escopo do projeto e as expectativas dos envolvidos, é importante que todas as mudanças em qualquer artefato de desenvolvimento sejam propostas por meio de Solicitações de Mudança e gerenciadas com um processo consistente. 3.4.3.9 Suporte ao Usuário - Implantar um Produto Utilizável A finalidade de um processo é produzir um produto utilizável. Todos os aspectos do processo devem ser adaptados considerando essa meta. Normalmente, o produto é mais do que apenas o software. No mínimo, deve haver um Manual do Usuário, talvez implementado através da ajuda on-line. 3.4.3.10 Processo - Adotar um Processo que se Ajuste ao Projeto É essencial que seja escolhido um processo que se ajuste ao tipo de produto que está sendo desenvolvido. Mesmo após a escolha de um processo, ele não deve ser seguido cegamente. O bom senso e a experiência precisam ser aplicados para configurar o processo e as ferramentas, de forma a atender às necessidades da organização e do projeto. 3.4.4 Fases Após os conceitos apresentados até o momento, definindo os passos a serem seguidos durante o ciclo de vida de um projeto, as fases indicam a ênfase que é dada no projeto em um dado instante. Para capturar a dimensão do tempo de um projeto, o RUP divide o projeto em quatro fases diferentes: 1. Concepção: ênfase no escopo do sistema; 2. Elaboração: ênfase na arquitetura; 3. Construção: ênfase no desenvolvimento; 4. Transição: ênfase na implantação. 34 O RUP também baseia-se nos 4 P's: Pessoas, Projeto, Produto e Processo. As fases são compostas de iterações. As iterações são janelas de tempo; as iterações possuem prazo definido enquanto as fases são objetivas. Todas as fases geram artefatos. Estes serão utilizados nas próximas fases e documentam o projeto. Além de permitir melhor acompanhamento. 3.4.5 Complementos A partir do apresentado, entende-se que com a utilização de uma metodologia de desenvolvimento de software como o RUP, é possível obter: - Qualidade de software; - Produtividade no desenvolvimento, operação e manutenção de software; - Controle sobre desenvolvimento dentro de custos, prazos e níveis de qualidade desejados; - Estimativa de prazos e custos com maior precisão. Apesar dos benefícios, deve-se ter a consciência que os benefícios não virão de maneira imediata. É necessário adquirir treinamento adequado, adaptação da metodologia no contexto ao qual ela será utilizada, apoio especializado para as equipes de desenvolvimento e tempo para a absorção da metodologia. Dado a isso, o RUP foi escolhido para nortear o desenvolvimento do Projeto do Sistema de Biblioteca Virtual proposto por este trabalho. 3.5 WEB 2.0 O termo Web 2.0 refere-se à segunda geração de serviços e aplicativos da Web e aos recursos, tecnologias e conceitos que permitem um maior grau de interatividade e colaboração na utilização da Internet. As aplicações desta geração disponibilizam interfaces tão dinâmicas quanto as existentes nas tradicionais aplicações desenvolvidas para desktops, em contraposição com as páginas praticamente estáticas da primeira geração de aplicações para Web, a "Web 1.0". Muitos desenvolvedores discordam do termo e de sua conceitualização, alegando que o mesmo é vago e refere-se a tecnologias e/ou conceitos há muito existentes, não passando de uma jogada de marketing para simplesmente nomear e classificar o que for novo e (principalmente) popular na Web. 35 A Web 2.0 deve possuir as seguintes premissas básicas: A internet como plataforma para processar, produzir ou consumir informação, onde um computador conectado à internet é ferramenta básica e principal de trabalho. Melhor experiência do usuário: a Web 2.0 propõe uma experiência de uso semelhante à de aplicativos para desktop, frequentemente fazendo uso de uma combinação de tecnologias surgidas no final da década de 1990, que incluem Web services, APIs (1998), AJAX (programação) (1998), Web syndication (1997), entre outras. Estas tecnologias aumentaram a velocidade e a facilidade de uso de aplicativos Web, sendo responsáveis por um aumento significativo no conteúdo (colaborativo ou meramente expositivo) existente na Internet. Estas também permitiram que usuários comuns, que até então não possuíam conhecimentos necessários para publicar conteúdo na Internet - pela ausência de ferramentas de uso simplificado - publicassem e consumissem informação de forma rápida e constante. Notadamente têm-se os blogs e wikis como expoentes desta massificação. Permitiu ainda o desenvolvimento de interfaces ricas, completas e funcionais, sendo que alguns aplicativos Web, ainda em versão beta, são considerados por muitos como "desktops on-line", proporcionando ao usuário um ambiente de trabalho inteiramente baseado na WWW, acessível de qualquer computador com conexão à Internet. Valorização do conteúdo colaborativo e da inteligência coletiva: o conteúdo deve ser produzido e consumido por qualquer um, de forma simples e direta. A Wikipedia e os blogs são exemplos vivos desta premissa. Fim dos ciclos de lançamento e atualização de softwares tradicionais. Em oposição ao que acontece com softwares tradicionais, em caixas, com instaladores e dependentes de um sistema operacional, aplicativos Web podem ser atualizados de forma constante, linear e independente da ação do usuário final. No caso de atualizações de segurança e desempenho, por exemplo, o usuário da aplicação seria imediatamente beneficiado pela atualização da aplicação, não necessitando baixar um patch ou atualização. Quanto mais simples a programação, melhor. Em tempos de mudanças rápidas, ter uma estrutura de software enxuta, que permita ser expandida em módulos e também aperfeiçoada ao mesmo tempo em que é usada é um diferencial positivo. Metodologias e conceitos como o Getting Real e Agile tem-se popularizado entre as empresas que desenvolvem aplicativos ditos "Web 2.0". 36 3.6 DESIGN PATTERNS Design Patterns, ou Padrões de Projeto de Software, descrevem soluções para problemas recorrentes no desenvolvimento de sistemas de software orientados a objetos. Um padrão de projeto estabelece um nome e define o problema, a solução, quando aplicar esta solução e suas conseqüências. Os padrões de projeto visam facilitar a reutilização de soluções de desenho - isto é, soluções na fase de projeto do software, sem considerar reutilização de código. Também acarretam um vocabulário comum de desenho, facilitando comunicação, documentação e aprendizado dos sistemas de software. Os Padrões de Projeto foram organizados em famílias: padrões de criação, padrões estruturais e padrões comportamentais [17]. Os padrões de criação definem a configuração e inicialização de objetos e classes. São eles: Abstract Factory: Provê uma interface para a criação de famílias de objetos correlatos ou dependentes sem a necessidade de especificar a classe concreta destes objetos. Builder: Isola a construção de um objeto complexo de sua representação, de forma que o mesmo processo de construção possa ser capaz de criar diferentes representações. Factory Method: Define uma interface para a criação de objetos, mas deixa as subclasses decidirem qual classe irão instanciar. O Factory Method permite que uma classe transfira para as subclasses a responsabilidade pela criação de novas instâncias. Prototype: Especifica o tipo de objeto a criar através de uma instância protótipo e cria novos objetos através da cópia deste protótipo. Singleton: O objetivo deste padrão é garantir que uma classe possua apenas uma única instância e para tal, fornece um ponto global de acesso para a mesma. Os padrões estruturais lidam com as interfaces e a implementação das classes e dos objetos: Adapter: Converte a interface de uma classe em outra interface que os clientes esperam. O padrão Adapter permite que classes que não poderiam trabalhar juntas devido a interfaces incompatíveis trabalhem juntas. Bridge: Desacopla uma abstração de sua própria implementação de forma que as duas possam mudar de forma independente. 37 Composite: Compõe objetos em estrutura de árvore para representar hierarquias do tipo todo-parte. Este padrão permite que as classes cliente tratem os objetos individuais e as composições de maneira uniforme. Decorator: Atribui, dinamicamente, responsabilidades a outros objetos. Facade: Uma única classe representando todo um subsistema. Flyweight: Uma instância refinada, utilizada para compartilhamento eficiente. Proxy: Um objeto que representa outro objeto. Os padrões comportamentais lidam com as interações dinâmicas entre grupos de classes e objetos: Chain of Responsibility: Uma forma de passar requisições por uma cadeia de objetos. Command: Encapsular uma solicitação de comando na forma de um objeto. Interpreter: Uma forma de incluir elementos de linguagem num programa. Iterator: Acessa seqüencialmente os elementos de uma coleção. Mediator: Define uma comunicação simplificada entre classes. Memento: Captura e restaura o estado interno de um objeto. Observer: Uma forma de notificar mudanças efetuadas em certa quantidade de classes. State: Altera o comportamento de um objeto quando seu estado muda. Strategy: Encapsula um algoritmo dentro de uma classe. Template Method: Atribui cada passo de um algoritmo para uma subclasse. Visitor: Define uma nova operação para uma classe sem mudá-la. 3.6.1 Padrões de Projeto na programação Web Com a utilização cada vez maior da linguagem Java e principalmente de toda a plataforma JEE (Java Enterprise Edition) os Design Patterns têm se tornado mais populares, uma vez que para construir uma aplicação de grande porte utilizando J2EE é imprescindível a utilização de Patterns adequados, que têm por objetivo aumentar a modularidade e a escalabilidade das aplicações. O Design Pattern MVC (Model-View-Controller) permite que você separe o modelo de dados das várias formas que o dado pode ser acessado e manipulado. Um sistema MVC é dividido em um modelo de dados, um conjunto de visões e um conjunto de controladores. As 38 visões fornecem a interface do usuário. Por exemplo, em uma aplicação para Web na plataforma Java, uma visão consiste em códigos JSP. O controlador é geralmente implementado como um ou mais servlets Java. O modelo consiste de um EJB (Enterprise JavaBean) que fornece acesso direto ao banco de dados relacional. MVC é útil principalmente para aplicações grandes e distribuídas onde dados idênticos são visualizados e manipulados de formas variadas. Como o MVC facilita a divisão de trabalho por conjuntos de habilidades, este Pattern é bastante adequado para empresas de desenvolvimento que suportam desenvolvimento modular e concorrente com muitos desenvolvedores. Promovendo a portabilidade de interfaces e do back-end, o padrão MVC também torna fácil testar e manter suas aplicações. A chave para o MVC é a separação de responsabilidades. As visões podem usar o modelo de dados para exibir resultados, mas elas não são responsáveis por atualizar o banco de dados. Os controladores são responsáveis por selecionar uma visão apropriada e por fazer alterações no modelo de dados. O modelo, por sua vez, é responsável por representar os dados da aplicação. Algumas vezes o modelo de dados também incluirá a lógica de negócio (as regras para manipular os dados de negócio), e algumas vezes a lógica de negócio existirá na camada do controlador. Na verdade existem quatro componentes em uma aplicação MVC, não três, já que o cliente é uma parte integrante de toda a operação. O cliente envia uma requisição para o servlet, que interage com o modelo de dados para efetuar a ação requisitada pelo cliente. O controlador então passa informações para uma visão, que as formata de acordo com as necessidades do cliente. Dependendo dos tipos de clientes suportados, uma atividade pode ter muitas visões. Desacoplar as visões do processo de requisição torna mais fácil criar novas visões para novos formatos. Uma aplicação poderia apresentar uma interface HTML e depois adicionar visões WML (para dispositivos wireless) e visões XML (para Web services) futuramente. O Pattern DAO (Data Access Object, Acesso aos Dados do Objeto) é uma solução simples em que os desenvolvedores implementam um objeto que é unicamente responsável por receber informação de um armazenamento persistente, onde quer que ele esteja. Isto abstrai a visão do dado usada por uma aplicação do layout da tabela, esquema XML ou arquivo em disco. Uma equipe poderia produzir três objetos DAO por um projeto particular: um para ler o banco de dados, um para ler dos arquivos XML recebidos da Web e um para fornecer dados de teste para serem usados por desenvolvedores trabalhando em outros aspectos do 39 sistema. Se todos os três objetos são descendentes de uma única classe abstrata Java que define os vários métodos de acesso, os objetos podem ser substituídos na aplicação final dependendo das necessidades atuais. Os objetos podem também ser usados em outros projetos baseados no mesmo modelo. Além de fornecer flexibilidade extra, um DAO pode ser usado para aumentar a velocidade da camada de apresentação (ou visão) em uma aplicação maior pulando uma camada EJB. Ler diretamente do banco de dados é sempre mais rápido do que ir através da camada EJB, que tem que ler o banco de qualquer forma. Fazer isto diretamente com a API JDBC (Java Database Conectivity) é uma prática perigosa, já que ela liga o modelo de dados à camada de apresentação de tal forma que qualquer alteração na implementação do modelo de dados requer reescrever grandes partes da camada de apresentação, o que geralmente não é muito prático. Ao se utilizar um DAO obtém-se o máximo de velocidade com muito menos esforço de manutenção [19]. 3.6.2 Vantagens e Desvantagens do uso de Design Patterns As vantagens da utilização de Design Patterns são visíveis: primeiro, a utilização de Design Patterns força uma forma otimizada e clara de comunicação entre os desenvolvedores, fortalece a documentação e apresenta maiores possibilidades de exploração para alternativas de soluções para o projeto; segundo, melhora na qualidade geral do sistema, pois reduz a complexidade do código oferecendo uma abstração das classes e instâncias; e por último, reduz o tempo de aprendizado de novas bibliotecas ou funções. Porém, existem desvantagens óbvias de sua utilização. A adoção tardia de Design Patterns pode tornar sua implementação mais custosa em prazos e custos. Portanto, quanto mais cedo a definição dos Patterns ocorrer, melhor. Os Patterns podem ser difíceis de implementar (em um primeiro momento, principalmente durante sua curva de aprendizado) e geralmente implicam na adoção de outros Patterns, mas, os resultados são sempre bem expressivos com relação à qualidade e versatilidade [17]. 3.7 FRAMEWORKS Um framework, em desenvolvimento de software, é uma estrutura de suporte definida com a qual outro projeto de software pode ser organizado e desenvolvido. Um 40 framework pode incluir programas de apoio, bibliotecas de código, linguagens de script e outros softwares que podem ajudar a desenvolver e acoplar diferentes componentes de um projeto de software [4]. Frameworks são projetados com o intuito de facilitar o desenvolvimento de software, permitindo que os projetistas e os programadores gastem mais tempo com o levantamento de requisitos do software do que lidando com os mais tediosos detalhes de baixo nível ao prover um sistema de apoio ao desenvolvimento. Ele possibilita pular esse passo. Por exemplo, uma equipe usando Apache Struts para desenvolver um Web site bancário pode se focar em como uma retirada de conta corrente acontece ao invés de pensar em como controlar a navegação entre páginas de uma maneira que não ocorram bugs. Entretanto, há queixas comuns de que ao se usar frameworks eles adicionam muito “lixo” ao código, e que a superioridade de frameworks em aproveitamento de tempo não pode ser efetivamente considerada, pois na verdade perde-se o tempo que seria gasto em projeto e desenvolvimento de rotinas para o software apenas aprendendo a se utilizar o framework. Fora do escopo de aplicações de computador, um framework pode ser considerado como os processos e tecnologias utilizadas para resolver um assunto complexo. Ele é o esqueleto sob o qual vários objetos são integrados para fornecer uma dada solução. Dessa forma, serão apresentados, a seguir, alguns frameworks baseados na linguagem de programação Java, escolhida para o desenvolvimento da aplicação proposta nesse trabalho. 3.7.1 Frameworks Específicos A utilização de um framework baseado no padrão de projeto MVC pode simplificar muito a construção de aplicações Web em Java. Para que os desenvolvedores focalizem mais esforços na representação do domínio da aplicação do que nas tecnologias empregadas, os frameworks implementam diversos padrões de projeto e boas práticas, abstraindo do desenvolvedor parte da complexidade envolvida no processo de desenvolvimento de aplicações. Por ser um padrão de arquitetura muito extensível, o MVC inspirou a criação de vários frameworks, dos quais alguns dos mais conhecidos são: Apache Struts; Apache Cocoon; Spring MVC; WebWork; os brasileiros JBanana, Mentawai e Vraptor; e o JavaServer Faces, definido pelo Java Community Process (JCP). 41 Com tantas opções disponíveis, a escolha de um framework MVC para utilização em projetos de desenvolvimento não é uma tarefa trivial. É preciso analisar os principais produtos e avaliar os pontos fortes e os pontos fracos de cada um. A escolha depende das características e particularidades de cada projeto. 3.7.1.1 Apache Struts Web Application Framework O framework Struts tem o objetivo de constituir uma implementação MVC padrão para a comunidade Java. Baseadas na arquitetura MVC, aplicações Struts têm três categorias de componentes: (1) componentes de controle, incluindo um servlet e um processador de requisições; (2) JavaServer Pages (JSP) e Tag Libraries da camada de visão e (3) componentes de negócios e de acesso a dados da camada de modelo. A figura 5 ilustra a arquitetura de uma aplicação MVC baseada no Struts. Figura 5: Arquitetura do Struts [18] No Design Pattern MVC, o fluxo da aplicação é mediado por um controlador central. O controlador delega requisições para um dos tratadores apropriados, que estão localizados no modelo, que representa a lógica de negócio e o estado da aplicação. A requisição então é 42 respondida, através do controlador, e apresentada na visão, da maneira adequada. No Struts, essas respostas são orientadas através de mapeamentos, que são carregados através de um arquivo de configuração (struts-config.xml). Isso faz com que não haja dependência entre a visão e o modelo, que auxilia na criação e na manutenção da aplicação. 3.7.1.2 Mentawai Web Framework O Mentawai foi o primeiro framework Web MVC em Java a adotar, implementar, documentar e incentivar todo e qualquer tipo de configuração única e exclusivamente através de configuração programática, abolindo por completo o uso de XML e Annotations para as configurações. Outro pilar em que o Mentawai se apoiou desde o início foi o comprometimento em abstrair e simplificar as principais tarefas recorrentes de todo projeto Web. Ao invés de direcionar o usuário para qualquer outro framework, o Mentawai oferece soluções ou abstrações para as funcionalidades básicas de toda aplicação Web: pool de conexões com o banco de dados, autenticação, autorização, envio de e-mail, upload de arquivo, paginação, tags e outros [20]. O Mentawai usa o paradigma das Actions (org.mentawai.core.Action). Uma action possui um input por onde ela recebe os dados de uma requisição Web e um output por onde os resultados da execução de uma action podem ser acessados. Uma action depois de executada gera um resultado e para cada resultado existe uma conseqüência. A maioria das funcionalidades do framework é implementada através de Filtros (org.mentawai.core.Filter). Um filtro intercepta uma action e pode modificar seu input e output, antes e depois da execução da action. O uso de filtros torna as actions simples e desacopladas, resultando em códigos mais simples de manter e testar. O Mentawai é utilizado por diversas empresas e pessoas no Brasil e no exterior, e possui uma comunidade ativa, sempre fiel aos princípios da produtividade, simplicidade, abstração e configuração programática. 3.7.2 Frameworks de Visão Serão abordados três frameworks de visão que facilitam o desenvolvimento de aplicações na camada de apresentação, são eles: DWR, Spry e YUI. 43 O DWR (Direct Web Remoting) é um framework AJAX escrito em Java bastante simples de utilizar. Sua função é mapear classes escritas em Java (no servidor) e criar seus equivalentes em Javascript. O DWR cuida também de todas as chamadas remotas realizadas pelo browser. Para acionar estas chamadas é necessário escrever um pouco de Javascript, mas nada que assuste. O Spry é o framework da Adobe para desenvolvimento usando AJAX. O Spry foi projetado com a intenção de facilitar o desenvolvimento, ele inclui bibliotecas de código, linguagens de script e outros recursos para ajudar a desenvolver diferentes componentes de um projeto. O Spry se divide em três principais especificidades: Spry data, Spry widgets e Spry effects. Através do Spry data, os dados poderão ser integrados a uma página através de arquivos XML, com opção de filtros e ordenação. Utilizando o Spry widgets, os elementos de interface serão adicionados à página, como listas, tabelas, abas, validação de formulário e repetição de regiões determinadas em uma página. Já com o Spry effects, os efeitos visuais poderão ser adicionados nos elementos das páginas, como crescer, encolher, esmaecer e realçar. O YUI é o framework AJAX do Yahoo!. O YUI é utilizado para o desenvolvimento de aplicações Web usando DOM, DHTML e, claro, o AJAX, incluindo diversos recursos para trabalhar com o CSS. 44 CAPÍTULO 4 O SISTEMA DE BIBLIOTECA VIRTUAL O Sistema de Biblioteca Virtual, proposto por este trabalho, possui um diferencial: que é a utilização do padrão MARC. Esse padrão tende a elevar o nível de qualidade dos sistemas que manipulam acervos, diminui a incidência de erros de modelagem e facilita a migração e intercâmbio de dados. Além disso, esse sistema incorpora a aplicação de tecnologias que visam melhorar o desempenho do software. A aplicação deverá ser desenvolvida para ambiente Web, haja vista que a acessibilidade e a portabilidade proporcionadas pela plataforma Web ajudará o Sistema a fornecer as funcionalidades propostas. Para o desenvolvimento do projeto, serão analisados três fatores principais: a linguagem de programação a ser escolhida, o processo de desenvolvimento de software que dará suporte e padrão ao desenvolvimento da aplicação e quais frameworks, baseados em tal linguagem de programação, seriam utilizados para seu desenvolvimento. Ao analisar as necessidades do Sistema, verificou-se que deverá ser utilizado o paradigma de Orientação a Objetos. Além disso, deverá ter características como portabilidade, para que independa da plataforma onde a aplicação for instalada, e segurança, para que os programas executados em nível de rede possuam restrições de execução, garantindo uma maior confiabilidade no processo. Agregado a isso, será muito útil uma linguagem que possua bibliotecas variadas acerca de funções comuns nos sistemas, agilizando e dando robustez ao processo de desenvolvimento da aplicação. A linguagem deverá fornecer também suporte a desenvolvimento Web. Baseado nessas premissas foi selecionada a linguagem de programação Java, robusta e confiável, dando maior apoio ao desenvolvimento do software. Com as informações obtidas sobre frameworks baseados em Java, juntamente com as informações sobre as necessidades do Sistema, partiu-se para a escolha de qual ferramenta será utilizada em seu desenvolvimento. Geralmente aplicações que atendem a vários usuários precisam se conectar a um ou mais bancos de dados para obter, atualizar ou incluir algum tipo de informação. Porém a 45 criação de conexões com o banco de dados consome recursos fundamentais para o bom funcionamento do sistema. A solução adotada para resolver este problema é o Connection Pool, um padrão que tem como objetivo minimizar a utilização de recursos para preservar a estabilidade e a escalabilidade das aplicações. Considerando que o desenvolvimento Web em Java torna-se cada vez mais complexo, pois se gasta muito tempo para configurar arquivos XML e menos tempo para fazer a aplicação e que a quantidade excessiva de XML também traz outro problema: o aumento da curva de aprendizado, então para aprender e utilizar um framework para Web, baseado em XML, necessita-se estudar outra sintaxe proprietária e não padronizada. Mediante as características descritas anteriormente, o framework MVC escolhido para o desenvolvimento do sistema foi o Mentawai, que ficará responsável pela camada de controle da aplicação. Juntamente com o Mentawai, serão utilizados os frameworks DWR e Spry, ambos de visão. O DWR contribuirá nas facilidades que o AJAX proporciona e o Spry na construção e disposição dos itens de interface. 4.1 VISÃO DO PROJETO BIBLIOTECA VIRTUAL O conceito de Biblioteca Virtual está relacionado com o conceito de acesso, por meio de redes, a recursos de informação disponíveis em sistemas de base computadorizada, normalmente remotos. A atividade da biblioteca centra-se principalmente no empréstimo de publicações para alunos da universidade. O empréstimo é registrado pelos funcionários da biblioteca, que também consultam diariamente os empréstimos cujos prazos foram ultrapassados. Todo este processo será realizado pelo sistema que ainda permitirá aos alunos pesquisarem os livros existentes na biblioteca. Todo este processo será realizado pelo sistema para facilitar a vida do leitor, através do mundo digital. Ressalta-se que essa forma de funcionamento já é a existente nos sistemas eletrônicos de diversas bibliotecas brasileiras, no entanto, o diferencial aqui, é a utilização e explicação do padrão MARC e também a integração de diversos frameworks para Web. 46 4.1.1 Escopo Biblioteca Virtual é a integração eletrônica de novos serviços com os serviços tradicionais de bibliotecas. Utilizando-se de redes de computadores e recursos eletrônicos é possível consultar e verificar a disponibilidade do acervo, além de migrar e facilitar o intercâmbio de dados com outras instituições. Objetiva-se a identificar o limite de funcionalidade do software. Serão realizados vários cadastros de informações relacionadas ao acervo da biblioteca, como livro, mídia, periódico, categoria, assinatura de periódicos, direitos e acesso ao sistema, editora, responsável da obra, funcionário, tipo de acervo, assunto e aquisição, entre outros. Os associados terão quatro atividades importantes: reserva, empréstimo, consulta e devolução. Os bibliotecários terão relatórios referentes aos associados, fornecedores, tipos de acervo, bibliotecários, responsáveis da obra, editoras, empréstimos, reservas, etiquetas de identificação da obra, categorias, idiomas, mídias, livros, periódicos e outros. O usuário comum ou associado poderá pesquisar ou verificar disponibilidade de livros, revistas e mídias através de um portal Web. Nesse mesmo software, o bibliotecário habilitado poderá buscar a variedade de acervos disponíveis através do padrão de Normas MARC. O sistema comporta-se como um administrador e facilitador das tarefas desenvolvidas por um bibliotecário, agilizando e gerenciando o processo interno, tendo como usabilidade uma ferramenta de procura e suporte na navegação do software, auxiliando tanto na rapidez da obtenção da informação quanto na inclusão digital. Os usuários envolvidos no sistema serão os leitores, atendentes e bibliotecários, todos poderão pesquisar os itens do acervo. Os leitores também terão a opção de consultar o status de algum item e fazer o agendamento do mesmo. O atendente poderá registrar a reserva, o empréstimo, a devolução e a renovação de itens do acervo para um determinado leitor, bem como incluir, alterar e excluir os dados do leitor. Além de possuir os mesmos privilégios do atendente, o bibliotecário ainda terá o controle sobre o acervo bibliográfico, como incluir, alterar e excluir os itens. Ele também terá a opção de reter algum item para consulta e liberá-lo para o empréstimo. 47 4.1.2 Posicionamento 4.1.2.1 Descrição do Problema O problema Um item do acervo é emprestado a um leitor e não é devolvido na data final de empréstimo. Afeta Biblioteca Cujo impacto é Gravidade Alta, pois se não houver um controle bem realizado por parte do bibliotecário o item poderá ser perdido e, além disso, enquanto ele fica emprestado, não há a disponibilidade do mesmo na biblioteca. Uma boa solução seria Com a utilização do software o controle desse tipo de situação ficará mais rápido, pois o funcionário da biblioteca terá a seu dispor todos os dados relacionados ao leitor no sistema, podendo bloqueálo sempre que consultar os empréstimos atrasados. O problema Um aluno pegou três itens do acervo emprestado e está adquirindo mais itens, ou seja, o limite de três itens foi ultrapassado. Afeta Biblioteca Cujo impacto é Gravidade Alta, pois o empréstimo de mais de três itens estará ferindo uma regra da biblioteca e, além disso, estará diminuindo a disponibilidade de acervo para os usuários. Uma boa solução seria A cada realização de empréstimo é verificado se o usuário já possui algum item emprestado e o sistema ficará responsável por limitar a quantidade de itens que um leitor poderá pegar. 48 O problema A verificação de existência de uma publicação e até a procura da mesma é um processo um pouco demorado devido à quantidade do acervo existente na biblioteca. E às vezes o controle não é eficiente por se tratar de uma atividade manual. Afeta Usuário Cujo impacto é Gravidade Baixa, às vezes a procura por uma publicação pode demorar um pouco e, além disso, a consulta pode não ser tão eficiente o que estaria prejudicando o leitor que deseja o empréstimo de uma publicação. Uma boa solução seria Com a criação do software o processo de consulta da publicação torna-se automatizado o que alavanca a velocidade na consulta de existência de uma publicação e se ela está disponível para empréstimo. O problema Manutenção das publicações com suas respectivas áreas de conhecimento. Afeta Bibliotecário Cujo impacto é Gravidade Média, a associação de uma publicação com suas respectivas áreas de conhecimento, caso não seja bem realizada, trará dificuldades quanto à consulta da publicação. Uma boa solução seria Automatização no processo de associação de uma publicação a uma área de conhecimento, isso tornará o processo mais seguro e mais fácil de manter. 49 4.1.2.2 Sentença de Posição do Produto A sentença de posição do produto comunica o objetivo do aplicativo e a importância do projeto para todo o pessoal envolvido. Para Universidades, Faculdades, Colégios. Quem A necessidade do produto é para fins acadêmicos, onde os leitores possuirão acesso à biblioteca através da internet. A Biblioteca Virtual é uma ferramenta para auxiliar na gerência e consulta de acervo. Que O principal benefício será que os leitores não terão que sair de casa para poder consultar e agendar uma publicação. Diferente de Cadastrar todo o acervo item a item. Nosso produto O sistema de Biblioteca Virtual utilizará o padrão MARC, onde o acervo poderá ser populado através da base de dados de outras bibliotecas. 4.1.3 Descrições dos Envolvidos e Usuários Para fornecer, de maneira eficiente, produtos e serviços que atendam às reais necessidades dos usuários e envolvidos, é necessário identificar e considerar todos os envolvidos como parte do processo de Modelagem de Requisitos. É necessário também identificar os usuários do sistema e assegurar que a comunidade de envolvidos os represente adequadamente. Esta seção fornece um perfil dos envolvidos e dos usuários que integram o projeto, e dos principais problemas que, de acordo com o ponto de vista deles, poderão ser abordados pela solução proposta. 50 4.1.3.1 Resumo dos Envolvidos Nome Descrição Responsabilidades Instituições e Instituições e A adoção deste padrão diminui a Bibliotecas. Bibliotecas que adotem incidência de erros, tende a elevar o o padrão MARC, um nível de qualidade das bases e facilita formato de descrição a migração de dados. bibliográfica universalmente aceito e igualmente acessível a todos. 4.1.3.2 Resumo dos Usuários Caso o usuário não esteja representado diretamente, será identificado o envolvido responsável por representar o seu interesse. Nome Descrição Responsabilidades Atendente As principais atividades Registro de empréstimos. são: a reserva de Consultar livros no acervo. publicações, o registro de empréstimos, Informar status do leitor. devoluções e quaisquer Receber doações. atividades que envolvam Gerar relatórios a biblioteca e o leitor. Bibliotecário É responsável por cadastrar, atualizar e manter o acervo. Cadastrar livros. Atualizar livros. Reter livros. Coordenar os atendentes. Gerar relatórios. Envolvido 51 Leitor Poderá consultar o acervo, obter informações, agendar um empréstimo e adquirir o empréstimo da publicação. Consultar o acervo da biblioteca. Fazer o empréstimo de algum item. Entregar-lo. Fazer doação de alguma publicação. Pagar multa se for necessário. 4.2 REQUISITOS DO SISTEMA BIBLIOTECA VIRTUAL A finalidade desta seção é descrever os requisitos do SBV - Sistema de Biblioteca Virtual para fornecer uma visão completa e abrangente do software. Aqui estão descritos requisitos funcionais, não funcionais e outros fatores que visam facilitar o entendimento do software. 4.2.1 Requisitos Funcionais 4.2.1.1 Administração de Usuários Refere-se ao processo de manutenção do cadastro de usuários da biblioteca no sistema. SBV 001 O sistema deverá permitir o seu operador cadastrar os usuários interessados em obter empréstimos de itens da biblioteca. O usuário interessado em seu registro junto à biblioteca deverá fornecer os seguintes dados: nome completo, endereço completo, telefone residencial, comercial, celular, nível de escolaridade, documento de identidade, número do CPF e endereço de e-mail. 52 SBV 002 O sistema deverá permitir que usuários cadastrados registrem dependentes, que poderão retirar itens da biblioteca em seu nome e sob sua responsabilidade. SBV 003 O sistema deverá administrar a conta de usuários, de forma a garantir o cumprimento do regimento da biblioteca. A conta dos usuários deverá manter registro de itens retirados pelo usuário, bem como as respectivas datas de devolução. SBV 004 O sistema deverá registrar no cadastro de usuários qualquer atraso na devolução de itens emprestados e bloquear empréstimos futuros no caso de o usuário, ou qualquer de seus dependentes, repetirem atrasos nas devoluções por três vezes. SBV 005 O sistema deverá permitir que seu operador libere os empréstimos a um usuário bloqueado, mediante o pagamento de uma multa, para a qual o sistema deverá imprimir o respectivo recibo. SBV 006 O sistema deverá possibilitar a alteração do valor da multa a que se refere o requisito anterior. SBV 007 O sistema deverá liberar automaticamente os empréstimos ao usuário faltoso, transcorridos três meses da última devolução com atraso. SBV 008 O sistema deve permitir a inclusão, alteração e remoção de leitores da biblioteca, com os seguintes atributos: nome, endereço, cidade, estado, telefone, e-mail, documento de identificação, categoria de leitor e data de nascimento. 53 SBV 009 O sistema deve permitir a inclusão, alteração e remoção das diversas categorias de leitores, com os seguintes atributos: código da categoria, descrição da categoria e número máximo de dias que essa categoria de leitor pode emprestar uma obra. Exemplos de categorias de leitores são: aluno de graduação, aluno de pós-graduação, professor, funcionário e usuário externo. SBV 010 O sistema deve permitir a inclusão, alteração e remoção de funcionários da biblioteca, com os seguintes atributos: nome, endereço, cidade, estado, telefone e data de nascimento. 4.2.1.2 Administração do Acervo Refere-se ao processo de compra e recebimento de novos itens de acervo para biblioteca. SBV 011 O sistema deverá possibilitar ao comprador registrar cumulativamente no sistema os itens que deverão ser adquiridos. As aquisições serão feitas mensalmente e apenas de alguns dos itens relacionados (devido à limitação de verba). SBV 012 O sistema deverá gerar pedido de compra dos itens registrados para as respectivas quantidades anotadas pelo comprador. SBV 013 O sistema para registro dos itens a serem adquiridos, deverá consultar bases de dados dos fornecedores, a partir da onde serão extraídos os dados necessários para a compra. 54 SBV 014 O sistema deverá, quando da geração do pedido de compra, armazenar os itens registrados e cuja compra não foi efetuada para posterior emissão de relatório – relatório de aquisições. SBV 015 O sistema deverá permitir que o comprador registre no sistema os itens recém chegados, atribuindo-lhe automaticamente o código de localização em função das informações de compra: assunto, classificação e área de conhecimento. SBV 016 O sistema deverá disponibilizar para os atendentes, uma tela de registro visando informar quando os livros recém registrados no sistema estiverem em seus lugares nas prateleiras da biblioteca. Só então os novos itens estarão disponíveis para empréstimo. SBV 017 O sistema deverá permitir ao atendente retirar um item de circulação, registrando uma ocorrência no sistema. SBV 018 O sistema deverá permitir que o atendente registre e acompanhe o estado de ocorrência até que o item retorne à circulação. SBV 019 O sistema deve permitir a inclusão, alteração e remoção das diversas categorias de obras literárias, com os seguintes atributos: código da categoria, descrição da categoria, número máximo de dias que esse tipo de obra pode ficar emprestado e taxa diária de multa por atraso na devolução. Exemplos de categorias são: livro, periódico, revista, nota didática, jornal, relatório técnico, tese de doutorado e dissertação de mestrado. SBV 020 O sistema deve permitir a inclusão, alteração e remoção das obras literárias da biblioteca. Cada obra possui os seguintes atributos: código, ISBN, título da obra, código da 55 categoria de obra literária, autores, palavras-chave, data de publicação, número de edição, editora e número de páginas. Cada obra pode possuir uma ou mais cópias na biblioteca. Assim, o sistema deve atribuir um identificador único a cada uma das cópias. 4.2.1.3 Administração de Empréstimos SBV 021 O sistema deverá possibilitar o registro de empréstimos em nome de usuários ou seus dependentes, armazenando o código do item, a data de empréstimo e a data de devolução. SBV 022 O sistema deverá possibilitar o registro de empréstimos, autorizados em nome de usuários não cadastrados, armazenando o nome do responsável, que deverá ser uma instituição de ensino ou outra biblioteca registrada no sistema. SBV 023 O sistema deverá possibilitar aos usuários a consulta de suas contas através de conexão via internet. SBV 024 O sistema deverá autenticar usuários através de senha, mantida no cadastro de usuários. SBV 025 O sistema deverá permitir que usuários efetuem uma única prorrogação para cada empréstimo registrado em seu nome, ou em nome de um de seus dependentes, através de acesso via internet. SBV 026 O sistema deverá permitir a parametrização do período máximo de prorrogação permitido, administrando eventuais períodos de prorrogação concedidos antes da alteração do parâmetro. 56 SBV 027 O sistema deve permitir o processamento da reserva da obra literária, com os seguintes atributos: data da reserva, data prevista para retirada da obra, data prevista para devolução, identificação do leitor, código da obra, funcionário responsável pela reserva. A reserva só deve ser permitida se houverem obras disponíveis no período indicado. Caso contrário o sistema deve emitir uma mensagem de alerta e a reserva não pode ser confirmada. SBV 028 O sistema deve permitir o empréstimo de uma obra literária por um leitor. Cada empréstimo possui os seguintes atributos: data de empréstimo da obra, data prevista para devolução, identificação do leitor (previamente cadastrado), funcionário responsável pelo empréstimo e identificação da cópia da obra emprestada. O sistema deve calcular a data prevista para devolução com base na categoria da obra, limitando o tempo de acordo com a categoria do leitor. Se tiver sido feita a reserva prévia da obra, então, durante o empréstimo, informa-se o nome do leitor e os dados da reserva são recuperados automaticamente pelo sistema e alterados pelo funcionário, se necessário. SBV 029 O sistema deverá permitir que o operador registre a devolução de um item tomado por empréstimo por um usuário. SBV 030 O sistema deverá ser capaz de localizar o registro do empréstimo no sistema através do código do item, sendo que este será o dado informado quando da inserção do registro de devolução. SBV 031 O sistema deverá gerar, a pedido do operador, relatório com todas as devoluções do dia. SBV 032 O sistema deverá gerar, ao comando do operador, relatório contendo os registros de empréstimos em atraso. 57 SBV 033 O sistema deve permitir a devolução da obra por um leitor, com os seguintes atributos: identificação da cópia da obra emprestada, da devolução da obra. O sistema deve automaticamente calcular uma multa se a data de devolução for superior à data prevista para devolução da obra. O valor da multa é calculado multiplicando-se o número de dias de atraso pela taxa diária de atraso, de acordo com a categoria da obra. 4.2.1.4 Relatórios e Consultas SBV 034 O sistema deve permitir a impressão de uma listagem das obras emprestadas no momento, agrupadas por categoria de obra, contendo o nome do leitor, título da obra, data de retirada e data prevista para devolução. SBV 035 O sistema deve permitir a impressão de um relatório contendo as obras em atraso no período (por exemplo, semana ou quinzenal), contendo, para cada dia do período, o nome do leitor, o telefone, o e-mail, a data de empréstimo e a data prevista para devolução. SBV 036 O sistema deve permitir a impressão de uma listagem das reservas efetuadas para a data atual, contendo o nome do leitor, telefone para contato, e-mail e título da obra. SBV 037 O sistema deve permitir ao leitor imprimir um histórico de seus empréstimos de obras. Para tal o leitor deve ter sido previamente cadastrado e deve portar um código de identificação e uma senha. Esse histórico deve conter uma linha para cada obra emprestada pelo leitor, contendo o título da obra, a data de retirada e devolução e o valor da multa em cada ocasião. SBV 038 O sistema deve permitir a consulta on-line da situação da obra literária. Uma obra está ocupada se existe um leitor que a emprestou no momento. Uma obra está disponível se 58 não está ocupada no período e o número de reservas para tal obra no período é inferior ao número total de cópias de obras. Essa consulta deve mostrar uma linha para cada obra, constando, em cada uma dessas linhas, o título da obra, o número de cópias existentes, o número de obras ocupadas, o número de obras reservadas e o número de obras disponíveis. 4.2.2 Requisitos Não Funcionais CONFIABILIDADE O sistema deve ter capacidade para recuperar os dados perdidos na última operação que realizou em caso de falha. O sistema deve fornecer facilidades para realização de backup dos arquivos do sistema. O sistema deve possuir senhas de acesso e identificação para diferentes tipos de usuários: administrador do sistema, funcionários da biblioteca e leitores que têm acesso ao sistema na biblioteca. EFICIÊNCIA O sistema deve responder as consultas on-line em menos de 5 segundos. O sistema deve iniciar a impressão de relatórios solicitados dentro de no máximo 20 segundos após sua requisição. QUALIDADE DA INFORMAÇÃO O sistema deve garantir que os dados foram e são populados corretamente. PORTABILIDADE O sistema será compatível com os seguintes browsers: Internet Explorer e Mozilla Firefox. O sistema deve ser capaz de armazenar os dados em SGBD MySQL. 4.2.3 Glossário TERMO Atendente DESCRIÇÃO Operador 59 Bases de dados de fornecedores Arquivos em meio magnético instalado e registrado junto ao sistema para consulta dos itens disponíveis para venda. O sistema deve ser capaz de acessar tais informações fornecidas em um padrão préestabelecido. Cadastro de usuário Arquivo mantido pelo sistema no qual são registrados todos os dados relativos ao usuário da biblioteca. Código do item Código através do qual são registrados todos os dados relativos ao usuário da biblioteca. Conta Relação de empréstimos e devoluções efetuadas a um usuário em determinado período de tempo. Data de devolução A data marcada para que o usuário devolva à biblioteca um item que tomou por empréstimo. Dependente Usuário da biblioteca registrado sob a supervisão de outro usuário que irá se responsabilizar por seus atos junto à biblioteca. Devolução Ato de formalizar a devolução, por parte de um usuário, de um item tomado por empréstimo na biblioteca. Empréstimo O ato de formalizar a entrega de um livro da biblioteca a um usuário cadastrado. Segue regras específicas firmadas no regulamento da biblioteca. Empréstimo autorizado Empréstimo concedido a usuário não cadastrado com a especificação de um responsável: instituição ou biblioteca. Empréstimo em atraso Empréstimos que até a data prevista para a devolução ainda não possuem o respectivo registro de devolução. Estado da ocorrência Descrição incluída pelo operador indicativo do estágio em que se encontra a ocorrência. Item Elemento disponível para empréstimo na biblioteca. Pode ser um livro, um CD, um periódico (revista) ou 60 uma fita de vídeo. Ocorrência Registro da razão para a retirada de um item de circulação. São exemplos de ocorrências os envios de um livro para a oficina, para reparos, a retenção temporária de um item somente para consulta, entre outros. Operador Funcionário da biblioteca responsável pela utilização do sistema para concessão de empréstimos, registro de devoluções ou cadastramento de usuários. Pedido de compra Relação com os itens a serem adquiridos junto aos fornecedores. Prorrogação Evento de alteração da data de entrega de um item registrado em um empréstimo para uma data futura, distante da data de entrega atual, um número máximo de dias registrado como parâmetro no sistema. Recibo É o documento a ser gerado pelo sistema para ser entregue ao usuário quando efetuar algum pagamento à biblioteca, seja ele de multa ou outra taxa qualquer. Usuário Indivíduo que se cadastra junto à biblioteca para poder retirar itens sob empréstimo. Usuário faltoso É o usuário que teve seu direito de retirar itens sob empréstimo suspendo pelo não cumprimento das regras impostas pelo regimento. 4.3 DOCUMENTO DE ANÁLISE DO SISTEMA BIBLIOTECA VIRTUAL 4.3.1 Relação dos Requisitos 4.3.1.1 Relação dos Requisitos Funcionais Código RF 001 RF 002 RF 003 Nome Manter associado Manter bibliotecário Manter categoria Tipo Funcional Funcional Funcional 61 RF 004 RF 005 RF 006 RF 007 RF 008 RF 009 RF 010 RF 011 RF 012 RF 013 RF 014 RF 015 RF 016 RF 017 RF 018 RF 019 RF 020 RF 021 RF 022 RF 023 Manter idioma Manter editora Manter produtora Manter fornecedor Manter autor Consulta acervo Manter mídia Manter periódico Manter livro Manter tombo mídia Manter tombo periódico Manter tombo livro Manter reserva Manter empréstimo Registrar devolução Importar dados MARC 21 Manter renovação Emitir relatório de acervo pendente Emitir relatório de débitos Emitir relatório histórico de locações Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional Funcional 4.3.1.2 Relação dos Requisitos Não Funcionais Código RNF 001 RNF 002 RNF 003 RNF 004 RNF 005 RNF 006 Nome Recuperar dados usuário Realizar backup Identificação do usuário Tempo de resposta Compatibilidade Armazenamento Tipo Confiabilidade Confiabilidade Confiabilidade Eficiência Portabilidade Portabilidade 4.3.2 Organização dos Requisitos Nota: I = inclusão, A = alteração, E = exclusão, C = consulta. 4.3.2.1 Relação dos Casos de Uso Nome Atores Descrição Autenticar Usuário Bibliotecário e Associado Efetuar autenticação do usuário no sistema. Manter Associado Bibliotecário e Permite utilizar operações de Referências Cruzadas RF 001, RF 002, RNF 003 RF 001, 62 Associado manutenção (I,A,E,C). Permite utilizar operações de manutenção (I,A,E,C). RNF 003 RF 002, RNF 003 RF 004, RF 005, RF 007, RF 008, RF 019, RNF 003 RF 004, RF 005, RF 007, RF 008, RF 019, RNF 003 RF 004, RF 006, RF 007, RF 008, RF 019, RNF 003 RF 013, RF 014, RF 015, RNF 003 RF 013, RF 014, RF 015, RF 020, RNF 003 Manter Bibliotecário Bibliotecário Manter Livro Bibliotecário Permite utilizar operações de manutenção (I,A,E,C). Manter Periódico Bibliotecário Permite utilizar operações de manutenção (I,A,E,C). Manter Mídia Bibliotecário Permite utilizar operações de manutenção (I,A,E,C). Manter Reserva Bibliotecário e Associado Efetuar a reserva do acervo (I, E, C). Manter Empréstimo Bibliotecário Efetuar o empréstimo do acervo e realizar renovações (I,A,C). Registrar Devolução Bibliotecário Registrar devolução do acervo RF 017, locado e checar os débitos RNF 003 (I,C). 4.3.2.2 Conceitos Conceito Autenticação Bibliotecário Associado Livro Periódico Mídia I A E C Observação Autenticação dos usuários x envolvidos no sistema. Responsável pela parte de x x x x gerência do sistema. Consulta e faz o empréstimo do x x x x acervo. x x x x Livros cadastrados na biblioteca. Periódicos cadastrados na x x x x biblioteca. x x x x Mídias cadastradas na biblioteca. 63 Reserva x x Empréstimo x x Devolução x MARC 21 x x Efetua a reserva de um determinado acervo. Registra o empréstimo e realiza x possível renovação do acervo. Registra a devolução do acervo e x consulta débitos existentes. Efetua a importação dos dados de outra biblioteca através de um arquivo texto. x 4.3.2.3 Consultas / Relatórios Nome Relatório de acervo pendente. Relatório de débitos. Relatório de histórico de locações. Relatório de associados. Relatório de bibliotecários. Relatório de livros, mídias e periódicos. Relatório de devoluções. Relatório de reservas. Relatório de empréstimos. 4.3.3 Expansão dos Casos de Uso 4.3.3.1 Descrição dos Casos de Uso UC 001 – AUTENTICAR USUÁRIO Caso de Uso: Autenticar Usuário. Descrição: Efetua a autenticação do associado ou bibliotecário no sistema. Atores: Bibliotecário e Associado. Interessados: Instituição de Ensino. Pré-Condições: Para que ocorra a autenticação é necessário que o usuário (associado ou bibliotecário) esteja cadastrado no sistema. O associado deve informar matrícula e senha. Já o bibliotecário deve informar login e senha. Pós-Condições: Permissão de acesso as funcionalidades do sistema. Requisitos correlacionados: RF 001, RF 002, RNF 003 Fluxo Principal: Evento de Usuário Resposta de Sistema 64 1. O associado ou o bibliotecário efetua a 2. Confirmação da autenticação do usuário entrada no sistema. no sistema de acordo com o seu perfil. Tratamento de Exceções: Evento de Usuário Resposta de Sistema 1.1. Os dados do usuário estão incorretos. 1.1.1. O sistema informa que os dados foram digitados incorretamente. Retorna ao passo 1. 1.2. O usuário encontra-se bloqueado no sistema. 1.2.1. O sistema alerta o usuário informando que o mesmo está bloqueado e solicita sua presença na biblioteca para a regularização de seu cadastro. Retorna ao passo 1. UC 002 – MANTER ASSOCIADO Caso de Uso: Manter Associado. Descrição: Efetua a inclusão, alteração, exclusão e consulta do associado no sistema. Atores: Bibliotecário e Associado. Interessados: Instituição de Ensino. Pré-Condições: Para a inclusão do associado são necessários os seguintes dados: nome, CPF, matrícula, data de nascimento, senha, endereço, telefone e e-mail. Após o cadastro do associado pelo bibliotecário, o associado poderá alterar os dados de endereço, telefone e email. O bibliotecário poderá excluir o associado. Se o associado estiver com pendências na biblioteca o mesmo será bloqueado. A consulta de associados poderá ser feita pelo bibliotecário. Pós-Condições: Uma mensagem será apresentada ao usuário ou os associados serão listados. Requisitos correlacionados: RF 001, RNF 003 Fluxo principal: Evento de Usuário Resposta de Sistema 1. O associado ou o bibliotecário efetua a 2. Confirmação da autenticação do usuário entrada no sistema. no sistema de acordo com o seu perfil. 4. O sistema valida os dados informados, 3. Na inclusão o bibliotecário informa os efetua a inclusão e emite uma mensagem de dados do associado. sucesso. 5. Na alteração, se o usuário for o 6. O sistema valida os dados informados, bibliotecário, ele realizará as alterações nos efetua a alteração e emite uma mensagem de dados do associado. sucesso. 7. Na alteração, se o usuário for o associado, 8. O sistema valida os dados informados, ele poderá apenas alterar os dados de efetua a alteração e emite uma mensagem de endereço, telefone e e-mail. sucesso. 65 9. Na exclusão somente o bibliotecário 10. O sistema confirma a exclusão. poderá efetuá-la. Tratamento de Exceções: Evento de Usuário Resposta de Sistema 3.1. Os dados do associado estão incompletos. 3.1.1. O bibliotecário deverá informar todos 3.1.2. O sistema não possibilita a inclusão do os dados do usuário. associado. Retorna ao passo 3. UC 003 – MANTER BIBLIOTECÁRIO Caso de Uso: Manter Bibliotecário. Descrição: Efetua a inclusão, alteração, exclusão e consulta do bibliotecário no sistema. Atores: Bibliotecário. Interessados: Instituição de Ensino. Pré-Condições: Para a inclusão do bibliotecário são necessários os seguintes dados: nome, CPF, data de nascimento, login, senha, endereço, telefone e e-mail. O bibliotecário logado terá a opção de alterar seus dados pessoais. Haverá uma consulta de bibliotecários. Pós-Condições: Uma mensagem será apresentada ao usuário ou os bibliotecários serão listados. Requisitos correlacionados: RF 002, RNF 003 Fluxo principal: Evento de Usuário Resposta de Sistema 1. O bibliotecário efetua a entrada no 2. Confirmação da autenticação do usuário sistema. no sistema de acordo com o seu perfil. 4. O sistema valida os dados informados, 3. Na inclusão o bibliotecário informa os efetua a inclusão e emite uma mensagem de dados do bibliotecário a ser cadastrado. sucesso. 5. Na alteração, o bibliotecário logado, 6. O sistema valida os dados informados, poderá alterar apenas os dados de endereço, efetua a alteração e emite uma mensagem de telefone e e-mail. sucesso. 7. Na exclusão, o bibliotecário com permissão, poderá excluir outro 8. O sistema confirma a exclusão. bibliotecário. Tratamento de Exceções: Evento de Usuário Resposta de Sistema 3.1. Os dados do bibliotecário estão incompletos. 3.1.1. O bibliotecário deverá informar todos 3.1.2. O sistema não possibilita a inclusão do os dados do usuário a ser cadastrado. bibliotecário. Retorna ao passo 3. 66 UC 004 – MANTER LIVRO Caso de Uso: Manter Livro. Descrição: Efetua a inclusão, alteração, exclusão e consulta do livro no sistema. Atores: Bibliotecário, Associado e MARC 21. Interessados: Instituição de Ensino. Pré-Condições: Para a inclusão do livro são necessários os seguintes dados: título original, subtítulo, CDU, cutter, nome dos autores, editora, volume, coleção, número de série, descrição da série e assunto. Para o cadastro de tombo são necessários os seguintes dados: nome livro, ISBN, edição, descrição da edição, forma de aquisição, ano de publicação, observações, situação, edição local e valor do livro. O cadastro do livro poderá ser feito através da importação do acervo de outra biblioteca com o padrão MARC 21. Para a alteração, todos os dados deverão ser informados. A situação do tombo poderá ser alterada para disponível ou para bloqueado. O tombo poderá ser excluído. A consulta do livro poderá ser feita pelo título, autor ou assunto. Pós-Condições: Após a inclusão, alteração ou exclusão será emitida uma mensagem. Feito a consulta o sistema buscará os livros baseados nos parâmetros que foram informados. Requisitos correlacionados: RF004, RF 005, RF 007, RF 008, RF 019, RNF 003 Fluxo principal: Evento de Usuário 1. O usuário efetua a entrada no sistema. Resposta de Sistema 2. Confirmação da autenticação do usuário no sistema de acordo com o seu perfil. 4. O sistema valida os dados informados, efetua a inclusão e emite uma mensagem de sucesso. 6. O sistema valida os dados informados, efetua a inclusão e emite uma mensagem de sucesso. 3. Na inclusão todos os dados referentes ao livro deverão ser informados pelo bibliotecário. 5. Na inclusão de um tombo o bibliotecário terá que selecionar o livro no qual o tombo pertence e informar o restante dos dados. 7. Na inclusão do tombo de um livro pelo 8. O sistema valida os dados e insere o livro padrão MARC, um arquivo deverá ser no acervo. importado e validado. 10. O sistema valida os dados informados, 9. Na alteração do livro todos os dados efetua a alteração e emite uma mensagem de deverão ser preenchidos pelo bibliotecário. sucesso. 11. Na exclusão o tombo poderá ser excluído 12. O sistema confirma a exclusão ou ou seu status alterado (bloqueado, alteração do tombo. disponível) pelo bibliotecário. 13. A consulta do livro será baseada nos 14. O sistema efetua a busca do livro no parâmetros (título, autor, assunto), acervo através dos parâmetros informados informados pelo usuário (associado ou pelo usuário. bibliotecário). Tratamento de Exceções: Evento de Usuário 3.1. Os dados do livro estão incompletos. Resposta de Sistema 67 3.1.1. O bibliotecário deverá informar todos os dados do livro a ser cadastrado. 5.1. Os dados do tombo estão incompletos. 5.1.1. O bibliotecário deverá selecionar o livro no qual o tombo pertence e informar todos os dados do tombo a ser cadastrado. 7.1. O arquivo não pode ser validado. 7.1.1. O bibliotecário deverá realizar o upload do arquivo com os dados a serem incluídos. 11.1. Exclusão do livro. 11.1.1. O bibliotecário não poderá excluir um tombo que esteja emprestado. 3.1.2. O sistema não possibilita a inclusão do livro. Retorna ao passo 3. 5.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 5. 7.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 7. 11.1.2. O sistema não possibilita a exclusão do tombo. Retorna ao passo 11. UC 005 – MANTER PERIÓDICO Caso de Uso: Manter Periódico. Descrição: Efetua a inclusão, alteração, exclusão e consulta do periódico no sistema. Atores: Bibliotecário, Associado e MARC 21. Interessados: Instituição de Ensino. Pré-Condições: Para a inclusão do periódico são necessários os seguintes dados: data inicial e final da assinatura, valor da assinatura, período de distribuição e editora. Para o cadastro de tombo são necessários os seguintes dados: forma de aquisição, edição, ano da publicação, volume, número do periódico, data da publicação, ISSN, situação, estante, observação. O cadastro do periódico poderá ser feito através da importação do acervo de outra biblioteca com o padrão MARC 21. Para a alteração, todos os dados deverão ser informados. A situação do periódico poderá ser alterada para disponível ou para bloqueado. O tombo poderá ser excluído. A consulta do periódico poderá ser feita pela data, editora ou nome do periódico. Pós-Condições: Após a inclusão, alteração ou exclusão será emitida uma mensagem. Feito a consulta o sistema buscará os periódicos baseados nos parâmetros que foram informados. Requisitos correlacionados: RF004, RF 005, RF 007, RF 008, RF 019, RNF 003 Fluxo principal: Evento de Usuário Resposta de Sistema 2. Confirmação da autenticação do usuário 1. O usuário efetua a entrada no sistema. no sistema de acordo com o seu perfil. 3. Na inclusão todos os dados referentes ao 4. O sistema valida os dados informados, periódico deverão ser informados pelo efetua a inclusão e emite uma mensagem de bibliotecário. sucesso. 5. Na inclusão de um tombo o bibliotecário 6. O sistema valida os dados informados, terá que selecionar o periódico no qual o efetua a inclusão e emite uma mensagem de tombo pertence e informar o restante dos sucesso. dados. 68 7. Na inclusão do tombo de um periódico 8. O sistema valida os dados e insere o pelo padrão MARC, um arquivo deverá ser periódico no acervo. importado e validado. 10. O sistema valida os dados informados, 9. Na alteração do periódico todos os dados efetua a alteração e emite uma mensagem de deverão ser preenchidos pelo bibliotecário. sucesso. 11. Na exclusão o tombo poderá ser excluído 12. O sistema confirma a exclusão ou ou seu status alterado (bloqueado, alteração do tombo. disponível) pelo bibliotecário. 13. A consulta do periódico será baseada nos 14. O sistema efetua a busca do periódico no parâmetros (data, editora, nome), informados acervo através dos parâmetros informados pelo usuário (associado ou bibliotecário). pelo usuário. Tratamento de Exceções: Evento de Usuário 3.1. Os dados do periódico estão incompletos. 3.1.1. O bibliotecário deverá informar todos os dados do periódico a ser cadastrado. 5.1. Os dados do tombo estão incompletos. 5.1.1. O bibliotecário deverá selecionar o periódico no qual o tombo pertence e informar todos os dados do tombo a ser cadastrado. 7.1. O arquivo não pode ser validado. 7.1.1. O bibliotecário deverá realizar o upload do arquivo com os dados a serem incluídos. 11.1. Exclusão do periódico. 11.1.1. O bibliotecário não poderá excluir um tombo que esteja emprestado. Resposta de Sistema 3.1.2. O sistema não possibilita a inclusão do periódico. Retorna ao passo 3. 5.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 5. 7.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 7. 11.1.2. O sistema não possibilita a exclusão do tombo. Retorna ao passo 11. UC 006 – MANTER MÍDIA Caso de Uso: Manter mídia. Descrição: Efetua a inclusão, alteração, exclusão e consulta da mídia no sistema. Atores: Bibliotecário, Associado e MARC 21. Interessados: Instituição de Ensino. Pré-Condições: Para a inclusão da mídia são necessários os seguintes dados: CDU, subtítulo, título original, volume, coleção, cutter, número de série, tipo de mídia e produtora. Para o cadastro de tombo são necessários os seguintes dados: edição, forma de aquisição, ano da publicação e observação. O cadastro da mídia poderá ser feito através da importação do acervo de outra biblioteca com o padrão MARC 21. Para a alteração, todos os dados deverão ser informados. A situação do tombo poderá ser alterada para disponível ou para bloqueado. O tombo poderá ser excluído. A consulta da mídia poderá ser feita pelo 69 título, produtora ou tipo. Pós-Condições: Após a inclusão, alteração ou exclusão será emitida uma mensagem. Feito a consulta o sistema buscará as mídias baseados nos parâmetros que foram informados. Requisitos correlacionados: RF004, RF 006, RF 007, RF 008, RF 019, RNF 003 Fluxo principal: Evento de Usuário 1. O usuário efetua a entrada no sistema. Resposta de Sistema 2. Confirmação da autenticação do usuário no sistema de acordo com o seu perfil. 4. O sistema valida os dados informados, efetua a inclusão e emite uma mensagem de sucesso. 6. O sistema valida os dados informados, efetua a inclusão e emite uma mensagem de sucesso. 3. Na inclusão todos os dados referentes à mídia deverão ser informados pelo bibliotecário. 5. Na inclusão de um tombo o bibliotecário terá que selecionar a mídia no qual o tombo pertence e informar o restante dos dados. 7. Na inclusão do tombo de uma mídia pelo 8. O sistema valida os dados e insere a mídia padrão MARC, um arquivo deverá ser no acervo. importado e validado. 10. O sistema valida os dados informados, 9. Na alteração da mídia todos os dados efetua a alteração e emite uma mensagem de deverão ser preenchidos pelo bibliotecário. sucesso. 11. Na exclusão o tombo poderá ser excluído 12. O sistema confirma a exclusão ou ou seu status alterado (bloqueado, alteração do tombo. disponível) pelo bibliotecário. 13. A consulta da mídia será baseada nos 14. O sistema efetua a busca da mídia no parâmetros (título, produtora, tipo), acervo através dos parâmetros informados informados pelo usuário (associado ou pelo usuário. bibliotecário). Tratamento de Exceções: Evento de Usuário 3.1. Os dados da mídia estão incompletos. 3.1.1. O bibliotecário deverá informar todos os dados da mídia a ser cadastrada. 5.1. Os dados do tombo estão incompletos. 5.1.1. O bibliotecário deverá selecionar a mídia no qual o tombo pertence e informar todos os dados do tombo a ser cadastrado. 7.1. O arquivo não pode ser validado. 7.1.1. O bibliotecário deverá realizar o upload do arquivo com os dados a serem incluídos. 11.1. Exclusão da mídia. 11.1.1. O bibliotecário não poderá excluir um tombo que esteja emprestado. Resposta de Sistema 3.1.2. O sistema não possibilita a inclusão da mídia. Retorna ao passo 3. 5.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 5. 7.1.2. O sistema não possibilita a inclusão do tombo. Retorna ao passo 7. 11.1.2. O sistema não possibilita a exclusão do tombo. Retorna ao passo 11. 70 UC 007 – MANTER RESERVA Caso de Uso: Manter reserva. Descrição: Efetua a inclusão, exclusão e consulta de reservas efetuadas pelos os usuários no sistema. Atores: Bibliotecário e Associado. Interessados: Instituição de Ensino. Pré-Condições: A reserva poderá ser feita pelo bibliotecário ou pelo associado, isso se o acervo estiver disponível e o associado não estiver bloqueado. A exclusão da reserva poderá ser feita pelo usuário (bibliotecário ou associado). A consulta efetuada pelo bibliotecário terá o seguinte parâmetro: matrícula. Pós-Condições: O usuário efetua a reserva e consulta as mesmas. Requisitos correlacionados: RF 013, RF 014, RF 015, RNF 003 Fluxo principal: Evento de Usuário 1. O usuário efetua a entrada no sistema. Resposta de Sistema 2. Confirmação da autenticação do usuário no sistema de acordo com o seu perfil. 4. O sistema valida os dados informados, efetua a reserva e emite uma mensagem de sucesso. 6. O sistema valida os dados informados, efetua a reserva, registra o bibliotecário logado e emite uma mensagem de sucesso. 3. Ao efetuar a reserva pelo associado deverá ser escolhido o acervo e a data prevista para o empréstimo. 5. Ao efetuar a reserva pelo bibliotecário deverá ser escolhido o acervo, o associado e a data prevista para o empréstimo. 7. A exclusão da reserva poderá ser feita pelo bibliotecário e pelo associado a 8. O sistema confirma a exclusão da reserva. qualquer momento. 9. O bibliotecário efetuará a consulta de 10. O sistema valida a matrícula do reservas pela matrícula do associado. associado, efetua a busca e retorna os dados. Tratamento de Exceções: Evento de Usuário 3.1. O acervo não está disponível. 3.1.1. O usuário é informado que o acervo selecionado está indisponível. 5.1. O associado está bloqueado. 5.1.1. O bibliotecário é informado que o associado está bloqueado e deve regularizar sua situação. Resposta de Sistema 3.1.2. O sistema não possibilita a reserva do acervo. Retorna ao passo 3. 5.1.2. O sistema não possibilita a reserva do acervo. Retorna ao passo 5. 71 UC 008 – MANTER EMPRÉSTIMO Caso de Uso: Manter empréstimo. Descrição: Efetua a inclusão, renovação e consulta dos empréstimos efetuados pelo o associado. Atores: Bibliotecário e Associado. Interessados: Instituição de Ensino. Pré-Condições: O empréstimo somente será realizado pelo bibliotecário. Para que o empréstimo seja efetuado é necessário que o acervo não esteja reservado ou bloqueado e que o associado não esteja com situação pendente. A renovação do empréstimo será concluída caso não houver reservas registradas para o acervo emprestado. Para efetuar a consulta ao histórico de empréstimos o bibliotecário deverá informar a matrícula do associado. Pós-Condições: O bibliotecário efetua o empréstimo. Os usuários visualizam o histórico. Requisitos correlacionados: RF 013, RF 014, RF 015, RF 020, RNF 003 Fluxo principal: Evento de Usuário 1. O usuário efetua a entrada no sistema. Resposta de Sistema 2. Confirmação da autenticação do usuário no sistema de acordo com o seu perfil. 3. Somente o bibliotecário poderá realizar o 4. O sistema valida os dados informados, empréstimo. O bibliotecário informa o efetua o empréstimo, registra o bibliotecário acervo e o associado para concluir o logado e emite uma mensagem de sucesso. empréstimo. 6. O sistema verifica se o usuário não possui 5. O bibliotecário informa o acervo a ser débitos, efetua a renovação, registra o renovado. bibliotecário logado e emite uma mensagem de sucesso. 7. O bibliotecário efetuará a consulta ao 8. O sistema valida a matrícula do associado, histórico de empréstimos pela matrícula do efetua a busca e retorna os dados. associado. Tratamento de Exceções: Evento de Usuário 3.1. O acervo não está disponível. 3.1.1. O bibliotecário é informado que o acervo selecionado está indisponível. 3.2. O associado está bloqueado. 3.2.1. O bibliotecário é informado que o associado está bloqueado e deve regularizar sua situação. Resposta de Sistema 3.1.2. O sistema não possibilita o empréstimo do acervo. Retorna ao passo 3. 3.2.2. O sistema não possibilita o empréstimo do acervo. Retorna ao passo 3. 72 UC 009 – REGISTRAR DEVOLUÇÃO Caso de Uso: Registrar devolução. Descrição: Efetua a devolução de um acervo que se encontra emprestado. Atores: Bibliotecário. Interessados: Instituição de Ensino. Pré-Condições: A devolução somente será registrada pelo bibliotecário. O bibliotecário verifica se há empréstimo para o associado, caso haja, o sistema calculará o possível débito, se houver débito, o associado deverá quitá-lo, assim o acervo estará disponível para futuras locações. Pós-Condições: O bibliotecário visualiza mensagem retornada do sistema. Requisitos correlacionados: RF 017, RNF 003 Fluxo principal: Evento de Usuário Resposta de Sistema 1. O bibliotecário efetua a entrada no 2. Confirmação da autenticação do usuário sistema. no sistema de acordo com o seu perfil. 3. O bibliotecário lista os empréstimos de 4. O sistema verifica a existência de débitos determinado associado e informa o acervo a para o associado. ser devolvido. 5. O bibliotecário confirma o valor a ser 6. O sistema efetua a devolução e emite uma pago e registra o pagamento efetuado pelo mensagem de sucesso. associado. Tratamento de Exceções: Evento de Usuário Resposta de Sistema 3.1. O empréstimo não está cadastrado. 3.1.2. O sistema não possibilita a devolução 3.1.1. O bibliotecário é informado que o do acervo e verifica se o mesmo não está empréstimo não está cadastrado. cadastrado na biblioteca. Retorna ao passo 3. 5.1. O associado está em débito com a biblioteca. 5.1.1. O bibliotecário informa que o 5.1.2. O sistema não possibilita a devolução pagamento não foi efetuado. do acervo. Retorna ao passo 5. 73 4.3.3.2 Diagrama dos Casos de Uso Figura 6: Diagrama de caso de uso do Sistema de Biblioteca Virtual 74 4.3.4 Modelo Conceitual Figura 7: Modelo conceitual do Sistema de Biblioteca Virtual 75 4.4 DOCUMENTO DE PROJETO DO SISTEMA BIBLIOTECA VIRTUAL 4.4.1 Diagramas de Seqüência DS 001 – AUTENTICAR ASSOCIADO Figura 8: Diagrama de seqüência autenticar associado 76 DS 002 – AUTENTICAR BIBLIOTECÁRIO Figura 9: Diagrama de seqüência autenticar bibliotecário 77 DS 003 – MANTER ACERVO Figura 10: Diagrama de seqüência manter acervo 78 DS 004 – MANTER ACERVO POR MARC 21 Figura 11: Diagrama de seqüência manter acervo por MARC 21 79 DS 005 – MANTER ASSOCIADO Figura 12: Diagrama de seqüência manter associado 80 DS 006 – MANTER BIBLIOTECÁRIO Figura 13: Diagrama de seqüência manter bibliotecário 81 DS 007 – MANTER EMPRÉSTIMO Figura 14: Diagrama de seqüência manter empréstimo 82 DS 008 – MANTER RESERVA Figura 15: Diagrama de seqüência manter reserva 83 DS 009 – REGISTRAR DEVOLUÇÃO Figura 16: Diagrama de seqüência registrar devolução 84 4.4.2 Diagrama de Classes do Projeto Figura 17: Diagrama de classes do Sistema de Biblioteca Virtual 85 4.4.3 Modelo de Entidade e Relacionamento (MER) Figura 18: Modelo de Entidade e Relacionamento do Sistema de Biblioteca Virtual 4.5 ARQUITETURA DO SISTEMA BIBLIOTECA VIRTUAL Arquitetura é uma representação abstrata do comportamento de componentes de um sistema. É uma visão de alto nível do sistema. O modelo arquitetural para construção de software em 3 camadas (Cliente, Servidor de Aplicação, Servidor de Banco de Dados) é uma evolução do antigo modelo em 2 camadas 86 (Cliente/Servidor) e oferece uma série de benefícios, dentre os quais podemos destacar a flexibilidade e a escalabilidade. Visando o desenvolvimento da aplicação de software para a plataforma Web utilizando a tecnologia Java, definiu-se uma arquitetura de software baseada no padrão MVC (Model – View – Controller), como mostra a figura 19. 1 N Apresentação Objeto E 1 N T 1 N 0 .. N I Negócio D Objeto A 1 D E 1 0 .. N Objeto N Persistência 1 1 BD Figura 19: Arquitetura MVC 4.5.1 Apresentação A camada de apresentação é responsável pela geração de páginas Web e acesso a conteúdo dinâmico, que é geralmente obtido através de dados vindos do banco de dados. Ela representa a camada View (ou visão) do padrão MVC e é composta por interfaces de usuário Web, construídas a partir de HTML, Javascript ou JSP. 87 4.5.2 Controle A camada de controle representa a camada Controller (ou controle) do padrão MVC. Ela é composta por um Servlet, que gerência todo o acesso às aplicações, e por diversas classes de controle, que gerenciam as mudanças de apresentação causadas por eventos de usuário ou eventos temporais. Conterá apenas a lógica para mostrar os dados da camada de entidade, cuidando das validações e da forma de apresentação dos mesmos para o usuário. 4.5.3 Negócio A camada de negócio representa as regras de negócio encapsuladas na camada Model (ou modelo) do padrão MVC. Ela é composta por classes de negócio que encapsulam as regras e ações relativas exclusivamente ao negócio. A camada de negócio trata de classes com serviços de lógica, ou seja, das regras de negócio do sistema, tais como: cálculos, chamadas a um método ou a um conjunto de métodos persistentes. Ela pode também fazer chamadas a si mesma ou às classes de persistência. No caso de chamadas a métodos de uma outra classe, a comunicação só poderá ser feita de camada de negócio para camada de negócio. Ou seja, uma camada de negócio não chama métodos de persistência de outra classe, somente àquela que ela referencia diretamente [14]. A camada de negócio conterá apenas métodos que aplicarão regras de negócio nos objetos da camada de entidade. Os atributos ficarão na camada de entidade. A comunicação com a camada de entidade pode ser indireta, através da camada de persistência, passando o objeto entidade como parâmetro e recebendo os dados do objeto instanciado, ou acessando diretamente a camada de entidade. Quando uma entidade for composta e o analista decidir persistir (incluir, alterar, excluir) os itens individualmente, a classe de negócio delegará a responsabilidade de manipular as persistências das classes para a sua própria classe de persistência. 4.5.4 Persistência A camada de persistência representa a manipulação de dados realizada na camada Model do padrão MVC. Ela é composta por classes de persistência que encapsulam todas as 88 sentenças de manipulação de dados em aplicações legadas, bancos de dados ou outras fontes de dados. A camada de persistência trata exclusivamente das classes com serviços de busca e armazenamento dos dados. É composta de instruções de acesso a dados (SQL). A camada de persistência não faz chamada de métodos de negócio, somente chamada a métodos próprios. Ela passa a conter somente métodos, uma vez que os atributos estão na camada de entidade. Quando uma classe entidade for composta, a sua classe de persistência será responsável por gerenciar a persistência de seus componentes. Os componentes terão suas próprias classes de persistência, porém gerenciados pela classe persistência da classe composta. 4.5.5 Entidade A camada de entidade representa os dados manipulados na aplicação, persistidos na camada Model do padrão MVC. Ela é composta por classes de entidade que encapsulam todos os dados na forma de atributos. Esta camada é formada por atributos e por dois métodos: um método de mapeamento objeto relacional, que atribui às propriedades do objeto os respectivos campos constantes no modelo relacional; e por último, um método que configura valores padrão (default) para os atributos. Os atributos das classes entidade poderão ainda representar coleções de outras entidades. A camada de entidade não deve ser confundida com o modelo entidaderelacionamento, pois esta é na verdade uma camada de representação utilizada para mostrar dados de uma ou mais entidades-relacionamento de acordo com a orientação a objeto. As classes de entidade são especializadas em representar os dados, por isso, dependem de serviços fornecidos pelas classes da camada de persistência. 89 4.5.6 Visão Geral A arquitetura do sistema SBV (SISTEMA BIBLIOTECA VIRTUAL) é organizada em 3 camadas e 5 pacotes principais, como mostra a figura 20. Figura 20: Arquitetura do Sistema Biblioteca Virtual 4.5.6.1 Pacote de Apresentação Os componentes desta camada devem ser construídos utilizando-se HTML, Javascript, Spry, AJAX e JSP. O código escrito em HTML e Javascript deve ficar armazenado em arquivos separados (extensões .jsp e .js, respectivamente) que possuirão o mesmo nome da classe de controle que os gerencia. As diversas telas de um programa ficarão armazenadas no mesmo arquivo de código HTML. 90 4.5.6.2 Pacote de Controle Os componentes desta camada são formados por classes que devem ser construídas em Java. O servlet utilizado é chamado de Controller e coordena o acesso a todas as classes de controle. A classe de controle é responsável pela interface com a camada de apresentação: validação, tratamento e formatação de dados de entrada e saída; e pela comunicação com as camadas de negócio e persistência. 4.5.6.3 Pacote de Negócio Os componentes desta camada são formados por classes que devem ser construídas em Java. As classes de negócio encapsulam todas as regras e lógicas de negócio. Geralmente as classes de negócio ficam como interface entre as classes de controle e a camada de persistência. 4.5.6.4 Pacote de Persistência Os componentes desta camada são formados por classes que devem ser construídas em Java. As classes de persistência encapsulam puramente o acesso às fontes de dados e a sua devolução de forma e formato correto. Estas fontes de dados podem ser Sistemas de Gerenciamento de Banco de Dados acessados através de SQL ou sistemas legados quaisquer. A camada de persistência se ocupa e se preocupa com a conexão e desconexão das fontes de dados através de classes específicas para estes fins. Aqui não existem regras de negócio ou validação/formatação de dados de Entrada/Saída. 4.5.6.5 Pacote de Entidade Os componentes desta camada são formados por classes que devem ser construídas em Java. As classes de entidade encapsulam os dados capturados ou a serem enviados para as fontes de dados. 91 CAPÍTULO 5 CONCLUSÃO Visto que há atualmente tecnologias que permitem a criação de uma Biblioteca Virtual, juntamente com o conhecimento teórico adquirido com a análise sobre ferramentas e padrões existentes, o desenvolvimento do sistema é completamente possível e viável. O conhecimento adquirido durante a elaboração do projeto foi importantíssimo para formar uma base sólida a respeito de padrões como RUP, o qual certamente será utilizado profissionalmente no futuro. Além dele, convém ressaltar o padrão para documentação de registros bibliográficos, conhecido como MARC, que possibilita a interação entre os acervos de bibliotecas. Tal padrão ainda não possui uma documentação bem estruturada de fácil disponibilidade, pois o acesso a tais informações ainda é restrito, principalmente pelo seu custo. Além disso, a busca pelo conhecimento dos diversos padrões e tecnologias aplicados no projeto foi de grande importância para o amadurecimento do aprendizado dos autores desse trabalho. Com todas as suas características e particularidades, como a documentação do padrão MARC e as tecnologias que o diferenciam das aplicações afins existentes, o desenvolvimento do projeto foi importante por possibilitar a integração de diversas tecnologias em um único sistema, comprovando que é possível utilizá-lo em escala comercial e como referência em futuras pesquisas. 92 REFERÊNCIAS BIBLIOGRÁFICAS [1] CUNHA, Murilo B. da. Desafios na construção de uma biblioteca digital. Ciência da Informação, Brasília, v. 28, n. 3, p. 257-268, Set./Dez. 1999. URL: http://www.scielo.br/scielo.php?script=sci_arttext&pid=S010019651999000300003&lng=pt&nrm=iso&tlng=pt [2] GEARY, David. Core JavaServer TM Faces. Alta Books, 2005. [3] DRABENSTOTT, Karen M., BURMAN, Celeste M. Revisão Analítica da Biblioteca do Futuro. URL: http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100- 19651997000200012&lng=es&nrm=iso [4] DEITEL, H.M. Java: como programar. Pearson Prentice Hall, 2005. [5] FURRIE, Betty. What is a Marc record and why is it important? Em: Understanding Marc Bibliographic: machine readable cataloging. Washington : Follett, 2000. URL: http://lcweb.loc.gov/marc/umb/um01to06.html [6] Guia JSTL. Disponível em < http://www.portaljava.com/ >. Acesso em: 26 de nov. de 2006. [7] HÜBNER, Edwin. ISISMARC - Uma solução que faltava. Julho, 2005. [8] LARMAN, Craig. Utilizando UML e Padrões. Bookman, 2007. [9] HUSTED, Ted. Struts em Ação. Ciência Moderna, 2004. [10] KRUCHTEN, P. The Rational Unified Process: An Introduction, Addison Wesley, 3ª Ed., 2003. 93 [11] LANDONI, Monica et al. Hyper-books and visual-books in an electronic library. The Electronic Library, v. 11, n. 3, p. 175-176, Junho, 1993. [12] LÉVY, Pierre. O que é o virtual? São Paulo: Ed. 34, 1996. [13] MARC Standards. Disponível em: < http://www.loc.gov/marc/ >. Acesso em: 06 de nov. de 2006. [14] McLAUGHLIN, Brett. Análise e Projeto Orientado ao Objeto. Alta Books, 2007. [15] SOUZA, Clarice Muhlethaler de. Referência e Virtualidade. [16] VIANA, Michelangelo Mazzardo Marques. Biblioteca Virtual. [17] GAMMA, Erich. Design Patterns: Elements of Reusable Object-Oriented Software, Pearson, 1995. [18] Struts: Implementation. Disponível em: < http://www.oracle.com/technology/sample_code/tutorials/bc4jvsm/struts/impl.htm >. Acesso em: 29 de maio de 2007. [19] ALUR, Deepak. Core J2EE Patterns, Campus, 2004. [20] Revista Mundo Java, edição 21, Frameworks Brazucas. 94 GLOSSÁRIO Agile Agile software development (ou simplesmente Agile) é um conjunto de metodologias de desenvolvimento de software que vem se popularizando com a Web 2.0 e que providencia uma estrutura conceitual para reger projetos de engenharia de software. O principal objetivo do desenvolvimento ágil é tentar minimizar o risco pelo desenvolvimento do software em curtos períodos, chamados de interação. AJAX AJAX é a abreviação para "Asynchronous Javascript and XML". O objetivo dessa técnica é criar aplicações Web mais interativas e dinâmicas melhorando assim a experiência do usuário. AJAX não é uma tecnologia, mas sim um termo que se refere ao uso de um grupo de tecnologias integradas (HTML/XHTML + XML/XSLT + CSS + DOM + Javascript + XMLHttpRequest). Annotation Annotation é um tipo especial de interface. Uma annotation é definida usando a palavra reservada “interface” precedida de “@”. API Interface de Programação de Aplicativos (API). Uma interface de software que permite que aplicativos se comuniquem entre si. Uma API é o conjunto de sentenças e construções de linguagem de programação que podem ser codificadas em um programa de aplicativo a fim de obter as funções e os serviços específicos fornecidos por um programa de serviços ou sistema operacional básico. ASP Active Server Pages (ASP), da Microsoft, é uma tecnologia que visa fornecer comportamento dinâmico a aplicativos da Web. Back-end Back-end é um conjunto de operações executadas pelo sistema. Blog Um weblog ou blog é uma página da Web cujas atualizações (chamadas posts) são organizadas cronologicamente (como um histórico ou diário). A maioria dos blogs são miscelâneas onde os blogueiros escrevem com total liberdade. 95 CALCO O projeto CALCO (Catalogação Legível por Computador) foi desenvolvido pela professora Alice Príncipe Barbosa, diretora do Serviço de Intercâmbio de Catalogação (SIC) em meados de 1970, e representou o marco inicial dos processos automatizados de registros bibliográficos no Brasil. O formato CALCO foi inteiramente baseado no formato MARC II da Library of Congress por ser considerado o formato padrão para o intercâmbio de informação bibliográfica. CDU A Classificação Decimal Universal (CDU) é um esquema internacional de classificação de documentos. Baseia-se no conceito de que todo o conhecimento pode ser dividido em 10 classes principais, e estas podem ser infinitamente divididas numa hierarquia decimal. CMM Capability Maturity Model (CMM), é uma metodologia de diagnóstico e avaliação de maturidade do desenvolvimento de softwares em uma organização. CSS Cascading Style Sheets, ou simplesmente CSS, é uma linguagem de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação, como HTML ou XML. Seu principal benefício é prover a separação entre o formato e o conteúdo de um documento. Cutter Tabela de Cutter é a forma mais conhecida e utilizada para simbolizar, em números, os sobrenomes dos autores de obras. Esse código é correspondente à autoria do livro, formado por letras e números, aparece na segunda linha dos "endereços" dos livros nas bibliotecas. EJB Um EJB (Enterprise JavaBean) é um objeto remoto e não visual, projetado para ser executado em um servidor e para ser disparado pelos clientes. Um EJB pode ser criado a partir de vários JavaBeans não visuais. Os EJBs foram desenvolvidos para funcionar em uma máquina e para serem disparados remotamente a partir de outra máquina. Eles são independentes de plataforma. Depois que um bean é escrito, ele pode ser usado em qualquer plataforma de cliente ou servidor que suporte Java. Getting Real Getting Real é uma metodologia que define que, em poucas palavras, o desenvolvimento de uma aplicação Web deve ser mais rápido e eficiente e, para isso, 96 defende que o deve-se preocupar apenas com as reais necessidades da aplicação, retirando do escopo tudo que não é essencial para o funcionamento da mesma. Hibernate Framework para camada de persistência. HTML Linguagem de Marcação de Hipertexto (HTML). A linguagem básica usada para criar documentos de hipertexto na World Wide Web. Ela é usada em documentos de texto ASCII básicos e sem formatação, mas, quando esses documentos são interpretados (o que chamamos de processamento) por um navegador da Web como o Nestcape, o documento pode exibir texto formatado, cores, várias fontes, imagens gráficas, efeitos especiais, saltos de hipertexto para outros locais na Internet e outras formas de informação. IBICT IBICT (Instituto Brasileiro de Informação em Ciência e Tecnologia), criado em 1954, é um dos responsáveis pelo desenvolvimento de sistemas de catalogação baseados no CALCO, introduzindo pequenas modificações para atender às necessidades de cada instituição ou das Redes de catalogação que se formavam. ISO 2709 ISO 2709 é um formato padrão de comunicação para registros bibliográficos, utilizado para intercâmbio de registros em meio magnético de um sistema para outro. O formato MARC ISO-2709 torna possível a transferência de um item bibliográfico de um sistema ou banco de dados para outro, sem perda de informações, fazendo com que os dados sejam independentes de software e hardware, tornando os registros bibliográficos portáveis entre sistemas. JDBC Java Database Connectivity é uma API focada na comunicação e manipulação do banco de dados. JEE Java Enterprise Edition (JEE) é uma plataforma de programação de computadores que faz parte da plataforma Java. Ela é voltada para aplicações multicamadas, baseadas em componentes que são executados em um servidor de aplicações. JSP Java Server Pages (JSP), é uma tecnologia utilizada no desenvolvimento de aplicações para Web. JSP é uma especialização do servlet que permite que conteúdo dinâmico seja facilmente desenvolvido. 97 MVC Controlador de Visão de Modelo (MVC). Uma arquitetura de aplicativos que separa os componentes do aplicativo: o modelo representa os dados ou a lógica de negócios; a visão representa a interface do usuário; e o controlador gerencia entrada de usuário ou, em alguns casos, o fluxo de aplicativos. OPAC Online Public Access Catalog (OPAC) é um catálogo on-line do acervo de uma biblioteca, através do qual os funcionários e o público em geral da biblioteca podem acessar informações referentes a tal acerto, seja dentro a própria biblioteca, seja em casa, pela Internet. Servlet Servlets são objetos Java executados no servidor em resposta a uma solicitação do navegador. Eles podem chamar um JSP para produzir a saída ou gerar HTML ou XML diretamente. Spring Framework Modular, que contém a parte Web, AOP, IoC, dentre outras. SQL Structured Query Language é uma linguagem padrão de acesso e manipulação de dados no banco de dados. Tag Libraries Biblioteca de Componentes. Web World Wide Web (WWW ou Web site) é um serviço de Internet de multimídia hipertextual gráfica. Web services Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universal, o formato XML. Web syndication Web syndication é uma forma de organização na qual uma seção de um Web site é disponibilizada para o uso de outros sites. 98 Wiki Chamado "wiki" por consenso, o software colaborativo permite a edição coletiva dos documentos usando apenas um navegador Web e sem que o conteúdo tenha que ser revisto antes da sua publicação. XML Extensible Markup Language (XML) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. Seu propósito principal é a facilidade de compartilhamento de informações através da Internet. 99 ANEXO I CAMPOS DE UM REGISTRO MARC Líder - Compreende entre os caracteres (00-23) de cada registro. Posições dos campos do Líder: • (00-04) - Comprimento do Registro Lógico. • (05) - Situação do Registro Bibliográfico. • (06) - Tipo de Material. • (07) - Nível Bibliográfico. • (08) - Tipo de controle. • (09) – Indefinido. • (10) - Número de Indicadores. • (11) - Números de Códigos de Sub -Campos. • (12-16) - Endereço dos Campos de Dados. • (17) - Nível de Codificação. • (18) - Forma de Catalogação Descritiva. • (19) - Ligação de Registro. • (20-23) - Mapa do Diretório. Campos Variáveis de Controle • Campo (001) – Número de Controle (NR): Este campo, que geralmente é gerado pelo sistema, é criado pela organização que está criando, usando ou distribuindo o registro. • Campo (003) – Identificador do Número de Controle (NR): Este campo é usado para especificar a organização que criou o número contido no campo (001). • Campo (005) – Data e Hora da Ultima Operação (NR): Este campo possui dezesseis caracteres que indicam a data e tempo da ultima transação de registro. O campo segue a formatação segundo Representação de Datas e Tempos (ISO 8601). A data requer 8 caracteres numéricos seguindo o modelo (yyyymmdd), e o tempo requer 8 caracteres numéricos no modelo (hhmmss.f), onde a hora deverá variar entre (00-23). 100 • Campo (006) – Características do Material Adicional (NR): este campo é formado por 16 caracteres fixos, que contém características especiais do material catalogado. • Campo (007) – Descrição Física (NR): este é um campo fixo com 23 caracteres, que contém informações referentes às características físicas do item. • Campo (008) – Informações Gerais (NR): Este campo possui 40 posições de caracteres que fornecem informações codificadas do registro como um todo assim como os aspectos bibliográficos do item que está sendo catalogado. Posições dos caracteres: o (00-05) – Data de Entrada do Registro no Arquivo. o (06) – Tipo de Data da Publicação. o (07-10) - Data Inicial. o (11-14) - Data Final. o (15-17) – Lugar de Publicação. o (18-21) – Ilustrações. o (22) – Nível Intelectual. o (23) - Forma do item. o (24-27) – Tipo de Obra de Referência. o (28) – Publicação Oficial. o (29) – Publicação de Conferência. o (30) – Coletânea de Homenagens. o (31) – Índice. o (32) – Indefinido. o (33) - Forma Literária. o (34) – Biografia. o (35-37) – Idioma do Texto do Documento. o (38) – Modificação de Grafia. o (39) – Fonte de Catalogação Campos Variáveis de Dados – Variam de (01X) até (8XX). São eles: • Campo (012) – Número de CPD (NR): Este campo esta disponível para que cada instituição possa utilizar, de acordo com suas necessidades. Dentro da Rede Bibliodata (Formato Calco), ele é utilizado para atribuir o número de CPD antecedido da sigla da biblioteca que envia o registro. 101 • Campo (020) – Número do ISBN (R): Este campo indica o número de ISBN do item designado por uma agência de controle nacional. • Campo (040) - Fonte de catalogação (NR): Este código identifica o nome ou o código da organização que criou o registro bibliográfico original. • Campo (041) - Código da Língua (NR): Este código é usado para identificar as línguas associadas ao item quando o código de língua no campo (008/35-37) do registro é insuficiente, pois o item possui mais de uma língua. Neste caso, incluem registros para itens de vários idiomas, itens que envolvem tradução, e itens onde o meio de comunicação é uma língua de sinal. A fonte deste código é encontrada na lista: ‘MARC Code List for Languages’. • Campo (043) – Código da Área Geográfica (NR): Indica o código da área geográfica associada com os assuntos do item, descrito nos campos (6XX). O código possui sete caracteres em comprimento. A fonte deste código esta na lista: ‘MARC Code List for Geographic Areas’. • Campo (045) – Código Cronológico (NR): Indica o código do período de tempo associado com os assuntos descritos nos campos (6XX) do item. O conteúdo deste campo consiste em quatro caracteres numéricos que são determinados de acordo com a tabela própria do período de tempo. • Campo (080) – Número de Classificação Decimal Universal (R): Este campo identifica o número de classificação atribuído ao documento pela Classificação Decimal Universal. • Campo (082) – Classificação Decimal de Dewey (R): Este campo identifica o número de classificação atribuído ao documento pela Classificação Decimal Dewey, e a edição da tabela utilizada. • Campo (092) – Localização Fixa da Obra (R): Indica o número de chamada da localização fixa. Os campos (1XX) possuem um nome ou um título uniforme utilizado como uma entrada principal nos registros bibliográficos. Exceto às definições de indicadores posicionados e os códigos dos subcampos que são campos específicos, o designador de conteúdo para cada tipo de nome e títulos uniformes é consistente para: Entrada Principal (100-130), Declaração de Série (440-490), Entrada de Assunto (600-630), Entradas Secundárias (700-730) e Entrada Secundária de Série (800-830). • Campo (100) – Entrada Principal – Nome Pessoal (NR): Indica o nome do autor da obra, quando este for uma entrada principal. 102 • Campo (110) – Entrada Principal – Entidade Coletiva (NR): Neste caso, o autor da obra é uma entidade coletiva. • Campo (111) – Entrada Principal – Nome de Evento (NR): Quando um evento é utilizado como uma entrada principal em um registro bibliográfico. • Campo (130) – Entrada Principal – Título Uniforme (NR): Neste caso, um título uniforme é utilizado como uma entrada principal em um registro. • Campo (240) – Título Uniforme (NR): Indica o título da obra catalogada, quando existe uma entrada para o campo (100), (110) ou (111). • Campo (243) – Título Convencionado para Arquivamento (NR): Indica um título genérico utilizado para colecionar trabalhos, reunir edições, traduções de uma determinada obra, ou até para reunir séries com títulos comuns. • Campo (245) – Declaração de Título (NR): Indicação do título principal da obra. • Campo (250) – Declaração de Edição (NR): Indica as informações relacionadas à edição da obra catalogada. • Campo (260) – Publicação, Distribuição, etc (R): Indica as informações relacionadas com a publicação, impressão, distribuição, tiragem ou produção de uma obra. • Campo (300) – Descrição Física (R): Indica a descrição física do item, como sua extensão, dimensão, ou qualquer outro detalhe físico, incluindo informações físicas dos materiais acompanhantes. Os campos (440) e (490) contêm declarações de série. O campo (440) é usado para como uma entrada de série, enquanto que o campo (490) é usado para uma declaração de série quando uma ou outra informação não é um dado de entrada do registro ou o dado de entrada difere da declaração de série que aparece no item. Os campos (800-830) são utilizados em conjunção com campo (490) quando a série é tratada diferentemente. Os parêntesis que costumeiramente cercam uma declaração de série em alguns displays no campo (440) não são carregados no registro MARC, e podem ser gerados pelo sistema. • Campo (440) – Título da Série: Transcrição do título principal da série, para gerar uma entrada secundária. • Campo (490) – Indicação de Série: Neste caso, o título da Série não irá gerar uma entrada secundária. 103 Os campos (500-53X) contêm notas relacionadas aos aspectos dos itens bibliográficos que não estão especificados em qualquer outra área de controle. • Campo (500) – Notas Gerais (R): Indicas informações descritivas do item que não são incluídos em suas respectivas áreas, onde para cada nota deve-se repetir o campo. • Campo (501) – Notas Iniciadas com a Palavra “com” (R): Uma nota que é utilizada quando mais que um trabalho bibliográfico é contido em um item físico área de publicação, liberação, questão, ou execução. Os trabalhos usualmente têm títulos distintivos e carecem de um título coletivo. • Campo (502) – Notas de Dissertação ou Tese (R): Indicação específica de notas para Teses ou Dissertações. • Campo (504) – Notas de Bibliografia (R): Indicação da presença de informações referentes à bibliografia, apêndices ou índices no item. • Campo (505) – Notas de Conteúdo (R): Indica notas sobre o conteúdo do item. • Campo (506) – Notas de Acesso Restrito (R): Informação nas restrições que governam acesso para ou a distribuição limitada dos materiais descritos. • Campo (520) – Notas de Resumo (R): Informação não formatada que descreve o escopo ou o conteúdo geral dos materiais. Podendo ser um resumo, uma anotação, uma revisão, ou até uma frase descrevendo o material. O nível de detalhamento em um resumo pode variar de acordo com o público para qual o material é produzido. • Campo (521) – Notas do Público Alvo (R): Indica as informações referentes ao público a que se destina a obra. • Campo (530) – Notas de Disponibilidade da Forma Física (R): Indica as informações referentes às formas físicas disponíveis do item descrito. • Campo (533) – Nota de Reprodução (R): Indicam as informações descritivas de uma reprodução original de um item, mais a parte principal do registro bibliográfico, que descreve o item original e as informações diferem. • Campo (534) – Notas da Versão Original (R): Indica os dados descritivos para um item original quando a parte principal do registro bibliográfica descreve uma reprodução daquele item e os dados diferem. • Campo (536) – Notas de Informação de Financiamento (R): Indica que o material descrito é o resultado de um projeto financiado. 104 • Campo (538) – Notas Requeridas pelo Sistema (R): Indica informações técnicas sobre um item, como a presença ou ausência de códigos; ou características físicas de um arquivo de computador, como densidades de gravação, paridade, modo de acesso, língua programada, periféricos, nome ou sistema de gravação comercializado, número de linhas de resolução, freqüência de modulação, e etc. Para sons e videocassetes, informações sobre o nome comercializado ou o sistema de gravação, freqüência de modulação ou o número de linhas de resolução podem ser incluídos. • Campo (546) – Nota do Idioma (R): Indica o idioma do texto dos materiais descritos. • Campo (590) – Notas Locais (R): Indica as informações relativas à situação do item na instituição. • Campo (595) – Notas para Inclusão em Bibliografias (R): Refere-se às informações que indicam que a bibliografia do documento deverá aparecer de acordo com tabelas de códigos já incluídas nos respectivos subcampos. Os campos (600-65X), com a exceção do campo (653) que é utilizado para termos de índice descontrolados, contêm os assuntos ou possui termos que fornecem informações adicionais do registro catalogado através do título que é construído segundo o assunto catalogando. A lista padronizada ou autoridade utilizada é identificada pelo valor no segundo indicador posicionado ou pelo código contido no subcampo ($2). • Campo (600) – Assunto – Nome Pessoal (R): Gera uma entrada de assunto em que o item é um nome pessoal. • Campo (610) – Assunto – Entidade Coletiva (R): Neste caso, o elemento de entrada de assunto é uma Entidade Coletiva. • Campo (611) – Assunto – Nome de Evento (R): A entrada de assunto é o Nome do Evento. • Campo (630) – Assunto – Título Uniforme (R): A entrada de assunto é um Título Uniforme. • Campo (650) – Assunto – Tópico (R): Neste caso, a entrada de assunto é um Tópico Geral. • Campo (651) – Assunto – Nome Geográfico (R): A entrada de assunto é um Nome Geográfico. Os campos (7XX) contêm entradas de dados do registro bibliográfico que não são fornecidas nas entradas dos campos: entrada principal (1XX), assunto (6XX), declaração de série (4XX), entrada secundária de série (8XX), ou nos campos de título (20X-24X). 105 • Campo (700) – Entrada Secundária – Nome Pessoal (R): Indica a entrada secundária para nomes pessoais que não tenham sido adotadas como entrada principal, como: coautores, colaboradores, ilustradores, coordenadores, compiladores, pessoas relacionadas com a obra em geral. • Campo (710) – Entrada Secundária – Entidade Coletiva (R): Indica entrada secundária de uma entidade coletiva. • Campo (711) – Entrada Secundária – Evento (R): Indica entrada secundária de um evento. • Campo (730) – Entrada Secundária – Título Uniforme (R): Indica neste campo o título uniforme que não tenha sido adotado como entrada principal ou de assunto. • Campo (740) – Entrada Secundária – Título Adicional ou Título Analítico (R): Neste campo é indicado o título adicional diferente do que é registrado no campo (245). • Campo (773) – Obra Principal (R): Indicação de Obra Principal. • Campo (830) – Entrada Secundária de Série (R): Indica o título de série para qual deve ser gerada uma entrada secundária com forma diferente daquela registrada na descrição bibliográfica no campo (440). O preenchimento deste campo está relacionado com o campo (490), onde o primeiro indicador será (1). • Campo (852) – Sigla do Acervo (R): Identifica a organização na qual o item está disponível. Este campo detalha informações sobre como localizar o item em uma coleção. • Campo (856) – Localização de Recurso Eletrônico (R): Indica uma informação necessária para localizar e acessar um recurso eletrônico. Os campos (9XX) possuem a particularidade de não serem predefinidos pelo MARC, podendo ser definidos por cada instituição. Apesar do MARC ser muito detalhista podendo catalogar quase todo tipo de informação, esses campos são usados numa eventual necessidade em que o MARC não atenda da melhor forma possível. 106 ANEXO II EXEMPLO DE REGISTRO NO FORMATO MARC