Durante a implementação de umsoftware é comum nos depararmos com erros. Na alteração de um atributo, método ou uma classe e verficamos que quebram as outras partes do software. Isto para a existência de um alto acoplamento entre classes.
Dependência é o relacionamento que indica a dependência entre um componente e outro. Esta relação indica que um determinado contexto precisa do outro para efectuar as suas operações.
A dependência é um dos relacionamentos mais comuns na construção de um software. Torma-se difícil impossível programar sem utilizar a depedência.
Representação da Dependência
Na UML a dependência pode ser representada nos seguintes diagramas:
- Classes;
- Caso de Uso;
- Componentes;
- Implementação.
A depedência entre classes é representada por uma linha tracejada e uma seta. A seta vai da classe dependente para classe independente (classe A ------> classe B).
Tipos de dependência
- Abstração: classe A e classe B representam o mesmo em diferentes níveis de abstração;
- Ligação: o método da Classe A recebe classe B como parâmetro e liga os objectos a este parâmetro;
- Realização: Classe A é uma implementação de classe B;
- Substituição: Classe A pode substituir a classe B e deve obedecer o contrato da classe B;
- Uso: Classe A precisa da classe B para relaizar correctamente as operações.
Cenários da dependência entre classes
- Classe A utiliza a classe B que possui escopo global;
- Classe A utiliza a classe B como um parâmetro para uma de suas operações;
- Classe A utiliza a classe B como uma variável local para uma de suas operações;
- Classe A envia uma mensagem para uma classe B.
Precauções com a Dependência
- Cada alteração na classe B, deve exigir a alteração na classe A;
- Caso a classe B seja eliminada, pode causar pronlemas na classe A;
- O uso incorrecto pode causar um alto acoplamento no software, causando dificuldades na manutenção.
Sugestões
- Apesar de ser comum na Orientação a Objectos, a dependência pode ser utlizada em outros paradigmas de programação.
- Para sistemas que não possuem Diagrama de classes é possível visualizar a dependência com a ajuda de uma IDE (Eclipse ou Visual Studio).
Exemplo
Representação da dependência numa ferramenta de geração de fontes de dados.
Uma fonte de dados é criada a partir de um contexto e permite criar um ficherio com o formato solicitado(.sql, .csv e .xml).
Um contexto ou tabela possui um nome, nº de campos, formato de dados, lista de campos, tipos de dados lista de valores mínimos e valores máximos.
A geração de fontes dependem do Contexto. No final será gerado um arquivo com a extensão do formato.
Deve ter uma classe que permita chamar as fontes de dados.
Modelagem: Astah UML
Linguagen: Java