Módulos são conjuntos ou agrupamentos de funcionalidades bem organizadas de um software com o objectivo de resolver um problema. Um software é composto por um ou mais módulos.
É importante desenvolver os módulos de maneira independente. A alteração de um módulo não deve alterar o desempenho de todo o sistema. Um sistema bem modularizado é um sistema onde cada módulo faz apenas uma tarefa bem definida.
Documentar os principais módulos do sistema podem ajudar a compreender o Sistema em partes. Compreender cada módulo, ajuda a fatiar o sistema em pequenos sistemas, distribuir em equipas de desenvolvimento, faclitando a manutenção do Sistema.
Na implementação do Sistema, cada módulo pode ser representada por uma pasta ou pacote.
Cada pasta pode ter classes, protótipos, traits, structs, funções ou procedimentos , desde que faça o agrupamento de funcionalidades relacionadas. A separação dos módulos não depende da Linguagem de Programação.
Exemplo: Identificar os principais módulos de um Sistema de Gestão para uma Universidade.
As imagens seguintes, explicam o problema.