UML : Diagrammes de cas d'utilisation -- modele detaille -- 15
1. megaplanet
Modèle détailléModèle détaillé
de cas d'utilisationde cas d'utilisation
Description détaillée des cas d'utilisationDescription détaillée des cas d'utilisation
Préconditions, Débuts, Postconditions, FinsPréconditions, Débuts, Postconditions, Fins
Alternatives, Contraintes non fonctionnellesAlternatives, Contraintes non fonctionnelles
Relations entre cas d'utilisation:Relations entre cas d'utilisation:
inclusion, extension, spécialisationinclusion, extension, spécialisation
ScénariiScénarii
2. megaplanet
2
Description détailléeDescription détaillée
de chaque cas d’utilisationde chaque cas d’utilisation
Chaque cas d ’utilisation doit être décrit en détailChaque cas d ’utilisation doit être décrit en détail
Commencer par les CU prioritairesCommencer par les CU prioritaires
Description utile pour la suite du développementDescription utile pour la suite du développement
Description détaillée plus où moins formelleDescription détaillée plus où moins formelle
langue naturelle mais structurée, vocabulaire précislangue naturelle mais structurée, vocabulaire précis
(diagramme d ’états)(diagramme d ’états)
(diagramme de séquences)(diagramme de séquences)
......
4. megaplanet
4
Informations à décrireInformations à décrire
Quand le CU commence, pré-conditionsQuand le CU commence, pré-conditions
Quand le CU se termine, post-conditionsQuand le CU se termine, post-conditions
Le chemin correspondant au déroulement normalLe chemin correspondant au déroulement normal
Les variantes possibles et les cas d’erreursLes variantes possibles et les cas d’erreurs
Les informations échangéesLes informations échangées
Besoins non fonctionnelsBesoins non fonctionnels
Priorités raffinées si nécessairePriorités raffinées si nécessaire
5. megaplanet
5
Format(s)Format(s)
Pas de format standard proposé en UMLPas de format standard proposé en UML
Différents formats proposés dans la littératureDifférents formats proposés dans la littérature
Choix du format en fonction des besoinsChoix du format en fonction des besoins
e.g.e.g. http://alistair.cockburn.us/Basic+use+case+templatehttp://alistair.cockburn.us/Basic+use+case+template
6. megaplanet
6
Exemple deExemple de
description détaillée d ’un CUdescription détaillée d ’un CU
Retirer
DeLArgent
AuDistributeur
Précondition :
Le distributeur contient des billets, il est en attente d ’une
opération, il n’est ni en panne, ni en maintenance
Début : lorsqu ’un client introduit sa carte bancaire dans le
distributeur.
Fin : lorsque la carte bancaire et les billets sont sortis.
Postcondition :
Si de l ’argent a pu être retiré la somme d’argent sur le
compte est égale à la somme d ’argent qu’il y avait avant,
moins le montant du retrait. Sinon la somme d ’argent sur
le compte est la même qu’avant.
7. megaplanet
7
Exemple deExemple de
description détaillée d ’un CUdescription détaillée d ’un CU
Retirer
DeLArgent
AuDistributeur
Déroulement normal :
1.le client introduit sa carte bancaire
2.le système lit la carte et vérifie si la carte est valide
3.le système demande au client de taper son code
4.le client tape son code confidentiel
5.le système vérifie que le code correspond à la carte
6.le client choisi une opération de retrait
7.le système demande le montant à retirer
…
Variantes :
2.A Carte invalide : si la carte est jugée invalide, le
système affiche un message d ’erreur, rejète la carte et le
cas d ’utilisation se termine.
5.A Code erroné : si le code est erroné ...
8. megaplanet
8
Exemple deExemple de
description détaillée d ’un CUdescription détaillée d ’un CU
Retirer
DeLArgent
AuDistributeur
Contraintes non fonctionnelles :
(A) Performance : le système doit réagir dans un délai
inférieur à 4 secondes, quelque soit l’action de
l ’utilisateur.
(B) Résistance aux pannes : si une coupure de courant ou
une autre défaillance survient au cours du cas
d ’utilisation, la transaction sera annulée, l ’argent ne sera
pas distribué. Le système doit pouvoir redémarrer
automatiquement dans un état cohérent et sans
intervention humaine.
(C) Résistance à la charge : le système doit pouvoir gérer
plus de 1000 retraits d ’argent simultanément
...
10. megaplanet
10
Exemple de scénarioExemple de scénario
Retirer
DeLArgent
AuDistributeur
Scenario 4
1.Paul insère sa carte dans le distributeur d2103
2. Le système accepte la carte et lit le numéro de compte
3. Le système demande le code
4. Paul indique ‘ 1234 ’
5. Le système indique que ce n ’est pas le bon code
6. Le système affiche un message et propose de recommencer
7. Paul indique ‘ 6622’
8. Le système affiche que le code est correct
9. Le système demande le montant du retrait
10. Paul indique 500€
11. Le système vérifie s ’il y a assez d ’argent sur le compte
12....
11. megaplanet
11
ScénarioScénario
Description additionnelle pour un CUDescription additionnelle pour un CU
Validation du CUValidation du CU
Tests, « recette »Tests, « recette »
Un scénario est un exemple :Un scénario est un exemple :
une manière particulière d’utiliser le système …une manière particulière d’utiliser le système …
…… par un acteur particulier …par un acteur particulier …
…… dans un contexte particulier …dans un contexte particulier …
…… avec des données particulières.avec des données particulières.
12. megaplanet
12
Cas d’utilisation vs. ScenarioCas d’utilisation vs. Scenario
Cas d’utilisation =Cas d’utilisation =
ensemble de scénarii possibleensemble de scénarii possible
Scénario =Scénario =
une exécution particulière d’un CUune exécution particulière d’un CU
Scenario 1
Scenario 2
Scenario 3
Scenario 4
…
13. megaplanet
13
Diagrammes de séquencesDiagrammes de séquences
"systèmes""systèmes"
Diagramme de séquences :Diagramme de séquences :
Utilisable dans de nombreux contextesUtilisable dans de nombreux contextes
Séquence des messages entre objetsSéquence des messages entre objets
Différents niveaux de détailsDifférents niveaux de détails
Pour un scénario simplePour un scénario simple
deux objets : l’acteur et le systèmedeux objets : l’acteur et le système
"Diagramme de séquences système""Diagramme de séquences système"
14. megaplanet
14
Exemple de scénarioExemple de scénario
paul : Client le système
Insérer carte
Entrer code ‘1234 ’
Demander code
Message d ’erreur
Demander code
Entrer code ‘6622 ’
Vérifier carte
Vérifier code
...
Appeler Sylvia
Pas forcément de plus value
par rapport au texte
16. megaplanet
Relations entre cas d’utilisationRelations entre cas d’utilisation
(pour réutilisation!)(pour réutilisation!)
16
17. megaplanet
17
Inclusion, Extension etInclusion, Extension et
SpécialisationSpécialisation
S'Identifier
Transferer
DeLArgent
« include »
RetirerDeLArgent
AvecDiffé ré
RetirerDeLArgent
« extends »
« include »
« extends »
RetirerDeLArgent
« include »
RetirerDeLArgentRetirerDeLArgent
AuDistributeur
18. megaplanet
UtilisationUtilisation
Pour éviter les copier-coller dansPour éviter les copier-coller dans
les descriptionsles descriptions
Le diagramme isolémentLe diagramme isolément
n’a pas de sens!n’a pas de sens!
A éviterA éviter
18
« include »
« extends »
19. megaplanet
19
Attention!Attention!
"The UML includes other relationships between use cases beyond the simple"The UML includes other relationships between use cases beyond the simple
includes, such as <<extend>>. I strongly suggest that youincludes, such as <<extend>>. I strongly suggest that you ignore themignore them. I've seen. I've seen
too many situations in which teams can get terribly hung up on when to usetoo many situations in which teams can get terribly hung up on when to use
different use case relationships, and such energy is wasted. Instead, concentratedifferent use case relationships, and such energy is wasted. Instead, concentrate
on the textual description of a use case."on the textual description of a use case."
[UML Distilled, MartinFowler][UML Distilled, MartinFowler]
"A common sign of a novice (or academic) use case modeler is a preoccupation"A common sign of a novice (or academic) use case modeler is a preoccupation
with use case diagrams and use case relationships, rather than writing text. ... Usewith use case diagrams and use case relationships, rather than writing text. ... Use
case diagrams and use case relationships are secondary in use case work.case diagrams and use case relationships are secondary in use case work.
Use cases are text documents. Doing use case work means to write text."Use cases are text documents. Doing use case work means to write text."
[Applying UML and Patterns, Craig Larman][Applying UML and Patterns, Craig Larman]
21. megaplanet
21
Le Processus UnifiéLe Processus Unifié
(1) Définir le modèle de cas d’utilisation(1) Définir le modèle de cas d’utilisation
(1.1)(1.1) Trouver les acteursTrouver les acteurs
(1.2)(1.2) Décrire brièvement chaque acteurDécrire brièvement chaque acteur
(1.3)(1.3) Trouver les cas d ’utilisationTrouver les cas d ’utilisation
(1.4)(1.4) Décrire brièvement chaque cas d ’utilisationDécrire brièvement chaque cas d ’utilisation
(1.5)(1.5) Décrire le modèle comme un toutDécrire le modèle comme un tout
(2) Définir des priorités entre CU(2) Définir des priorités entre CU
(3) Détailler chaque CU(3) Détailler chaque CU (en tenant compte des priorités)(en tenant compte des priorités)
22. megaplanet
22
RésuméRésumé
Différents concepts UMLDifférents concepts UML
Diagramme des cas d’utilisation: Système, Acteur, Cas d’utilisationDiagramme des cas d’utilisation: Système, Acteur, Cas d’utilisation
Diagramme, ModèleDiagramme, Modèle
Scénario vs. Cas d’utilisationScénario vs. Cas d’utilisation
Language naturelle + (diagrammes)Language naturelle + (diagrammes)
Savoir faireSavoir faire
Processus itératifProcessus itératif
24. megaplanet
24
Chapitre gratuit téléchargeable àChapitre gratuit téléchargeable à
http://www.craiglarman.com/book_applying_2nd/Applying_2nd.htmhttp://www.craiglarman.com/book_applying_2nd/Applying_2nd.htm
http://alistair.cockburn.us/usecases/uctempla.htmhttp://alistair.cockburn.us/usecases/uctempla.htm
Pour un template "standard" de description de cas d'utilisationPour un template "standard" de description de cas d'utilisation
25. megaplanet
25
Pour en savoir encore plus ...Pour en savoir encore plus ...
Des livres spécialisésDes livres spécialisés