# Relació de dependència (UML)

Una relació de dependència (engl. Dependency) és un element de modelatge pertanyent al Llenguatge unificat de modelat (UML), un llenguatge de modelatge per a programari i altres sistemes.

## Descripció

En UML2 una relació de dependència és una relació unidireccional entre un element dependent (client - client) i un element independent (proveïdor - supplier).
Cada un dels dos extrems de la relació poden estar constituïts per diversos elements dependents o independents respectivament.
Hi ha una diferència fonamental entre les relacions de dependència i les associacions Associacions, ja que no és possible crear instàncies de la relació de dependència .
Si dues classes està relacionades mitjançant una associació, les instàncies d'aquestes classes estaran relacionades per una instància de l'associació, que és una relació d'objectes.
Això no passa així en les relacions de dependència, perquè no poden crear-se instàncies d'aquesta associació.
Gràficament es representa la relació de dependència com una línia discontínua amb una punta de fletxa oberta. La punta de la fletxa apunta a l'element independent.

## Tipus de relació de dependència
### Relació d'utilització

La relació d'utilització (Usage) significa que l'element dependent utilitza l'independent. Una relació d'utilització s'identifica amb la paraula "usi".

### Relació d'abstracció

Quan un element representa una abstracció d'un altre element, es pot representar mitjançant una relació d'abstracció (abstraction).
En el cas més general una relació d'abstracció s'identifica amb la paraula clau abstract, però hi ha excepcions.
L'etiqueta derivi indica que l'element dependent deriva de l'element independent. trace indica que entre tots dos elements hi ha una relació de dependència en la qual els canvis de l'element independent s'han de tenir en compte en l'element dependent.
Si un element refina el disseny d'un altre, per exemple afegint detalls addicionals, es pot etiquetar aquesta relació de dependència amb la paraula clau refine.

### Relació d'inclusió

Una relació d'inclusió significa que un cas d'ús incorpora el comportament d'un altre cas d'ús Cas d'ús.
Això vol dir que el cas d'ús inclòs s'executa durant l'execució del cas d'ús dependent.
Una relació d'inclusió es decora amb la paraula "include".

### Relació de realització

La relació de realització (Realization) i la de realització d'interfície (InterfaceRealization)) són altres dues formes de relació d'abstracció.
Aquí l'element independent constitueix una especificació i el dependent una implementació. Aquesta relació es fa servir amb freqüència per representa que una classe implementa una interfície interfície.
Aquest tipus de relacions és molt comú en el modelatge de programari orientat a objectes.
La representació gràfica d'una relació de realització es diferencia de la genèrica de les relacions de dependència en utilitzar una punta de fletxa tancada i buida, igual que passa en les relacions de generalització Generalització .

### Relació de distribució

La relació de distribució (engl. (engl. Deployment) representa una dependència entre un artefacte Artefacte i un node, indicant que l'artefacte s'envia al node i s'instal·la allà de manera adequada.
Una relació de desplegament s'indica amb la paraula clau 'deploy'.

## Referències

OMG Unified Modeling Language Superstructure

## Bibliografia

* Weilkiens, Tim; Oestereich, Bernd. UML 2 Certification Guide. Morgan Kaufman, 2007. ISBN 0-12-373585-8.
* OMG Unified Modeling Language Superstructure, Object Management Group, August 2011

## Enllaços externs

* Dependency Relationship in UML 2
* Documents associated with Unified Modeling Language (UML), v2.4.1