Relacionamentos de Dependência

Na UML, um relacionamento de dependência é um relacionamento no qual um elemento, o cliente, usa ou depende de outro elemento, o fornecedor. Você pode usar os relacionamentos de dependência nos diagramas de classe, diagramas de componentes, diagramas de implementação e diagramas de casos de uso para indicar que uma alteração para o fornecedor deve exigir uma alteração para o cliente.

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.

Duas classes são conectadas por uma linha tracejada com uma seta aberta

Tipos de Relacionamentos de Dependência

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
Nota: Vários relacionamentos, como relacionamentos de extensão e de inclusão, utilizam um conector semelhante ao de um relacionamento de dependência, mas não são considerados relacionamentos de dependência.

Utilizando Relacionamentos de Dependência

Você pode incluir relacionamentos de dependência em modelos para realizar as seguintes metas:

Exemplo

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.

Conforme descrito no parágrafo anterior, duas classes são conectadas por um relacionamento de dependência.

O relacionamento acima indica que uma alteração na classe Product deve exibir uma alteração na classe Cart.


Feedback