0% encontró este documento útil (0 votos)
4 vistas17 páginas

Fundamentos de Programación Modular

Cargado por

erikamesa588
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas17 páginas

Fundamentos de Programación Modular

Cargado por

erikamesa588
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

Facultad de Ciencias

Carrera de Bioquímica y Farmacia

Investigación Formativa

TEMA:

“PROGRAMACIÓN MODULAR”

Integrantes: Códigos:

Aushay Guevara Jessica Nayerly 4911

Castro Tamayo Joshua Eliel 4917

Mesa Palma Erika Estefanía 4930

Moyón Samaniego María Milena 4932

Naranjo Peralvo Karol Nicole 4870

Ruiz Paredes Areli Paulina 4938

Primer Nivel Paralelo “B”

Fundamentos De Programación

Ing. Osvaldo Villacres C., Mgs.

Fecha de entrega: 09/06/2025


1. Introducción

En la actualidad, la informática y el desarrollo de software requieren que la programación sea

eficiente y clara para abordar problemas complejos. En este sentido, la programación modular se

presenta como una metodología organizada que consiste en separar un programa en módulos

independientes que colaboran entre sí. El objetivo de este trabajo es examinar los fundamentos

de la programación modular, analizando su estructura, propiedades y uso en la elaboración de

algoritmos, para así entender su relevancia en la solución sistemática de problemas informáticos

y en la generación de código que sea eficiente y fácil de reutilizar. A través de un enfoque tanto

teórico como práctico, se pretende resaltar los beneficios de este modelo y su valor tanto en el

proceso de aprendizaje como en el ámbito profesional del desarrollo tecnológico.

2. Objetivos

2.1. Objetivo General

Analizar los principios de la programación modular, a través del estudio de su estructura,

características y aplicación en la construcción de programas, para comprender su importancia en

la resolución estructurada de problemas y en la creación de algoritmos eficientes y reutilizables.

2.2. Objetivos Específicos

Comprender el concepto de programación modular, mediante su análisis teórico y ejemplos

prácticos en entornos informáticos, para reconocer su utilidad en la organización y desarrollo de

programas más estructurados.

Identificar las características y ventajas del enfoque modular, a través del estudio comparativo

con otros métodos de programación, para valorar su importancia en la optimización del código y

en la reutilización de componentes
Aplicar estructuras de repetición junto a la programación modular, elaborando algoritmos que

trabajen con vectores y condiciones específicas, para resolver problemas de manera ordenada y

eficiente.

Desarrollar algoritmos que utilicen módulos y subprogramas, implementando funciones o

procedimientos que ejecuten tareas determinadas, para facilitar la comprensión, mantenimiento y

escalabilidad del código.

3. Marco teórico

3.1. Programación Modular

La programación modular es una técnica de programación que consiste en descomponer

nuestro programa en partes llamadas módulos y escribir cada módulo por separado. El concepto

de módulo hay que entenderlo en sentido amplio: cualquier parte de un programa se podría

considerar «módulo» (Pérez, 2024).

Equivale a la técnica clásica de resolución de problemas basada en:

1) Descomponer un problema en subproblemas.

2) Resolver cada subproblema por separado.

3) Combinar las soluciones para así obtener la solución al problema original.

La modularidad es una característica propia de los programas desarrollados bajo los

principios de la programación modular. Esta forma de descomponer y organizar problemas no

solo se aplica en informática, sino también en diversas áreas científicas e industriales. Por

ejemplo, diseñar y construir un automóvil sería una tarea muy compleja si se considerara como

un conjunto único de componentes mezclados (Pérez, 2024).


Figura 1. Ejemplo de programación modular

Además, reparar una falla sería complicado, ya que cambiar una pieza podría afectar otras de

manera inesperada. Estas partes, conocidas como módulos, son componentes relativamente

independientes que se relacionan con otros mediante conexiones bien definidas. Algunos

ejemplos en un automóvil serían:

 Frenos

 Luces

 Sistema de climatización

 Dirección

 Motor

 Carrocería

El propósito de la modularidad en programación es transformar el desarrollo de software en un

proceso basado en la creación y ensamblaje de bloques funcionales. Cada uno de estos bloques

debe tener un propósito claro y ser útil por sí mismo. Al integrarlos correctamente, se construye

el programa deseado.
Para lograr esto, el enfoque modular se puede analizar tanto desde una perspectiva

metodológica como desde una aplicación práctica. Sin embargo, si se divide el automóvil en

partes, se analiza cada una por separado y se establece claramente cómo se relacionan entre sí,

resulta mucho más sencillo comprender su funcionamiento y realizar ajustes.

3.2. Características de programación modular

La programación modular es una técnica de desarrollo que permite dividir un problema

complejo en partes más pequeñas llamadas módulos. Esta metodología mejora la comprensión

del programa, facilita su mantenimiento y promueve la reutilización del código (Joyanes Aguilar,

2012).

A continuación, se describen las principales características de la programación modular:

 División en módulos independientes

El programa se estructura en diferentes módulos, cada uno encargado de una función

específica. Esto permite una solución ordenada y estructurada de problemas complejos (Joyanes

Aguilar, 2012).

 Reutilización del código

Los módulos pueden ser utilizados en distintos programas sin necesidad de ser reescritos, lo

cual ahorra tiempo y reduce errores al trabajar con componentes previamente probados.

 Facilidad de mantenimiento

Al estar dividido en módulos, cualquier modificación o mejora puede realizarse en una parte

específica del código sin afectar el resto del programa, lo que permite un mantenimiento más ágil

y efectivo (Joyanes Aguilar, 2012).


 Independencia funcional

Cada módulo se desarrolla como una unidad independiente, recibiendo entradas y generando

salidas sin depender del funcionamiento interno de otros módulos. Esto mejora la organización

del sistema (Gutiérrez & Rodríguez, 2015).

 Mejor legibilidad del código

La estructura modular permite escribir programas más organizados, con nombres descriptivos

y bloques de código fácilmente comprensibles para otros desarrolladores.

 Facilidad en la depuración y prueba:

La posibilidad de probar cada módulo por separado facilita la detección de errores y la

validación del funcionamiento de cada parte del programa (Joyanes Aguilar, 2012).

 Trabajo colaborativo

La programación modular permite que distintos programadores trabajen simultáneamente en

diferentes módulos, lo cual acelera el desarrollo y mejora la gestión del proyecto.

 Uso de interfaces claras

Los módulos se comunican mediante interfaces bien definidas, lo que reduce los errores y

garantiza una integración fluida entre componentes (Gutiérrez & Rodríguez, 2015).

3.3. Ventajas de utilizar programación modular

Las ventajas de utilizar programación modular son múltiples y fundamentales para el

desarrollo eficiente y mantenible de software. A continuación, se presentan cuatro ventajas clave:

1. Mantenimiento más sencillo


La programación modular permite actualizar, corregir o mejorar partes del programa sin

afectar todo el sistema, lo que facilita el mantenimiento.

Según Pressman (2010), la modularidad permite que el software sea más fácil de modificar y

mantener, ya que los cambios pueden hacerse en módulos individuales sin interferir con otros.

2. Desarrollo más rápido y eficiente

Los módulos pequeños e independientes son más fáciles de entender, diseñar y probar, lo que

acelera el desarrollo del software.

"Los programas se pueden desarrollar más rápidamente, ya que los módulos pequeños e

independientes son más fáciles de entender, diseñar y probar que los programas grandes"

(Lifeder, 2020).

3. Facilidad de depuración y mantenimiento

Al estar divididos en partes más pequeñas, los errores son más fáciles de localizar y corregir, y

los módulos probados pueden reutilizarse sin necesidad de volver a probarlos.

"Un módulo es más pequeño que un programa completo, por lo que resulta más fácil probarlo.

Después de que se haya probado un módulo, podrá usarse en un nuevo programa sin tener que

probarlo de nuevo" (Lifeder, 2020).

Además, "una pieza más pequeña de código tiende a representar una sola función, y es mucho

más fácil de entender su funcionamiento interno" (IBM, 2025).

4. Mejor organización y división del trabajo

La modularidad permite dividir el trabajo entre programadores y facilita la comprensión del

código, haciendo que el flujo lógico sea más claro y evitando efectos secundarios no deseados.
"La modularidad se presta a una mayor división del trabajo... una pieza más pequeña de

código tiende a representar una sola función, y es mucho más fácil de entender su

funcionamiento interno" (IBM, 2025).

5. Facilita el trabajo independiente y en equipo

La programación modular permite que varios programadores trabajen en diferentes módulos

de forma independiente, lo cual es fundamental para proyectos grandes y complejos.

"Varios programadores pueden trabajar en el mismo proyecto si está dividido en módulos.

Diferentes programadores pueden diseñar de forma independiente distintos módulos del

programa" (Lifeder, 2020).

3.4. Desventajas de utilizar programación modular

1. Complejidad en el diseño inicial

El desarrollo modular requiere una planificación detallada desde el inicio del proyecto. La

división lógica en módulos exige definir interfaces precisas y dependencias claras, lo que puede

resultar complejo en sistemas grandes. (Gaddis, 2021, p. 132).

2. Mayor tiempo de desarrollo

Aunque facilita el mantenimiento posterior, la programación modular puede extender el

tiempo de codificación en la fase de implementación debido a la necesidad de coordinar

múltiples módulos. (Pressman & Maxim, 2020, p. 310).

3. Sobrecarga en el rendimiento
El uso de múltiples módulos puede implicar mayor uso de memoria y más llamadas a

funciones, lo que conlleva una ligera penalización en el rendimiento. (Sommerville, 2011, p.

279).

4. Dificultades en la integración

Integrar los diferentes módulos puede ser problemático si no se respetan adecuadamente las

interfaces definidas o si hay dependencia circular. (Gaddis, 2021, p. 133).

3.5. Subprograma o función

Un subprograma es una porción de código reutilizable que realiza una tarea específica y puede

ser llamado desde múltiples partes de un programa principal o de otros subprogramas. En el

contexto de la tecnología y la informática actual, los subprogramas siguen siendo un elemento

fundamental en la estructuración y modularidad del software.

Figura 2. Subprogramas

Estos subprogramas encapsulan funcionalidades específicas, lo que permite a los

desarrolladores crear programas más organizados, eficientes y fáciles de mantener.


Algunas de las aplicaciones más relevantes de los subprogramas en la actualidad incluyen:

 Procesamiento de datos y cálculos matemáticos complejos

 Implementación de algoritmos de seguridad y cifrado

 Generación de informes y visualización de datos

Una función es un subprograma que retorna un valor simple. Las funciones se invocan dentro

de una expresión.

Funciones estándar: ord, succ, pred, sqrt, chr, trunc, etc.

3.6. Parámetro

Un parámetro es un mecanismo utilizado para transferir información, es decir, valores

asignados a variables desde el programa principal hacia un procedimiento. Esta transferencia

permite establecer una conexión funcional entre distintas partes del programa. Cuando un

procedimiento no posee parámetros, no existe comunicación entre el programa principal y el

procedimiento, ni entre procedimientos entre sí; por tanto, actúan de forma independiente. En

contraste, los procedimientos con parámetros permiten la interacción y el intercambio de datos

entre el programa principal y los procedimientos, o entre distintos procedimientos.

Cuando el algoritmo principal llama a una función o procedimiento, se establece una

correspondencia entre los parámetros actuales (valores enviados) y los parámetros formales (las

variables que los reciben en la función o procedimiento), manteniendo el mismo orden en que

fueron enviados. Además, tanto en pseudocódigo como en los lenguajes de programación,

existen dos tipos de paso de parámetros: por valor, que transfiere una copia del dato, y por

referencia, que transfiere la dirección de memoria, permitiendo modificar el valor original

(Sorribas, s.f.).
Figura 3. Parámetros

Tipos de parámetros

1. Parámetros por valor (Entrada)

Los parámetros por valor permiten enviar información a una función o procedimiento

copiando los valores desde el programa principal. En este caso, los parámetros formales reciben

una copia de los valores enviados, lo que implica que cualquier modificación realizada dentro de

la función no afecta a los valores originales utilizados en el algoritmo principal. Es decir, el

procedimiento trabaja con una réplica local del dato, y no con el dato original.

En el lenguaje PSeInt, para declarar parámetros por valor se puede utilizar la siguiente

sintaxis:

Funcion Nombre_Funcion(argumento1 Por Valor, argumento2 Por Valor, ..., argumento

N Por Valor)

No obstante, también es válido omitir la expresión "Por Valor", ya que, si no se especifica el

modo de paso de parámetro, se asume por defecto que es por valor:

Funcion Nombre_Funcion(argumento1, argumento2, ..., argumento N)


Este tipo de paso de parámetros es útil cuando se requiere proteger los datos originales de

modificaciones involuntarias durante la ejecución del procedimiento o función (Arteaga

Martínez, 2023).

2. Parámetros por referencia (Entrada/Salida O Salida)

En el paso de parámetros por referencia, lo que se transfiere no es una copia del valor, sino la

dirección de memoria del parámetro actual. Esto significa que cualquier modificación que se

realice dentro del procedimiento o función afectará directamente al valor original en el programa

principal, ya que ambos (el parámetro formal y el actual) apuntan al mismo espacio de memoria.

En este tipo de paso de parámetros, los cambios que se aplican a los parámetros formales

durante la ejecución del subprograma se reflejan automáticamente en los parámetros actuales,

permitiendo así una comunicación bidireccional entre el subprograma y el algoritmo principal.

Es ideal cuando se desea que el procedimiento devuelva valores modificados al llamador.

En PSeInt, este tipo de parámetros se declara utilizando la expresión "Por Referencia" junto a

cada argumento, lo que indica explícitamente que el parámetro será pasado por referencia. La

sintaxis es la siguiente:

Funcion Nombre_Funcion (argumento1 Por Referencia, argumento2 Por Referencia, ...,

argumento N Por Referencia)

A diferencia del paso por valor, aquí es obligatorio especificar "Por Referencia", ya que de

lo contrario el sistema lo interpretará como un paso por valor (Arteaga Martínez, 2023).

Ejecución del algoritmo según el tipo de paso de parámetros


Cuando se ejecuta un algoritmo, el resultado varía según el modo en que se pasen los

parámetros al procedimiento:

 Paso por valor: El resultado final será C = 17. Esto se debe a que, al pasarse la

variable por valor, el procedimiento trabaja con una copia del dato original, por lo que

cualquier modificación interna no afecta la variable real del programa principal. Es

decir, el procedimiento no transmite de vuelta los cambios realizados, ya que no tiene

acceso directo a la dirección de memoria de C.

 Paso por referencia: El resultado mostrado en pantalla será C = 12. En este caso, el

procedimiento recibe la dirección de memoria de las variables, por lo que cualquier

cambio interno sí afecta directamente a las variables originales del programa principal.

Al iniciar el procedimiento, las variables x, y, z y v toman los valores 3, 3, 8 y 17

respectivamente. Es importante señalar que, al haberse pasado las variables x e y por

referencia y recibir ambas el mismo valor desde la variable A, comparten la misma

posición de memoria. Este detalle es crucial: cuando se ejecuta la instrucción x ← x +

1, el valor de x se actualiza a 4, y como y apunta al mismo lugar, también toma ese

nuevo valor. Por ello, la siguiente operación v ← y + z se convierte en v ← 4 + 8, lo

que da como resultado C = 12 (Sorribas, s.f.).

4. Conclusiones

 Se analizó la estructura, características y aplicación de la programación modular, lo

cual permitió comprender su relevancia en la resolución estructurada de problemas y

en la eficiencia del diseño de algoritmos reutilizables.


 Se comprendió el concepto de programación modular mediante su estudio teórico y a

través de ejemplos prácticos, lo que permitió reconocer su utilidad para organizar y

desarrollar programas con una estructura clara.

 Se identificaron las principales características y ventajas del enfoque modular en

comparación con otros métodos, lo que permitió valorar su papel en la optimización

del código y la reutilización de componentes.

 Se aplicaron estructuras de repetición en combinación con la programación modular,

desarrollando algoritmos que operan con vectores y condiciones específicas,

demostrando una forma eficiente y ordenada de resolver problemas.

 Se desarrollaron algoritmos utilizando módulos y subprogramas, lo que permitió

implementar funciones específicas, facilitando la comprensión del código, su

mantenimiento y escalabilidad.

5. Recomendaciones

 Es recomendable introducir el enfoque de programación modular desde los primeros

niveles de formación en programación, ya que esto contribuye al desarrollo de código

estructurado, comprensible y fácil de mantener.

 Se sugiere implementar actividades prácticas que integren el uso de módulos, funciones,

estructuras repetitivas y manejo de vectores, con el objetivo de reforzar la comprensión

de los conceptos teóricos abordados.

 Es importante incentivar la aplicación de normas adecuadas para la documentación del

código y la asignación de nombres significativos a las funciones, con el propósito de

mejorar su claridad y facilitar el trabajo colaborativo.


 Resulta beneficioso promover el análisis comparativo entre la programación modular y

otros enfoques de desarrollo, lo cual permite a los estudiantes y profesionales adquirir

criterios sólidos al momento de elegir técnicas de programación adecuadas.

 Se recomienda incluir el estudio detallado del uso de parámetros por valor y por

referencia al diseñar algoritmos, con el fin de comprender a fondo el flujo de datos dentro

del programa y optimizar su rendimiento.

6. Referencias Bibliográficas

Hanna, K. T., & Rouse, M. (2022, 13 December). applet. WhatIs. Recuperado de:

[Link]

Pressman, R. S. (2010). Ingeniería del Software: un enfoque práctico.

IBM. (2025). Modularidad. IBM Documentation. Recuperado de:

[Link]

Lifeder. (2020, marzo 8). Programación modular: características, ejemplos, ventajas. Lifeder.

Recuperado de: [Link]

Gaddis, T. (2021). Starting Out with Programming Logic and Design (5th ed.). Pearson

Education.

Arteaga Martínez, M. M. (2023). Lógica de programación con Pseint: enfoque práctico (1.ª

ed.). Medellín: Corporación Universitaria Remington. Recuperado de [Link]

[Link]/es/ereader/espoch/250650?page=112
Sorribas, G. (s.f.). Notas de clase 3. Facultad de Ciencias Exactas, Ingeniería y Agrimensura,

Universidad Nacional de Rosario. Recuperado de

[Link]

Pressman, R. S., & Maxim, B. R. (2020). Ingeniería del software: Un enfoque práctico (9.ª

ed.). McGraw-Hill.

Sommerville, I. (2011). Ingeniería del software (9.ª ed.). Pearson Educación.

Pérez, R. (2024). Programación modular (I). IES Doñana. Recuperado de:

[Link]

7. Parte Teorica

7.1. Utilice la estructura de repetición HACER-MIENTRAS para escribir las restricciones

del algoritmo que permita ingresar dos vectores de cualquier dimensión, el primer vector
debe contener números positivos comprendidos entre 10 y 100, el segundo vector debe

contener números comprendidos entre -10 y -100 o entre 200 y 350.

Permitir elegir una de las operaciones, según decida el usuario:

a. Encontrar la sumatoria entre los elementos del primer vector.

b. Calcular el promedio de cada vector.

c. Encontrar el mayor de entre los dos vectores.

d. Crear un nuevo vector que contenga todos los números del primer y segundo

vector, encontrar el promedio de los números del tercer vector.

7.2. Utilice la estructura de repetición MIENTRAS para escribir las restricciones. Algoritmo

que permita ingresar en un vector varios números enteros pares. Determine el mayor, el

menor y el promedio de entre los números guardados en el vector.

7.3. Utilice la estructura de repetición MIENTRAS para escribir las restricciones. Algoritmo

que permita ingresar en un vector varios números enteros impares comprendidos entre 5 y

500. Después, solicitar al usuario un número y buscarlo si el número está en el vector.

Muestra un mensaje indicando “NÚMERO ENCONTRADO” o “NÚMERO NO

ENCONTRADO”, y la posición que ocupa en el vector y cuantos existen en el vector.

También podría gustarte