Cas d'utilisation
1
1. Le modèle de Use Cases
Exercice: Réservation de vacances en ligne
Ex
erc
Bankcard ice
(paiement par
carte de débit)
Banksys
(paiement par
carte de crédit)
Réservation
sport d’hiver
en ligne
(Futur système)
Station Météo2
1. Le modèle de Use Cases
Exercice: Réservation de vacances en ligne
Les clients doivent pouvoir réserver une chambre (simple ou
double) pour la durée de leur séjour et la payer en ligne
par carte de crédit Ex
erc
Les clients doivent pouvoir obtenir des prévisions ice
météorologiques correspondant à la période de leur séjour
Les clients peuvent réserver des cours de ski pour débutants
Il ne peut y avoir qu’un seul cours par jour
Le nombre maximum de personnes admises dans un cours
est de 10
Des cours dédiés aux enfants peuvent être réservés. L’age
des enfants doit être fourni afin de permettre d’organiser les
cours avec des enfants appartenant à la même tranche d’age.
L’annulation et le remboursement de la réservation des
chambres et des cours est possible 10 jours avant le début du
séjour
Ecrire la description textuelle du UC : ”Réserver Cours de ski”
3
+ Compléter la premier diagramme des Use Cases !!!
1. La description textuelle de Use
Cases
Exercice: Réservation de Vacances en ligne
Nom : Réserver cours de ski
Brève description : Un client réserve un cours de ski débutant
durant la période de son séjour dans l’hôtel.
...
Pré et Post Générales ?
A déterminer à la fin !!!
(après avoir défini les alternatives)
4
1. La description textuelle de Use
Cases
Exercice: Réservation de Vacances en ligne
Cas Normal
Client Système
1) Le client montre son
événement intention de réserver un
2) Affiche la page de
déclencheur
cours
Réservation des cours
3) Le client Rentre les séquence
dates du cours d’interactions
4) Le client rentre ses infos
5) Enregistre les infos
personnelles
personnelles
6) Enregistre la réservation
événement
7) Confirme la réservation
5
de fin
1. La description textuelle de Use
Cases
Exercice: Réservation de Vacances en ligne
Pré-condition du cas normal:
• Le client est sur la page web www…. et
• Le site web fonctionne correctement
Post-condition du cas normal:
• Le client a réservé un cours et
• Le site web fonctionne correctement
6
1. La description textuelle de Use
Cases
Exercice: Réservation de Vacances en ligne
“Qu’est-ce qui peut se passer différemment ?”
Date de réservation des cours <> Date de
séjour à l’hôtel
Le nombre de participants à un cours est >
10
Réserver un cours pour un enfant
Client veut faire d’autres réservations
… 7
1. La description textuelle de Use
Cases
Exercice: Réservation de Vacances en ligne
Cas alternatif
Nom: Réserver Cours pour enfant
Flux :
Si le client réserve un cours pour enfant alors,
entre les points 5 et 6, le client doit rentrer l’âge de l’enfant
et le système doit enregistrer l’age de l’enfant
Pré-condition :
• Le client veut réserver un cours de ski pour un enfant
Post-condition :
• Le client a réservé un cours de ski pour enfant
8
1. Le diagramme de Use Cases
Exercice: Réservation de vacances en ligne
Diagramme de Use Cases
Station météo
Demander
Payer en ligne Réseau
Prévision météo
<<include>> BANKCARD
Réserver <<include>>
Chambre
Réseau
Client Hotel <<include>> BANKSYS
Entrer Dates
Annuler
Chambre <<include>>
Réserver Cours
<<extend>>
Réserver pour enfant Banque
Client Cours Cours de ski
Annuler Rembourser Webmaster
cours
9
Diagramme de
classes
10
2.3 DIAG-CLASS-EX1
Ex
Domaine aérien erc
ice
Chaque avion est décrit par un modèle ainsi qu'un numéro de série.
Ils effectuent des vols entre 2 aéroports.
Chaque vol est décrit par un numéro, un instant de départ prévu et
effectif, et un instant d'arrivée prévue et effective.
De plus, chaque vol est financé par une compagnie aérienne,
nécessite un pilote, d'un copilote, d'un radio et d'un ensemble
d'hôtesses de l'air de la compagnie. Ces derniers sont identifiés par
leur nom. Les informations disponibles sont leur matricule. Les
pilotes et copilotes ont aussi un grade.
Les passagers, identifiés par leur nom, peuvent réserver un siège
pour un vol jusqu'à une heure avant le décollage. Nous disposons
aussi de l’aéroport de départ et de destination des passagers.
Les seules informations utilisées à propos des aéroports sont leur
localisation ainsi que la grande ville la plus proche
Les compagnies aériennes sont identifiées par leur nom et une
abréviation.
11
Solution Exercice 2 (2/2)
Généralisation
Compagnie affrète Aéroport
1 départ localisa° : string
nom : string Personne
abbrev : string passager 1 ville : string
nom : string embarque
* 1 arrivée
1 * *
Vol
emploie
Personnel Navigant num : entier
1..*
matricule: string hdeppre : heure *
hdepeff : heure
{disjoint} harrpre : heure *
harreff : heure
utilise
Pilote * * * *
Hôtesse Radio
1 opère sur 1
grade : string 1..*
pilote 1 1 co-pilote sert sur Avion
pilote modèle : string
commande numsérie: entier
12
Solution Exercice 2 (1/2)
Contraintes
Exemple pour pilote
Pilote Aéroport
nom : string commandant départ localisa° : string
emploie
matricule: string 1 ville : string
1..* grade 1
: string
1 arrivée
{[Link] =
[Link]éteur} *
0..*
Vol
*
1 employeur num : entier
Compagnie hdeppre : heure
nom : string 1 0..* hdepeff : heure {Vol.départ ≠
abbrev : string affréteur harrpre : heure [Link]ée}
harreff : heure
13
Ex
erc
ice
2.5 DIAG-CLASS-EX3
Domaine aérien :
Les pilotes et les copilotes ne sont formés que pour certains
types d’avions et ne peuvent pas effectuer plus de 20h de vol en
48h.
Les hôtesses peuvent embarquer sur tout type d’avion et ne
peuvent pas effectuer plus de 20h de vol en 48h.
Les radios peuvent embarquer sur tout type d’avion, et comme
ils ont un bon syndicat, il ne peuvent pas effectuer plus de 15h
de vol en 48h.
Modifiez une sous partie du diagramme pour prendre en compte
ces exigences et ajoutez une méthode peutVolerSur?() pour le
personnel navigant. 14
Solution Exercice 3
Polymorphisme
Personnel Navigant
matricule : string
peutVolerSur?(v : Vol)
{disjoint}
Pilote Hôtesse Radio
grade : string
*
peutVolerSur?(v : Vol) peutVolerSur?(v : Vol)
Type d’Avion Avion
est formé sur * 1 * 1 *
modèle : string numsérie : string Vol
est un utilise
15
Diagramme d'activité
16
Diagramme d'activités
Un exercice récapitulatif (1/5)
Ce que demande le client (exigences fonctionnelles) :
Contexte de modélisation de processus de maintenance d’un
futur système (projet pilote),
Modéliser la procédure consistant en la gestion des rapports
de bugs et des demandes d’ajout de fonctionnalités :
Réception de la demande ou du rapport,
Vérification de la justification ou de l’importance de la
demande,
Encodage de la demande / attribution d’un id
Envoi vers une équipe de développement,
Vérification du développement par une équipe de test,
Mise à disposition du patch ou de la nouvelle version
Annulation à la demande du chef de projet
17
Pas d’exigences non fonctionnelles
Diagramme d'activités
Un exercice récapitulatif (4/5)
équipe de
utilisateur équipe de test service maintenance système d’encodage
développement
1 2
bug rapport demande
ordre ordre [reçu] [reçu]
A13. codage de A12. préparation du
l’ordre de dévelopt banc de test
rapport A3. vérifier le
code
3 rapport de bug
code
A6. vérifier la
A14. vérifier le code demande d’ajout
[sinon] [vérif. ok]
A8. demande 4
de nouv. fonc.
[demande ou
[sinon]
rapport ok]
A15. vérification du A16. vérification du
demande code banc A5. encodage A9. stockage
code
demande / rapport
A10. génération
4 demande / rapport id de l’id
3 id
[correction A11. créer l’ordre
mineure] de développement
annula [sinon] ordre
-tion A17. création du
patch
patch A18. création de la
A4. envoi vers une
nouvelle version
patch équipe de test
A2. mettre à binaire
A1. envoi vers
disposition le patch une équipe de
A19. annulation binaire 2
développement 18
A7. mettre à
disposition la
1
nouvelle version
Diagramme de
machine à états
19
6.3.2 Exercice: enveloppe
Enveloppe
Peut contenir une lettre et être
adressée à un destinataire.
ouvrir
Opérations: e fermer
x e r cic sceller
1. ouvrir(); E 0..* insérer_lettre(Lettre l)
retirer_lettre
2. fermer(); adresser(Adresse a)
3. sceller(); 0..1
4. insérer_lettre(Lettre l);
0..1 destinataire contient 0..1
5. retirer_lettre();
6. adresser(Adresse a);
Adresse Lettre
rue contenu
numéro
code postal
pays
Trouvez les états.
Dessinez la machine.
20
6.3.2 Exercice: Enveloppe
Solution
ouvrir ouvrir ouvrir
descellée
fermer
ouverte fermée scellée fermer
sceller fermée’
retirer(l)/
contient = {}
fermer
vide' vide pleine
insérer(l)/
contient = l
ouvrir
adresser(a)/
adresse = a
sans_ad avec_ad
21