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 elementos de modelo cliente para o elementos de 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 elementos de modelo cliente é uma execução do elementos de modelo fornecedor e que este é a especificação. |
Substituição | «substitute» | Indica que o elementos de modelo cliente toma o lugar do fornecedor. O elementos de modelo cliente deve estar em conformidade com o contrato ou a interface estabelecidos pelo elementos de 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 elementos de modelo cliente e a classe Product é o elementos de modelo fornecedor. Esse relacionamento indica que uma alteração na classe Product pode requerer uma alteração na classe Cart.