Les cas d’utilisation (use cases) UML Les cas d’utilisation (use cases)
Identification des acteurs et des cas d’utilisation entité externe qui interagit avec le système Identification des cas d’utilisation modélisation d’un service rendu par le système Construire le diagramme de cas d’utilisation
Les acteurs Entité externe qui interagit avec le système attend des services de la part du système l’interaction : envoi/réception de messages peut être une personne ou un autre système Sont décrits par leur rôle et leur relation avec les cas d’utilisation « acteur » autre système
Les cas d’utilisation Un CU modélise un service rendu par le système exprime les interactions acteurs/système apporte une valeur ajoutée « notable » aux acteurs concernés la façon dont le système réalise le service est masquée Le déroulement du CU est contrôlé par les acteurs l’événement déclencheur vient d’un acteur acteur principal : bénéficiaire du CU
Diagramme de cas d ’utilisation Formule 1 Conduire Ravitailler Pilote Envoyer infos « acteur » système de télémesure Réparer Mécanicien
Identification des CU Pour chaque acteur identifié Pour chaque CU rechercher les façons dont il utilise le système rechercher dans le cahier des charges les services attendus du système Pour chaque CU vérifier qu’il fournit un service notable aux acteurs vérifier qu’il est déclenché par un événement externe Uniformiser le niveau d’abstraction des CU
Description d’un cas d’utilisation Description textuelle (non normalisée) sommaire d ’identification (titre, résumé, acteurs, responsable…) description des enchaînements (enchaînements nominaux, alternatifs, exceptions...) Un CU contient un ou plusieurs scénarios. Les scénarios seront décrits par des diagrammes de séquence, de collaboration etc.
Relations entre cas d’utilisation Vendre Calculer TVA « inclut » Vendre en gros Points d ’extension Faire rabais quand quantité déterminée Points d ’inclusion TVA suivant prix global «étend » Montant > 500 Francs Faire rabais
Exemple : le guichet automatique de banque Le guichet automatique offre les services suivants: distribution d’argent pour tout porteur de carte de crédit consultation de compte, dépôt en numéraire et dépôt de chèques pour les porteurs d’une carte de cette banque Le guichet a besoin d’être rechargé régulièrement. Construire le diagramme de cas d’utilisation pour le guichet automatique de banque
Diagramme de CU « acteur » SA Visa « acteur » SI Banque Retirer de l’argent « acteur » SA Visa Consulter le solde Porteur C.B. Visa Déposer du numéraire « acteur » SI Banque Déposer des chèques Client de la banque
Relations entre cas d ’utilisation Objectif : organiser les C.U., factoriser les parties communes Les types de relation standardisés : inclusion extension généralisation/spécialisation Classification des acteurs
Inclusion Le cas de base incorpore explicitement un autre, à un endroit spécifié. Le CU inclus n’est jamais exécuté seul, mais seulement comme partie d’un cas de plus vaste Consulter le solde Retirer de l’argent « inclut » « inclut » Authentifier client
Extension Le cas de base incorpore implicitement un autre Les deux cas peuvent fonctionner seuls Le cas source ajoute son comportement au cas destination L’extension peut être soumise à une condition d’extension point d’extension : décrit, dans le cas destination, l’emplacement ou le comportement du cas source est inséré.
(vérification montant) Extension - suite Dans le cas « Retirer argent », le client peut vouloir vérifier son compte Attention au sens des flèches dans les relations inclut/étend « étend » (vérification montant) Retirer argent Consulter le solde Point d ’extension: vérif montant, etc.
Généralisation/spécialisation Permet de hiérarchiser les CU les CU descendants héritent le fonctionnement des parents. le descendant peut ajouter ou modifier des interactions par rapport à son père. Déposer de l ’argent Déposer des chèques Déposer du numéraire
Diagramme de CU - version 2
Diagrammes dynamiques pour les cas d’utilisation L’objectif des CU est de faciliter le dialogue avec les utilisateurs la description textuelle peut devenir complexe, ambiguë… description graphique : vue plus synthétique Quelques conditions : description du système en tant que boite noire favoriser la lisibilité
Diagrammes dynamiques - suite Le cas d’utilisation se décompose en scénarios scénario nominal, enchaînements alternatifs chaque scénario et chaque CU description textuelle Descriptions graphiques des CU diagrammes d’activité (organigramme, compréhensible) diagrammes d’états (automates d’états; utilisé dans certains cas) Descriptions graphiques des scénarios diagramme de séquence (axe temporel, très simple) diagramme de collaboration (dimension « spatiale »)
Diagrammes de séquence Diagrammes de séquence « système » illustre la succession temporelle des communications, par messages acteurs/système acteur principal (à gauche), système, acteurs secondaires (à droite) Très facile a comprendre pour les utilisateurs On peut faire aussi des diagrammes de séquence entre objets
Différents flots Objet A Objet B Objet C message 1 message 2 Flèche pleine : messages synchrones, avec attente Demi-flèche : messages asynchrones (environnement concurrent)
Différents flots Objet A Objet B Objet Objet A Objet B Objet Récursion() Objet A Objet B Objet Message réflexif
Contraintes temporelles x {y-x<3s} y
Structures de contrôle Objet A Objet B Objet A Objet B Message *[X] Message while X loop end loop Objet A Objet B Objet C Objet A Objet B [X] Message if else end if [Y] Message
Diagramme d’activités Représente les étapes d’une procédure Graphe : les sommets sont les activités, les arcs sont les transitions Des activités peuvent se dérouler en parallèle. [i<10]/i++ /i=0 [sinon] Afficher (i)
Diagramme d’activité - travées Enseignant Etudiant Jury Enseigner Ecouter Apprendre Composer Contrôler Evaluer
Diagramme d’états Représente les transformations des états d’un système ou d’un objet la classe Personne a un attribut Emploi qui vaut En Activité, Au chômage ou A la retraite. Quand(Age>60) En activité A la retraite Perte emploi Embauche Au chômage Quand(Age>60)
Diagrammes de collaboration Diagrammes d’interaction entre objets Ensemble de rôles dans un contexte particulier Liens entre les objets (complète le diagramme d’objets) Représentation d’envois de messages Dimension spatiale plus que temporelle permet de fixer une partie du diagramme de classes, correspondant à la collaboration étudiée
Exemple /Locataire:Personne /Maison:Logement /Propriétaire:Personne * 1 1 /Maison:Logement * /Propriétaire:Personne 1 1 1 1 :Coût :Lieu 1:revenu location (pour les maisons) Loueur/Propriétaire: Personne 1.1*[i=1..n]:loyer() :Conseiller /Maison: Logement :Coût 1.1.i:valeur()
Notions complémentaires appel procédure asynchrone 1.2.1 1.2.a 1.2,2.4/5: op 1.2.2 1.2.b consécutifs parallèles [condition] *[itération] retour:=opération
Paquetages Partitionnement des éléments en ensembles 4 Stéréotypes Couplage « fort » 4 Stéréotypes Façade : vue simplifié d’un ensemble de paquetages Framework Souche (partie publique) Racine (le + haut niveau)
Paquetages : notation Nom paquet
Notions sur les paquetages Espace de nommage :: unicité des noms Dépendances « importe » import complet permet de redéfinir les visibilités (transitivité) « accède » possibilité de référencement Précaution éviter les graphes cycliques Généralisation
Diagrammes de composants Stéréotypes : « document » « exécutable » « fichier » « bibliothèque » « table » Nom
Diagrammes de déploiement Nœud Nœud Nœud « support » Nœud 1 Nœud 2 « RS232 »