HOPEX UML : HOPEX UML : Les diagrammes de structure et de déploiement : Le diagramme de composants
   
Le diagramme de composants
 
Les composants
Les interfaces
Créer les interfaces des composants
Relier les interfaces aux autres objets
Relier des interfaces
Les ports
Les connecteurs
Connecteur de délégation
Connecteur d’assemblage
Un diagramme de composants présente l'interdépendance des composants logiciels et des interfaces (il définit qui utilise quoi).
*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.
*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.
Vous pouvez créer un diagramme de composants depuis un composant ou un paquetage.
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.
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 Créer.
*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 par un objet :
1. Cliquez sur le bouton
2. Dessinez le lien en partant de l’objet fournisseur (un composant, un paquetage ou une classe) pour aller vers l'interface supportée.
Pour indiquer qu'un objet requiert une interface :
1. Cliquez sur le bouton
2. Dessinez le lien en partant de l’objet client vers l'interface requise.
Selon le type de lien, la forme de l’interface change : l’interface requise est représentée par un demi-cercle, l’interface fournie est représentée par un cercle.
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".