Na modelagem UML, um relacionamento de dependência é aquele no qual as alterações em um elemento de modelo (o fornecedor) impactam outro elemento de modelo (o cliente). Os relacionamentos de dependência podem ser utilizados em diagramas de classe, diagramas de componentes, diagramas de implementação e diagramas de casos de uso.
Um relacionamento de dependência também pode ser utilizado para representar precedência, em que um elemento de modelo deve preceder outro.
Normalmente, os relacionamentos de dependência não possuem nomes.
Como a figura a seguir ilustra, uma dependência é exibida no editor de diagrama como uma linha tracejada com uma seta aberta que aponta do elemento do modelo cliente para o elemento do modelo fornecedor.
Como um relacionamento de dependência pode representar vários tipos diferentes de relacionamentos, as palavras-chave ou estereótipos são utilizados para mostrar a natureza precisa da dependência.
Tipo de dependência | Palavra-chave ou estereótipo | Descrição |
---|---|---|
Abstração | «abstraction», «derive», «refine» ou «trace» | Relaciona dois elementos de modelos ou conjuntos de elementos de modelos, que representam o mesmo conceito em níveis diferentes de abstração ou de pontos de vista diferentes. |
Ligação | «bind» | Conecta argumentos de gabarito a parâmetros do gabarito para criar elementos de modelos a partir de gabaritos. |
Realização | «realize» | Indica que o elemento do modelo cliente é uma execução do elemento do modelo fornecedor e que este é a especificação. |
Substituição | «substitute» | Indica que o elemento do modelo cliente toma o lugar do fornecedor. O elemento do modelo cliente deve estar em conformidade com o contrato ou a interface estabelecidos pelo elemento do modelo fornecedor. |
Uso | «use», «call», «create», «instantiate» ou «send» | Indica que um elemento de modelo requer outro elemento de modelo para sua execução ou operação totais. |
É possível incluir relacionamentos de dependência no modelo para realizar as seguintes metas:
Em um aplicativo de e-commerce, uma classe Cart depende de uma classe Product porque a primeira utiliza a segunda como um parâmetro para uma operação de inclusão. Em um diagrama de classe, um relacionamento de dependência aponta da classe Cart para a classe Product. A classe Cart é, portanto, o elemento do modelo cliente e a classe Product é o elemento do modelo fornecedor. Esse relacionamento indica que uma alteração na classe Product pode requerer uma alteração na classe Cart.