Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parStéphane Fernandes Modifié depuis plus de 9 années
1
UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence -
2003/2004 Cours d'UML
2
Objectifs Description de scénarios particuliers
Représente le fonctionnement du système du point de vue du concepteur Mise en valeur des passages de messages (flots de données ou de contrôles, évènements) entre acteur et objet, ou entre objets, de manière chronologique On représente le fonctionnement au niveau des instances 2003/2004 Cours d'UML
3
Diagramme de collaboration
Comporte : des objets dans une situation donnée les liens qui relient les objets qui se connaissent les messages échangés entre les objets, représentés le long de ces liens L'ordre d'envoi des messages est matérialisé par un numéro de séquence 2003/2004 Cours d'UML
4
Notation Un objet A envoie un message X à un objet B, puis l’objet B envoie un message Y à un objet C, et enfin C s’envoie un message Z. 2003/2004 Cours d'UML
5
Diagramme de classes de la CBM
3ème version saLibrairie 1 Commande numéro date commande (libr) ajouterLivre (livre) Librairie nom adresse solvabilité isSolvable () sesCommandes * sesLibrairies * sesLdC * LigneDeCommande quantité putQuantité (qt) Cbm * sesEditeurs sesLivres * Livre ISBN Titre getTitre () Editeur nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML
6
Exemple : Computer Books by Mail
Enregistre une commande de livres Co:Commande L:Librairie 2. commande (libr) 6. ligneDeCommande () 7. putQuantité(qt) 5. ajouterLivre (livre) 1. isSolvable () Li:LigneDeCommande C:CBM 3. getLivre (titre) :livre 4. getTitre () L:Livre E:Editeur 2003/2004 Cours d'UML
7
Diagramme de séquence Comme les D. de collaboration, comporte :
des objets dans une situation donnée (instances) les messages échangés entre les objets A la différence des D. de collaboration : l'accent est mis sur la communication, au détriment de la structure spatiale chaque objet est représenté par une barre verticale le temps s'écoule de haut en bas, de sorte que la numérotation des messages est optionnelle 2003/2004 Cours d'UML
8
Comparaison D.Collaboration/D. Séquence
2003/2004 Cours d'UML
9
D. Séquence en détail Ligne de vie d’un objet
unA:ClasseA Ligne de vie d’un objet unA:ClasseA Exécution d’une occurrence unA:ClasseA Destruction de l’instance 2003/2004 Cours d'UML
10
D. Séquence en détail Création d’un instance
unA:ClasseA Création d’un instance Frame: compartimenter le diagramme de séquence 2003/2004 Cours d'UML
11
Notation : principes généraux
acteur objet du diagramme de classes nom de l'instance nom de la classe unA:ClasseA unB:ClasseB toto:Acteur1 meth1(…) message meth2 (…) boolean SonTruc retour type nom d'une instance activation ligne de vie (durée de l’interaction) 2003/2004 Cours d'UML
12
Notation : messages synchrone/asynchrone
message asynchrone : émetteur non bloqué, continue ses traitements message synchrone : émetteur bloqué, attend retour appl erreur alarme inconnu alarme 2003/2004 Cours d'UML
13
Notation : création, destruction
unA : ClasseA toto:Acteur meth1 (…) ClasseB (…) : ClasseB unB Création Arrive sur la classe Pas de nom d'instance au début renvoie tj l'instance créée Suppression 2003/2004 Cours d'UML
14
Notation : message réflexif
Un objet peut s’envoyer un message à lui-même unA : ClasseA toto:Acteur meth1 (…) meth2 (…) Exemple: appel d’une méthode privée! 2003/2004 Cours d'UML
15
Notation : alternative 1
: C : A : B alternative [cond] meth1 () [non cond] meth2 () meth3 () condition On peut aussi faire deux diagrammes de séquences correspondant aux deux scénarios meilleure lisibilité 2003/2004 Cours d'UML
16
Notation : alternative 2
: B : C [cond] meth1 () Cas cond : [non cond] meth2 () meth3 () Cas non cond : Deux diagrammes de séquences correspondant aux deux scénarios 2003/2004 Cours d'UML
17
Pour telles et telles instances
Notation : répétition envoie du même message n fois au même objet : A : B : C *[cond] meth1 () Pour telles et telles instances meth2 () envoie du même message 1 fois à plusieurs objets 2003/2004 Cours d'UML
18
Exemple de la CBM : Le Diag. de Classes
saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) LIBRAIRIE nom adresse solvabilité isSolvable () sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) CBM 1 * sesEditeurs sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML
19
Un cas d'utilisation "Communiquer les détails de toutes les commandes d'une librairie donnée" Méthode getDétailCommandes() de la classe LIBRAIRIE 2003/2004 Cours d'UML
20
Le DCO correspondant COMMANDE LIBRAIRIE LIGNE DE COMMANDE CBM LIVRE
1. getDate() 2. getInfosLdC COMMANDE LIBRAIRIE 3. getQuantité() LIGNE DE COMMANDE CBM 4. getTitre() LIVRE EDITEUR 2003/2004 Cours d'UML
21
Un DSE : getDetailsCommandes V1
version 1 : délégation (propagation des messages) LIBRAIRIE SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDE SonLivre:LIVRE Dupond:Responsable getDétailCommandes() getSesCommandes() sesCommandes getDétailCommande() getDate() date Pour chaque commande getSesLignes() sesLdC getDétailLigne() getLivre() sonLivre getTitre() Pour chaque ligne de com. titre getQuantité() {titre,quantité} date +{titre,quantité} quantité {date +{titre,quantité}} 2003/2004 Cours d'UML
22
Le DCL : nouvelle version (délégation)
sesCommandes * saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) getDetailCommande() LIBRAIRIE nom adresse solvabilité isSolvable () getDetailCommandes() sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) getDétailLigne() CBM * sesEditeurs 1 sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML
23
Un DSE : getDetailsCommandes V2
version 2 : supervision (un objet envoie tous les messages) LIBRAIRIE SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDE SonLivre:LIVRE Dupond:Responsable getDétailCommandes() getSesCommandes() getDate() date getSesLignes() Pour chaque commande sesLdC getQuantité() quantité Pour chaque ldc de chaque com. getLivre() sonLivre getTitre() titre {date +{titre,quantité}} 2003/2004 Cours d'UML
24
Le DCL : nouvelle version (supervision)
sesCommandes * saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) LIBRAIRIE nom adresse solvabilité isSolvable () getDetailCommandes() sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) CBM * sesEditeurs 1 sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML
25
UML : Vue dynamique - Diagramme d’états-transitions -
2003/2004 Cours d'UML
26
Diagramme états/transitions
Rôle : Vue synthétique du fonctionnement dynamique d'un objet Décrit le comportement d'un objet tout au long de son cycle de vie Décrit tous les états possibles d'un unique objet à travers l'ensemble des cas d'utilisation dans lequel il est impliqué On ne s'intéresse qu'aux objets qui ont un comportement complexe Exemple - DET d'un citoyen : Mineur Majeur anniversaire[age=18] naissance mort 2003/2004 Cours d'UML
27
Composition Comporte 2 types d'informations : des états :
initial final intermédiaires - ex : mineur et majeur des transitions induisant un changement d'état ex : naissance, anniversaire… 2003/2004 Cours d'UML
28
État (1) Un état correspond à la manière d’être d’un objet pendant un intervalle de temps plus ou moins long. Un état se compose de plusieurs parties : le nom l'activité attachée à cet état les actions réalisées pendant cet état Exemple : En alerte entry/allumer lampe alerte do/sonnerie toutes les 5 '' 4ème sonnerie/appel poste de garde exit/éteindre lampe alerte 2003/2004 Cours d'UML
29
État (2) DET : Automate déterministe 3 types d'états
état initial (1 et 1 seul) état intermédiaire (plusieurs possibles) état final (aucun ou plusieurs possibles) Nom état 2003/2004 Cours d'UML
30
Action opération instantanée (durée négligeable) toujours intégralement réalisée méthode de la classe exécutée : lors d'une transition eventi / actioni à l'entrée dans un état entry / actioni à la sortie d'un état exit / actioni interne, sans changer d'état eventi / actioni Action à l'entrée En alerte entry/allumer lampe alerte do/sonnerie toutes les 5 '' 4ème sonnerie/appel poste de garde exit/éteindre lampe alerte Action interne Action à la sortie 2003/2004 Cours d'UML
31
Activité opération qui nécessite un certain temps d’exécution
peut être interrompue à chaque instant associée à un état (étati "en train de faire ceci") exécutée : entre l'entrée et la sortie de l'état do : activitéi événement EN-VEILLE do : détecteur sous tension EN-ALERTE do : sonnerie détectionPb / envoyer message poste de surveillance activité action activité 2003/2004 Cours d'UML
32
Transition (1) Transition : passage unidirectionnel et instantané d’un état (source) dans un autre état (cible) Déclenchée : par un événement automatiquement à la fin d'une activité (transition automatique) Syntaxe : <NomÉvénement> [<Garde (ou contrainte)>]/<NomAction> Garde : condition booléenne qui valide ou non le déclenchement d'une transition lors de l'occurrence d'un évènement Événement : provoque le changement d'état (il existe aussi des événements internes à un état, dont l'action associée ne provoque pas de changement d'état) Action : opération réalisée lors du changement d'état 2003/2004 Cours d'UML
33
événement 1 [condition]
Transition (2) Transition automatique lorsque qu'il n'y a pas de nom d'événement sur une transition, il est sous-entendu que la transition aura lieu dès la fin de l'activité. Auto-transition : transition d'un état vers lui-même événement 2/action état 1 état 2 événement 1 [condition] état 3 2003/2004 Cours d'UML
34
Exemple : Le réveil matin
Heure d'alarme : on suppose que l'heure est fixée quand on met l'alarme sur on Trois boutons : alarm on/off, arrêt sonnerie, réglage alarme (événement interne) Événements : Appuis sur un bouton alarm on [heure = H alarme] désarmé armé do/sonner alarm off arrêt sonnerie alarm off 2003/2004 Cours d'UML
35
Forme générale d’un état
Nom d'état entry[cond entry]/action-entry do/activité év-1/action-1 … év-n/action-n exit[cond exit]/action-exit év-in[cond in]/action-in év-out[cond out]/action-out év-i[cond y]/action-i 2003/2004 Cours d'UML
36
Ordonnancement des actions
En entrée Action sur la transition d'entrée Action d'entrée Activité associée à l'état En interne Interruption de l'activité en cours (contexte sauvé) Action interne Reprise de l'activité En sortie Interruption de l'activité en cours (contexte perdu) Action de sortie Action sur la transition de sortie Auto-transition Action sur l'auto-transition 2003/2004 Cours d'UML
37
Auto-transition / Action interne
Action interne, le contexte de l'activité est préservé (on ne sort pas de l'état) Auto-transition : le contexte est réinitialisé (on sort et on re-rentre dans l'état) event1 / action1 Nom de l'état entry / actionentry event / action1 … exit / actionexit Nom de l'état entry / actionentry … exit / actionexit 2003/2004 Cours d'UML
38
Diagrammes hiérarchisés
Permettent de structurer les DET complexes Factorisation des actions et activités Exemple : Transmission point mort marche arrière Marche avant première seconde troisième 2003/2004 Cours d'UML
39
Parallélisme et synchronisation
État composite do/a1 do/a2 do/a3 do/a4 do/a5 do/a6 a1//a3//a5 - a2 après a1 - a4 après a3 - a6 après a5 - état final après a2, a4 et a6 2003/2004 Cours d'UML
40
UML : Vue dynamique - Diagramme d’activité -
2003/2004 Cours d'UML
41
Remplir le réservoir d'eau
Diagramme d'activité Cas particulier de DET, dans lequel à chaque état correspond une activité constituant un élément d'une tâche globale à réaliser Mise en évidence des contraintes de séquentialité et de parallélisme. Exemple - Faire un café : Chercher le café parallélisme Mettre un filtre Remplir le réservoir d'eau Mettre du café Prendre une tasse Allumer la cafetière Synchronisation Le café passe servir 2003/2004 Cours d'UML
42
D. Activité :Condition <<Comment>> Cafetière éteinte? condition [oui] [non] commentaire Allumer la cafetière Le café passe Servir Dans cette exemple, il n’y a pas de parallélisme!! 2003/2004 Cours d'UML
43
Diagramme d’activité Peut être utiliser pour ordonner des diagrammes de séquence OpenDoor CloseDoor 2003/2004 Cours d'UML
44
Les concepts d’UML - Les Composants -
2003/2004 Cours d'UML
45
Qu’est ce qu’un composant : exemple simple
<<interface>> ProvidedInterface <<interface>> RequiredInterface Job 2003/2004 Cours d'UML
46
Boite blanche (modèle associé)
Composant Boite blanche (modèle associé) 2003/2004 Cours d'UML
47
Boite noire (pas de modèle)
Composant Boite noire (pas de modèle) 2003/2004 Cours d'UML
48
Assemblage 2003/2004 Cours d'UML
49
Diagramme de déploiement
Indication de l’artefact 2003/2004 Cours d'UML
50
Cas d’étude: Bourse en ligne
Administration d’une bourse en ligne Créer un utilisateur avec un por²tefeuille Supprimer un utilisateur Créer /supprimer des actions Ajouter et retirer des actions à un portefeuille. Un portefeuille contient un ensemble d’actions Action= nom+ prix. Connaître la liste de toutes les actions Visualiser les actions dans un portefeuille 2003/2004 Cours d'UML
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.