Diagramme de structure composite
Dans le langage UML, le diagramme de structure composite expose la structure interne d'une classe ainsi que les collaborations que cette dernière rend possible. Les éléments de ce diagramme sont les parties (en anglais parts), les ports par le biais desquels les parties interagissent entre elles, avec différentes instances de la classe ou encore avec le monde extérieur, et enfin les connecteurs reliant les parties et les ports.
Une structure composite est un ensemble d'éléments interconnectés collaborant dans un but commun lors de l'exécution d'une tâche. Chaque élément se voit attribuer un rôle dans la collaboration.
Les éléments du diagramme
Le diagramme des structures composites est apparu dans la spécification d'UML 2.0. Les éléments clés du diagramme de structure composite sont les classifieurs structurés, les parties, les ports, les connecteurs et les collaborations.
Les classifieurs structurés
Un classifieur structuré représente une classe, dans la plupart des cas une classe abstraite, dont le comportement peut être décrit complètement ou partiellement par le biais d'interactions entre parties. Un classifieur encapsulé est une forme de classifieur structuré contenant des ports.
Les parties
Une partie représente un rôle joué par une instance d'une classe ou un ensemble d'instances à l'exécution. La partie peut donner le nom d'un rôle, d'une super-classe abstraite ou d'une classe concrète spécifique. La partie peut inclure une cardinalité.
Les ports
Le port est un point d'interaction qui peut être utilisé pour connecter un classifieur structuré avec ses parties ou son environnement. Les ports peuvent accessoirement spécifier les services qu'ils fournissent ainsi que les services qu'ils peuvent requérir d'autres parties du système. Les ports sont symbolisés par un carré sur le diagramme.
Les ports peuvent déléguer les requêtes reçues à des parties internes ou au contraire les délivrer directement à la partie qui possède le port en question. Les ports ayant un statut public sont dessinés à cheval sur la bordure de la partie. À l'inverse, les ports protégés (non visibles par l'environnement) sont contenus dans la partie.
Les connecteurs
Les connecteurs relient plusieurs entités, leur permettant d'interagir entre elles lors de l'exécution. Un connecteur est représenté par une ligne reliant une combinaison de parties, des ports ou des classifieurs structurés.
Les collaborations
Une collaboration est en général d'un niveau d'abstraction plus élevé qu'un classifieur. Elle est représentée par un ovale en pointillé contenant les rôles joué par chaque instance dans la collaboration lors de l'exécution.