Archyno
UMLDiagrammes de structure

Diagrammes de structure composite UML

L'intérieur d'une chose. Ses parties, les ports sur sa frontière, et les connecteurs qui les câblent - le diagramme qui explique comment un composant est réellement construit.

6 min de lectureUML 2.5.125 sur 35

La réponse courte

  • Une partie est un rôle qu'une instance joue dans un contenant, pas un type. La même classe peut apparaître deux fois comme deux parties nommées différemment.
  • Un connecteur d'assemblage est du câblage interne entre deux parties ; un connecteur de délégation franchit la frontière et renvoie.
  • La délégation est la façon dont un composite honore une interface sans faire le travail : ce qui arrive sur le port est traité par une partie interne.
  • Dessinez celui-ci quand la question est ce qu'il y a dans une chose. Un diagramme de composants répond à comment plusieurs choses s'emboîtent.
Un diagramme de structure composite UML montrant l'intérieur de l'orchestrateur de paiement. Un port d'entrée sur la frontière gauche délègue via IPayment à une partie Authorizer, qui se connecte à une partie RiskCheck puis à une partie LedgerClient, laquelle délègue via ILedger à un port de sortie sur la frontière droite.
Un classificateur, ouvert. Les petits carrés sur la frontière sont des ports ; les flèches qui la traversent sont des connecteurs de délégation qui confient un contrat externe à une partie interne.

01Ce qu'il montre#

Un diagramme de structure composite répond à une question : de quoi cette chose est-elle faite, à l'intérieur ? Il prend un seul classificateur - une classe, un composant, un sous-système - et dessine ses parties internes et leur câblage.

La distinction avec les diagrammes voisins mérite d'être claire. Un diagramme de classes montre des types et les relations entre eux, en général. Un diagramme de composants montre plusieurs composants et les contrats entre eux. Un diagramme de structure composite zoome sur l'un d'entre eux et montre la structure d'exécution à l'intérieur.

02Parties, ports, connecteurs#

ÉlémentNotationCe que cela signifie
Partierectangle dans le cadreUn rôle tenu à l'intérieur du propriétaire, écrit roleName: Type. Peut porter une multiplicité dans le coin.
Portpetit carré sur la frontièreUn point d'interaction nommé. Tout ce qui franchit la frontière passe par un port, et c'est ce qui donne son sens à la frontière.
Connecteurtrait entre partiesUn chemin de communication entre deux parties du propriétaire.
Connecteur de délégationtrait d'un port vers une partieLe trafic arrivant sur ce port externe est traité par cette partie interne. L'extérieur n'apprend jamais laquelle.
Connecteur d'assemblageboule dans une douilleL'interface fournie d'une partie câblée à l'interface requise d'une autre.
Collaborationellipse en pointillésUn motif de rôles nommé - la moitié structurelle d'un patron de conception, sans s'engager sur des classes.

03Pourquoi les ports sont l'élément utile#

Un port est un petit carré, et il travaille plus qu'il n'en a l'air. Il dit : c'est la seule entrée. Rien de l'extérieur n'atteint directement une partie ; tout arrive à un port et est délégué vers l'intérieur.

De là découle la propriété qui justifie ce diagramme. L'extérieur de la boîte ne dépend que des ports, donc tout l'intérieur peut être réagencé - parties scindées, fusionnées, remplacées - sans que rien change au-dehors, tant que les ports conservent leurs contrats. C'est de l'encapsulation dessinée en géométrie.

Les ports permettent aussi à un composant de présenter plusieurs visages distincts. Un orchestrateur de paiement doté d'un port d'API publique, d'un port d'administration et d'un port de publication d'événements dit quelque chose de précis sur sa surface, et sur ceux d'entre eux qu'un pare-feu ou une politique d'autorisation doit traiter autrement.

04Quand en dessiner un#

À utiliser quand

  • Expliquer comment un composant non évident est construit à l'intérieur
  • Concevoir quelque chose où le même type apparaît dans deux rôles différents
  • Documenter un composant à plusieurs points d'interaction distincts
  • L'embarqué, les télécoms ou le travail sur protocoles, où ce diagramme porte réellement

Préférer autre chose quand

  • L'intérieur, ce sont trois classes aux relations évidentes - un diagramme de classes suffit
  • Vous montrez plusieurs composants, pas l'intérieur d'un seul - prenez un diagramme de composants
  • L'intéressant est ce qui se passe dans le temps, pas le câblage
  • Personne n'a demandé comment l'intérieur fonctionne

C'est l'un des diagrammes UML les moins employés, et à juste titre : la plupart des composants n'ont pas de structure interne intéressante. Quand l'un en a une, rien d'autre ne l'exprime aussi directement, et l'alternative est en général un paragraphe de prose que personne ne relit.

En une ligne chacun

  1. 01Montre l'intérieur d'exactement un classificateur : ses parties, ses ports et son câblage.
  2. 02Les parties sont des rôles tenus à l'exécution, pas des classes - une même classe peut être deux parties.
  3. 03Les ports sont les seuls franchissements de la frontière, et c'est ce qui rend la frontière réelle.
  4. 04Les connecteurs de délégation confient un contrat externe à une partie interne.
  5. 05Réagencer l'intérieur est gratuit tant que les ports conservent leurs contrats.

05Questions fréquentes#

Quelle différence entre une partie et une classe ?

Une partie est un rôle joué par une instance à l'intérieur d'un classificateur englobant précis, et non un type à part entière. Une même classe peut apparaître comme deux parties distinctes d'un même composite, chacune avec son nom et sa multiplicité, car le diagramme porte sur la structure interne du contenant et non sur les types.

Qu'est-ce qu'un connecteur de délégation ?

Un connecteur allant d'un port sur la frontière extérieure vers un port ou une partie à l'intérieur. Il dit que ce qui arrive de l'extérieur est traité par cette partie interne, ce qui permet à un composite d'honorer une interface sans faire le travail lui-même.

Quelle différence entre connecteur d'assemblage et de délégation ?

Un connecteur d'assemblage relie deux parties internes, câblant l'interface requise de l'une à l'interface fournie de l'autre. Un connecteur de délégation franchit la frontière, reliant un port externe à quelque chose de l'intérieur. L'assemblage est du câblage interne ; la délégation est du renvoi.

Quand dessiner celui-ci plutôt qu'un diagramme de composants ?

Quand la question est ce qu'il y a dans une chose plutôt que comment plusieurs choses s'emboîtent. Un diagramme de composants montre les parties d'un système et leurs contrats ; un diagramme de structure composite ouvre l'une de ces parties et montre comment elle est bâtie.

Dans cette série

À lire aussi

Tous les articles