¿Qué es programación modular?
Si estás comenzando a estudiar programación y te encuentras en la situación de no entender algunos conceptos, te podemos dar una mano. Muchas veces, cosas que suenan complicadas son en verdad muy fáciles de entender.
Uno de los ejemplos más claros es el llamado paradigma de la programación modular. No te preocupes más, te vamos a ayudar con eso.
Qué vas a encontrar aquí: Qué es programación modular? Qué es el módulo? Historia de la programación modular. Características, tipos, ventajas, desventajas y usos de la programación modular. Lenguajes de programación.
Qué es programación modular?
Antes de comenzar, aquí encontrarás un super post sobre el que es programar y mucho más!
Como vimos, básicamente la programación modular consiste en dividir un programa en distintos subprogramas independientes. De esta forma el software principal se vuelve más fácil de manejar.
Pero además, los subprogramas resultantes del programa principal pueden también ser divididos en subprogramas más pequeños aún.
Lo que se busca con ello básicamente es poder lograr obtener subprogramas lo más simple posibles. De esta manera los problemas pueden ser resueltos de forma fácil por un lenguaje de programación.
Esto es gracias a que la programación modular permite en principio dividir la complejidad de un problema, y además se puede reutilizar el código de un programa en cualquier momento.
Para ello se utiliza la técnica denominada Top-Down o análisis descendente.
La técnica Top-Down hace posible diseñar una solución a un problema a través de la segmentación, y su nombre refiere a que este procedimiento se realiza de arriba hacia abajo.
En informática, la programación modular utiliza el proceso de segmentación, con lo cual se diseñan pequeños bloques de códigos independientes para subprogramas, que serán parte luego del software mayor.
Ten en cuenta que en la mayoría de los casos esta técnica Top-Down se utiliza en conjunto con pseudocódigo, para de esta manera poder generar una herramienta de diseño de algoritmos adecuada.
En el proceso de segmentación entran en juego los módulos, los cuales además se integran entre sí de manera jerárquica para conformar el programa que se está desarrollando.
Qué es el módulo?
Como ya te podrás imaginar, cada uno de los módulos son parte integrante de un conjunto superior, es decir de un programa mayor.
Es decir que cada módulo de un programa es básicamente cada una de las partes de ese programa, y que fueron creados como subprogramas con tareas para específicas y definidas.
Entonces podemos decir que cada módulo es un segmento, una rutina, una subrutina, un subalgoritmo o un procedimiento que permite ejecutar una tarea específica, y que opera dentro del módulo principal.
Sin embargo, cabe aclarar que un módulo no es simplemente una función o un procedimiento, porque en realidad puede contener en sí muchos de ellos.
Por ende, ten en cuenta que cada módulo es un bloque de sentencias que resuelve un problema particular.
Debido a su independencia del resto de los módulos, cada uno de ellos tiene la particularidad que puede ser modificado sin afectar al resto.
En resumen, la programación modular está compuesta por dos tipos de módulos:
- El módulo principal: Es el que concentra al resto de los módulos y es el único que puede ejecutar las funciones de los módulos auxiliares. Es el encargado de coordinar la ejecución de los demás módulos.
- Los módulos auxiliares: Son archivos ejecutables separados, pero que sólo funcionan cuando son ejecutados por el módulo principal. Son los que resolverán cada de una las tareas concretas del problema.
Historia de la programación modular
Si repasas la historia de la programación modular, encontrarás que en definitiva es considerada como la evolución de la programación estructurada.
Si nos remontamos a los comienzos de la historia de la computación, encontramos que las primeras computadoras eran equipos complejos pero que tenían una capacidad ciertamente limitada para resolver problemas.
Con el paso de los años y gracias al surgimiento del lenguaje ensamblador y los primeros lenguajes de alto nivel, comenzó la evolución de la programación.
Sin embargo, con la llegada de los lenguajes de alto nivel, a la par fue creciendo la complejidad de los programas. Por ende, los programadores se vieron ante el desafío de escribir códigos más acordes a esas necesidades.
Por aquella época, los programadores utilizaban la conocida sentencia GOTO, proveniente del lenguaje ensamblador, para poder transferir el control de ejecución desde un punto del programa hacia otro.
Sin embargo, este procedimiento causaba inconvenientes y por ende generaba errores y se volvía casi imposible seguir el flujo de control del programa.
Ten en cuenta que se trataba de programas que realmente abusaban de la sentencia GOTO, y terminaban generando un caos de programación. A los programas con estas características se los solía llamar despectivamente “código espagueti”.
Fue a finales de los años sesenta y comienzos de la década de los setenta que nace la programación estructurada. Con ella se incorporaron estructuras de control de flujo, que permitieron que un programa fuera más fácil de trazar.
A partir de allí surgió un nuevo inconveniente.
Los desarrolladores vieron que en el funcionamiento de programas grandes y complejos, era imperioso dividir el programa en unidades más pequeñas.
Es allí precisamente donde surge el concepto de la programación modular.
Claro que al principio generó ciertas divergencias entre aquellos que preferían diferentes enfoques para la programación modular. Estos enfoques eran:
- Top-Down: De arriba hacia abajo. Conocida también como programación descendente. En este enfoque los módulos surgen hacia abajo, y se van generando más módulos a medida que se baja de nivel.
- Bottom-Up: De abajo hacia arriba. Toma primero la programación de los módulos del nivel más bajo, y luego van surgiendo los módulos de niveles superiores.
Mientras que el modelos planteado por Bottom-Up fue ampliamente utilizado en los primeros tiempos, sobre todo en las fases de pruebas de la programación modular, lo cierto es que finalmente el enfoque más utilizado terminó siendo Top-Down, el cual fue promovido por Harlan Mills y Niklaus Wirth en los años setenta.
Durante muchos años, la programación modular con enfoque Top-Down fue el estándar más utilizado en la programación. Hoy la programación orientada a objetos se ha posicionado como un reemplazo mucho más acorde a las necesidades actuales.
Características de la programación modular
En la programación modular la premisa es que todo programa tiene un módulo principal.
A su vez ese módulo está dividido en submódulos. Cada uno de estos submódulos ejecutan una tarea específica, por lo que su código es independiente.
A pesar de esa independencia, el control siempre lo tendrá el módulo principal.
Debido a esta conformación, la programación modular incluye una serie de características esenciales. Estas características son las siguientes:
Modularidad
- El programa incluye subprogramas que han sido desarrollados con códigos independientes.
- Cada módulo es un conjunto de sentencias que permiten realizar una acción u operación.
- Gracias a su modularidad, la programación modular permite disponer de pequeños módulos o sentencias simples que se acoplan a la función principal del software, en reemplazo de una única función principal larga.
- Cada uno de los módulos es más fácil de comprender, con lo cual es posible al final tener una gran solución para un problema complejo.
- La comunicación entre estos subprogramas se realiza por medio de parámetro=variable.
Funcionalidad
- En la programación modular es necesario utilizar funciones que incluyen definición, comandos y sentencias.
- Todas las funciones incluyen una sentencia de retorno.
- Las funciones utilizan las sentencias de las variables adicionales.
Variable
- La programación modular incluye variables que se encuentran dentro de la función principal del programa.
- Con cada función que se ejecuta, las variables tienen un valor específico, aunque como su nombre lo indica, este valor puede cambiar cada vez que se lleva a cabo dicha función.
- Existen dos tipos de variables: Las variables locales y las variables globales. Estas últimas son definidas de forma externa al programa principal, pero están relacionadas a las funciones que se encuentran dentro del programa.
Procedimental
- Está orientada por completo a la escritura de código para la creación de funciones.
- No toma en cuenta los datos.
Tipos de programación modular
Como ya hemos visto, existen dos tipos de programación modular.
Por un lado la generada de arriba hacia abajo, es decir la técnica llamada Top-Down y conocida en el mundo de la programación como programación descendente.
Aquí los módulos surgen de arriba hacia abajo, y van surgiendo módulos más simples y pequeños a medida que se baja de nivel.
Por otro lado existe la programación modular de abajo hacia arriba, conocida como Bottom-Up.
Al contrario de la anterior, en esta técnica se utiliza en primer lugar la programación de los módulos del nivel más bajo.
Luego de ello se van generando los módulos de niveles superiores.
Ventajas de la programación modular
Como has podido ver hasta ahora, la programación modular tiene muchas ventajas. Algunas de las mismas son:
- Gracias a su estructuración, es capaz de reducir la complejidad y los alcances del problema.
- Debido a lo anterior, también es posible reducir el tamaño del problema.
- También favorece el entendimiento del problema. Esta característica es muy interesante cuando más de un programador tiene que hacerse cargo del mantenimiento del programa.
- Facilita la cooperación entre programadores. Esto es muy útil en proyectos muy grandes y complejos.
- Una de las características más importantes es la posibilidad de reutilizar el código.
- La estructura de la programación modular permite que el código se pueda escribir y leer con más facilidad. Una opción más que interesante en proyectos en los que participan muchos programadores.
- También te permite que la lógica del programa sea mucho más clara. Un punto a favor en proyectos grandes.
- La estructura de la programación modular permite proteger la ejecución del programa. Es decir que tiene la capacidad de proveer seguridad para evitar que se destruyan datos en forma accidental.
- La propia estructuración de la programación modular posibilita una solución rápida y efectiva de los problemas mayores. Luego de ello los programadores podrán centrarse en los detalles menos importantes, como la GUI y demás.
- Con respecto a la depuración de los errores de un desarrollo, esta es mucho más sencilla de llevar a cabo. Esto es debido a que en primera instancia se corrigen errores en los módulos del nivel inferior. En este mismo sentido, se favorece la modificación del código.
- En la programación modular, el desarrollo del programa es independiente del proyecto.
- La característica más destacada de la programación modular es sin dudas la posibilidad de desarrollar programas mucho más eficientes.
- Otra ventaja de este tipo de programación es la posibilidad de la utilización múltiple de los módulos.
Desventajas de la programación modular
Así como la programación modular tiene sus claras ventajas, también ofrece una buena cantidad de desventajas con respecto a otros paradigmas de programación.
Alguna de las desventajas de la programación modular son las siguientes:
- Ofrece una estructura por demás orientada a objetos. La programación modular usa interfaces, lo cual es muy eficiente. Para ello, muchos frameworks ofrecen sets completos de clases intercambiables. Ejemplos de ellos existen varias clases capaces de implementar una interfaz de persistencia. Pero esto lleva a confusión cuando se utilizan entornos de desarrollo integrado, conocidos como IDE. En este sentido, en el caso de querer hallar la fuente de un método, por ejemplo el IDE podría mostrar una extensa lista de archivos. Todos con referencia a un método con ese nombre.
- Otra desventaja importante de la programación modular es que existen muchos módulos que contienen funciones mínimas. Todos estos módulos, a la hora de ejecutar el programa, suman tiempo de procesamiento. Esto significa que si se usan muchos de estos módulos pequeños, se aumenta la necesidad de tiempo de proceso, tanto para la compilación como para la ejecución. Asimismo aumentará el tamaño del paquete del ejecutable.
Como saben todos los programadores, descomponer un código en módulos no tiene mucho sentido. Muchos de los códigos que se utilizan nunca cambian, y por ello no tiene demasiada razón intentar mejorarlos, ya que se funcionan a la perfección. En este sentido, existen códigos muy usados que no se ven muy lindos en el papel, pero que funcionaron a la perfección durante años.
Porque es importante la programación modular?
En este punto, es necesario destacar la importancia de la programación modular sobre los demás paradigmas de programación.
La programación modular te permite resolver un problema dividiéndolo en problemas más pequeños, más conocidos como subproblemas. Esto es de mucha importancia para el desarrollo de aplicaciones modernas.
Con la programación modular se obtiene una manera de resolver una tarea muy complicada resolviendo primero los problemas más pequeños que acarrea.
A este tipo de resolución de problemas en programación se le denomina como Top Down.
Usos de la programación modular
Como ya sabes a esta altura, la programación modular es solamente un concepto. Este concepto se puede aplicar al desarrollo de software en cualquier plataforma y en cualquier lenguaje de programación.
Más aún si es un lenguaje de programación de tipo procedimental, los cuales ofrecen el compilador en forma separada.
Otro de los usos de la programación reside en que las bibliotecas de componentes construidos a partir de módulos compilados por separado se pueden combinar mediante un enlazador. Esta es una herramienta de programación muy usada en esta técnica.
Una de las características fundamentales para que la programación modular sea exitosa es que los nombres de las funciones en los diferentes módulos deben ser únicos.
Con esto se hace más sencillo el acceso para cuando desees exportar las funciones utilizadas por el módulo principal.
Lenguajes de programación para la programación modular
En la actualidad uno de los lenguajes de programación más usados que soportan el concepto de programación modular es Java.
Sin embargo, existen otros lenguajes de programación que Java. Estos son algunos ejemplos:
- C
- Ada
- PL/I
- Erlang
- Pascal
- Algol
- COBOL
- RPG
- Haskell
- Python
- HyperTalk
- IBM/360 Assembler
- MATLAB
- Ruby
- IBM RPG
- SmallTalk
- Morpho
- Perl
Deja una respuesta
Buenas tardes compañeros me pueden explicar como se realiza la programacion modular, se loos agardeceria bastatnte