3.2. Clasificación de los módulos

Clasificación de los módulos
Imagen en pixabay de Hant bajo licencia CC

Los módulos o funciones podemos clasificarlos atendiendo a diferentes criterios.

En función de su situación con respecto al módulo que lo invoca:

  • Interno: se encuentra en el mismo fichero que el módulo que lo invoca.
  • Externo: se encuentra en distinto fichero.

Atendiendo al posible retorno de un valor:

  • Función: retorna un valor cuando devuelve el control al módulo que lo invocó. Dicho valor será recogido para usarlo en una expresión.
  • Procedimiento: no hace un retorno explícito de un valor al finalizar el módulo. Cuando se devuelve el control al módulo que hizo la llamada, la ejecución continúa en la sentencia siguiente a la que hizo la llamada.

En función de cuándo ha sido desarrollado:

  • De programa: su desarrollo se ha realizado integramente en el programa actual.
  • De librería: ha sido desarrollado previamente y está contenido en ficheros de librerías.

En función del número de módulos distintos que realizan la llamada:

  • Subprograma: es invocado por un solo módulo.
  • Rutina o subrutina: es invocado por diversos módulos.

En la práctica, una de las distinciones más claras en cuanto a módulos es la de funciones frente a procedimientos, el retornar o no un valor puede ser clave para continuar con el flujo natural y correcto de un programa.

.

Para establecer la relación o acoplamiento entre varios módulos o funciones son necesarios los llamados parámetros o argumentos. De esta forma se llama a un módulo concreto pasando con una serie de parámetros para que, a partir de ellos, dicho módulo se ejecute teniéndolos en cuenta a modo de caja negra hasta devolver el resultado correspondiente.

Datos de entrada

(parámetros)

Proceso

(módulo)

Datos de salida

(resultados)

El ámbito de un identificador, ya sea una variable, una función, un procedimiento, etc, es la parte del programa donde este identificador puede ser utilizado, porque se conoce su existencia.

De esta forma, en función de su ámbito, las variables se pueden clasificar en globales y locales.

  • Variables globales: se definen en un lugar concreto del programa que no pertenezca a ninguno de los módulos o bien deben tener un identificador especial que permita diferenciarlas. Dependiendo de dónde se definan, su ámbito será distinto. Así, si se definen al comienzo del programa, su ámbito de validez es todo el programa (todos los módulos). Sin embargo, si se definen en otro punto del programa (punto intermedio), su ámbito de validez es el resto del programa (los módulos que están a continuación de la definición).
  • Variables locales: deben estar definidas dentro de un módulo del programa y será en ese módulo donde tendrán su ámbito de validez. En el caso de definir una variable local dentro de un bloque que a su vez pertenece a un módulo, su ámbito de validez será dicho bloque.