Um relacionamento de dependência também pode ser utilizado para representar precedência, em que um elemento de modelo deve preceder outro.
Geralmente, os relacionamentos de dependência não têm 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 cliente para o fornecedor.
Como um relacionamento de dependência pode representar vários tipos diferentes de relacionamentos, as palavras-chave ou estereótipos mostram 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 modelo a parâmetros de modelo para criar elementos de modelos a partir de modelos. |
Realização | «realize» | Indica que o elemento de modelo do cliente é uma implementação do elemento de modelo do fornecedor e que o elemento de modelo do fornecedor é a especificação. |
Substituição | «substitute» | Indica que o elemento de modelo do cliente substitui o do fornecedor; o elemento de modelo do cliente deve estar em conformidade com o contrato ou interface que o elemento de modelo do fornecedor estabelece |
Uso | «use», «call», «create», «instantiate» ou «send» | Indica que um elemento de modelo requer outro elemento de modelo para sua implementação ou operação completa |
Você pode incluir relacionamentos de dependência em modelos 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. Como a seguinte figura ilustra, a classe Cart é, portanto, o cliente e a classe Product o fornecedor.
O relacionamento acima indica que uma alteração na classe Product deve exibir uma alteração na classe Cart.