Un diagramma dei componenti mostra la relazione tra i componenti che hanno la seguente semantica:
A Component is a self-contained unit that encapsulates the state and
behavior of a number of Classifiers. A Component specifies a formal
contract of the services that it provides to its clients and those
that it requires from other Components or services in the system in
terms of its provided and required Interfaces.
Si può immaginare il componente come una sorta di grande classe, che è autonoma e può essere sostituita con componenti che implementano le stesse interfacce.
Nel diagramma dei componenti, puoi dimostrare che un componente implementa e / o richiede diverse interfacce, puoi mostrare le dipendenze tra le interfacce dei componenti inter-correlati, ma non è possibile dimostrare che ci siano diverse istanze dello stesso componente né che vi sia un uso multiplo della stessa interfaccia da diverse istanze di componenti.
Se vuoi mostrare una particolare configurazione dell'istanza del componente, devi usare un diagramma di implementazione :
- puoi mostrare come vengono distribuiti gli artefatti (eseguibili, dll, ...) corrispondenti ai componenti
- puoi mostrare in che modo i componenti corrispondenti a un artefatto vengono istanziati su obiettivi di distribuzione (ad es. dispositivi, server o persino precessi del sistema operativo sullo stesso server).
- puoi mostrare il percorso di comunicazione necessario per connettere le interfacce dei componenti su diversi nodi