3. Diagramme de cas d`utilisation (use case)

Transcription

3. Diagramme de cas d`utilisation (use case)
3. Diagramme de cas d’utilisation (use case)
Le diagramme de cas d’utilisation participe aux vues statiques du système d’information.
3.1 Origine
Les diagrammes des cas d’utilisation sont similaires en apparence avec ceux de OOSE (Object
Oriented Software Engineering) de Ivar Jacobson.
3.2 Définition
Un cas d’utilisation décrit une utilisation du système, sous forme d’un ensemble de séquences
d’actions, par un acteur particulier
Il modélise l’un des aspects (comportement / service) du système par rapport à cet acteur
Chaque cas d’utilisation décrit une fonction Métier du système selon le point de vue d’un des
acteurs.
L’ensemble des cas d’utilisation doit décrire exhaustivement les exigences attendues du système
et identifie les utilisateurs (acteurs) et leur interaction avec le système.
Les cas d’utilisation décrivent le QUOI et non le COMMENT, dans le cadre du « métier » de
l’acteur. Les cas d’utilisation ne doivent donc en aucun cas décrire des solutions
d’implémentation.
3.3 Composants du diagramme
Les diagrammes de cas d’utilisation se composent d’acteurs (représentés par des silhouettes) et
des cas d’utilisation (représentés par des ellipses). Les traits entre les cas d’utilisation et les
acteurs représentent les interactions.
etudiant
Inscrire
Formation
Cas d’utilisation
Ensemble d'actions réalisées par le système, en réponse à un stimuli d'un acteur.
Un cas d’utilisation est défini par un nom auquel on peut associer un commentaire. Sa
représentation graphique est une ellipse
Cours UML – R. Chapuis
Page : 1
inscrire
Propriétés
Il est possible d’associer une spécification à chaque cas d’utilisation. Il s’agit d’une
description sous forme de texte de la séquence normale d'actions associée à un cas
d'utilisation. Par exemple pour le cas « inscrire » :
1 - saisir les informations personnelles
2 - saisir les informations pédagogiques
3 - enregistrer le numéro d'étudiants
4 - calculer le montant des droits universitaire
5 - enregistrer le paiement des droits universitaires
6 - fournir la carte d'étudiant
Il est possible d’associer à chaque cas la liste des classes et interfaces utilisées pour mettre
en oeuvre le cas d'utilisation.
Les cas d’utilisation peuvent être organisés en paquetages (packages).
L'ensemble des cas d’utilisation décrit les objectifs (le but) du système.
Acteur
Un acteur personnifie un utilisateur humain ou non humain, ou bien un groupe d'utilisateurs qui
interagissent avec un système. Un acteur est représenté graphiquement par une silhouette
Etudiant
Dans un diagramme de cas d’utilisation, les acteurs peuvent être stéréotypés en : :
Acteur principal :
Il déclenche les actions accomplies par un cas d'utilisation. L'acteur principal est celui qui
demande qu'une action soit accomplie par le cas d'utilisation, c'est aussi celui pour qui le cas
d'utilisation produit un résultat observable.
Les acteurs principaux sont situés sur la gauche du cas d'utilisation. Pour indiquer qu'un
acteur est un acteur principal d'un cas d'utilisation, l'association (ou interaction) doit être
dessinée depuis l'acteur vers le cas d'utilisation.
Acteur secondaire :
Il assiste le cas d'utilisation dans l'accomplissement des actions mais il ne les déclenche pas.
Les acteurs secondaires peuvent être sollicités pour des informations complémentaires. Lors
Cours UML – R. Chapuis
Page : 2
de l'exécution d'un cas d'utilisation, ils peuvent uniquement informer le système et / ou
recevoir des résultats.
Les acteurs secondaires sont situés à droite du cas d'utilisation. Pour indiquer qu'un acteur est
un acteur secondaire d'un cas d'utilisation, l'association (interaction) doit être dessinée depuis
le cas d'utilisation vers l'acteur.
Un acteur secondaire pour un cas d’utilisation peut également être l'acteur principal pour un
autre cas d'utilisation.
Et dans le même temps en :
Humain
Non humain : Système (matériels, logiciels).
Propriété
Un acteur est identifié par un nom auquel on peut ajouter un commentaire.
Association (ou interaction)
Une association est une relation unidirectionnelle qui décrit un lien entre :
Un acteur et un cas d'utilisation
Un cas d'utilisation et un acteur
Une association entre un acteur et un cas d'utilisation est une association d'entrée. Une
association entre un cas d'utilisation et un acteur est une association de sortie.
Entrée
Etudiant
inscrire
Propriétés :
Une association est identifié par un nom auquel on peut ajouter un commentaire.
Avec PowerAmc, il est possible d'afficher le sens (entrée, sortie) de l'association
Cours UML – R. Chapuis
Page : 3
3.3 Exemples
Diagramme de cas d’utilisation d’un guichet automatique bancaire
Retirer de l'argent
Client
déposer de l'argent
Faire des virements entre comptes
Consulter le solde d'un compte
Employé
Ravitaller distributeur
Réparer distributeur
Agent de maintenance
Cours UML – R. Chapuis
Page : 4
3.4 Dépendance
Une dépendance est une relation entre deux cas d'utilisation dans laquelle toute modification
effectuée sur l'un (l'élément influent) affecte l'autre (élément dépendant).
UML définit trois types de dépendances standardisées entre cas d’utilisation :
Une relation d’inclusion : formalisée par la dépendance « include »
Une relation d’extension : formalisée par la dépendance « extend »
Une relation de généralisation / spécialisation
La relation d’inclusion <<include>>
Lors de la description des cas d’utilisation, il apparaît qu’il existe des sous-ensembles communs à
plusieurs cas d’utilisation, il convient donc de factoriser ces fonctionnalités en créant de
nouveaux cas d’utilisation qui seront utilisés par les cas d’utilisation qui les avaient en commun.
A élément dépendant
<<include>>
B élément influant
Un cas d’utilisation A utilise un cas d’utilisation B signifie que :
une instance de A va engendrer une instance de B et l’exécuter,
A dépend de B,
B n’existe pas tout seul et A n’existe pas sans B
Exemple
« Déposer de l’argent », « Retirer de l’argent », « Faire des virements entre comptes » et «
Consulter le solde d’un compte» incorporent de façon explicite le cas d’utilisation « authentifier
», à un endroit spécifié dans leurs spécifications.
Cours UML – R. Chapuis
Page : 5
Retirer de l'argent
<<include>>
déposer de l'argent
<<include>>
Autentifier
<<include>>
Faire des virements entre comptes
<<include>>
Consulter le solde d'un compte
La relation d’extension <<extend>>
Elle permet d'étendre les interactions et donc les fonctions décrites par les interactions. Le cas de
base peut fonctionner tout seul, mais il peut également être complété par un autre, sous certaines
conditions, et uniquement à certains points particuliers de sa spécification (point d’insertion). On
utilise principalement cette relation pour séparer le comportement optionnel (les variantes) du
comportement obligatoire.
A élément influant
<<extend>>
B élément dépendant
Le cas d’utilisation B étend le cas d’utilisation A signifie que :
Une instance de A va engendrer une instance de B et l’exécuter sous certaines conditions.
Il faut indiquer dans la spécification textuelle de A le "point d'insertion" de B.
Cours UML – R. Chapuis
Page : 6
Les cas d'utilisation A et B peuvent s'exécuter indépendamment.
La relation <<extend>> montre une possibilité d'exécution d'interactions qui augmenteront les
fonctionnalités du cas étendu, mais de façon optionnelle, non obligatoire, alors que la relation
<<include>> suppose une obligation d’exécution des interactions.
Exemple
Pendant l'exécution du cas d'utilisation "retirer de l'argent" on permet au client de consulter le
solde de son compte juste avant de choisir le montant de son retrait.
Retirer de l'argent
<<extend>>
Vérification montant
Consulter le solde
Dans la spécification du cas d'utilisation A on définit le point d'insertion :
…
7 – le système d'autorisation a reconnu le code de la acrte et autorise le retrait
8 – le GAB demande le montant désiré du retrait
Point d'insertion : Vérification montant
9 – le client saisit le montant désiré de retrait
…
Relation de généralisation entre cas d’utilisation
La relation d'héritage ou de généralisation entre cas est plus subtile. Cette relation est à prendre
au sens classique de spécialisation, inhérent à 'héritage. Ici, la généralisation peut être vue aussi
comme un "polymorphisme" de cas.
Exemple
Dans un système d'agence de voyage, un acteur touriste peut participer à un cas de base qui est
"Réserver voyage", qui suppose par exemple des interactions basiques au comptoir de l'agence.
Une réservation peut aussi être réalisée par téléphone ou internet. On voit qu'il ne s'agit pas de
relation <<extend>> car la réservation par Internet n'étend pas les interactions ni les
fonctionnalités du cas 'Réserver voyage". Elle les traduit différemment. Les interactions Internet
ne sont pas une option des interactions comptoir. Par contre les deux cas "Réserver voyage" et
"Réserver voyage par Internet" sont liés : la réservation par Internet est un cas particulier de
réservation. De façon générale en objet, une situation de cas particulier se traduit par une relation
de généralisation.
Cours UML – R. Chapuis
Page : 7
reserver voyage
Client
reserver par téléphone
réserver par internet
3.4 Scénario
Un scénario est une succession particulière d'actions qui s'exécutent du début à la fin du cas
d'utilisation. Pour chaque cas d'utilisation, on distingue trois types de scénario :
- le scénario nominal
- les scénarios alternatifs
- les scénarios d'erreur
Exemple :
Pour le cas d'utilisation "inscrire" :
le scénario nominal est :
1 - saisir les informations personnelles
2 - saisir les informations pédagogiques
3 - enregistrer le numéro d'étudiant
4 - calculer le montant des droits universitaire
5 - enregistrer le paiement des droits universitaires
6 - fournir la carte d'étudiant
un scénario alternatif est :
1 - saisir les informations personnelles
2 - saisir les informations pédagogiques
3a - l'étudiants est déjà enregistré à l'Université
on conserve alors le même numéro
4 - calculer le montant des droits universitaire
5 - enregistrer le paiement des droits universitaires
6 - fournir la carte d'étudiant
un scénario d'erreur est
1 - saisir les informations personnelles
2 - saisir les informations pédagogiques
2a - les prérequis de l'étudiant ne permettent pas 'inscrire l'étudiant à la formation
7 - le cas d'utilisation est terminé
Cours UML – R. Chapuis
Page : 8