Resposta
Um módulo,
- encapsula código e dados para implementar uma funcionalidade específica.
- tem uma interface que permite aos clientes acessar sua funcionalidade de maneira uniforme.
- é facilmente conectável a outro módulo que espera sua interface.
- geralmente é empacotado em uma única unidade para que possa ser facilmente implantado.
Por exemplo, dapper.net encapsula o acesso ao banco de dados. Possui uma API para acessar sua funcionalidade. É um único arquivo que pode ser conectado a uma árvore de código-fonte para ser construído.
O conceito de módulo vem do paradigma de programação modular, que defende que o software deve ser composto de componentes separados e intercambiáveis chamados de módulos por meio de programas funções em módulos, cada um dos quais realiza uma função e contém tudo o que é necessário para realizar isso.
Comentários
- se temos um monte de requisitos para cada um requisito pode ser considerado como um módulo? Ex: o requisito " Adicionar funcionário " pode ser um módulo?
- Não ou depende. As funções do programa devem ser divididas em unidades coesas. Se os requisitos podem ser discriminados dessa forma, pode ser que sim. Mas eu não ' não vi nada parecido com isso ainda. Além disso, " Adicionar Funcionário " não deve ser um candidato para o módulo. Normalmente os módulos são estruturas de nível superior que decompõem os programas em unidades logicamente coerentes.
Resposta
O módulo pode estar sobrecarregado termo, 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 design de cima para baixo. Características principais da modularidade relacionadas ao uso de baixo acoplamento e alto coesão .
Meu uso tem sido que em uma linguagem como C ou mesmo C ++, um módulo está relacionado à definição de uma unidade compilada separadamente de um arquivo de origem (.c ou .cpp) e normalmente um arquivo de cabeçalho associado (.h). Outras linguagens usam módulo como descrição, e a linguagem Modula-2 coloca a estruturação em torno dos módulos na frente e no centro de seu nome e sua abordagem.
Historicamente, o módulo tem algumas outras implicações, conforme descrito em D.L. Parnas paper “Sobre os critérios a serem usados na decomposição de software em módulos” . Ele está principalmente preocupado em discutir os benefícios da substituição da decomposição funcional pela decomposição orientada a dados, que foi um grande passo em direção ao nosso atual estado da arte, que é a decomposição orientada a objetos.
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.
Resposta
Não existe uma definição formal de um módulo, e o que um módulo é (ou não é) no contexto do seu projeto depende muito da natureza e do design do projeto.
De um modo geral, um módulo é um pedaço de código autônomo que fornece funcionalidade específica e fortemente acoplada, os módulos definem e impõem limites lógicos em seu código.