É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…)