La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence - 2003/2004 Cours d'UML.

Présentations similaires


Présentation au sujet: "UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence - 2003/2004 Cours d'UML."— Transcription de la présentation:

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


Télécharger ppt "UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence - 2003/2004 Cours d'UML."

Présentations similaires


Annonces Google