Módulo pode ser um termo sobrecarregado, tanto que a Wikipedia o descreve sob o termo Programação Modular ao discutir seu uso em relação ao software. Eles discutem isso em termos de programação estruturada, baseada em uma abordagem de projeto de cima para baixo. Principais características da modularidade relacionadas ao uso de baixo acoplamento e alta coesão .
Meu uso é que, em uma linguagem como C ou C ++, um módulo está relacionado à definição de uma unidade compilada separadamente a partir de um arquivo de origem (.c ou .cpp) e, normalmente, de um arquivo de cabeçalho associado (.h). Outras linguagens usam o módulo como uma descrição, e a linguagem Modula-2 coloca a estruturação em torno dos módulos na frente e no centro em seu nome e abordagem.
Historicamente, o módulo tem outras implicações, conforme descrito no documento DL Parnas "Sobre os critérios a serem usados na decomposição de software em módulos" . Ele está preocupado principalmente em discutir os benefícios da substituição da decomposição funcional pela decomposição orientada a dados, o que foi um grande passo em direção ao nosso estado da arte atual, que é a decomposição orientada a objetos.
As linguagens orientadas a objetos são organizadas em torno de classes, então talvez o termo módulo seja menos importante e menos preciso nesse contexto.