Page 2 sur 8. Délimiter le système, reconnaître les acteurs et décrire des services observables.
1. Du besoin à un objectif observable
Un cas d’utilisation décrit un service que le système rend à un acteur pour atteindre un objectif. « Accepter un devis » produit un résultat métier ; « cliquer sur le bouton vert » décrit une interaction d’interface. Le même service pourrait être proposé demain dans une application mobile sans changer d’objectif.
On nomme généralement un cas avec un verbe à l’infinitif et un complément : soumettre une demande, consulter un dossier, préparer un devis, accepter un devis. La liste doit rester centrée sur les résultats attendus. Les opérations internes, comme écrire une ligne dans une base, seront étudiées dans les interactions.
Une exigence fonctionnelle indique un service attendu. Une exigence de qualité précise par exemple une disponibilité, un délai ou une restriction d’accès. Dire « le client consulte uniquement ses demandes » apporte une contrainte indispensable ; dessiner une ellipse « sécurité » ne suffit pas à la spécifier.
2. Acteurs et frontière du portail
Un acteur est un rôle extérieur au système qui échange avec lui. Il peut s’agir d’une personne, d’un autre logiciel ou d’un équipement. Le client est un acteur ; le service externe de notification peut également en être un. La base de données interne n’est pas un acteur dans notre périmètre.
Le rectangle délimite le portail NKILItech Services. Les ellipses sont à l’intérieur, les acteurs à l’extérieur. Une association en trait plein signale une participation ; elle n’exprime ni ordre chronologique ni transfert de données. Le PDG est extérieur au logiciel même s’il appartient à l’entreprise.
Une même personne peut jouer plusieurs rôles : un collaborateur peut être chargé d’affaires sur un dossier et responsable technique sur un autre. Inversement, plusieurs personnes peuvent jouer le rôle de client. Modéliser le rôle évite de dessiner une nouvelle silhouette pour chaque nom propre.
3. Inclusion, extension et généralisation
« include » représente l’insertion du comportement d’un autre cas. La flèche en pointillés part du cas qui inclut et pointe vers le cas inclus. Préparer un devis inclut calculer le total : le chiffrage nécessite ce calcul. Une inclusion n’est pas un simple lien « se déroule après ».
« extend » décrit un ajout conditionnel à un cas de base qui reste défini indépendamment de cet ajout. La flèche part du cas d’extension et pointe vers le cas étendu. Dans notre exemple, joindre une pièce peut étendre soumettre une demande au point d’extension « pièces complémentaires », si le client choisit d’ajouter un document.
La généralisation spécialise un acteur ou un cas. Le triangle creux pointe vers l’élément général. Un acteur spécialisé reprend les participations du rôle général. On peut définir Collaborateur puis Chargé d’affaires et Responsable technique, à condition que chacun puisse réellement assumer les interactions du rôle parent.
4. Fiche complète : accepter un devis
| Identifiant | UC-04 |
|---|---|
| Acteur principal | Client propriétaire de la demande |
| Objectif | Donner son accord à une proposition encore valable. |
| Déclencheur | Le client demande l’acceptation depuis son dossier. |
| Préconditions | Session valide ; devis envoyé ; accès au dossier autorisé. |
| Succès | Le devis devient accepté et la demande peut être planifiée. |
| Garantie minimale | Une tentative refusée ne modifie pas le devis ; les données restent cohérentes. |
- Le système présente le devis et sa version courante.
- Le client confirme son accord.
- Le système vérifie l’identité du client, la validité du devis et l’absence d’une autre version acceptée.
- Il enregistre l’acceptation avec sa date dans une transaction.
- Il confirme le résultat et programme la notification du chargé d’affaires.
A1 - Devis expiré : à l’étape 3, le système refuse l’acceptation et invite à demander une nouvelle proposition. A2 - Confirmation déjà traitée : le résultat accepté est renvoyé sans créer une seconde acceptation. A3 - Notification indisponible : l’accord demeure enregistré ; une nouvelle tentative d’envoi est prévue.
La fiche précise un contrat fonctionnel. Elle ne choisit ni un framework ni un schéma de base. Les détails d’implémentation apparaîtront lorsque nous répartirons les responsabilités entre objets.
5. Élaborer et vérifier le diagramme
- Écrire en une phrase la responsabilité du portail.
- Repérer les rôles qui échangent directement avec lui.
- Interroger chaque rôle sur les résultats qu’il attend.
- Regrouper les variantes d’un même objectif, puis rédiger les scénarios.
- Introduire une relation UML seulement lorsqu’elle clarifie un comportement partagé ou conditionnel.
- Vérifier les règles métier avec des exemples de succès et d’échec.
Pour R4, un devis de 1 200 000 FCFA doit recevoir un accord du PDG avant envoi. Cela peut être décrit par un cas « Approuver un devis » et un scénario d’envoi qui vérifie cette condition. Une flèche entre deux ellipses ne remplace pas l’écriture de la règle de seuil.
Test d’acceptation : étant donné un devis envoyé encore valable appartenant au client connecté, lorsqu’il confirme l’accord, alors le devis devient accepté une seule fois et le dossier devient planifiable. Le même test avec un autre client doit produire un refus sans modification.
Scénarios illustrés : comparer les situations
Un scénario sans pièce jointe reste complet
Le client enregistre le besoin et reçoit une référence, même sans ajouter de document. L’extension n’intervient que lorsqu’il souhaite compléter sa demande. Une obligation de pièce justificative demanderait une autre règle, explicitement définie.
Exercices corrigés
Exercice 1 - Acteur ou élément interne ?
Classer Client, PDG, DepotDevis et service externe de SMS pour le périmètre du portail.
Voir le corrigé détaillé
Client et PDG sont des rôles extérieurs au logiciel. DepotDevis est un élément de sa conception interne. Le service externe de SMS est un acteur secondaire s’il échange directement avec le portail dans le périmètre retenu.
Exercice 2 - Retrouver le sens des flèches
Préparer un devis utilise toujours Calculer le total. Joindre une pièce ajoute un comportement facultatif à Soumettre une demande. Écrire les deux relations.
Voir le corrigé détaillé
Préparer un devis pointe vers Calculer le total avec « include ». Joindre une pièce pointe vers Soumettre une demande avec « extend » ; préciser la condition et le point d’extension. Aucune des deux relations ne sert à exprimer une chronologie générale.
Exercice 3 - Compléter un scénario
Un client confirme un devis qui vient d’expirer. Quelle étape et quelle garantie préciser ?
Voir le corrigé détaillé
La vérification de validité détecte l’expiration avant tout accord enregistré. L’opération renvoie un refus expliqué ; le devis ne devient pas accepté. La date de référence et les règles de concurrence doivent être communes au scénario et à la conception.
Cours et schémas originaux, étude pédagogique NKILItech. Référence de lecture : Benoît Charroux, Aomar Osmani et Yann Thierry-Mieg, UML 2 : pratique de la modélisation, 2e édition, Pearson, 2009. Les explications, exemples et figures ont été rédigés pour ce parcours. Référence de notation : spécification UML de l’OMG.