Dans les diagrammes UML, une collaboration est un type de discriminant structuré dans lequel les rôles et les attributs coopèrent afin de définir la structure interne d'un discriminant. Vous pouvez utiliser une collaboration si vous souhaitez définir uniquement les rôles et les connexions requis pour atteindre un objectif particulier de la collaboration. Par exemple, l'objectif d'une collaboration peut être de définir les rôles ou les composants d'un discriminant. En isolant les rôles principaux, une collaboration simplifie la structure et éclaircit le comportement dans un modèle.
Etant donné que vous n'affichez pas les classes spécifiques ou les identités des instances participantes mais uniquement les rôles et les connecteurs, vous pouvez réutiliser une collaboration pour donner une représentation graphique des patterns architecturaux des objets de collaboration et modéliser leur comportement habituel, identique à un canevas. Si vous souhaitez afficher une occurrence particulière d'un pattern, vous pouvez utiliser une occurrence de collaboration.
Une collaboration peut inclure des discriminants provenant de différents composants du système en cours de modélisation, un seul discriminant pouvant jouer différents rôles et participer à plusieurs collaborations. En d'autres termes, un rôle dans une collaboration fait référence à ou entre un discriminant, mais la collaboration ne détient ni ne contient physiquement le discriminant référencé.
Comme l'illustre la figure ci-dessous, une collaboration s'affiche sous la forme d'une ellipse en pointillés avec deux compartiments.
Le compartiment du haut précise le nom unique de la collaboration. D'une manière générale, le nom identifie le pattern ou le mécanisme que fournit la collaboration. Dans l'exemple ci-dessus, la collaboration définit les composants d'une voiture. Le nom de la collaboration est Car. Le compartiment de structure montre la structure interne de la collaboration grâce à un ensemble de rôles. Dans cet exemple, les rôles Door et Frame collaborent pour définir la collaboration Car. Les rôles sont décrits sous forme de rectangles contenant le nom du rôle, deux points (:) et, le cas échéant, le nom du discriminant référencé. Une ligne à trait plein connecte les rôles Door et Frame de la collaboration.