Está en la página 1de 11

presentacion

Nombre: Jorge Alberto Matos Matos

Matricula: A00109551

Asignatura: Programación y Estructura de Sistema Operativo

Tema: Programación Modular y sus Características

Profesor: Omar De La Cruz Gonzales

Semestre: Mayo-Agosto 2022


INTRODUCCION
PROGRAMACIÓN MODULAR Y SUS
CARACTERÍSTICAS
Esta nos permite:
 Dividir la complejidad de un problema
convirtiendo problemas complejos en un
conjunto de problemas más simples y por tanto
más sencillos de implementar.

 Reutilizar el código de un programa en


cualquier momento de la ejecución del mismo.
Programación Modular

La programación modular es una técnica utilizada para el desarrollo de software, donde


se divide el programa en muchos componentes o bloques pequeños autónomos llamados
módulos, que son manejables, lógicos y funcionales.

El módulo es un bloque de sentencias que resuelve un problema particular. Cada módulo


contiene todo lo necesario para cumplir con su propia funcionalidad y se puede editar o
modificar sin que se vea afectado el resto del proyecto.

Esta forma de programar se logra manteniendo una interfaz de módulo permanente que
usan los demás componentes del software para así poder acceder a las funciones de cada
módulo.

Los módulos imponen límites lógicos entre los componentes, mejorando la capacidad de
mantenimiento. Se incorporan a través de interfaces, que están diseñadas de tal manera
que se minimiza la dependencia entre los diferentes módulos.

Módulo principal y auxiliares


Un módulo principal y varios módulos secundarios son los que conforman la
programación modular. Desde el módulo principal se realizan las llamadas a las
funciones de los módulos auxiliares.

Estos módulos auxiliares existen como archivos ejecutables separados, que se cargan al
ejecutarse el módulo principal. Cada módulo tiene un nombre único asignado en la
instrucción PROGRAM.

Los equipos de trabajo pueden desarrollar diferentes módulos por separado sin necesidad
de conocer todos los módulos del sistema. Cada una de las aplicaciones modulares tienen
asociado un número de versión para proporcionar flexibilidad a los desarrolladores en el
mantenimiento del módulo.

Características de la programación modular

Modularidad
Una computadora no necesita una versión desglosada del código para poder ejecutarlo.
Son las limitaciones cognitivas humanas las que obligan a escribir código en fragmentos
más pequeños.

Un programa puede contener otras funciones y también puede referirse a funciones que
están en otros archivos. Estas funciones o módulos son conjuntos de sentencias que
sirven para realizar una operación o calcular un valor.

Para poder mantener la simplicidad y legibilidad en programas grandes y complejos, se


utiliza una función principal corta en conjunto con otras funciones, en lugar de utilizar
una función principal larga.
Al separar un programa en grupos de módulos, cada módulo será más fácil de entender,
cumpliendo así con las pautas básicas de la programación estructurada.

Definición de función
Una función consiste en una declaración de su definición seguida de comandos y
sentencias. La forma general de una función es:

Nombre_de_función(declaración de parámetros) {

sentencias;

comandos;

retornar expresión;

– La declaración de los parámetros representa la información que se está pasando a la


función.
– Se definen en las sentencias las variables adicionales utilizadas específicamente por la
función.
– Todas las funciones deben incluir una sentencia de retorno.

Alcance de las variables

Las variables que se declaran dentro de la función principal o en funciones definidas por
el usuario se denominan variables locales. Estas tienen un valor cuando se ejecuta la
función, pero su valor no se retiene al completarse la función.

Las variables que se declaran externamente al programa principal o a las funciones


definidas por el usuario se denominan variables globales. Estas variables se pueden tomar
desde cualquier función que se encuentre dentro del programa.
Es procedimental

La programación modular es bastante procedimental, ya que se orienta completamente a


la escritura de código para funciones, sin tomar en cuenta los datos.

Ejemplos de programación modular

Modularidad en la vida real


Supongamos una casa que tenga electricidad, con varias tomas de corriente en las
paredes. Este sistema permite enchufar varios dispositivos eléctricos, por ejemplo,
microondas, lavadora, secadora, etc.

Estos dispositivos están diseñados para realizar su tarea específica al enchufarse y


encenderse, independientemente de la casa donde se encuentren.

Los módulos de una aplicación deben seguir esta misma filosofía. Esto significa que solo
deben realizar su tarea específica sin importar la parte de la aplicación donde se
encuentren, o incluso a cuál aplicación estén conectados.

Además, tal como un dispositivo eléctrico puede desenchufarse fácilmente de la toma de


corriente, un módulo debe diseñarse de tal forma que pueda eliminarse fácilmente de una
aplicación.

Así como eliminar un dispositivo eléctrico no impacta la funcionalidad de los otros


dispositivos conectados, eliminar módulos de una aplicación no debería impactar en la
funcionalidad de los otros módulos de esa aplicación.

Funciones en Java
En Java los módulos se escriben como funciones independientes. Por ejemplo, se puede
tener una función o bloque de código para calcular el promedio general de notas de un
estudiante según sus calificaciones en todos los cursos que ha tomado.

La función necesita obtener como entrada el listado de calificaciones para luego retornar
el promedio de notas calculado:
Esta función se llama CalcularNotaPromedio. Recibe como entrada una lista de notas,
utilizando una matriz de tipo de datos double, y retorna el promedio calculado.

En la función, la variable local sum se inicializa a cero y luego, mediante un ciclo for, se
agregan a sum todas las calificaciones. Por último, se divide la suma obtenida entre la
cantidad de notas, retornando el valor resultante.

Si la matriz de entrada tuviera las notas 3,5, 3,0 y 4,0, después de sumarlas tendría sum el
valor de 10,5 y luego se dividiría entre 3, porque hay tres notas. La función retornaría el
valor 3,5.

Ventajas

Programación independiente del proyecto


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, que es lo requerido para un programa grande y complejo.
Desarrollo eficiente de programas
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.

El programador puede proveer la entrada necesaria y verificar que el módulo esté


correcto examinando su salida.

Uso múltiple de los módulos


El código escrito para un programa a menudo es útil en otros. La programación modular
permite que estas secciones se guarden para un uso futuro. Debido a que el código es
reubicable, los módulos guardados se pueden vincular a cualquier otro programa que
cumpla con los requerimientos de entrada y salida.

Con la programación monolítica, tales secciones de código quedan incrustadas dentro del
programa y no están disponibles para ser utilizadas por otros programas.

Facilidad de depuración y modificación


Un módulo es más pequeño que un programa completo, por lo que resulta más fácil
probarlo. Cada módulo se puede escribir y probar por separado del resto del programa.
Después de que se haya probado un módulo, podrá usarse en un nuevo programa sin
tener que probarlo de nuevo.

Cuando se debe modificar un programa, la programación modular simplifica el trabajo.


Se pueden vincular módulos nuevos o depurados a un programa existente sin que el resto
del programa cambie.

Desventajas

Estructura excesivamente orientada a objetos


Esta programación utiliza interfaces, que es una idea bastante eficaz. Para aprovechar
eso, algunos marcos de trabajo traen consigo un conjunto completo de clases
intercambiables. Por ejemplo, para manejar la persistencia, podría haber varias clases que
implementen una interfaz de persistencia.

Sin embargo, los entornos de desarrollo integrado (IDE) se confunden con esto. Por
ejemplo, se podría estar intentando encontrar la fuente de un método, y el IDE no sabrá
qué método se desea ver, mostrando así una larga lista de archivos donde exista un
método con ese nombre.

Módulos demasiado pequeños


Existe una gran cantidad de módulos que solo contienen una función muy pequeña. Cada
módulo requiere un tiempo adicional de análisis y procesamiento, además de su
encabezado en el código.

Por tanto, usar muchos módulos pequeños añadirá una sobrecarga al sistema de
compilación, aumentando el tamaño del paquete.

Descomponer sin razón


Algunos códigos casi nunca cambian. En esos casos puede que no tenga mucho sentido
tratar de hacer que se vea más limpio o con una lógica abstracta, si con solo usarlo ya
funciona bien.

Hay códigos que no se ven demasiado bonitos y, sin embargo, no han cambiado mucho
en los últimos años. No hay ninguna razón para descomponer en módulos un código que
nunca ha cambiado y que ya funciona bien.

Aplicaciones
La programación modular es solo un concepto. Su práctica se puede aplicar en cualquier
lenguaje de programación, especialmente los de naturaleza procedimental, que tienen un
programa compilado por separado.

Las bibliotecas de componentes construidos a partir de módulos compilados por separado


se pueden combinar en un conjunto mediante una herramienta de programación llamada
enlazador. Los nombres de las funciones en los diferentes módulos deben ser únicos para
así facilitar su acceso en caso que las funciones utilizadas por el módulo principal se
deban exportar.
Entre los lenguajes de programación que admiten el concepto de programación modular
se encuentran C, Ada, PL/I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python,
HyperTalk, IBM/360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java
(los paquetes se consideran módulos), Perl, etc.

Lenguaje C
En lenguaje C se puede aplicar programación modular porque permite remediar una
dificultad de gran magnitud separando la misma en varios módulos.

Cada uno de estos módulos resuelve un problema en particular, mientras que el programa
principal, que es el conjunto de tales procedimientos, resuelve el problema como un todo.

Cada función definida en C es por defecto accesible globalmente. Esto se puede hacer al
incluir un archivo de encabezado, donde se define la implementación de la función.

Como ejemplo, se busca declarar un tipo de datos stack y además que la implementación
y la estructura de datos quede oculta para los usuarios.

Esto se puede hacer definiendo primero un archivo público llamado stack.h, que
contendrá los datos genéricos con el tipo de datos stack y las funciones soportadas por el
tipo de datos stack.
|Conclusión|

Gracias a la programación modular es más sencillo hacer pruebas y


realizar cualquier tipo de mantenimiento y resulta más sencillo el
poder estructurar cualquier librería. Además, los programas
modulares son mucho más sencillos tanto de ejecutar como de
probar y de arreglar y es mucho más sencillo el poder profundizar
mucho en las diferentes pruebas parciales de los módulos más de
lo que se hace con programas mayores.

También podría gustarte