ÉTUDE DU SYSTÈME D`INFORMATION D`UNE BIBLIOTHÈQUE

Transcription

ÉTUDE DU SYSTÈME D`INFORMATION D`UNE BIBLIOTHÈQUE
ÉTUDE DU SYSTÈME D’INFORMATION D’UNE BIBLIOTHÈQUE
Une bibliothèque connaît des adhérents (numéro, nom, prénom, adresse, email),
des prêts (dateEmprunt) et des livres disponibles (titre, auteur, ISBN). Un
adhérent peut emprunter au maximum 3 livres en même temps. On considère
que la bibliothèque ne possède qu’un seul exemplaire de chaque livre. Les
bibliothécaires peuvent enregistrer les prêts et les retours de prêts. Le
bibliothécaire chef peut gérer les livres (ajout, suppression, modification). Pour
gérer les prêts, ils doivent connaître l’identité de l’adhérent emprunteur (et donc
l’enregistrer s’il est inconnu). La durée maximale de prêt est de 2 semaines.
Questions :
EXIGENCES
1 - Réaliser un diagramme des cas d’utilisation.
2 – Réaliser un diagramme de séquence système pour l’UC « Enregistrer un prêt ».
3 – Réaliser une fiche de description pour l’UC « Enregistrer un prêt ».
ANALYSE
4 - Réaliser un diagramme de paquetages pour l’architecture 3 couches (= MVC).
5 – Réaliser un diagramme de classes d’analyse (sans les méthodes) pour chaque paquetage.
CONCEPTION
6 – Réaliser un diagramme de séquence pour l’UC « Enregistrer un prêt ».
7 – Réaliser le diagramme des classes participantes de l’UC « Enregistrer un prêt ».
IMPLEMENTATION
8 - Ecrire le code C++ ou Java de la classe CtrlEnregPret.
Question 1 :
Enregistrer un prêt
<<extend>>
Bibliothécaire
Enregistrer nouvel adhérent
Enregistrer un retour de prêt
Gérer les livres
Bibliothecaire chef
Question 2 :
Systeme
: Bibliothécaire
1 : nouveauPret()
2 : afficher("saisir le numéro adhérent")
3 : indiquerEmprunteur(id)
4 : afficher(PretsActuels[])
loop livres empruntables
5 : emprunterLivre(ISBN)
6 : finPret()
7 : afficher(DateRetourMaxi)
8 : fermer()
Question 3 :
Nom de l’UC :
Emprunter un livre
Auteur : Laurent Nonne
Acteur principal : Bibliothécaire
Acteur secondaire :
/
Version : 1.1
Date de modification : 28/10/2008
Description générale: Cette UC doit permettre d’enregistrer le prêt d’un ou plusieurs livre(s)
grâce à l’ISBN du livre et au numéro de l’adhérent.
Pré-conditions :
L’adhérent(e) est déjà enregistré(e) dans cette bibliothèque
Post-conditions :
Le livre emprunté est enregistré comme indisponible
Scénario nominal :
Bibliothécaire
1. Il demande à enregistrer des
prêts
3. Il saisit le numéro de l’adhérent
* 5. Il saisit l’ISBN du livre
6. Il indique la fin de la saisie des
prêts
Système
2. Il demande le numéro de
l’adhérent
4. Il affiche les prêts en cours de
l’adhérent
7. Il affiche la date de retour
maximale
Enchaînements alternatifs / erreur :
Commence au 4. du scénario nominal
E1 : l’adhérent a déjà atteint le maximum d’emprunts en cours (cf. RG1)
Le Système affiche l’erreur et l’UC se termine.
Commence au 4. du scénario nominal
A1 : le numéro de l’adhérent est inconnu
Le Système affiche l’erreur et demande de ressaisir le numéro de l’adhérent.
Reprise du scénario nominal au 3.
Commence au 5. du scénario nominal
A2 : l’ISBN saisi ne correspond à aucun livre connu
Le Système affiche l’erreur et demande de ressaisir l’ISBN.
Reprise du scénario nominal au 5.
Points « ouverts » :
PO1 : Que faire si l’adhérent a déjà atteint le maximum des prêts mais qu’il a perdu un des
livres empruntés ?
Règles de gestion :
RG1 : le nombre d’emprunts maximum en même temps est de 3
Paragraphes optionnels du cas d’utilisation :
Besoins d’IHM :
Les dispositifs d’entrée-sortie doivent être :
- un lecteur de code barre pour lire les cartes d’adhérent et les codes ISBN
- un écran pour l’affichage des messages du système
Autres Besoins :
Besoins
Temps de réponse
Concurrence
Disponibilité
Description
Le Système doit réagir en 2 sec. maxi. Une transaction
nominale doit prendre moins de 2 mn.
/
12 h / 24, 6 jours sur 7.
Question 4 :
IHM
Application
Métier
Question 5 :
<<boundary>>
DlgPrincipale
<<boundary>>
DlgEnregRetourPret
<<boundary>>
DlgGererLivres
<<boundary>>
DlgEnregPret
<<boundary>>
DlgCreerAdherent
<<control>>
CtrlGererLivres
<<control>>
CtrlEnregPret
<<control>>
CtrlCreerAdherent
<<control>>
CtrlEnregRetourPret
c'est un Singleton
<<entity>>
Bibliotheque
1
1
-adresseBiblio
-nomDirecteur
-numTph
0..*
0..*
<<entity>>
Livre
1
-titre
-auteur
-ISBN
-estDispo
0..1
<<entity>>
Adherent
<<entity>>
Pret
-datePret
0..3
1 -numero
-nom
-prenom
-adresse
Question 6 :
Question 7 :
Question 8 :
Squelette de code Java 1.5 de la classe Bibliothèque :
package Application ;
import java.util.* ;
import Metier.* ;
public class CtrlEnregPret {
private Bibliotheque laBiblio ;
private Adherent adh ;
private Pret p ;
public CtrlEnregPret ( ) {
laBiblio=Bibliotheque.getInstance() ;
// on récupère l’instance du Singleton Bibliothèque …
}
public List<String> indiquerEmprunteur(int id) {
List<String> lesPretsActuels ;
adh = laBiblio.getAdherentByNum(id) ;
lesPretsActuels = adh.getPretsActuels() ;
// la méthode getPretsActuels() de la classe Adherent va
// récupèrer pour chaque prêt actuel sa date et les infos du livre.
return (lesPretsActuels) ;
}
public void emprunterLivre(String ISBN) {
Livre liv = la Biblio.getLivreByISBN (ISBN) ;
p = liv.addPret() ;
// l’objet Livre crée un Prêt et le retourne à CtrlEnregPret
// qui l’utilise pour ajouter ce Prêt à ceux de l’Adherent
liv.setDispo(faux) ;
adh.addPret(p);
}
public Date finPret ( ) {
Date dateRetourMaxi = p.getDateRetourMaxi();
return (dateRetourMaxi) ;
}
}
Evolutions possibles :
- Nouveaux C.U. :
o inscrire adhérent (différents tarifs…),
o relancer retardataires ((e)mail),
o consulter le catalogue des livres
o réserver un livre déjà emprunté
o consulter ses prêts actuels
o faire des statistiques sur les prêts
- Spécialiser Articles en K7, CD, DVD, Livres, Revue, Roman (SF,
historique, polar…)
- Gérer l’historique des prêts
- Faire classe Items (exemplaire d’article), classe Auteur
- Gérer classification Dewey / thèmes (sciences, littérature, philo…)