Modularidad
CAPÍTULO IV
MODULARIDAD
Mgt. Nila Zonia Acurio Usca
Modularidad
¿QUÉ ES MODULARIDAD?
El hombre cada vez enfrenta desafíos más complejos
La estrategia básica para resolver estos problemas, es descomponer en sub
problemas; luego, resolver cada sub problema independientemente.
PROBLEMA COMPLEJO
SUB PROBLEMA 1 SUB PROBLEMA 2 SUB PROBLEMA n
SUB PROBLEMA 2.1 SUB PROBLEMA 2.2 SUB PROBLEMA 2.n
Mgt. Nila Zonia Acurio Usca
Modularidad
¿QUÉ ES MODULARIDAD?
Como dice el adagio: “Dividir
para conquistar”.
Desde una perspectiva genérica,
la modularidad consiste en
descomponer un proceso en
unidades lógicas independientes,
que pueden ser ejecutadas
separadamente.
Mgt. Nila Zonia Acurio Usca
Modularidad
¿QUÉ ES MODULARIDAD?
Módulo 1 ()
En programación, la modularidad
consiste en dividir el programa
en unidades lógicas, donde cada Módulo 2()
unidad lógica se implementa Módulo 2.1 ()
como un módulo independiente. Módulo 2.2 ()
Módulo 2.1
Módulo 2.2
Debe existir un segmento o
módulo principal (Main) Módulo 3 ()
Módulo 2
responsable de articular el
funcionamiento de los diferentes Módulo principal ()
módulos. Módulo 1
Módulo 3
Mgt. Nila Zonia Acurio Usca
Modularidad
OBJETIVOS DE LA MODULARIDAD
Módulo 1 ()
Reducir la complejidad del
problema.
Módulo 2()
Módulo 2.1 ()
Al descomponer el problema en
unidades lógicas, cada unidad Módulo 2.2 ()
Módulo 2.1
lógica se implementa
Módulo 2.2
independientemente.
Módulo 3 ()
Módulo 2
Cada unidad lógica tiene su
propio input, output y su propia Módulo principal ()
Módulo 1
funcionalidad. Módulo 3
Mgt. Nila Zonia Acurio Usca
Modularidad
OBJETIVOS DE LA MODULARIDAD
Programa 1 Programa 2 Programa 3
Módulo A () Módulo A () Módulo B()
Reutilizar código en
Módulo B.1 ()
diferentes programas
Módulo B() Módulo B.2 ()
Módulo D ()
Módulo B.1
En la implementación de Módulo B.1 ()
nuevos programas, se Módulo B.2
pueden reutilizar módulos Módulo B.2 ()
Módulo B.1 Módulo E () Módulo C ()
implementados en
programas anteriores. Módulo B.2 Módulo B
Módulo F ()
Se puede reutilizar Módulo C () Módulo E ()
Módulo D
también módulos hechos Módulo B
Módulo E
por terceros .
Módulo principal Módulo principal Módulo principal
Módulo A Módulo A Módulo C
Módulo C Módulo F Módulo E
Mgt. Nila Zonia Acurio Usca
Modularidad
OBJETIVOS DE LA MODULARIDAD
Trabajo en equipo.
Al descomponer el problema en
unidades lógicas, cada unidad
lógica puede ser implementado
por un integrante del equipo.
Cada integrante asume su
módulo como si fuese un
problema independiente.
Mgt. Nila Zonia Acurio Usca
Modularidad
OBJETIVOS DE LA MODULARIDAD
Desarrollo rápido de programas.
(Uso de librerías)
Los lenguajes de programación ya
ofrecen un conjunto grande de módulos
(librerías) de propósito general.
También personas o empresas ofrecen
módulos de propósito general.
También cada equipo de programación
puede implementar un conjunto de
módulos de propósito general.
Escribir un programa consiste en identificar
los módulos que ya se tienen, implementar
los que faltan, para finalmente construir el
programa ensamblando estos módulos.
Mgt. Nila Zonia Acurio Usca
Modularidad
METODOLOGIA DESCENDENTE
(METODOLOGIA DE ARRIBA HACIA ABAJO) (TOP-DOWN METHOD)
Identificar y expresar el problema al mayor
nivel de abstracción. Considerar el problema
como un módulo único.
Analizar el problema y descomponer en sub
problemas de menor complejidad, donde
cada sub problema debe corresponder a una
unidad lógica o módulos de menor nivel.
Resolver independientemente cada unidad
lógica o módulo identificado en el nivel
anterior, como si fuese un nuevo problema.
Si éste aún presentase cierta complejidad
entrar a otro nivel de descomposición.
Efectuar el proceso de descomposición hasta
que todas las unidades lógicas presenten un
nivel mínimo de complejidad. (Se considera
que una unidad lógica ya no requiere más
niveles de descomposición, si puede ser
implementada con una secuencia de
instrucciones simples).
Mgt. Nila Zonia Acurio Usca
Modularidad
METODOLOGIA DESCENDENTE
(METODOLOGIA DE ARRIBA HACIA ABAJO) (TOP-DOWN METHOD)
Esta metodología produce una estructura jerarquizada tal como se
muestra en la figura:
La “programación modular” es la implementación de las unidades lógicas
o módulos identificados con la “metodología descendente”.
Mgt. Nila Zonia Acurio Usca
Modularidad
MÓDULO
Permite implementar la “metodología descendente”, donde un
programa es un conjunto de módulos relacionados entre sí.
Definición de módulo (DRAE): “Pieza o conjunto unitario de
piezas que se repiten en una construcción de cualquier tipo, para
hacerla más fácil, regular y económica”.
Definición formal de módulo: “Un módulo es un conjunto de
instrucciones que efectúan un proceso único y completamente
definido, que son referenciados mediante un nombre y pueden
ser invocados desde diferentes puntos de un programa u otros
módulos”.
Mgt. Nila Zonia Acurio Usca
Modularidad
Características de la modularidad
Cada módulo es independiente. Tiene una única funcionalidad.
Tiene sus propias variables de entrada y salida.
Módulo
Instrucción 1
INPUT Instrucción 2 OUTPUT
.
.
.
Instrucción n
Debe funcionar como una caja negra. Es decir, para utilizarlo, sólo se debe saber qué
valores corresponden al INPUT, que proceso efectúa y qué resultados devuelve. No es
necesario saber cómo funciona o cómo esta implementado por dentro.
Mgt. Nila Zonia Acurio Usca
Modularidad
Tipos de módulos
De tipo función.- Módulos que efectúan un cálculo o proceso y devuelven uno o
más resultados
De tipo procedimiento.- Módulos que efectúan una acción y no devuelven
resultados.
Especificación de los módulos
INPUT OUTPUT
PROCESO
Variable1 Variable2 Variable3 Resultado
Mgt. Nila Zonia Acurio Usca
Modularidad
Implementación de módulos
Módulo para determinar el índice de masa corporal
INPUT OUTPUT
PROCESO
Peso Talla IMC
Las variables del
INPUT corresponden
a los parámetros
def IndiceMasaCorporal(Peso, Talla):
IMC = Peso / (Talla ** 2)
return IMC
Las variables del
OUTPUT se asocian
a la sentencia return
Mgt. Nila Zonia Acurio Usca