Académique Documents
Professionnel Documents
Culture Documents
Sommaire
1 - Introduction
4
1.1 - Présentation du projet
4
3 - Diagramme de classes 13
4 - Diagrammes de séquence
14
4.1 - Chercher objet
14
4.2 - Se logger 15
4.4 - Enchérir 17
4.6 - Facturer 20
2
UML Renforcé - eBaieDesAnges
4.10 - Inscrire 25
4.17 - Suivre 34
5 - Diagrammes dʼétats
35
5.1 - Diagramme dʼétat Annonce
35
6 - Diagrammes dʼactivité
37
6.1 - Encherir
37
7 - Diagramme de composant 39
8 - Diagramme de déploiement 40
7 - Spécifications en OCL 41
3
UML Renforcé - eBaieDesAnges
1 - Introduction
1.1 - Présentation du projet
Il permet aux utilisateurs du site de mettre en vente des objets, dʼenchérir puis de mettre
en correspondance le vainqueur de lʼenchère et le vendeur, afin de garantir le paiement et
la livraison.
Les paiements se font par “banque virtuelle niçoise”. Le site “eBaieDesAnges” propose
également un système dʼenchères automatiques, plafonnées par les acheteurs potentiels.
Le vendeur et le vainqueur peuvent ensuite donner une note en fonction de la qualité de
lʼobjet vendu et du temps de paiement.
Une annonce dont lʼétat est “Gagnée” signifie que lʼobjet nʼa pas été payé. Elle est
considérée comme payée et archivée lorsque son état est “Archivée”. Ainsi, toutes les
annonces sont conservées dans le système, quʼelles soient “Terminée”, “Annulée”, etc.
Les états dʼune annonce peuvent être “En cours”, “Perdue”, “Gagnée”,
“ConfirmationEnvoi”, “ConfirmationReception”, “Annulée“, “Payée”, “Archivée”.
Les accesseurs, modificateurs de base, ainsi que les constructeurs et destructeurs ne sont
pas représentés dans les méthodes des classes.
On suppose quʼune commission de 3% est perçue sur le prix final. Les frais de mise en
vente et la commission sont perçus à la fin du mois de la date de fin de lʼannonce.
Les factures sont établies chaque mois. A des fins dʼoptimisation, nous avons relié la
classe “Facture” à “AcheteurVendeur”. Ceci dans le but dʼoptimiser les recherches de
factures concernant un acheteurVendeur.
Pour les commentaires effectués sur lʼacheteur par le vendeur et ceux effectués sur le
vendeur par lʼacheteur, il nʼy a quʼun diagramme de séquence car ils sont identiques.
4
UML Renforcé - eBaieDesAnges
Lors de la création dʼune annonce, la facture associée est immédiatement créée. Si une
facture existe déjà pour un vendeur pour le mois en cours, une ligne sur la facture est
rajoutée.
Le système ne permet pas de relancer les factures. Lorsquʼune demande de paiement est
envoyée à la banque virtuelle niçoise, il sʼeffectue toujours avec succès.
Lʼhorloge déclenche une alerte pour prévenir les suiveurs et les enchérisseurs que
lʼenchère va bientôt arriver à son terme. Cette alerte est effectuée à minuit tous les jours et
grâce à toutes les annonces qui se terminent le jour suivant, lʼalerte permet dʼenvoyer des
mails à toutes les personnes concernées.
Pour quʼune annonce ait son état “Archivée”, lʼacheteur et le vendeur doivent
obligatoirement avoir rempli les commentaires et les notes.
Nous supposons que le mail dʼun membre dans notre système est strictement identique à
celui de ce membre dans le système de la banque virtuelle niçoise.
5
UML Renforcé - eBaieDesAnges
6
UML Renforcé - eBaieDesAnges
7
UML Renforcé - eBaieDesAnges
8
UML Renforcé - eBaieDesAnges
9
UML Renforcé - eBaieDesAnges
10
UML Renforcé - eBaieDesAnges
2.9 - Cas dʼutilisation SeLogger
2.10 - Cas dʼutilisation Suivre
11
UML Renforcé - eBaieDesAnges
12
UML Renforcé - eBaieDesAnges
3 - Diagramme de classes
13
UML Renforcé - eBaieDesAnges
4 - Diagrammes de séquence
4.1 - Chercher objet
• Scénario
14
UML Renforcé - eBaieDesAnges
4.2 - Se logger
• Scénario
15
UML Renforcé - eBaieDesAnges
• Scénario
16
UML Renforcé - eBaieDesAnges
4.4 - Enchérir
17
UML Renforcé - eBaieDesAnges
• Scénario
18
UML Renforcé - eBaieDesAnges
• Scénario
1) Un acheteur/vendeur décide dʼannuler une enchère sur une annonce avec une la date
de lʼenchère
2) Le système recherche lʼannonce en cours correspondante
3) Le système recherche lʼenchère correspondante à cette annonce, à ce membre et à la
date de lʼenchère
4) Lʼenchère est supprimée du système
5) Un mail est envoyé à cet acheteur/vendeur pour lui confirmer lʼannulation de son
enchère
Sʼil reste au moins une enchère :
6) Le système recherche le membre qui a la meilleure enchère
7) Un mail est envoyé à ce nouveau meilleur enchérisseur
Sʼil nʼy a plus dʼenchère :
8) Un mail est envoyé au vendeur pour lui dire quʼil nʼy a plus dʼenchère
9) Lʼétat de mail1ereEnchere passe à « FALSE »
19
UML Renforcé - eBaieDesAnges
4.6 - Facturer
• Scénario
20
UML Renforcé - eBaieDesAnges
• Scénario
• Scénario
22
UML Renforcé - eBaieDesAnges
23
UML Renforcé - eBaieDesAnges
• Scénario
24
UML Renforcé - eBaieDesAnges
4.10 - Inscrire
• Scénario
25
UML Renforcé - eBaieDesAnges
• Scénario
26
UML Renforcé - eBaieDesAnges
• Scénario
27
UML Renforcé - eBaieDesAnges
• Scénario
28
UML Renforcé - eBaieDesAnges
29
UML Renforcé - eBaieDesAnges
• Scénario
30
UML Renforcé - eBaieDesAnges
31
UML Renforcé - eBaieDesAnges
• Scénario
32
UML Renforcé - eBaieDesAnges
• Scénario
33
UML Renforcé - eBaieDesAnges
4.17 - Suivre
• Scénario
34
UML Renforcé - eBaieDesAnges
5 - Diagrammes dʼétats
5.1 - Diagramme dʼétat Annonce
35
UML Renforcé - eBaieDesAnges
36
UML Renforcé - eBaieDesAnges
6 - Diagrammes dʼactivité
6.1 - Encherir
37
UML Renforcé - eBaieDesAnges
38
UML Renforcé - eBaieDesAnges
7 - Diagramme de composant
39
UML Renforcé - eBaieDesAnges
8 - Diagramme de déploiement
40
UML Renforcé - eBaieDesAnges
7 - Spécifications en OCL
Note : Les pré et post-conditions ne sont pas à double sens.
montantMiseAPrixAnnonce >= 0
fraisMiseEnVenteAnnonce >= 0
dateDebutAnnonce.getMonth() = getFacture().getMoisFacture()
dureeJoursAnnonce >=0
encheres->size()>0 implies
encheres->forAll(e |
dateDebutAnnonce<=e.getDateEnchere()<=dateDebutAnnonce
+dureeJoursAnnonces)
encheres->size()>0 implies
encheres->forAll(e | e.getMontantEnchere()>=montantMiseAPrixAnnonce)
encheres->size()>0 implies
encheres->forAll(e | e.getEncherisseur()!=getVendeur())
annonces->size()>0 implies
annonces->forAll(a | a.getVendeur() = getVendeur())
evaluationVendeur->notEmpty() implies
1<=evaluationVendeur<=5
evaluationAcheteur->notEmpty() implies
1<=evaluationAcheteur<=5
getAnnonce().getDateDebutAnnonce()+getAnnonce().getDureeJoursAnnonce() <=
today
montantFraisDePort>0
dateDerniereConnexion<=today
41
UML Renforcé - eBaieDesAnges
43