Sono un po 'confuso su questo tipo di diagramma UML che ho visto usato in modi non coerenti.
I diagrammi dei componenti spesso rappresentano una sorta di snapshot a livello di architettura dell'applicazione in fase di sviluppo, sono molto vicini ai diagrammi di implementazione, solo un po 'più astratti (cioè senza i dettagli del nodo). Alcune persone addirittura inseriscono annotazioni su di esse con l'indicazione di file o DLL specifici. Quindi fondamentalmente considerano i componenti come istanze.
Ma se non sbaglio sono classificatori, quindi non dovrebbero esistere in fase di esecuzione. Quindi è corretto visualizzare questi diagrammi come composti da istanze concrete?
Ad esempio, supponiamo di avere una sorta di database distribuito a cui si accede da un livello middleware. Nel diagramma classe / pacchetto ho una classe / pacchetto datasource e una classe / pacchetto middleware. Nel diagramma di implementazione ho un artefatto / nodo middleware e più di un artefatto / nodo di origine dati. Nel diagramma dei componenti devo inserire uno o più componenti dell'origine dati?