Coesão e acoplamento

\(\newcommand\Id[1]{\mbox{\textit{#1}}}\)

Coesão e Acoplamento em Modularização de Algoritmos

🔹 Coesão – “Cada módulo com um propósito bem definido”

O que é?

Coesão mede o grau em que as tarefas dentro de um módulo estão relacionadas entre si. Um módulo tem alta coesão quando todas as suas instruções contribuem para uma única tarefa clara e específica.

✅ Exemplo de Alta Coesão:

Função CalcularMedia(n1, n2)
    Início
        retorno <- (n1 + n2) / 2
    Fim

🚫 Exemplo de Baixa Coesão:

Procedimento ProcessarAluno()
    Início
        LerDados()
        CalcularMedia()
        EnviarEmail()
        GravarNoBanco()
    Fim

O módulo mistura tarefas distintas: leitura, cálculo, comunicação e persistência.


🔹 Acoplamento – “Quanto os módulos dependem uns dos outros”

O que é?

Acoplamento mede o grau de dependência entre os módulos. Idealmente, os módulos devem ter baixo acoplamento, ou seja, interagir o mínimo necessário e de forma bem definida.

✅ Exemplo de Baixo Acoplamento:

Função CalcularMedia(n1, n2)
    Início
        retorno <- (n1 + n2) / 2
    Fim
Procedimento MostrarResultado(media)
    Início
        Escreva("A média é: ", media)
    Fim

🚫 Exemplo de Alto Acoplamento:

Procedimento MostrarResultado()
    Início
        Escreva("A média é: ", mediaGlobal)
    Fim

O procedimento depende de uma variável global externa, tornando-o fortemente acoplado a outro módulo.


✅ Boas Práticas

Objetivo Boa Prática
Alta coesão Faça módulos que executam apenas uma tarefa clara
Baixo acoplamento Evite variáveis globais, use parâmetros de entrada e retorno
Fácil manutenção Módulos devem poder ser modificados sem afetar outros
Reaproveitamento Módulos genéricos e independentes são mais reutilizáveis