Modularización en Programación

En este artícu­lo vamos a ver qué es la MODULARIZACIÓN en pro­gra­mación y por qué es impor­tante apli­car­la. Además vamos a ver ejem­p­los de apli­cación en lengua­je C# ori­en­ta­do a Unity.

¿Qué es la MODULARIZACIÓN en programación?

La pal­abra mod­u­lar­ización proviene de módu­lo, cuya defini­ción tex­tu­al es: "Ele­men­to con fun­ción propia con­ce­bido para poder ser agru­pa­do de dis­tin­tas man­eras con otros ele­men­tos con­sti­tuyen­do una unidad may­or."

La mod­u­lar­ización es el pro­ce­so por el cual selec­cionamos y agru­pamos instruc­ciones de pro­gra­mación que cumplen una fun­ción específica.

Estos módu­los los con­stru­imos uti­lizan­do "MÉTODOS", los cuales son blo­ques agru­pa­dos de códi­go que real­izan una fun­ción específica.

Tengo un par de vídeos sobre "métodos" y un ejemplo de implementación

En este vídeo vemos teoría sobre méto­dos en pro­gra­mación, qué son, para qué sir­ven, cómo se definen.


En este vídeo vemos ejem­p­los de méto­dos en pro­gra­mación para resolver tar­eas específicas

Por qué es importante la MODULARIZACIÓN 

Supong­amos que ten­emos un prob­le­ma, tan com­ple­jo como se quiera y cuya solu­ción con­siste en eje­cu­tar tan­tas instruc­ciones de pro­gra­mación como se nece­site. Uti­lizan­do módu­los de pro­gra­mación, podemos con­stru­ir una solu­ción que se pue­da eje­cu­tar emple­an­do una sola instruc­ción, esta instruc­ción lo que hará es ir al con­tenido del módu­lo, eje­cu­tar cada una de sus instruc­ciones y al finalizar el pro­gra­ma retornará al pun­to donde se hizo la lla­ma­da al módulo.

La ven­ta­ja de esto es que el módu­lo lo creamos una úni­ca vez y luego lo podemos reuti­lizar cuan­tas veces sea nece­sario y des­de cualquier parte del códi­go, además ya no nece­si­ta­mos pen­sar en el fun­cionamien­to inter­no del módu­lo, lo uti­lizamos como un con­jun­to que sabe­mos que va a realizar deter­mi­na­da fun­ción. En otras pal­abras, aumen­ta­mos el gra­do de abstrac­ción de nue­stro código.

reutilización de código utilizando módulos de programación
Fig. 1: A izquier­da una lista de instruc­ciones con códi­go repeti­do. Con un módu­lo podemos reuti­lizar el códi­go y obten­er algo más com­pacto como se ve a la derecha.

Características de los módulos en programación

Respecto a la Funcionalidad

Un módu­lo debe ten­er una fun­ción especí­fi­ca y no ir más allá de sus respon­s­abil­i­dades. Por ejem­p­lo, si ten­emos un módu­lo que se encar­ga de cal­cu­lar cal­cu­lar el pro­duc­to de dos números y devolver el resul­ta­do, no sería ade­cua­do que además impri­ma men­sajes en pan­talla o haga otra cosa que vaya más allá de su propósito.

Respecto a la Identificación

Los módu­los tienen un nom­bre de iden­ti­fi­cación que nos per­mite eje­cu­tar­los, es recomend­able que eli­jamos este nom­bre de modo que sea lo más rep­re­sen­ta­ti­vo posi­ble de la fun­ción que real­iza, de esa for­ma resul­ta más intu­iti­vo a la hora de usarlo.

Parámetros de entrada

Los módu­los pueden acep­tar datos de entra­da que serán uti­liza­dos por sus instruc­ciones inter­nas para realizar la función. 

Al momen­to de definir un módu­lo se deben indicar todos los parámet­ros que requiere y de qué tipo de dato se tra­ta. Al momen­to de eje­cu­tar el módu­lo se deben agre­gar todos los parámet­ros nece­sar­ios, en el orden estable­ci­do y deben ser del tipo correcto.

Parámetro de salida

Los módu­los pueden devolver un dato como resul­ta­do de su ejecución. 

Al momen­to de definir un méto­do se debe indicar el tipo de dato que devuelve y la últi­ma instruc­ción del módu­lo debe ser la devolu­ción de ese dato. Al momen­to de la eje­cu­ción del módu­lo, se debe ten­er en cuen­ta que el lla­ma­do a ese méto­do impli­ca como resul­ta­do un dato, por lo tan­to hay que ver qué se hace con ese dato, podemos por ejem­p­lo asig­narlo a una vari­able o un objeto.

Visibilidad

Cuan­do defin­i­mos un módu­lo podemos dar­le dis­tin­tos tipos de vis­i­bil­i­dad que lim­i­tarán el acce­so a ellos, por ejem­p­lo los módu­los que pertenecen al fun­cionamien­to inter­no de una clase de pro­gra­mación usual­mente se definen como pri­va­dos, para que no pue­da acced­er­se a ellos des­de un con­tex­to exter­no a esa clase.

En C# ten­emos tres tipos de vis­i­bil­i­dad, públi­ca, pri­va­da y protegida. 

La vis­i­bil­i­dad públi­ca impli­ca que la fun­ción puede ser acce­di­da des­de cualquier con­tex­to, es decir podemos por ejem­p­lo eje­cu­tar la fun­ción des­de otro script de pro­gra­mación.

La vis­i­bil­i­dad pri­va­da impli­ca en tér­mi­nos sim­ples que el módu­lo sólo puede ser acce­di­do des­de el mis­mo Script de programación.

La vis­i­bil­i­dad pro­te­gi­da se uti­liza cuan­do ten­emos heren­cia de clases y sirve para que las sub­clases puedan acced­er a estos módu­los, pero no las clases externas.

características de un módulo de programación
Fig. 2: En esta ima­gen están resum­i­das las car­ac­terís­ti­cas prin­ci­pales de un módu­lo de programación.

Definición de un módulo en C#

Para crear un módu­lo en C# vamos a usar la sin­taxis de declaración de un méto­do de pro­gra­mación, la cual con­siste en indicar primero el tipo de vis­i­bil­i­dad, luego el tipo de dato de retorno (o escribir "void" si no retor­na datos), a con­tin­uación el nom­bre de iden­ti­fi­cación del módu­lo (se recomien­da ini­ciar con mayús­cu­la y usar camel case), luego entre parén­te­sis todos los datos que requiere el méto­do incluyen­do el tipo dato y final­mente se abre y se cier­ran las llaves. Todas las instruc­ciones del módu­lo estarán den­tro de esas llaves.

En la figu­ra 3 podemos ver la sin­taxis de var­ios módu­los genéri­cos, todos ellos con vis­i­bil­i­dad públi­ca (para que sea pri­va­da hay que uti­lizar la pal­abra "pri­vate").

Arri­ba a la izquier­da ten­emos un módu­lo que no devuelve datos (en la defini­ción se uti­liza void) y tam­poco requiere parámet­ros de entra­da (se abre y cier­ra paréntesis).

Arri­ba a la derecha ten­emos un méto­do que no devuelve datos y requiere una can­ti­dad N de parámet­ros (vemos que entre parén­te­sis se incluyen los datos sep­a­ra­dos por coma). El parámetro p1 podría ser por ejem­p­lo "bool b1" indi­can­do que es de tipo bool y su nom­bre es "b1". Osea que den­tro del módu­lo podemos uti­lizar b1 sabi­en­do que es la infor­ma­ción que viene del exterior.

ejemplos genéricos de la sintaxis de los módulo de programación
Fig. 3: Ejem­p­los genéri­cos de la sin­taxis de los módu­los en programación.

En la figu­ra 3, aba­jo a la izquier­da ten­emos un méto­do que no requiere parámet­ros de entra­da pero si devuelve un dato, ya que al lado de pub­lic dice "datoX". En lugar de datoX ten­emos que pon­er un tipo de dato, como una vari­able prim­i­ti­va o un obje­to, por ejem­p­lo "int" indi­ca que el módu­lo devuelve un val­or entero, mien­tras que "Vector3" indi­ca que el módu­lo va a devolver un obje­to de la clase Vector3. Nótese que al final del méto­do se devuelve un val­or de nom­bre X, este val­or debe ser del mis­mo tipo que fue declar­a­do en el método.

En la figu­ra 3, aba­jo a la derecha ten­emos un méto­do que requiere parámet­ros y devuelve un dato.

Ejemplo de un módulo en C#: Calcular el área de un círculo de determinado radio

Vamos a dis­eñar un módu­lo que se encar­gue de cal­cu­lar el área de un cír­cu­lo, este módu­lo recibirá como parámetro un val­or real que rep­re­sen­ta el radio del cír­cu­lo y devolverá un val­or real que será el val­or del área de un cír­cu­lo con ese radio.

Pseudocódigo

Fun­ción AreaCir­cu­loDeRa­dio (REAL radio)
- INICIO
- — Real area <- PI * radio * radio
- — Devolver area
- FIN

Implementación en C#

La sin­taxis en lengua­je C# de un méto­do basa­do en el pseudocódi­go ante­ri­or es la siguiente.

Definición del módulo

private float AreaCirculoDeRadio(float radio){
      float area = Mathf.PI * radio * radio;
      return area;
}

Por supuesto no es la úni­ca opción, tam­bién puede ser definido de esta forma:

private float AreaCirculoDeRadio(float radio){
      return Mathf.PI * radio * radio;
}

Utilización del módulo

Luego podemos por ejem­p­lo hac­er uso de este módu­lo de pro­gra­mación des­de el méto­do Start de Uni­ty de la sigu­iente forma:

void Start(){
      float r = 5;
      float a=AreaCirculoDeRadio(r);
      Debug.Log("El área de un círculo de radio "+r+" es: "+a+".");
}

1 comentario en “Modularización en Programación”

  1. Pingback: { Sentencia IF - Estructura de Control Alternativa } - Programación Básica

Los comentarios están cerrados.

Scroll al inicio
Secured By miniOrange