¿Qué es realmente un módulo en ingeniería de software? [cerrado]

14

Según Stephen Schach, “Ingeniería de software clásica y orientada a objetos”, capítulo 6:

  

un módulo consiste en un único bloque de código que puede invocarse de la forma 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.

    
pregunta Hoan 07.10.2012 - 10:52

3 respuestas

13

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 se empaqueta en una sola unidad para que se pueda implementar fácilmente.

Por ejemplo, dapper.net encapsula el acceso a la base de datos. Cuenta con una API para acceder a su funcionalidad. Es un archivo único que se puede insertar en un árbol de origen para ser construido.

El concepto de módulo proviene de un paradigma de programación modular que aboga por que el software se componga de componentes separados e intercambiables llamados módulos al desglosar las funciones del programa en módulos, cada uno de los cuales cumple una función y contiene todo lo necesario para lograrlo.

    
respondido por el theD 07.10.2012 - 11:21
10

El módulo podría ser un término sobrecargado, tanto que Wikipedia lo describe bajo el término Programación modular cuando se habla de su uso relativo al 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 relacionada con el uso del bajo acoplamiento y alto cohesion .

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 a partir de un archivo fuente (.c o .cpp) y típicamente un archivo de encabezado asociado (.h). Otros lenguajes utilizan el módulo como una 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 otras implicaciones, como se describió en D.L. Parnas documento "Sobre los criterios que se utilizarán para descomponer el software en módulos" . A él le preocupa principalmente discutir los beneficios de reemplazar la descomposición funcional con la descomposición orientada a los 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 las clases, por lo que tal vez el término módulo sea menos importante y menos preciso en ese contexto.     

respondido por el DeveloperDon 07.10.2012 - 11:34
6

No existe una definición formal de un módulo, y lo que un módulo está (o no está) 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.

    
respondido por el Roc Martí 07.10.2012 - 11:19

Lea otras preguntas en las etiquetas