Académique Documents
Professionnel Documents
Culture Documents
ROUVIERE Aude
MERCIER Julien
FOATA Adrian
PHILIPPON-DAUDEL Mathias
Bibliothèque universitaire
Second semestre
SOMMAIRE
I Présentation
II Cas d'utilisation
2.1 Adhérent
2.2 Emprunt
2.3 Relance
2.4 Retour d'un emprunt
2.5 Commande d'un livre
2.6 Réception d'une commande
IV Diagrammes de séquence
4.1 Emprunt
4.2 Relance
4.3 Rendre
4.4 Commande
4.5 Réception commande
6.1 Invariants
6.2 Spécifications
~2~
I Présentation
L'emprunt d'un livre (et sa restitution) ainsi que l'achat d'un livre sont les deux scénarios
principaux gérés par le système.
Lors de la restitution du livre, le système vérifie si ce dernier n'a pas été rendu en retard,
et, le cas échéant, calcule la pénalité applicable à la personne concernée (seuls les étudiants
peuvent être pénalisés). La pénalité est égale au nombre de jours de retard par rapport à la date
de retour d'emprunt prévue (date d'emprunt + durée maximale d'emprunt).
~3~
L'achat d'un livre requiert deux acteurs : les enseignants, qui, via une interface web,
auront accès aux différents éditeurs et livres présents dans le système d'information de la
bibliothèque et pourront ainsi commander des livres. Une fois leur commande effectuée, la
bibliothécaire la consulte et doit soit la valider, soit la refuser. Lorsque la commande est refusée,
elle est automatiquement annulée. Si la commande est validée, la bibliothécaire l'envoie à
l'éditeur.
D'autres fonctionnalités sont également disponibles telles que la recherche d'un livre,
etc...
II Cas d'utilisation
2.1 L'adhérent
Un adhérent est soit un étudiant soit un enseignant. Le choix de l'acteur (adhérent, étudiant
ou enseignant) dans les prochains cas d'utilisation dépendra du ou des acteurs concernés.
~4~
2.2 L'emprunt
~5~
2.3 La relance
La relance est automatique, elle est donc déclenchée par l'horloge. Lorsque la date de
retour prévue plus 2 jours est atteinte, le système envoie un message de relance à l'emprunteur
(par mail pour un enseignant ou par courrier pour un étudiant).
~6~
2.4 Le retour d'un emprunt
Tout comme pour l'emprunt, c'est la bibliothécaire qui enregistre le retour d'un emprunt. En
fonction du retard constaté, une pénalité est calculée s'il s'agit d'un étudiant. Si cet étudiant a déjà
une pénalité, elles s'accumulent. De plus, les différents emprunts d'un adhérent seront archivés.
~7~
2.5 La commande d'un livre
La commande est effectuée par un enseignant, qui, après avoir recherché le livre
qui l'intéresse, l'ajoute a sa commande. La commande est créée lors de l'ajout du premier livre
commandé. Une fois la commande effectuée, la bibliothécaire doit valider la commande ou la
refuser. On suppose alors que les livres que les éditeurs nous proposent sont enregistrés dans
notre système à la réception de leurs catalogues de livres.
~8~
2.6 La réception de la commande
~9~
III Diagrammes de classe
3.1 Présentation des classes
La classe 'Etudiant' : tout comme la classe 'Enseignant', elle hérite de 'Adhérent', avec,
en plus, des informations spécifiques à l'étudiant.
La classe 'Livre' : Elle est héritée de 'Ouvrage'. On y retrouve également le prix du livre.
La classe 'Document' : Classe mère de 'Exemplaire' et 'No Revue', elle ne contient que
la cote.
La classe 'Relance' : Permet d'effectuer une relance sur un emprunt rendu en retard.
C'est la classe mère de 'Relance Mail' et 'Relance Courrier', deux types de relance
en fonction de l'adhérent concerné.
La classe 'Editeur' : Elle regroupe toutes les informations utiles sur un éditeur. Un
éditeur peut proposer un à plusieurs livres, mais un livre n'est édité que par un
éditeur.
~ 10 ~
3.3 Les classes ~ 11 ~
3.3 Les classes
3.3.1.1 Attributs
nom : Nom de l'adhérent
prenom : Prénom de l'adhérent
dureeMaxEmprunt: Durée maximale d'un emprunt
3.3.1.2 Méthodes
Adherent (N: String; P : String): Constructeur redéfini de la classe
CaculPenalite (Nbjours : Integer): Calcule la pénalité d'un adhérent
Emprunter (cote : Integer) : Permet à un adhérent d'emprunter un livre
Rendre (cote : Integer) : Permet à un adhérent de rendre un livre emprunté
Rechercher (doc : Ouvrage) : Permet à un adhérent de rechercher un ouvrage
(livre ou revue)
3.3.2.1 Attributs
departement : Département dans lequel il enseigne
email: Adresse électronique de l'enseignant
3.3.2.2 Méthodes
Enseignant (Dep: String; email: String): Constructeur redéfini de la classe
Commander (li : Livre, quantite : Integer) : Permet de commander un livre avec
une certaine quantité d'exemplaires
Consulter () : Permet de consulter les livres
3.3.3.1 Attributs
adresse : Adresse de l'etudiant
codePostal: Code postal de la ville dans laquelle l'étudiant se trouve
ville : Ville de l'étudiant
dateFinPenalite: Date à laquelle un étudiant ne sera plus pénalisé
3.3.3.2 Méthodes
Etudiant (Adr: String; CP : Integer; V: String): Constructeur redéfini la classe
~ 12 ~
3.3.4 La classe 'Livre'
3.3.4.1 Attributs
prixUnitaire : Prix d'achat du livre
3.3.4.2 Méthodes
Livre( Titre : String, prix : Integer) : Constructeur redéfini de la classe
GetLivre ():Livre : Renvoie toutes les informations du livre en cours
SetPrixUnitaire(prix : Double) : Modifie le prix du livre
3.3.5.1 Attributs
disponible: Donne la disponibilité du livre ( disponible ou pas )
etatExemplaire : Etat de l'exemplaire (CommeNeuf, BonEtat, Abime,
TresAbime)
3.3.5.2 Méthodes
Exemplaire() : Constructeur de la classe.
Detruire() : Supprime l'exemplaire courant de la bibliothèque
SetEtatExemplaire(etat : String) : Modifie l'état d'exemplaire
Reparer() : Change l'état de l'exemplaire à 'En réparation'
GetDisponible():Boolean : Retourne la disponibilité de l'exemplaire
SetDisponible(dispo : Boolean) : Modifie la disponibilité
3.3.6.1 Attributs
cote: Identifie de façon unique un document
3.3.6.2 Méthodes
Document() : Constructeur de la classe
3.3.7.1 Attributs
numeroRevue : Identifie une revue dans la bibliothèque
sommaire : Sommaire du contenu de la revue
3.3.7.2 Méthodes
NumeroRevue() : Constructeur de la classe.
3.3.8.2 Méthodes
Ouvrage() : Constructeur de la classe
3.3.9.1 Attributs
dateEmprunt : Date à laquelle l'emprunt a eu lieu
dateRetourPrevu : Date calculée du retour prévu du livre
dateEffective : Date de retour réelle de l'emprunt
etatEmprunt : Etat de l'emprunt (EnCours, Relance ou Perdu)
3.3.9.2 Méthodes
Emprunt(ex : Exemplaire, adh : Adherent) : Constructeur redéfini de la classe
Relancer () : Permet de relancer un adhérent
GetEtatEmprunt():String : Retourne l'état d'un emprunt.
SetEtatEmprunt (etat : String) : Permet de modifier l'état d'un emprunt.
3.3.10.1 Attributs
dateRelance : C'est la date à laquelle un adhérent est relancé
3.3.10.2 Méthodes
Relance() : Constructeur de la classe
3.3.11.1 Attributs
etatCommande : Renseigne sur la situation de la commande(EnCours,
Proposee, Validee ou Recue)
dateCommande : Date à laquelle la commande a été passée
3.3.11.2 Méthodes
Commande() : Constructeur de la classe
Valider (): Elle permet de valider une commande
AjouterProduit ( li: Livre; quantite: Integer) : Permet d'ajouter un livre à la
commande
Refuser() : Permet de refuser une commande
Recevoir(): Permet de mettre à jour le système suite à la réception d'une
commande
Proposer() : Permet à un enseignant de proposer une commande
~ 14 ~
3.3.12 La classe 'LigneCommande'
3.3.12.1 Attributs
nbExemplaires: Nombre de livres que l'on veut commander
3.3.12.2 Méthodes
LigneCommande() : Constructeur de la classe
GetLigneCommande():LigneCommande : Retourne la ligne courante
3.3.13.1 Attributs
nomEditeur : nom de l'éditeur
adresse : adresse de l'éditeur
ville : Ville de l'éditeur
CP : Code Postal de l'éditeur
3.3.13.2 Méthodes
Editeur(nom : String) : Constructeur redéfini de la classe
Editeur(nom : String, adr : String, cp : Integer, ville : String) : Constructeur
redéfini de la classe
3.3.14.1 Attributs
nom: Nom de l'auteur
3.3.14.2 Méthodes
Auteur(nom : String) : Constructeur redéfini de la classe
~ 15 ~
IV Diagrammes de séquence
4.1 Emprunt
4.2 Relance
~ 16 ~
4.3 Rendre
~ 17 ~
Ce diagramme de séquence représente l'enregistrement d'un retour d'exemplaire emprunté.
La bibliothécaire, étant l'acteur qui interagi avec le systeme, enregistre le retour de l'exemplaire. Le
systeme vérifie si l'adhérent à rendu l'exemplaire avec du retard et calcul la pénalité cela doit être
fait. Le systeme modifie ensuite la disponibilité de l'exemplaire, enregistre la date de retour réelle
et modifie l'état de l'exemplaire. Puis si besoin est, si l'état de l'exemplaire est très abime il propose
de l'envoyé en réparation ou de le détruire.
~ 18 ~
4.4 Commande
Ce diagramme de séquence représente l'enregistrement d'une commande lancée par un
enseignant. L’enseignant crée ca commande et tant qu'il ne propose pas ca commande à la
bibliothécaire il peut y rajouter des livres. Une foi ca commande proposé elle est soit validée par la
bibliothécaire, et passe à l'état 'validee', soit refusé et passe à l'état 'refuse'.
~ 19 ~
4.5 Réception commande
~ 20 ~
V Diagrammes de machine d'état
5.1 Etat Emprunt
L'emprunt a différents états comme décrit ci-dessous. L'état 'Rendu' est obligatoire
dans notre système pour calculer la pénalité ainsi que pour garder un historique des exemplaires
empruntés par un adhérent.
~ 21 ~
5.2 Etat Commande
Diagramme de machine d'état mettant en évidence les différents états d'un exemplaire : sa
disponibilité ainsi que son état de détérioration.
On prend pour hypothèse qu'un exemplaire revient de réparation à l'état 'Comme neuf'.
~ 22 ~
VI Spécifications et invariants OCL
~ 23 ~
4.1. Invariants:
4.2.Spécifications
~ 24 ~
4.2.2 Context Emprunt::Relancer():
pre: DateJour > dateRetourPrevu + 2
etatEmprunt = 'EnCours'
~ 25 ~
pre : etatExemplaire ='Tres Abime'
ou etatExemplaire ='Perdu'
post : etatCommande='Valide'
pre : etatCommande='Propose'
post : etatCommande='Refuse'
~ 26 ~