Palabras clave: Programación modular
, Función
, Módulo
.
1. Módulos
En la resolución de problemas utilizando ordenadores hay problemas francamente complejos. Una de las estrategias más utilizadas es la de divide y venceras: se divide el problema en subproblemas más pequeños y la composición de las soluciones obtenidas en cada subproblema genera la solución del problema mayor. En términos de programación esto se traduce en que para cada subproblema tendremos un conjunto de funciones cuyo propósito de ser es la obtención de la "soluciones parcial" de dicho subproblema.
Un módulo es una función o una agrupación de funciones cuyo objetivo es resolver una parte de un problema mayor. |
Observa que de acuerdo a la definición dada de módulo, éste es relativo a la resolución de un subproblema. En efecto:
-
Cuando una función resuelve un subproblema completo, esa función constituye por sí mima un módulo.
-
Cuando un grupo de funciones se invocan entre ellas para resolver un subproblema ese grupo de funciones constituyen un módulo.
-
Además, podemos tener módulos que se usen reiteradamente para solventar algunas tareas de otros problemas. Por ejemplo, podríamos tener un módulo encargado solo para resolver el problema de captación de datos desde distintas fuentes y tener varios módulos que utilicen sus funciones para recoger algunos de esos datos.
2. Descomposición de módulos en ficheros
Todos los módulos pueden estar en un mismo fichero con todas sus funciones "desordenadas". De hecho así lo has estado programando hasta el momento. Sin embargo lo correcto es definir claramente los módulos (o subproblemas) de un programa y entonces agrupar las funciones de un mismo módulo en un fichero diferente de los demás.
De hacerse así, el programa final constará de un programa, llamado programa principal, y de un conjunto de funciones agrupadas, llamados módulos. El programa principal es el que tiene el control y es el que se encarga de ir invocando a las funciones de los distintos módulos.
La descomposición de módulos en ficheros presenta varias ventajas. Destacamos:
-
Puesto que cada fichero contiene un conjunto de funciones para un fin concreto, se puede reutilizar el mismo fichero en todos aquellos programas que necesiten resolver el mismo problema.
-
La división del problema en "ficheros" permite mejorar la compresión del programa y sus objetivos.
-
Al encontrarse una función en un fichero concreto, es más fácil depurar los programas en el caso de que sea necesario corregir algún error o realizar alguna modificación. Tus módulos siempre tendrán menos líneas de código que si los pusieras todos en un único fichero.
3. Descomposición de un programa en varios ficheros
Processing permite la creación de ficheros-módulos de una forma francamente sencilla. Debes seguir los siguientes pasos:
-
Crea un nuevo programa (sketch) y guárdalo. En este fichero tendrás tu función principal
setup()
y será tu programa principal. -
Pulsa el triángulo que se encuentra a la derecha de la pestaña que contiene el nombre del fichero.
-
Selecciona
New Tab
e introduce el nombre del nuevo fichero-módulo, que se guardará en el mismo directorio donde se encuentre tu programa principal. -
Incluye en el nuevo fichero las funciones que se corresponda a dicho módulo.
-
En el PDE tendrás una pestaña para el programa principal y otras tantas pestañas como módulos necesites.
Dale nombre significativos a los módulos para saber qué tipo de subproblemas resuelve. |
4. Repaso
-
Los módulos son conjuntos de funciones que resuelven un problema.
-
Un programa modular puede constar de un único fichero con todas las funciones que resuelven el problema - consta de un único módulo.
-
Pero un programa modular también puede constar de un programa principal y de varios módulos.
-
El programa principal es aquel que contiene a la función principal, que en Processing es
setup()
.