# Diagrama de components

Un diagrama de components és un diagrama pertanyent al Llenguatge de modelització unificat (UML) que mostra com es connecten entre si els components per formar components més grans. S'utilitzen per il·lustrar l'estructura dels sistemes arbitràriament complexes.
Un diagrama de components es representa com un sistema de programari, és dividit en components i mostra les dependències entre aquests. Els components físics inclouen arxius, capçaleres, mòduls, executables o paquets, que igual que passa amb les classes, poden oferir una interfície, per tal que els altres components puguin utilitzar-la. Els diagrames de components prevalen en el camp de l'arquitectura del programari però poden ser utilitzats per modelar i documentar qualsevol arquitectura de sistema.
Els diagrames de components són molt semblants als diagrames de casos d'ús i són utilitzats per modelar la vista estàtica i dinàmica del sistema.
Mostra l'organització i les dependències entre un conjunt de components. No és necessari que un diagrama inclogui tots els components del sistema, normalment es realitzen per parts. Cada diagrama descriu un apartat del sistema i el que fa el diagrama de components és mostrar-nos les dependències que hi ha entre les diferents parts amb les que hem fraccionat el sistema per descriure'l millor.

## Informació general

Un component és necessari per a executar una funció d'estereotip. Els estereotips poden ser executables, documents, taules de bases de dades, arxius… Estan connectats mitjançant un connector de muntatge, per a connectar la interfície donada a una altra interfície. Quan s'utilitza aquest diagrama per a mostrar l'estructura d'un component, les interfícies donades i necessitades d'aquest components no es pot delegar a les interfícies corresponents dels components continguts. Permet veure la modelització d'un sistema o subsistema i definir un component amb les interfícies ben definides.
Els diagrames dels quals depèn la construcció són diagrama d'objectes i diagrama de classes
Els diagrames que es generen a partir del diagrama de components són diagrama d'execució i diagrama de desplegament

## Elements del diagrama

A grans trets, els elements que conformen els diagrames de components són els components, les interfícies i les relacions entre aquestes entitats.

### Components

Els components d'un programari són tots aquells recursos desenvolupats per a un objectiu determinat i que es pot utilitzar sol o acompanyat per altres components dins d'un entorn funcional. Són independents entre ells i tenen la seva pròpia implementació i estructura.
Tenen la característica d'empaquetar el codi que implementa la funcionalitat d'un sistema i les instàncies d'objectes que constitueixen l'estat del sistema. Contenen tres classes de components: components de desplegament, components del producte del treball i components d'execució

### Interfícies i Ports

Els components requereixen i proporcionen interfícies. Una interfície és un conjunt de mètodes i atributs que defineixen els comportaments d'un component. Un port és una característica d'un component que especifica un punt d'interacció entre ell i el seu entorn.

### Relacions

* Dependència: aquest tipus de relacions s'utilitzen en els diagrames de components per indicar que un component es refereix als serveis oferts per un altre component.
* Generalització: aquest tipus de relacions indiquen que un component hereta d'un altre component les seus elements i les seves interfícies.
* Delegació: aquest tipus de relacions vinculen un port a una interfície d'un dels elements del component. Indica que els missatges enviats al component s'administren en el mateix element o que els missatges enviats des de l'element s'envien fora del component primari.

## Referències

* UML 2 Component Diagram Guidelines by Scott W. Ambler (Anglès)