IUP MIAGe 3 -
Année 2001/2002
Projet commun BD et
POO
Gestion d'une médiathèque
I) Objectif
Le projet consiste à informatiser une médiathèque
gérant les prêts de disques, de vidéos et de livres
en utilisant un SGBD relationnel. Pour cela, la médiathèque
dispose d'interfaces informatisées permettant de consulter le catalogue,
de gérer le fonds documentaire, d'adhérer à la médiathèque,
de réserver des oeuvres et d'emprunter des exemplaires.
L'application doit fournir des fonctions permettant de consulter, modifier
et ajouter de l'information à cette base. On doit, par exemple,
pouvoir consulter le catalogue, prendre en compte des réservations
et des emprunts, ajouter une nouvelle oeuvre, de nouveaux ouvrages
(pour chaque oeuvre, la médiathèque peut posséder
plusieurs ouvrages, exemplaires de l'oeuvre), ajouter ou supprimer des
adhérents.
Les fonctions offertes à un utilisateur dépendent de sa
catégorie. Nous distinguons quatre catégories d'utilisateur.
Public : un tel utilisateur peut, à
distance (c'est à dire depuis un poste hors de la médiathèque,
par exemple à domicile) consulter les informations liées
aux oeuvres en effectuant des recherches documentaires. Il peut également
s'enregistrer comme adhérent auprès du système.
Adhérent : un adhérent
peut effectuer les mêmes consultations qu'un utilisateur public.
Il peut aussi réserver des oeuvres à distance, qu'il pourra
ensuite emprunter auprès du médiathécaire moyennant
un coût qui sera prélevé sur son compte. Il peut réapprovisionner
son compte. Il peut finalement résilier son adhésion.
Médiathécaire : le médiathécaire
gère le fonds documentaire en enregistrant ou supprimant des oeuvres
ou des exemplaires de ces oeuvres. Il peut aussi effectuer des recherches
documentaires. Il peut également inscrire ou résilier des
adhérents. Il peut enregistrer des emprunts pour des adhérents.
Administrateur : l'administrateur peut
créer des comptes pour les administrateurs et les médiathécaires.
Pour utiliser l'application, l'utilisateur, sauf s'il est Public, devra
se ``logger'' comme appartenant à l'une des catégories ci-dessus.
II) Définition du schéma de la base
Les informations de l'application seront gérées par un SGBD
relationnel. Une partie du schéma relationnel de cette base vous
est fournie. Vous ne devez pas modifier les définitions des relations
qui vous sont fournies, mais vous devez ajouter de nouvelles relations
pour prendre en compte les informations complémentaires nécessaires
à la mise en place de l'application.
II.1) Schéma fourni
La partie du schéma relationnel fourni correspond au catalogue des
oeuvres. Elle concerne les informations sur les livres, disques et films
répertoriés dans la médiathèque. Ce sont :
Oeuvre (codeoeuvre number, titre varchar(64),
genre varchar(12), anneeparution number)
Les oeuvres, que ce soient des livres, films ou disques, ont en commun
leur codeoeuvre, leur titre,
leur genre et leur anneeparution.
Les oeuvres sont déclinées en livre, film ou disque.
Livre (codeoeuvre number, editeur varchar(20),
nbpages number)
Auteur (codeoeuvre number, prenom varchar(30),
nom varchar(20))
Un livre est un type d'oeuvre. Un ou plusieurs auteurs sont associés
à un livre.
Films (codeoeuvre number, duree number,
pays varchar(32))
Acteur (codeoeuvre number, prenom varchar(30),
nom varchar(20))
Realisateur (codeoeuvre number, prenom
varchar(30), nom varchar(20))
Un film est un type d'oeuvre. Un ou plusieurs acteurs ainsi qu'un ou
plusieurs réalisateurs sont associés à un film.
Disque (codeoeuvre number, producteur
varchar(20), duree number)
Interprete (codeoeuvre number, nom
varchar(20), prenom varchar(30))
Un disque est un type d'oeuvre. Un ou plusieurs interprètes sont
associés à un disque.
II.2) Schéma à définir
Avec les informations dont elle dispose, la médiathèque peut
gérer le fonds documentaire, les adhérents, les emprunts
et les réservations.
Le fonds documentaire inclut à la fois les oeuvres elles-mêmes
ainsi que les ouvrages, qui sont des exemplaires des oeuvres, avec leur
date d'achat, leur état, et leur Codex, code d'indentification des
exemplaires.
La gestion des adhérents, des emprunts et des réservations
comprend :
-
les adhérents, avec leur numéro d'adhérent, nom, prénom,
adresse, numéro de téléphone et solde de compte. Le
numéro d'adhérent est généré par le
système. Les nom, prénom et adresse sont obligatoires.
-
les enregistrements des réservations d'oeuvre pour le compte d'un
adhérent, avec leur date et l'oeuvre réservée.
-
les enregistrements des emprunts d'oeuvre pour le compte d'un adhérent,
avec leur date et l'ouvrage emprunté.
III) Fonctions de l'application
L'application doit fournir les fonctionnalités nécessaires
à la gestion du fonds documentaire, des adhérents, des réservations
et des emprunts, ainsi que certaines fonctions d'administrations. Nous
donnons ci-dessous les fonctions essentielles. Vous pouvez en rajouter
si vous le souhaitez.
III.1) Utilisateurs Publics
Les utilisateurs publics peuvent effectuer des recherches documentaires,
et éventuellement décider d'adhérer à la médiathèque
(voir section 3.1.2).
III.1.1) Recherches documentaires
Les recherches documentaires peuvent être effectuées par des
utilisateurs publics, par des adhérents ou par des médiathécaires.
Le programme de recherche documentaires doit permettre d'effectuer des
recherches sur tout ou partie du fonds, e.g. rechercher seulement les livres,
les livres et les films... Pour chaque type de recherche, l'utilisateur
peut rentrer une liste de mots clés. Par exemple, une recherche
par mots clé sur les livres avec comme critère "Camus" peut
retourner le livre "L'etranger" car Camus est le nom de son auteur. Pour
simplifier, lors de la recherche par mots cle, on donnera la possibilite
à l'utilisateur de preciser les champs ou les mots cles doivent
apparaitre. La liste des champs est contextuelle (les attributs proposés
dépendent de la classe d'ouvrage choisie) et permet de sélectionner
le ou les attributs d'une oeuvre au(x)quel(s) le(s) mot(s) clé(s)
doi(ven)t correspondre.
Le programme de recherche documentaire devra :
-
permettre à l'utilisateur de soumettre une recherche,
-
générer les requêtes SQL correspondant à la
recherche,
-
exécuter la requête et afficher les résultats.
III.1.2) Adhésions
Les utilisateurs publics peuvent décider d'adhérer à
la médiathèque au travers du programme de gestion des adhésions.
Le programme d'adhésion devra demander à l'utilisateur public
un ensemble d'informations permettant de renseigner son profil d'adhérent.
III.2) Adhérents
III.2.1) Gestion des adhésions
Une fois devenus adhérents, les utilisateurs peuvent modifier les
paramètres de leur adhésion ou réapprovisionner leur
compte.
Ils peuvent également résilier leur adhésion. Une
résiliation n'est possible que lorsqu'il n'y a aucun emprunt en
cours pour cet adhérent. Une résiliation annule toutes les
réservations faites par cet adhérent.
Le programme de gestion des adhésions devra :
-
saisir le numéro d'adhérent et le valider afin de permettre
d'accéder aux fonctions de modification,
-
afficher les éléments du profil de l'adhérent et l'état
du compte, et
-
permettre à l'adhérent de :
-
modifier les valeurs des champs du profil,
-
réapprovisionner le compte,
-
annuler les modifications et réafficher les valeurs stockées,
-
valider les modifications,
-
résilier l'adhésion.
III.2.2) Réservations
Les adhérents accèdent au système en donnant leur
identifiant et leur mot de passe.
Les adhérents peuvent effectuer des réservations. Le programme
de réservation accessible par l'adhérent doit permettre :
-
d'afficher toutes les réservations en cours pour l'adhérent,
-
d'annuler une réservation parmi celles affichées,
-
de réserver un exemplaire d'une oeuvre.
Les contraintes suivantes s'appliquent aux réservations :
-
Un même adhérent ne peut avoir que cinq réservations
valides à la fois.
-
Une réservation est valide une semaine à partir de son enregistrement.
-
On ne peut réserver une oeuvre que si un exemplaire est disponible
(non encore emprunté ni réservé). Si toutefois il
existe des réservations en cours qui ont expiré, la réservation
la plus ancienne est annulée et remplacée par la nouvelle
réservation demandée.
L'adhérent doit aussi pouvoir demander l'affichage des emprunts
en cours.
III.3) Médiathécaire
III.3.1) Gestion du fonds documentaire
La gestion du fonds documentaire est effectuée par le médiathécaire.
Le programme de gestion du fonds doit :
-
Permettre d'enregistrer de nouvelles oeuvres.
-
Permettre d'enregistrer de nouveaux ouvrages pour des oeuvres existantes.
-
Supprimer des ouvrages (par exemple parce qu'ils sont en mauvais état).
Un ouvrage en cours d'emprunt ne peut pas être supprimé. Dans
ce cas, il est marqué comme étant en voie de suppression.
Au retour de l'ouvrage, celui-ci sera supprimé. S'il existe des
réservations valides sur une oeuvre, il doit rester suffisamment
d'ouvrages pour pouvoir assurer les emprunts correspondant aux réservations.
Un dernier emprunt correspondant à de telles réservations
sera permis et l'ouvrage sera supprimé à son retour.
-
Supprimer des oeuvres. Il n'est possible de supprimer une oeuvre que lorsque
celle-ci n'a plus d'ouvrage correspondant.
III.3.2) Emprunts
Les médiathécaires enregistrent des emprunts d'ouvrages pour
le compte des adhérents. C'est leur fonction principale. Typiquement,
l'adhérent se présente au médiathécaire avec
un ouvrage à emprunter. Le programme d'emprunt accessible par le
médiathécaire pour le compte d'un adhérent doit permettre
:
-
De saisir le numéro de l'adhérent pour accéder au
dossier de l'adhérent en vue d'effectuer des emprunts.
-
De visualiser les emprunts en cours pour l'adhérent.
-
D'enregistrer et facturer l'emprunt d'un ouvrage pour l'adhérent.
-
D'enregistrer le retour d'un ouvrage pour l'adhérent.
Les contraintes suivantes s'appliquent aux emprunts.
-
Un adhérent ne peut emprunter que cinq ouvrages à la fois.
-
Facturation des emprunts : l'enregistrement d'un emprunt décrémente
le compte de l'adhérent d'un certain montant (opération
transactionnelle). Un adhérent ne peut emprunter que si son compte
est suffisamment approvisionné. Le montant dépend du type
de l'ouvrage emprunté (livre, disque ou film).
-
Un emprunt est limité à deux semaines. Lorsque le programme
d'emprunt démarre pour un adhérent donné, les ouvrages
dont l'emprunt a dépassé la limite sont affichés.
-
Toutes les réservations expirées pour l'oeuvre correspondant
à l'emprunt sont automatiquement supprimées.
-
Un emprunt ne peut pas être effectué si tous les exemplaires
sont déjà réservés, et a fortiori empruntés.
Les médiathécaires peuvent également inscrire de nouveaux
adhérents, ou résilier des adhérents existants, en
utilisant l'interface décrite en section 3.1.2.
III.4) Administrateur
Ces fonctions sont autorisées seulement aux utilisateurs de la catégorie
Administrateur.
-
Consultation des méta données.
-
Consultation du schéma des relations (nom, attributs, clés)
utilisées dans l'application.
-
Gestion des utilisateurs de type médiathécaire.
Lors de la mise en place de l'application, vous devrez créer au
moins un utilisateur de la catégorie Administrateur, et un utilisateur
de la catégorie Médiathécaire. Les adhérents
sont ensuite gérés par l'application.
Travail demandé
L'application sera développée en Java, en utilisant JDBC
et le SGBD Oracle. Ce projet étant commun à deux cours, il
vous est demandé deux rapports distincts.
Sous-projet Bases de Données
La démarche pour concevoir votre schéma de relations doit
être rigoureuse :
-
construire un schéma conceptuel Entité-Association,
-
transformer ce schéma en schéma relationnel contenant des
relations en 3FN,
-
préciser et implanter les contraintes d'intégrité,
-
définir les transactions. Nous rappelons que l'application doit
toujours veiller à maintenir la cohérence de la base de données.
Le projet se termine par une démonstration de l'application développée
et la remise d'un rapport qui :
-
présente votre modélisation,
-
montre le schéma de base de données créé, en
expliquant comment il a été obtenu à partir du schéma
Entité/Association et en précise les contraintes implantées,
-
indique les transactions mises en oeuvre.
Préparer votre démonstration en incluant des jeux de test
significatifs.
Barême indicatif (sur 20 points)
-
rapport (15 points)
-
forme (français, organisation générale du document)
: 3 points
-
shéma Entité/Association : 2 points
-
schéma relationnel : 2 points
-
schéma physique : 2 points (les index créés)
-
contraintes d'intégrité : 3 points
-
les transactions définies : 3 points
-
démonstration de l'application en 10 minutes (5 points)
Sous-projet Programmation Orientée-Objets
Nous vous demandons de développer une application possédant
les fonctionnalités suivantes :
-
toutes celles décrites dans la partie 3,
-
une fonctionnalité undo, qui annule l'action précédente
(et ainsi de suite...),
-
une fonctionnalité export, vers différents formats
de sortie (html, ascii pour tableurs, ...).
Pour cela nous vous demandons d'utiliser certains modèles de conception
:
-
le modèle memento pour la fonctionnalité undo,
-
soit le modèle monteur, soit le modèle stratégie
pour la fonctionnalité export.
et de rendre un rapport contenant obligatoirement les points suivants
:
-
structure générale de l'application (la page contenant la
hiérarchie
des classes produite par javadoc sera incluse).
-
les fonctionnalités implémentées et celles non implémentées.
-
pour le modèle memento
-
choix technique retenu et justifications (nous vous conseillons d'utiliser
au maximun les fonctionnalités d'Oracle (transactions, commit, rollback
et points de reprise)),
-
la liste des fonctionnalités réversibles par undo,
-
la liste des fonctionnalités non réversibles (justifier la
non implantation de chacune).
-
pour le modèle monteur ou stratégie
-
justification du choix retenu,
-
liste des formats supportés,
-
manuel de maintenance pour l'ajout d'un nouveau format de sortie.
-
à propos des packages et des exceptions, vous devez
:
-
soit les utiliser dans votre application,
-
soit dire très précisément comment les intégrer
dans votre application. Justifier l'emploi d'un ou de plusieurs packages,
de
même pour les exceptions.
Barême indicatif (sur 20 points)
-
rapport ne dépassant pas 10 pages (15 points)
-
forme (français, organisation générale du document)
: 4 points
-
architecture générale de l'application : 1 point
-
memento : 5 points
-
monteur ou stratégie : 3 points
-
packages et exceptions : 2 points
-
démonstration de l'application en 10 minutes (5 points)
-
qualité de l'interface (aspects pratiques) : 2 points
-
fonctionnement : 3 points
Contraintes administratives
-
Le travail est a réaliser en binôme ou en trinôme.
-
Les rapports doivent être remis au secrétariat au plus
tard le vendredi 21 décembre 2001 à 16 heures.