Unified Modeling Language (UML)- Les cas d’utilisation
UML - Les cas d’utilisation TD ( Rev : 319) – octobre 2012– Corrigé Académie de Nice- Lycée général et technique Les Eucalyptus Section de Technicien Supérieur (STS) Informatique et Réseaux pour l’Industrie et les Services techniques (IRIS)
Enseignant - Éric Valade Objectif
Dans ce TD, vous apprendrez à : déterminer déterminer les acteurs acteurs et les cas d’utilisation d’utilisation ; distinguer les acteurs primaires (principales) et secondaires ; utiliser un cas d’utilisation pour l’inclure dans dans un autre ; étendre étendre un cas d’utilis d’utilisation ation ; spécialiser spécialiser des des acteurs acteurs ; spécialiser un cas d’utilisation pour l’enrichir ; généraliser des cas d’utilisation pour pour factoriser des points communs communs ;
•
•
•
•
•
•
•
Pré requits •
Cours UML - Cas d’utilisation : diagramme de contexte, diagramme de cas d’utilisation.
Ressources •
•
•
notes prises lors du cours donnés donnés en séance de TP du 4 octobre 2012; 2012 ; Anal Analys ysee et Conc Concep epti tion on avec avec UML, UML, Les Les diag diagra ramm mmes es de cas cas d’ut d’utili ilisa satio tionn : umlcasutilisation.pdf Use case diagram : UseCase.html
Durée
4 × 1H 1
octobre 2012
Corrigé
UML - Les cas d’utilisation
Mots-clé
cas d’utilisation, acteur (primaire – principale – , secondaire), relation de communication, d’inclusion, d’extension, point d’extension, cas d’utilisation abstrait, pré condition, post condition, héritage (généralisation, spécialisation), scénarii nominal, alternatif et d’exception. Document à rendre •
•
une feuille avec votre nom, pour les réponses aux questions de la section 1 page ci-contre ; pour les sections 3 à 7, un fichier archive, votreNomUc.tar.bz2 1 , contenant le répertoire du projet uml (voir section 2 page 7), créé avec l’outil BOUML, exemple : durantUc.tar.bz2 ; le projet uml : – contient un diagramme de cas d’utilisation pour les questions 3-2, 4-3, 5-2, 6-2 et 7-4 ; – pour les exercices 4, 5 et 7, inclut le diagramme de contexte ; pour le 6, le reproduit ; – fait apparaître les limites de système (un rectangle séparant cas d’utilisation et acteurs) ; – représente les acteurs primaires avec le symbole « stick man » et les secondaires avec le symbole d’une classe avec stéréotype « actor » ;
Table des matières 1
Les cas d’utilisation : F.A.Q
3
2
Préparation du TD
7
3
Jour-nuit
7
4
Système d’authentification
8
5
La consultation d’horaires de train
10
6
Achat d’un produit dans un magasin
11
7
Appel téléphonique
13
1. respecter la casse
Rev
: 319
2 / 16
ACNICE - LGT EK, STS / IRIS
UML - Les cas d’utilisation
1
Corrigé
octobre 2012
Les cas d’utilisation : F.A.Q
1. Que décrivent les cas d’utilisation ? Solution:
Les cas d’utilisation décrivent les exigences fonctionnelles d’un système à réaliser. Ils décrivent donc le fonctionnement attendu du système sans bien sûr décrire l’implantation de celui-ci. Ils constituent également un référentiel pour le dialogue entre le client (la maîtrise d’ouvrage) et les concepteurs et développeurs (la maîtrise d’œuvre). 2. Les cas d’utilisation correspondent à un ensemble d’interactions entre un utilisateur et le système ? A. Oui B. Non Solution:
Oui
Commenter si nécessaire. Solution:
Un cas d’utilisation décrit les interactions entre un utilisateur et le système. Cette description peut détailler toutes les interactions ou indiquer les principales. En UML , la description est graphique et se limite à indiquer le nom du cas d’utilisation sans détailler les interactions. 3. Un cas d’utilisation prend en compte les objectifs non fonctionnels d’un utilisateur ? A. Oui B. Non Solution:
Non
Commenter si nécessaire. Solution:
Un cas d’utilisation ne correspond qu’à un objectif fonctionnel. Les aspects non fonctionnels ne sont pas décrits en UML et donc, a fortiori dans les cas d’utilisation. 4. Dans un cas d’utilisation, un acteur représente un utilisateur jouant un rôle précis dans l’utilisation du système? A. Oui B. Non Solution:
Oui.
Commenter si nécessaire. Solution:
Le terme acteur est préféré à celui d’utilisateur pour bien distinguer la personne du rôle qu’elle joue dans le cadre d’un cas d’utilisation. En eff et, la même personne (donc le même utilisateur) peut intervenir dans un même cas pour des rôles di ff érents. Cet utilisateur correspond alors à plusieurs acteurs distincts.
ACNICE - LGT EK, STS / IRIS
3 / 16
Rev : 319
octobre 2012
Corrigé
UML - Les cas d’utilisation
5. Pour les acteurs primaires, l’objectif du cas d’utilisation est essentiel ? A. Oui B. Non Solution:
Oui.
Commenter si nécessaire. Solution:
Un cas d’utilisation correspond à un objectif fonctionnel de l’acteur primaire du cas d’utilisation. 6. Pour les acteurs secondaires, l’objectif du cas d’utilisation est également essentiel ? A. Oui B. Non Solution:
Non.
Commenter si nécessaire. Solution:
L’objectif fonctionnel d’un cas d’utilisation ne constitue pas un résultat nécessaire pour un acteur secondaire. Un acteur secondaire inter agit avec le cas d’utilisation pour la réalisation de celui-ci mais n’y trouve pas un intérêt direct. 7. Un acteur est une personne interne au système ? A. Oui B. Non Solution:
Non.
Commenter si nécessaire. Solution:
Un acteur est extérieur au système. Dans le cadre des cas d’utilisation, il s’agit de décrire les interactions entre le système et ses acteurs externes. La description d’interactions entre des éléments internes du système est une modélisation de l’implantation du système. 8. Un acteur est obligatoirement une personne physique ? A. Oui B. Non Solution:
Non.
Commenter si nécessaire. Solution:
Un acteur peut être un autre système. Par exemple, le système informatique d’une entreprise de distribution en gros peut être sollicité par le système d’un détaillant pour connaître les délais de réapprovisionnement ou les prix des articles. Le système d’un détaillant constitue un acteur pour ces cas d’utilisation.
Rev
: 319
4 / 16
ACNICE - LGT EK, STS / IRIS
UML - Les cas d’utilisation
Corrigé
octobre 2012
9. La relation de communication lie un acteur au système. A. Oui B. Non Solution:
Oui.
Commenter si nécessaire. Solution:
La présence de cette relation indique la présence d’une communication sous la forme d’une interaction entre l’utilisateur et le système. 10. Quel est le but des relations d’inclusion et d’extension ? En quoi diff érent-elles ? Solution:
Les deux relations servent à enrichir un cas d’utilisation par le contenu d’un autre. Dans le cas de l’inclusion, cet enrichissement est impératif. Dans le cas de la relation d’extension, l’enrichissement est optionnel. 11. Tous les cas d’utilisation ont une relation de communication directe avec un acteur ? A. Oui B. Non Solution:
Non.
Commenter si nécessaire. Solution:
Il existe des cas d’utilisation qui n’ont pas de relation de communication directe avec un acteur primaire. On les appelle sous-fonctions ou sous cas d’utilisation. Ces cas d’utilisation sont destinés à être liés à d’autres cas d’utilisation avec une ou plusieurs relations d’inclusion ou d’extension. 12. La relation de généralisation / spécialisation est une relation liant deux cas d’utilisation ? A. Oui B. Non Solution:
Oui.
Commenter si nécessaire. Solution:
La relation de généralisation / spécialisation est une relation liant deux cas d’utilisation. Si un premier cas d’utilisation spécialise un second, alors il en hérite la description qu’il peut alors enrichir. Il est appelé un sous-fonction ou sous cas d’utilisation (comme une sous-classe spécialise une autre classe). 13. Qu’est-ce qu’un cas d’utilisation abstrait ?
ACNICE - LGT EK, STS / IRIS
5 / 16
Rev : 319
octobre 2012
Corrigé
UML - Les cas d’utilisation
Solution:
Un cas d’utilisation qui n’est pas mis en œuvre directement mais dont le but est d’être spécialisé, est appelé un cas d’utilisation abstrait. Sa représentation en UML est accompagnée du stéréotype (mot encadré par des guillemets « unStéréotype ») abstrait 2 ou son nom est mis en italique (ces deux représentations sont totalement équivalentes). L’intérêt d’un cas d’utilisation abstrait est de montrer l’existence d’un comportement commun à plusieurs sous-cas d’utilisation. 14. Lors du déroulement d’un projet, à quels moments les cas d’utilisation sont-ils utilisés ? Solution:
Les cas d’utilisation sont utilisés au cours de la modélisation de l’implantation pour vérifier qu’elle respecte bien les exigences du système. La phase de validation vérifie que le système conçu réponde aux sollicitations des utilisateurs conformément aux diff érents cas d’utilisation
Rev
: 319
6 / 16
ACNICE - LGT EK, STS / IRIS
UML - Les cas d’utilisation
2
Corrigé
octobre 2012
Préparation du TD 1. créer un projet uml (ne pas utiliser de modèle) dans BOUML, dans le répertoire lade/s06UMlDiagClsUcCpp/1c ;
/Bureau/va-
2. créer un paquetage pour chaque exercice ; le nom du paquetage est le numéro de l’exercice ; puis une vue de cas d’utilisation et dans celle-ci deux diagrammes de cas d’utilisation : contexte et cu ; reproduire l’arborescence ci-dessous. uml ..........................................................................................................................projet 3.2 .....................................................................................................paquetage vcu ..............................................................................................vue
de cas d’utilisation
..................................................................................diagramme
de cas d’utilisation
cu
4.3 .....................................................................................................paquetage vcu ..............................................................................................vue contexte ................................................diagramme cu
de cas d’utilisation – diagramme de contexte
..................................................................................diagramme
vcu ..............................................................................................vue contexte ................................................diagramme cu
de cas d’utilisation
de cas d’utilisation
de cas d’utilisation
6.2 .....................................................................................................paquetage vcu ..............................................................................................vue
cu
de cas d’utilisation
de cas d’utilisation
7.4 .....................................................................................................paquetage vcu ..............................................................................................vue
cu
exercice 6
de cas d’utilisation – diagramme de contexte
..................................................................................diagramme
contexte ................................................diagramme
exercice 5
de cas d’utilisation – diagramme de contexte
..................................................................................diagramme
contexte ................................................diagramme
exercice 4
de cas d’utilisation
5.2 .....................................................................................................paquetage
3
exercice 3
exercice 7
de cas d’utilisation
de cas d’utilisation – diagramme de contexte
..................................................................................diagramme
de cas d’utilisation
Jour-nuit
Le système retenu est parmi les plus simples que l’on puisse imaginer : il s’agit d’une lampe de chevet, donc la lampe est le système ! Les deux interactions liées aux fonctionnalités du système sont l’allumage de la lampe et son extinction. L’acteur primaire est l’utilisateur de la lampe. En eff et pour ce dernier, l’allumage ou son extinction constituent bien des objectifs fonctionnels essentiels. 1. représenter les deux cas d’utilisation : allumage et extinction avec l’utilisateur de la lampe ;
Solution:
L’utilisateur de la lampe de chevet est le seul acteur. Il est bien externe au système (il ne fait pas partie de la lampe). Il interagit avec la lampe au travers de deux cas d’utilisation : allumer et éteindre. L’utilisateur de la lampe est un acteur primaire. Les relations de communication qui le relient aux deux cas sont fléchées dans le sens acteur vers cas d’utilisation.
ACNICE - LGT EK, STS / IRIS
7 / 16
Rev : 319
octobre 2012
Corrigé
UML - Les cas d’utilisation
2. faire intervenir le réseau électrique dans le cas d’utilisation de l’allumage de la lampe ; Solution:
Le réseau électrique est un acteur secondaire : que l’utilisateur de la lampe allume ou éteigne cette dernière n’est pas essentiel pour le réseau électrique. Simplement, il interagit lors de l’allumage en fournissant l’énergie électrique nécessaire.
Indice
Analyser bien le statut du réseau électrique. Fait-il ou non partie du système ? L’allumage de la lampe est-il un objectif pour lui ?
4
Système d’authentification
Il s’agit de décrire le cas d’utilisation de l’authentification d’un utilisateur à un système informatique. Cette authentification s’eff ectue de façon simple par la saisie d’un nom et d’un mot de passe. 1. représenter le cas d’utilisation de Authentifier permettent à un utilisateur de se connecter au système, sans spécifier les détails ; Solution:
L’acteur primaire et le système sont assez faciles à identifier : l’utilisateur du système constitue l’acteur primaire, le système informatique ici ne possède qu’un seul cas d’utilisation à savoir Authentifier . •
•
Rev
: 319
8 / 16
ACNICE - LGT EK, STS / IRIS
UML - Les cas d’utilisation
Corrigé
octobre 2012
2. introduire, dans le diagramme du cas d’utilisation, la saisie du nom et celle du mot de passe ainsi que la vérification de ces données ; Solution:
L’authentification requiert la saisie du nom et du mot de passe ainsi que la vérification de ces données. Celles-ci vont être représentées par un cas d’utilisation de type sous-fonction inclus dans le cas d’utilisation Authentifier . La relation utilisée est donc celle d’inclusion comme illustrée dans la représentation UML ci-après :
Noter que la relation d’inclusion est représentée par une flèche munie du stéréotype «
include
»
.
3. ajouter la saisie d’un code complémentaire après celle du mot de passe. Ce code complémentaire est optionnel et n’est destiné qu’aux utilisateurs ayant besoin d’une sécurité accrue ; Solution:
La saisie du code complémentaire donne lieu à un nouveau cas d’utilisation le type sous-fonction qui étend le cas principal de façon optionnelle. La représentation est donnée à la figure suivante :
Noter que la relation d’extension est représentée par une flèche munie du stéréotype « extend ». L’orientation de la flèche est inversée par rapport à elle de l’inclusion. Un point d’extension a été ajouté pour préciser dans quel cas la sous-fonction est exécutée. Indice
Pour le deuxième et troisième point, penser à utiliser les relations d’inclusion et d’extension entre cas d’utilisation. Distinguer l’aspect optionnel ou impératif (obligatoire) des descriptions. ACNICE - LGT EK, STS / IRIS
9 / 16
Rev : 319
octobre 2012
5
Corrigé
UML - Les cas d’utilisation
La consultation d’horaires de train
Le but de l’exercice est de décrire les exigences fonctionnelles d’un site Internet de consultation d’horaires de train, avec en option la possibilité d’acheter un billet correspondant à l’horaire sélectionné. 1. représenter le cas d’utilisation de consultation avec la description de la requête : •
choix des gares de départ et d’arrivée ;
•
choix date et heure de départ ;
•
possibilité de choisir une gare intermédiaire avec éventuellement le choix de la durée d’arrêt ;
•
visualisation des horaires calculés par le système en fonction des données saisies par l’utilisateur ;
Pour le choix des gares, il est possible de consulter une base de données contenant toutes les gares du réseau ferroviaire. Solution:
Le cas d’utilisation fait apparaître le client (l’utilisateur qui consulte les horaires) et le cas d’utilisaees et Visualiser tion Consulter horaires. Celui-ci inclut les sous-fonctions Saisir Donn´ Horaires . La sous-fonction Saisir Donn´ ees est décrite en détail. Les données obligatoires donnent lieu à des sous-fonctions de saisie incluses et les données facultatives à des sous-fonctions de saisie qui étendent optionnellement. Il est important de noter que la sous-fonction de consultation de la liste des gares est une extension commune à la saisie des gares de départ, d’arrivée et intermédiaire. Ceci montre que les relations d’inclusion et d’extension servent à détailler et à factoriser des sous-fonctions communes. La liste des gares est fournie par une base de données qui est représentée comme un acteur secondaire. La représentation UML est illustrée ci-après :
2. introduire la possibilité d’acheter un billet correspondant à l’horaire préalablement sélectionné parmi ceux visualisés. Ne pas oublier que le système demande le tarif choisi pour le billet. Ne pas décrire les détails du choix du tarif ni du paiement, ni de l’envoi du billet ;
Rev
: 319
10 / 16
ACNICE - LGT EK, STS / IRIS
UML - Les cas d’utilisation
Corrigé
octobre 2012
Solution:
La représentation est complétée par la possibilité d’achat d’un billet. La possibilité de sélection d’un horaire a également été ajoutée pour rendre possible l’achat du billet. Les trois sous-fonction de l’achat du billet nécessitent une interaction avec le client, y compris l’envoi du billet qui nécessite de connaître l’adresse du client. Ceci justifie la présence de ces trois sous-fonction dans le diagramme. La représentation UML est illustrée ci-après :
Indice
•
•
6
pour le deuxième et troisième point, pensez à décrire les actions que peut eff ectuer l’utilisateur lors de la visualisation et qui ont une réelle pertinence fonctionnelle ; utiliser comme dans l’exercice précédent les relations d’inclusion et d’extension ;
Achat d’un produit dans un magasin
Le client d’un magasin peut y trouver des produits alimentaires (pains, conserves, boissons, etc.) ainsi que d’autres types de produits courants (lessives, savons, etc.). Une fois qu’il a choisi, avec l’aide d’un vendeur, les produits qu’il désire acheter, il les paye auprès d’une hôtesse de caisse. Le stocke des produits est gardé à jour après chaque achat. Le vendeur et l’hôtesse de caisse sont des employés (acteur abstrait : nom en italique) du magasin. Le stocke de produits est un acteur secondaire. La figure suivante est le diagramme de contexte illustrant les interactions entre le système et les diff érent acteurs (primaire et secondaire). ACNICE - LGT EK, STS / IRIS
11 / 16
Rev : 319