<
ENQUADRAMENTO
O objectivo deste projecto é desenvolver um sistema para gerir o acervo de uma mediateca, permitindo entre outras, a realização das seguintes operações:
(i) fazer pesquisas de obras;
(ii) registar dados de utentes;
(iii) registar dados de obras;
e (iv) registar requisições de obras para consulta domiciliária.
A secção 1 apresenta as principais entidades a ter em conta no desenvolvimento da Aplicação.
As funcionalidades da aplicação a desenvolver são descritas nas secções 2 e 3. 1.
Entidades do Domínio Nesta secção, descrevem-se as várias entidades que vão ser manipuladas no contexto da aplicação a desenvolver.
Existem vários conceitos importantes neste contexto: obras e suas categorias, utentes, requisições e tempo.
Os conceitos listados não são os únicos possíveis no modelo a realizar por cada grupo e as suas relações (assim como relações com outros conceitos não mencionados) podem depender das escolhas do projecto. 1.1.
Obras e Categorias O sistema mantém um registo de obras da mediateca. Cada obra é identificada por um número de obra.
O identificador é atribuído automaticamente logo após o registo da obra e incrementalmente, obedecendo o critério XXXX/AAAA (onde, XXXX é uma sequência entre 0001 à 9999 e AAAA representa o ano do registo da obra na mediateca).
As obras registam ainda o número de exemplares existentes no acervo da mediateca (várias cópias da mesma obra). Todas as obras têm um título (cadeia de caracteres) e um preço (float ou double). Cada obra tem uma categoria, de acordo com o assunto nela tratado.
Inicialmente, consideramse as seguintes categorias:
(i) obras de referência: onde se incluem dicionários, gramáticas, enciclopédias e documentários;
(ii) obras de ficção; e (iii) obras técnicas e científicas.
Departamento de Ciências da Computação | Faculdade de Ciências da Universidade Agostinho Neto Campus Universitário
Deve ser possível criar novas categorias, com um impacto mínimo sobre o sistema desenvolvido.
As obras a considerar inicialmente são Livros e DVDs.
As propriedades específicas de cada um (além das gerais) são as seguintes:
Livros – O sistema deverá manter, para cada livro, a seguinte informação: autor (podendo ser um ou mais), e ISBN (cadeia com dez caracteres);
DVDs – Para cada DVD, o sistema deverá manter: realizador (apenas um, por simplicidade), e o número de registo na DNDAC (Nacional dos Direitos de Autor e Conexos) (cadeia com 6 caracteres). 1.2.
Utentes O sistema mantém um registo de utentes da mediateca.
Cada utente é identificado por um número de utente.
O identificador é atribuído automaticamente e incrementalmente (a partir de 1 ou do último valor atribuído, caso o estado do sistema tenha sido recuperado). O sistema mantém ainda, para cada utente, o seu nome e e-mail.
É ainda mantida informação sobre a situação do utente perante a mediateca:
(i) activo, isto é, o utente pode fazer requisições;
(ii) suspenso, isto é, o utente não pode fazer novas requisições.
Um utente é suspenso se não devolver uma obra requisitada dentro do prazo estipulado;
permanece suspenso até devolver a obra e pagar a multa referente ao atraso na entrega.
1.3. Requisições O sistema garante o cumprimento de regras para a requisição de obras.
As regras dependem das características da obra que se pretende requisitar e da conduta passada do utente.
As regras a respeitar pelos utentes são:
1. Não pode requisitar duas vezes a mesma obra (isto é., em duas requisições diferentes e simultaneamente abertas);
2. Não pode requisitar obras um utente que esteja suspenso;
3. Não pode requisitar obras cujos exemplares tenham sido já todos requisitados;
4. Não pode ter mais que n obras requisitadas em cada momento (valor base: 3);
5. Não pode requisitar obras de referencia;
6. Não pode requisitar obras com um preço superior a Kz. 10.000,00;
Ao requisitar uma obra, o utente deve ser informado da data limite para a devolução. O tempo de requisição permitido para cada obra depende do número total de exemplares que constem do acervo da mediateca.
2. Serialização Deve ser possível guardar e recuperar o estado actual da aplicação, preservando toda a informação relacionada com a mediateca e que foi descrita na secção 1. 2.1. Interação com o Utilizador Descreve-se nesta secção a funcionalidade máxima da interface com o utilizador.
Em geral, os comandos pedem toda a informação antes de proceder à sua validação (excepto onde indicado).
Todos os menus têm automaticamente a opção Sair (fecha o menu).
As operações de pedido e apresentação de informação ao utilizador devem realizar-se através de métodos próprios usado os prefixos add e show, respetivamente, em cada método. Por exemplo: addObra() ou showObra().
As excepções usadas no código de interacção com o utilizador para descrever situações de erro, excepto se indicado, devem ser implementadas no pacote poo.gamed.exception e devem ser lançadas pelos comandos sendo depois tratadas automaticamente pelas classes correspondentes.
2.1.1. Menu Principal As acções deste menu permitem gerir a salvaguarda do estado da aplicação, ver e abrir submenus.
A lista completa é a seguinte:
• Abrir;
• Guardar;
• Menu de Gestão de Utentes,
• Menu de Gestão de Obras;
• Menu de Gestão de Requisições.
Inicialmente, a aplicação apenas tem informação sobre as entidades que foram carregados no arranque.>