Le diagramme de composants
Un diagramme de composants présente l'interdépendance des composants logiciels et des interfaces (il définit qui utilise quoi).

Un composant est un élément de la mise en oeuvre du système : ce peut être un logiciel, un programme, un élément de code, mais aussi un élément physique tel qu'un document de travail.

Une interface représente la partie visible d'une classe ou d'un paquetage dans une relation contractuelle de type client - fournisseur. L'interface est un stéréotype de classe.
Un diagramme de composants contient des composants et des classes de stéréotype interface. Il est également possible d'y préciser les paquetages implémentés par les composants.
Exemple de diagramme de composants
Ce diagramme décrit les éléments détenus par le composant "Commande" et les interactions de ces éléments avec des composants externes.
Créer un diagramme de composants
Dans HOPEX IT Architecture vous pouvez créer un diagramme de composants à partir d'un composant ou d'un paquetage.
Pour créer un diagramme de composants à partir d'un paquetage dans HOPEX IT Architecture à partir du menu de navigation Conception (UML) :
1. Dans le sous-menu de navigation, cliquez sur Paquetages.
2. Sélectionnez la ligne du paquetage concerné et cliquez sur le bouton Nouveau Diagramme.
3. Sélectionnez Diagramme de composants.
Le diagramme apparaît dans la fenêtre d'édition.
Les composants
Un composant représente une partie modulaire d'un système qui encapsule son contenu et qui est remplaçable dans son environnement. Un composant définit son comportement par les interfaces qu'il fournit et celles qu'il requiert.
Un composant peut être remplacé par un autre si leurs interfaces sont conformes.
Un composant peut être un logiciel, un programme, un élément de code, etc.
Il est représenté par l'icône suivante :

Les interfaces
Créer les interfaces des composants
Une interface représente la partie visible d'une classe ou d'un paquetage dans une relation contractuelle de type client - fournisseur.
L'interface est un type particulier de classe.
Pour créer une classe de stéréotype "Interface" dans le diagramme de structure composite :
1. Cliquez sur le bouton
Interface 
puis cliquez dans le diagramme.
2. Dans la fenêtre qui apparaît, saisissez le nom de la classe.
3. Cliquez sur Ajouter.

Vous pouvez spécifier le détail de l'interface en termes d'attributs et d'opérations dans le diagramme de classes de la même manière que pour une classe.
Relier les interfaces aux autres objets
Deux types de lien permettent de différencier les interfaces requises des interfaces fournies.
Une interface requise est une interface nécessaire au fonctionnement de l'objet.
Exemple : le composant « Gestion des achats » a besoin pour son fonctionnement de l'interface « Produit » pour pouvoir associer une commande d'achat aux produits commandés.
Une interface fournie est une interface mise à disposition par un objet à destination d'autres objets.
Exemple : le composant « Gestion des produits » met à disposition l'interface « Produit ».
Vous pouvez définir les interfaces requises et les interfaces fournies par un objet indépendamment des autres objets.
Pour préciser qu'une interface est supportée ou requise par un objet :
1. Cliquez sur le bouton
Lien 
et tirez le lien en partant de l'objet client vers l'interface.
Une fenêtre apparaît.
2. Sélectionnez le type du lien à créer :
• Interface requise
• Interface supportée
3. Cliquez sur OK.
Le lien apparaît dans le dessin.
Selon le type de lien, la forme de l'interface change.
Relier des interfaces
Deux interfaces peuvent être reliées l'une à l'autre. Cette connexion est modélisée par un connecteur.
Vous pouvez également indiquer qu'une interface fournie par un objet est requise par un autre. Il s'agit ici d'une seule et même interface.
Les ports
Les ports permettent de connecter un composant à ses parties ou à son environnement.
Les ports sont symbolisés par un carré dans le diagramme, et posés en bordure du composant décrit lorsqu'ils assurent la connexion avec l'extérieur.
Ils sont reliés aux composants par des connecteurs.
Les ports peuvent spécifier les requêtes envoyées et les services fournis par le composant ainsi que les requêtes et services qu'ils peuvent requérir d'autres parties du système. Ces requêtes et services sont représentés par des classes de type Interface.
Vous pouvez visualiser les interfaces associées à un port dans la fenêtre de propriétés d'un port, sous l'onglet Interfaces fournies et requises.
Les connecteurs
Les connecteurs permettent de relier les objets du diagramme.
Les connecteurs de type simple ne spécifient aucun type de connexion particulier, ils sont utilisés notamment pour relier les instances d'objets décrits dans des collaborations.
Dans le diagramme de structure composite, il est possible de spécifier le type de connecteur qui relie deux composants : Assemblage ou Délégation.
Connecteur de délégation
Un connecteur de type "Délégation" montre le réacheminement de requêtes vers un élément du composant chargé de les réaliser.
Le lien de délégation peut se faire directement entre le port du composant et l'élément du composant ou entre le port du composant et le port de l'élément.
Ci-dessous, le composant "Commande" délègue la gestion des comptes à débiter à la classe "En-tête de commande".
Connecteur d'assemblage
Un connecteur de type "Assemblage" est un connecteur entre deux ou plusieurs composants ou ports qui indique qu'un ou que plusieurs composants fournissent les services que d'autres utilisent.

Il peut s'agir d'autres objets que de composants.
Pour relier des ports ou des composants qui partagent une interface, vous pouvez également utiliser les liens "Interface fournie" et "Interface requise".
Un connecteur de type "Assemblage" relie l'interface fournie par le composant "Compte" à l'interface requise par la classe "En-tête Commande".