Diagramme de collaboration
  • Objectifs:
    • Ce type de diagramme montre des interactions entre objets (instances de classes et acteurs). Il s'intéresse à la structure de collaboration entre objets (séquencement, itération, concurrence, etc.)
    • Il permet de représenter le contexte d'une interaction, car on peut y préciser les états des objets qui interagissent.
    • Ce diagramme est équivalent au diagramme de séquences. Cependant, l'aspect temporel n'apparaît pas, mais l'aspect chronologique est présent.
  • Éléments de base:
    • Un tel diagramme est formé d'un sous-ensemble du diagramme de classes et les messages échangés entre objets à travers les liens.
    • Pour représenter l'aspect chronologique (ordre d'envoi des messages), il est important de numéroter les messages.
    • Le sens des messages nous permet de déterminer l'envoyeur et le receveur.

     

Syntaxe des messages

 

Synchronisation des messages

  • UML permet de spécifier de manière très précise l'ordre et les conditions d'envoi des messages sur un diagramme dynamique
  • Exemples
    • 3 : bonjour()

    Ce message a pour numéro de séquence "3".

    • [heure = midi] 1 : manger()

    Ce message n'est envoyé que s'il est midi.

    • 1.3.6 * : ouvrir()

    Ce message est envoyé de manière séquentielle un certain nombre de fois.

    • 1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom)

    Ce message (numéro 2.5) ne sera envoyé qu'après les messages 1.3 et 2.1, et que si "t < 10s".

     

Exemple de diagramme de collaboration indiquant le sens des messages

 

Exemple de diagramme de collaboration indiquant l'ordre d'envoi des messages