Cerrado . Esta pregunta debe estar más 
 centrada . Actualmente no acepta respuestas. 
 
 Respuesta 
 Un módulo, 
-  encapsula código y datos para implementar una funcionalidad particular. 
-  tiene una interfaz que permite a los clientes acceder a su funcionalidad de manera uniforme. 
-  se puede conectar fácilmente con otro módulo que espera su interfaz. 
-  generalmente está empaquetado en una sola unidad para que se pueda implementar fácilmente. 
 Por ejemplo, dapper.net encapsula el acceso a la base de datos. Tiene una API para acceder a su funcionalidad. Es un solo archivo que se puede conectar en un árbol de fuentes para ser construido. 
 El concepto de módulo proviene del paradigma de programación modular que aboga por que el software debe estar compuesto por componentes separados e intercambiables llamados módulos al desglosar el programa funciones en módulos, cada uno de los cuales cumple una función y contiene todo lo necesario para lograr esto. 
 Comentarios 
 
 Respuesta 
 El módulo puede estar sobrecargado. término, tanto que Wikipedia lo describe bajo el término  Programación modular  cuando se habla de su uso en relación con el software. Lo discuten en términos de programación estructurada que se basó en un enfoque de diseño de arriba hacia abajo. Características clave de la modularidad relacionadas con el uso de un  acoplamiento  bajo y una  alta cohesión . 
 Mi uso ha sido que en un lenguaje como C o incluso C ++, un módulo está relacionado con la definición de una unidad compilada por separado de un archivo fuente (.c o .cpp) y típicamente un archivo de encabezado asociado (.h). Otros lenguajes usan módulo como descripción, y el lenguaje Modula-2 pone la estructura alrededor de los módulos al frente y al centro en su nombre y su enfoque. 
 Históricamente, el módulo tiene algunas otras implicaciones, como se describe en el  D.L. Parnas  paper  «Sobre los criterios que se utilizarán en la descomposición de software en módulos» . Él está principalmente interesado en discutir los beneficios de reemplazar la descomposición funcional con la descomposición orientada a datos, que fue un gran paso hacia nuestro estado actual de la técnica, que es la descomposición orientada a objetos. 
 Los lenguajes orientados a objetos se organizan en torno a clases, por lo que tal vez el término módulo sea menos importante y menos preciso en ese contexto. 
 
 Respuesta 
 No existe una definición formal de módulo, y lo que es (o no es) un módulo en el contexto de su proyecto depende en gran medida de la naturaleza y el diseño del proyecto. 
 En términos generales, un módulo es una pieza de código independiente que proporciona una funcionalidad específica y estrechamente acoplada, los módulos definen y aplican límites lógicos en su código.