Diagramme comportemental — Besoins

Diagramme de
Cas d'utilisation

Capture les besoins fonctionnels d'un système du point de vue des utilisateurs. Répond à : "Que doit faire le système ?"

Rôle du Diagramme

Le diagramme de cas d'utilisation est le premier diagramme à produire dans un projet : il décrit quoi fait le système, pas comment.

Identifie les acteurs qui interagissent avec le système
Liste les fonctionnalités (cas d'utilisation) offertes
Délimite le périmètre du système par une frontière
Sert de base aux spécifications fonctionnelles
Accessible aux clients et non-techniciens
💡

Chaque cas d'utilisation correspond à un objectif utilisateur : "Se connecter", "Passer une commande", "Générer un rapport". Évitez les cas trop techniques.

Système de Vente Client Admin Passer commande Suivre livraison Gérer catalogue

Éléments du Diagramme

ÉlémentNotationRôle
Acteur Entité externe qui interagit avec le système : personne, organisation ou autre système
Cas d'utilisation Nom du cas Fonctionnalité offerte par le système — une ellipse avec un nom sous forme verbale
Frontière système Système Rectangle (ou rectangle en pointillés) délimitant le périmètre du système
Association Ligne simple entre acteur et cas d'utilisation — indique la participation

Acteurs

Un acteur est toujours externe au système. Il représente un rôle, pas une personne spécifique.

Acteur principal — initie le cas d'utilisation, placé à gauche
Acteur secondaire — sollicité par le système, placé à droite
Système externe — représenté par un acteur avec le stéréotype «système»
Les acteurs peuvent avoir une relation d'héritage entre eux
📌

"Client" et "Administrateur" sont des acteurs. "Jean Dupont" non — c'est une instance. Un acteur correspond à un rôle.

Utilisateur Client Gestionnaire hérite de →
💡

Si Gestionnaire hérite de Utilisateur, le Gestionnaire peut aussi effectuer tous les cas d'utilisation du parent.

Cas d'utilisation

Un cas d'utilisation décrit une interaction complète entre un acteur et le système pour atteindre un objectif.

Nommé avec un verbe à l'infinitif : "Se connecter", "Consulter historique"
Représente un résultat observable et utile pour l'acteur
Niveau de granularité : ni trop large ("Utiliser le système") ni trop fin ("Cliquer sur un bouton")
Peut avoir un scénario principal et des scénarios alternatifs (décrits en texte)

Fiche d'un cas d'utilisation

Fiche cas d'utilisation
NomPasser une commande
Acteur principalClient
PréconditionClient authentifié, panier non vide
Scénario principal1. Client valide panier
2. Saisit adresse livraison
3. Choisit paiement
4. Confirme commande
5. Système envoie confirmation
Scénario alternatif3a. Paiement refusé → message erreur
PostconditionCommande enregistrée, email envoyé

Relations entre Cas

Trois types de relations permettent de structurer les cas d'utilisation.

Relation
Notation
Signification
«include»
«include»
Inclusion obligatoire — le cas inclus s'exécute toujours
«extend»
«extend»
Extension optionnelle — s'exécute selon une condition
Généralisation
Un cas est une spécialisation d'un autre

«include» et «extend» en détail

«include» — Inclusion obligatoire

Le cas de base délègue toujours une partie de son comportement au cas inclus. La flèche pointe vers le cas inclus.

Utilisé pour factoriser un comportement commun
"Passer commande" inclut toujours "S'authentifier"
Analogue à un appel de fonction obligatoire
Client Passer commande Voir catalogue S'authentifier «include» «include»

«extend» — Extension optionnelle

Le cas d'extension ajoute un comportement optionnel au cas de base, selon une condition. La flèche pointe vers le cas de base.

Utilisé pour les scénarios alternatifs ou optionnels
"Payer par chèque" étend "Passer commande" — seulement si l'utilisateur choisit ce mode
Peut avoir un point d'extension et une condition entre { }
Client Passer commande Payer par chèque Ajouter coupon «extend» {si mode=chèque} «extend»

Astuce mémo-technique : «include» = le cas inclus est toujours exécuté (obligatoire). «extend» = le cas extension s'ajoute parfois (optionnel). La flèche «extend» pointe vers le cas de base (celui qui est étendu).

Types d'Acteurs

Les acteurs se distinguent selon leur rôle dans l'interaction et leur nature (humain ou système).

TypeDescriptionPlacementExemple
Acteur principal Initie l'interaction pour atteindre un objectif À gauche de la frontière Client qui passe commande
Acteur secondaire Répond à une demande ou fournit un service au système À droite de la frontière Système bancaire validant la transaction
Acteur humain Personne interagissant directement avec le système Gauche ou droite selon son rôle Membre d'une bibliothèque
Acteur système Autre système ou application interagissant avec le système modélisé — stéréotype «système» Souvent à droite Système de paiement externe
Distributeur (ATM) Retirer de l'argent Consulter solde Porteur carte (principal) «sys» Sys. Auto S.I. Banque (secondaire) ← gauche droite →

Niveaux de Granularité

Les cas d'utilisation peuvent être modélisés à différents niveaux de détail selon l'audience et le stade du projet.

Niveau 1

Résumé

Vue très abstraite couvrant un processus métier complet. Destiné à la direction ou aux parties prenantes non techniques.

Ex : "Gérer les commandes clients"
Niveau 2

Utilisateur

Niveau standard : décrit une tâche complète du point de vue de l'utilisateur. Base pour les tests et les spécifications.

Ex : "Passer une commande"
Niveau 3

Sous-fonction

Détaille une étape spécifique. Souvent inclus via «include» dans un cas de niveau utilisateur. Évite la répétition.

Ex : "S'authentifier", "Sélectionner paiement"
💡

En pratique : utilisez le niveau Résumé pour cadrer le projet avec les clients, le niveau Utilisateur pour rédiger les spécifications, et le niveau Sous-fonction pour factoriser les comportements partagés via «include».

Description Textuelle

Le diagramme seul ne suffit pas : chaque cas important doit être accompagné d'une fiche textuelle détaillant le scénario complet.

La description textuelle est le véritable contrat fonctionnel entre les parties prenantes. Elle répond aux questions : qui, quand, comment, et que se passe-t-il en cas d'erreur.

Nom — verbe à l'infinitif, univoque
Acteurs — principal et secondaires impliqués
Préconditions — ce qui doit être vrai avant l'exécution
Scénario nominal — la séquence quand tout se passe bien
Postconditions — ce qui est vrai à la fin du succès
Scénarios alternatifs — erreurs, exceptions, choix
📌

Un diagramme de séquence (Chapitre 4) est souvent la meilleure façon d'illustrer le scénario nominal d'une description textuelle.

Fiche : Emprunter un livre
Acteurs Membre (principal), Bibliothèque (système)
Préconditions Membre authentifié. Livre disponible.
Scénario
nominal
1. Membre recherche le livre
2. Sélectionne l'exemplaire
3. Confirme l'emprunt
4. Système enregistre et réduit le stock
5. Email de confirmation envoyé
Postconditions Emprunt enregistré, stock décrémenté
Scénarios alt. 3a. Quota emprunts atteint → message refus
3b. Livre réservé par autre membre → liste attente

Erreurs Courantes

Connaître les pièges fréquents permet de produire des diagrammes plus lisibles et plus utiles.

Confondre acteur et utilisateur

Un acteur représente un rôle, pas une personne. "Marie" n'est pas un acteur — "Client" l'est. Une même personne peut jouer plusieurs rôles.

Trop de cas d'utilisation

Modéliser chaque sous-étape comme un cas indépendant rend le diagramme illisible. Utilisez «include» pour factoriser les étapes communes.

Frontière absente ou mal délimitée

Sans frontière, on ne sait pas ce qui est dans le périmètre. Toujours délimiter le système, même pour un diagramme simple.

Mauvais sens de la flèche «extend»

La flèche «extend» pointe vers le cas de base (celui qui est étendu), pas vers l'extension. C'est souvent inversé par erreur.

Descriptions textuelles absentes

Un diagramme sans fiche textuelle est incomplet. Les scénarios alternatifs et les préconditions sont essentiels pour éviter les malentendus.

Cas d'utilisation trop technique

Éviter "Appeler l'API REST" ou "Écrire en base de données". Un cas d'utilisation doit correspondre à un objectif utilisateur, pas à une implémentation.

Frontière Système

La frontière système est un rectangle qui délimite ce qui est dans le système et ce qui est en dehors.

Tous les cas d'utilisation sont à l'intérieur
Tous les acteurs sont à l'extérieur
Le nom du système figure en haut du rectangle
Plusieurs sous-systèmes peuvent être représentés par des frontières imbriquées
💡

La frontière aide à identifier ce qui est en scope (dans le projet) et ce qui est hors scope. C'est un outil de cadrage essentiel.

Application Bancaire Consulter solde Virement Client «sys» CBS Banque externe externe

Exemple Complet — Bibliothèque en ligne

Diagramme complet avec acteurs hiérarchisés, include, extend et frontière système.

Système de Bibliothèque en Ligne Rechercher un livre Emprunter un livre Retourner un livre S'authentifier Payer une amende Gérer catalogue Générer rapport Notifier retard Membre Bibliothécaire «sys» Email Serveur Email «include» «extend» {si retard} «extend»

Résumé

🎭 Acteurs

Principalinitie, à gauche
Secondairesollicité, à droite
«système»système externe
Héritagespécialisation

📦 Cas d'utilisation

Ellipseun cas
Verbe inf.nommage
Rectanglefrontière
Ligneassociation

🔗 Relations

«include»obligatoire, vers inclus
«extend»optionnel, vers base
Généralisa.triangle creux

✅ Bonnes pratiques

Verbenommer les cas
Rôlenommer les acteurs
Objectif1 cas = 1 but
Granulariténi trop fin ni trop large