UML – UnifiedModelingLanguage3/4 : diagrammes dynamiques et d’interaction	<br />Yannick Prié<br />Département Informatique...
Objectifs de ce cours<br />Apprendre la syntaxe et la sémantique des diagrammes dynamiques et d’interaction les plus impor...
Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activi...
Collaborations et interactions<br /><ul><li>Collaboration
ensemble de rôles joués par des classes
Interaction
communication entre instances des éléments d’une collaboration
ensemble partiellement ordonné de messages
plusieurs interactions possibles pour une même collaboration
Éléments d’une interaction
participants : objets le plus souvent
liens (supports de messages)
messages (déclenchant des opérations)
rôles joués par les extrémités de liens</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagr...
Diagrammes de séquences<br /><ul><li>Interactions entre éléments dans une séquence temporelle
aspect chronologique ne rendant pas compte explicitement du contexte
permet de bien montrer qui fait quoi dans une interaction
Description de scénarios typiques et des exceptions</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 |...
Diagrammes de communication(UML1 : diagrammes de collaboration)<br />2010-2011 / Yannick Prié - Université Claude Bernard ...
structure spatiale permet la collaboration d’objets
dimension temporelle : ordre des messages
numérotation pointée</li></ul>1.3.1: moteur(marche)<br />: Ascenseur<br />1: allumer()<br />1.3: déplacer(haut)<br />2: le...
Petit exercice à faire en classe<br />Dessiner un diagramme de communication impliquant des objets issus de ces classes<br...
Utilisation des interactions<br /><ul><li>Etudier/spécifier le comportement
du système dans sa globalité au sein d’un cas d’utilisation
se concentrer sur les événements du système considéré comme boîte noire
diagramme de séquence système (exemple plus loin)
de plusieurs objets au sein d’un cas d’utilisation
réalisations de CU comme des interactions dans une société d’objets
diagramme de séquence de fonctionnement
conseil : concevoir diagrammes de classes et d’interaction en même temps
Illustrer/étudier un fonctionnement
diagramme qui traverse les couches : de l’IHM aux données
rétro-ingénierie</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'i...
Messages<br /><ul><li>Matérialisation d’une communication avec transmission d’information entre
émetteur (source)
récepteur (destination)
Un message déclenche
une opération,
l’émission d’un signal
la création/destruction d’un objet
Deux types principaux
appel de procédure ou flot de contrôle emboîté (appel standard de fonction)
déplacer()
flot de contrôle asynchrone (threads)
démarrer()
autres : à plat, dérobant (réception si attente), minuté (message actif pendant t)</li></ul>2010-2011 / Yannick Prié - Un...
Messages dans les diagrammes de communication<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Dia...
UML >= 1.4<br />UML <1.4<br />Elément<br />Messages dans les diagrammes de séquences<br /><ul><li>Notation résultat = mess...
Echange de messages
flèches d'appel standard
blocage de l’émetteur en attendant la réponse
flèche d'appel asynchrone
pas d’attente du retour, poursuite de la tâche
Prochain SlideShare
Chargement dans…5
×

CM uml-diag-dynamiques-interaction

3 507 vues

Publié le

Publié dans : Formation
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 507
Sur SlideShare
0
Issues des intégrations
0
Intégrations
989
Actions
Partages
0
Téléchargements
149
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

CM uml-diag-dynamiques-interaction

  1. 1. UML – UnifiedModelingLanguage3/4 : diagrammes dynamiques et d’interaction <br />Yannick Prié<br />Département Informatique – Faculté des Sciences et Technologies<br />Université Claude Bernard Lyon 1<br />2011-2012<br />
  2. 2. Objectifs de ce cours<br />Apprendre la syntaxe et la sémantique des diagrammes dynamiques et d’interaction les plus importants<br />Améliorer au passage la compréhension de différents principes objets<br />Remarque <br />On ne traitera pas des cas d’utilisation ici, il y a un cours dédié<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  3. 3. Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activité<br />Diagrammes de machines d’états<br />Autres diagrammes UML<br />Autres diagrammes non UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  4. 4. Collaborations et interactions<br /><ul><li>Collaboration
  5. 5. ensemble de rôles joués par des classes
  6. 6. Interaction
  7. 7. communication entre instances des éléments d’une collaboration
  8. 8. ensemble partiellement ordonné de messages
  9. 9. plusieurs interactions possibles pour une même collaboration
  10. 10. Éléments d’une interaction
  11. 11. participants : objets le plus souvent
  12. 12. liens (supports de messages)
  13. 13. messages (déclenchant des opérations)
  14. 14. rôles joués par les extrémités de liens</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Porte<br />1<br />Cabine<br />+ouvrir()<br />+fermer()<br />+getEtat() : Etat<br />ouverture<br />1: ouvrir()<br />:Cabine<br />:Porte<br />1: fermer()<br />2: getEtat()<br />:Cabine<br />:Porte<br />
  15. 15. Diagrammes de séquences<br /><ul><li>Interactions entre éléments dans une séquence temporelle
  16. 16. aspect chronologique ne rendant pas compte explicitement du contexte
  17. 17. permet de bien montrer qui fait quoi dans une interaction
  18. 18. Description de scénarios typiques et des exceptions</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />barre d’activation<br />Elément 2<br />Elément 1<br />création<br />m1<br />m2<br />Elément 3<br />retour<br />create<br />message trouvé<br />m3<br />m4<br />destruction<br />lignede vie<br />message<br />
  19. 19. Diagrammes de communication(UML1 : diagrammes de collaboration)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br /><ul><li>Diagramme d’objets rendant compte de la dynamique
  20. 20. structure spatiale permet la collaboration d’objets
  21. 21. dimension temporelle : ordre des messages
  22. 22. numérotation pointée</li></ul>1.3.1: moteur(marche)<br />: Ascenseur<br />1: allumer()<br />1.3: déplacer(haut)<br />2: lecture(CD)<br />utilisateur<br />1: monter()<br />: Chaîne HiFi<br />: Cabine<br />1.2: fermer()<br />2.1: lecture()<br />2.1.1: démarrer()<br />: Porte<br />1.1: allumer()<br />2.1.2: afficherTitre()<br />: Voyant<br />: Lecteur CD<br />
  23. 23. Petit exercice à faire en classe<br />Dessiner un diagramme de communication impliquant des objets issus de ces classes<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  24. 24. Utilisation des interactions<br /><ul><li>Etudier/spécifier le comportement
  25. 25. du système dans sa globalité au sein d’un cas d’utilisation
  26. 26. se concentrer sur les événements du système considéré comme boîte noire
  27. 27. diagramme de séquence système (exemple plus loin)
  28. 28. de plusieurs objets au sein d’un cas d’utilisation
  29. 29. réalisations de CU comme des interactions dans une société d’objets
  30. 30. diagramme de séquence de fonctionnement
  31. 31. conseil : concevoir diagrammes de classes et d’interaction en même temps
  32. 32. Illustrer/étudier un fonctionnement
  33. 33. diagramme qui traverse les couches : de l’IHM aux données
  34. 34. rétro-ingénierie</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  35. 35. Messages<br /><ul><li>Matérialisation d’une communication avec transmission d’information entre
  36. 36. émetteur (source)
  37. 37. récepteur (destination)
  38. 38. Un message déclenche
  39. 39. une opération,
  40. 40. l’émission d’un signal
  41. 41. la création/destruction d’un objet
  42. 42. Deux types principaux
  43. 43. appel de procédure ou flot de contrôle emboîté (appel standard de fonction)
  44. 44. déplacer()
  45. 45. flot de contrôle asynchrone (threads)
  46. 46. démarrer()
  47. 47. autres : à plat, dérobant (réception si attente), minuté (message actif pendant t)</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  48. 48. Messages dans les diagrammes de communication<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />résultat<br />(UML1)<br />argument<br />Résultats et arguments<br />A<br />B<br />message<br />A<br />B<br />résultat : =message(arguments)<br />Cabine<br />Ascenseur<br />Étage_courant : =étage?()<br />Synchronisation<br />Objet 1<br />Objet 2<br />m1, m2 / [condition] : m3<br />Itérateurs<br />Garde<br />Instituteur<br />: Élèves<br />A<br />B<br />*[i:= 1..n] : Debout()<br />[X > Y] : message<br />
  49. 49. UML >= 1.4<br />UML <1.4<br />Elément<br />Messages dans les diagrammes de séquences<br /><ul><li>Notation résultat = message(arguments)
  50. 50. Echange de messages
  51. 51. flèches d'appel standard
  52. 52. blocage de l’émetteur en attendant la réponse
  53. 53. flèche d'appel asynchrone
  54. 54. pas d’attente du retour, poursuite de la tâche
  55. 55. Retour
  56. 56. Message de création
  57. 57. Message de destruction
  58. 58. Lancement de l'interaction venant de l'extérieur
  59. 59. 1er message = « message trouvé »</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  60. 60. Gestion de collections<br />2: ajouter(unFIchier)<br />: Fichier<br />Dossier<br />1: création()<br />unfichier : Fichier<br />{nouveau}<br /><ul><li>Créer et ajouter (UML1 : multi-objet)
  61. 61. Récupérer et utiliser (UML2 : structure composite)</li></ul>cluster:Cluster<br />1: unServeur:=trouver(specs)<br />:serveur[*]<br />serveurs<br />client<br />1<br />*<br />2: traiter(requete)<br />unServeur<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  62. 62. Diagrammes de séquences dans UML2<br />En plus de objets participants (UML1), on ajoute<br />interfaces <br />pour spécifier quelle interface participe à l’interaction (la classe est peu importante)<br />classes <br />pour utiliser une méthode de classe<br />Représentation polymorphisme / classe abstraite<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  63. 63. Equivalence entre diagrammes de séquence et de communication<br /> Exercice : dessiner le diagramme de communication correspondant<br />: IhmClient<br />c1453: Compte<br />Compte+code<br />: ConsultationController<br />vérifier code<br />consulter compte<br />obtenir solde<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Affichersolde<br />
  64. 64. Autreexemple<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  65. 65. Cadre d’interaction<br /><ul><li>Cadre nommé par un opérateur qui entoure un fragment critique du DS
  66. 66. alt
  67. 67. fragment alternatif, conditions dans les gardes
  68. 68. loop
  69. 69. fragment à répéter tant que la condition de garde est vrai
  70. 70. notion de boîte d’action avec itérateur
  71. 71. opt
  72. 72. fragment optionnel exécuté si la garde est vraie
  73. 73. par
  74. 74. fragments qui s’exécutent en parallèle
  75. 75. region
  76. 76. region critique dans laquelle un seul thread doit s’exécuter
  77. 77. ref
  78. 78. passage à un autre diagramme de séquence
  79. 79. Attention
  80. 80. ne pas représenter des algorithmes : trop compliqué</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />op<br />i++<br />
  81. 81. alt<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />http://laurent-audibert.developpez.com/Cours-UML/<br />
  82. 82. loop<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  83. 83. par<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  84. 84. Déduire structure et responsabilité des diagrammes d’interaction<br /><ul><li>Liens
  85. 85. associations
  86. 86. Messages
  87. 87. opérations
  88. 88. dépendances</li></ul>1: mA1(p)<br />: A<br />1.1: mB1(p)<br />1.2: mC1(p)<br />: B<br />: C<br />?<br />1: mA2()<br />: A<br />1.1: mD1()<br />1.2: mE1(p : F)<br />Exercice : dessiner le <br />diagramme de classes <br />correspondant<br />: D<br />: E<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  89. 89. Co-conception des classes et des interactions<br /><ul><li>Les objets utilisés dans les interactions pour réaliser les scénarios proviennent
  90. 90. des classes déjà décrites dans le diagramme de classes
  91. 91. des besoins nouveaux en objets pour l’interaction spécifique
  92. 92. A partir des diagrammes d’interaction, on complète le diagramme de classes
  93. 93. précisions (attribut, méthodes)
  94. 94. nouvelles classes
  95. 95. etc.
  96. 96. On essaye de réaliser tous les scénarios en convergeant vers un diagramme de classes stables</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Diagramme de classes<br />Diagramme de classes<br />Diagramme de classes<br />Diagrammes d’interactions<br />Diagrammes d’interactions<br />temps<br />
  97. 97. Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activité<br />Diagrammes de machines d’états<br />Autres diagrammes UML<br />Autres diagrammes non UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  98. 98. Diagrammes d’activité<br /><ul><li>Objectif
  99. 99. présenter les activités séquentielles d’un processus
  100. 100. activité = suite d’actions
  101. 101. Action
  102. 102. travail à réaliser
  103. 103. nœud du graphe
  104. 104. Transition
  105. 105. contrainte d’enchaînement
  106. 106. relation du graphe
  107. 107. Raffinements
  108. 108. débranchements / jointures
  109. 109. décisions / fusions
  110. 110. entrée / terminaison
  111. 111. ressources utilisées (objets)</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />i := i + 1<br />Ouvrir la porte<br />Dossier.Ouvrir(Fichier)<br />Envoyer facture<br />Action 1<br />arc/flot<br />Action 2<br />
  112. 112. Exemple<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />nœud initial<br />débranchement<br />garde<br />décision<br />jonction :synchronisation<br />fusion<br />terminaison<br />
  113. 113. Petit exercice à faire en classe<br />Modéliser les activités autour d’un enseignement de l’UFR informatique.<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  114. 114. Diagrammes d’activité pour modéliser …<br /><ul><li>Les processus métier de l’organisation
  115. 115. qui fait quoi, où
  116. 116. les enchaînements d'activité (workflow)
  117. 117. Les flots de données
  118. 118. DFD (Data Flow Diagram) en UML
  119. 119. La logique procédurale
  120. 120. algorithmes complexes, parallèles
  121. 121. organisation séquentielle globale des activités de plusieurs objets
  122. 122. vs. diag. machines d’états : un objet</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  123. 123. Diagrammes avancés<br /><ul><li>Actions liées à des signaux
  124. 124. délai
  125. 125. envoi / réception
  126. 126. Utilisation d’objets
  127. 127. en entrée ou sortie d’action
  128. 128. Partitions (UML1 : swimlanes, travées)
  129. 129. montrer les responsabilités au sein du mécanisme ou d’une organisation
  130. 130. Décomposition des actions
  131. 131. appeler une sous-activité (un autre diagramme d’activité) dans une action</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />attendre 2 heures<br />Envoyersignal1<br />Signal2reçu<br />
  132. 132. Exécution<br />Service client<br />Service financier<br />Livrer commande<br />Commande<br />Commande<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  133. 133. Connecteurs, régions d’expansion, terminaison de flots (UML2)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br /><ul><li>Connecteurs
  134. 134. cf. objets paramètres entrée/sortie actions
  135. 135. Régions d’expansion
  136. 136. actions qui se passent pour plusieurs éléments de même type (itératif ou concurrent)</li></ul>Choisir sujet<br />région d’expansionconcurrente<br />Liste de sujets<br />« concurrent »<br />Connecteurs<br />Ecrire article<br />Réviser article<br />Publierbulletin<br />terminaison de flot<br />Liste d’articles<br />
  137. 137. Modélisation de processus métier<br /><ul><li>Modéliser le fonctionnement d’une organisation
  138. 138. Trois stéréotypes d’objets
  139. 139. Case worker
  140. 140. interaction avec l’ext. de l’entreprise
  141. 141. Internalworker
  142. 142. travail à l’intérieur de l’entreprise
  143. 143. Entity
  144. 144. objet passif : stockage d’informations
  145. 145. Partitions / couloirs d’activité</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  146. 146. :Commercial<br />:Service juridique<br />:Ingénieur<br />:pdd<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  147. 147. Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activité<br />Diagrammes de machines d’états<br />Autres diagrammes UML<br />Autres diagrammes non UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  148. 148. Diagrammes de machines d’états<br />Abstraction des comportements possibles pour une classe<br />automate à états finis décrivant les chemins possibles dans le cycle de vie d’un objet <br />Etat d’un objet<br />situation stable d’un objet<br />d'une certaine durée<br />associée à un nom<br />Transition entre états<br />réponse de l’objet dans un certain état à l’occurrence d’un événement <br />passage d’un état à un autre sur événement + condition respectée, <br />action à exécuter<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Événement<br />État 1<br />État 2<br />Raccroché<br />Sonnerie<br />Décroché<br />Ouvert<br />Suspendu<br />Archivé<br />
  149. 149. Exemple de diagramme de machines d’états<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  150. 150. Petit exercice à faire en classe<br />Tracer un diagramme de machines d’états pour un objet « TP-Etudiant »<br />Remarque <br />méthode itérative et incrémentale (Larman) <br />commencer par le scénario nominal<br />ajouter les exceptions<br />factoriser dès que ça devient trop compliqué.<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  151. 151. Utilisation des états<br /><ul><li>Pour se concentrer sur le fonctionnement d’une classe
  152. 152. décrire / fixer le comportement concret de la vie d’une objet lié à un ou plusieurs scénarios
  153. 153. Pour les classes complexes
  154. 154. objets réactifs complexes (objets métier…)
  155. 155. protocole et séquences légales (sessions…)
  156. 156. en général pas plus de 10% des classes d’une application
  157. 157. plus en télécommunication / moins en informatique de gestion
  158. 158. Larman
  159. 159. navigation dans un site web, IHM
  160. 160. enchaînement de pages/fenêtres</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  161. 161. État initial<br />État 1<br />entry / activité en entrée<br />exit / activité en sortie <br />evt-ext / activité interne<br />do/ activité continue<br />État 2<br />Événement(paramètres) [garde]<br />/ activité<br />État final<br />Syntaxe générale<br />État <br />do / activité <br />activité interne continue qui peut être interrompue<br />evt-ext / activité interne<br />activité interne instantanée, auto-transition sur événement extérieur, instantanée, qui ne nécessite pas changement d’état<br />entry / activité en entrée<br />exit / activité en sortie <br />activités internes instantanées<br />Transition <br />tout est facultatif mais absence d’événement rare<br />événements <br />résultants de messages entre objets<br />internes : when(maximum atteint)<br />temporels : after(3 jours)<br />activité classique : envoyer un message à une cible<br />sendcible.message(arguments)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  162. 162. Saisie mot de passe<br />entry / ne plus afficher entrées clavierexit / réafficher les entrées clavieron aide / afficher l’aide<br />do / gérer saisies de l’utilisateur<br />Souris<br />Fenêtre<br />Click(position curseur)[sur bouton] <br />/ send fenêtre.fermer()<br />fermer<br />attente<br />fermée<br />ouverte<br />Click(position curseur)[sur icône] <br />/ send fenêtre.ouvrir()<br />ouvrir<br />Porte de garage<br />en cours <br />d’ouverture<br />fin ouverture<br />/ stop moteur<br />Appui bouton<br />/ moteur AV<br />Appui bouton<br />/ moteur AV<br />fermée<br />ouverte<br />fin fermeture<br />/ stop moteur<br />Appui bouton<br />/ moteur AR<br />en cours <br />de fermeture<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  163. 163. http://www.agilemodeling.com/images/style/stateChartDiagramSeminarRegistration.gif<br />Autre exemple<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  164. 164. <ul><li>Pour factoriser un comportement
  165. 165. transitions déclenchées par le même événement, conduisant au même état
  166. 166. Transition interne
  167. 167. couple événement / activité sans effet sur l’état courant
  168. 168. permet de ne pas « réinitialiser » l’état en revenant à l’état de départ
  169. 169. se note en haut du super état</li></ul>A<br />B<br />B<br />A<br />B1<br />E1<br />A<br />B<br />B2<br />E2<br />C<br />E2<br />B<br />A<br />A<br />B<br />E1<br />B1<br />E2<br />C<br />B2<br />Super-états / états composites<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  170. 170. Exemple super-état<br />pièce / incrémenter somme<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  171. 171. États concurrents<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />S<br />E1<br />X<br />A<br />Y<br />E3<br />E4 [dans l’état Z]<br />E1<br />Z<br />E2<br />B<br />T<br />U<br /><ul><li>Pour décomposer des états complexes
  172. 172. Exercice : trouver le diagramme d’état « à plat » équivalent</li></li></ul><li>Implémentation des états<br /><ul><li>Utilisation de case … switch
  173. 173. déconseillé
  174. 174. Utilisation du pattern état
  175. 175. arborescence de classes états
  176. 176. délégation de la gestion de l’état
  177. 177. Tables d’états
  178. 178. représentation tabulaire du diagramme
  179. 179. état source, cible, événement, garde, procédure à exécuter
  180. 180. permet de « paramétrer » le comportement de la classe </li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  181. 181. Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activité<br />Diagrammes de machines d’états<br />Autres diagrammes UML<br />Autres diagrammes non UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  182. 182. Vued'ensemble des interactions<br />Mixte diagramme activité / diagrammes de séquences<br />les actions sont remplacées par des diagrammes de séquence<br />Utilisé ?<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  183. 183. Diagramme de timing<br /><ul><li>Interactions avec focus sur les changements d’états d’objets et les contraintes temporelles associées
  184. 184. ligne de vie horizontale
  185. 185. Utilisé surtout dans les applications temps réel</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />État <br />Changement<br />d’état<br />Plus d’eau<br />Allumé<br />Pompe<br />Éteint <br />Allumé<br />Plaquechauffante<br />Éteint <br /> { < 15 min }<br />Objet<br /> { > 10 s }<br />Contrainte temporelle<br />(Fowler 04)<br />
  186. 186. Structures composites(classeurs structurés)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br /><ul><li>Pour décomposer structurellement une classe
  187. 187. parties, connecteurs
  188. 188. Montrer les réalisations / utilisations d’interfaces
  189. 189. ports, interfaces
  190. 190. Adaptés pour les composants</li></ul>IHM commande TV<br />Télécommande<br />1<br />commandes:Contrôleur<br />affichage<br />:Générateur[1]<br />Connecteur de délégation<br />API de commande TV<br />réglage<br />flot d’images<br />(Fowler 04)<br />
  191. 191. Diagrammes de collaborations<br />Non officiels dans UML2, se rapprochent des diagrammes de structure composite<br />Permettent de présenter les éléments impliqués dans une collaboration, et le rôle qu’ils y jouent<br />fixer les éléments et les rôles pour les diagrammes d’interaction<br />En théorie utilisés pour représenter des patterns<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  192. 192. Plan<br />Diagrammes d’interaction <br />diagrammes de séquences<br />diagrammes de communication<br />Diagrammes d’activité<br />Diagrammes de machines d’états<br />Autres diagrammes UML<br />Autres diagrammes non UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  193. 193. Diagrammes de contexte (Roques, 2004) <br /><ul><li>Diagramme de contexte statique
  194. 194. diagramme de classe
  195. 195. une classe système
  196. 196. tous les acteurs autour
  197. 197. Diagramme de contexte dynamique
  198. 198. diagramme de communication qui résume les messages entre système et acteurs (pas de numérotation)
  199. 199. Diagramme de contexte statique étendu
  200. 200. diagramme de contexte statique avec
  201. 201. Attributs et opérations de hauut niveau pour le système et les acteurs non humains
  202. 202. Remarque
  203. 203. « diagrammes de classes avec messages »
  204. 204. diagramme de classe avec résumé des messages entre classes</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  205. 205. Diagramme de flux d'écrans informel(Fowler, 2004)<br />Un rectangle par écran<br />Des flèches pour la navigation<br />éventuellement un nom signifiant le lien <br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Accueil<br />Recherche<br />Resultats<br />Changements récents<br />Une page<br />
  206. 206. Table de décision (Fowler)<br /><ul><li>Pour représenter des conditions logiques complexes
  207. 207. Deux parties
  208. 208. conditions
  209. 209. conséquences </li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />
  210. 210. Cartes CRC<br /><ul><li>Classes - Responsabilités - Collaborateurs
  211. 211. à la base inventé pour l’enseignement
  212. 212. Jouer des scénarios avec des cartes
  213. 213. 5-6 participants
  214. 214. Une carte
  215. 215. nom de classe
  216. 216. tableau à deux colonnes
  217. 217. responsabilité de la classe : quelque chose d’un objet doit faire
  218. 218. collaborateurs : classes avec lesquelles il faut collaborer pour assurer la responsabilité
  219. 219. Jeu
  220. 220. déterminer des classes de départ avec responsabilités évidentes
  221. 221. jouer les scénarios, ajouter les responsabilités, créer de nouvelles classes, etc.
  222. 222. Voir par exemple
  223. 223. http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />Classe<br />Responsabilite1<br />Coll1,2<br />
  224. 224. A suivre<br />UML 4/4 : concepts avancés<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : Diagrammes dynamiques et d'interaction <br />

×