Según Stephen Schach, "Ingeniería de software clásica y orientada a objetos", capítulo 6:
un módulo consiste en un solo bloque de código que se puede invocar de la manera en que se invoca un procedimiento, función o método
Esto parece muy vago y amplio. Entonces, ¿podría alguien explicarlo claramente y mostrar algunos ejemplos reales de cómo dividir un requisito en módulos? Gracias.
Módulo podría ser un término sobrecargado, tanto que Wikipedia lo describe bajo el término Programación Modular cuando discute su uso en relación con el software. Lo discuten en términos de programación estructurada que se basa en un enfoque de diseño de arriba hacia abajo. Características clave de la modularidad relacionadas con el uso de bajo acoplamiento y 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, por lo general, un archivo de encabezado asociado (.h). Otros lenguajes usan el módulo como descripción, y el lenguaje Modula-2 coloca la estructuración 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 fueron descritos en el DL Parnas papel "en los criterios que se emplearán en la descomposición del software en los módulos" . 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 del arte, 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.
fuente
No existe una definición formal de un módulo, y lo que un módulo es (o no) 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 un 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.
fuente