Acoplamento (IT)
O acoplamento é uma métrica indicativa do nível de interação entre dois ou mais componentes de software ( funções , módulos , objetos ou aplicativos ). Diz-se que dois componentes estão acoplados se trocarem informações . Falamos de acoplamento forte ou acoplamento apertado se os componentes trocam muitas informações. Falamos sobre acoplamento fraco , acoplamento leve ou acoplamento solto se os componentes compartilham alguma informação e / ou forma não sincronizada.
Níveis de acoplamento
De acordo com Pressman, existem sete níveis de acoplamento, do mais fraco ao mais forte:
-
Sem acoplamento : os componentes não trocam informações.
-
Por dados : os componentes trocam informações por métodos usando argumentos (parâmetros) do tipo simples (número, string de caracteres, array).
-
Por pacote : os componentes trocam informações por métodos usando argumentos de tipo composto (estrutura, classe).
-
Por controle : os componentes passam ou modificam seu controle mudando um sinalizador (bloqueio).
-
Externo : os componentes trocam informações por um meio externo de comunicação (arquivo, pipeline, link de comunicação).
-
Comum (global) : os componentes trocam informações por meio de um conjunto comum de dados (variáveis).
-
Por conteúdo (interno) : os componentes trocam informações lendo e escrevendo diretamente em seus respectivos espaços de dados (variáveis).
Uma boa arquitetura de software requer o acoplamento mais fraco possível.
Desvantagens de um forte acoplamento
O forte acoplamento deve ser evitado por vários motivos:
- Um forte acoplamento gera o antipadrão de prato do espaguete :
- Você não pode determinar quem, o quê e como de uma alteração de dados.
- Um forte acoplamento implica necessariamente uma fraca independência funcional :
- O componente de software é difícil de reutilizar,
- O componente de software é difícil de testar.
- Se duas tarefas acessam, por forte acoplamento, um recurso comum (recurso crítico) e são executadas em exclusão mútua, então se uma das tarefas permanece bloqueada na seção crítica, ela bloqueia automaticamente a outra:
Os componentes perdem sua autonomia. É difícil substituir um componente por outro. As estruturas que operam com forte acoplamento são, portanto, não muito flexíveis e não muito abertas.
Solução
A ideia geral de acoplamento fraco é estabelecer um protocolo de troca e fazer o mínimo de suposições (ou impor tantas restrições) quanto possível entre os componentes. Assim, os componentes interagem dentro de uma estrutura definida.
O acoplamento fraco transmite a ideia de não tornar um recurso sincronicamente crítico, por exemplo.
Uma metáfora clássica é a da tomada elétrica, que é um padrão para conectar dispositivos elétricos . Isso se traduz em ciência da computação pelo conceito de um plugin .
Formulários
Artigos relacionados
Notas e referências
-
Pressman RS, Engenharia de Software: Uma Abordagem do Praticante, Terceira Edição. McGraw-Hill. Capítulo 10, 1992