28
TEMA 1 PROGRAMACIÓN MODULAR PROGRAMACIÓN MODULAR

TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Embed Size (px)

Citation preview

Page 1: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

TEMA 1TEMA 1

PROGRAMACIÓN PROGRAMACIÓN MODULARMODULAR

Page 2: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

PROGRAMACION MODULARPROGRAMACION MODULAR

Es un método de diseño de Es un método de diseño de programas que tiende a programas que tiende a dividir el problema en dividir el problema en partes perfectamente partes perfectamente diferenciadas o funciones diferenciadas o funciones lógicas que pueden ser lógicas que pueden ser analizadas, programadas analizadas, programadas y puesta a punto y puesta a punto independientementeindependientemente..

MODULO P

M1 M2 M3

M4 M5

Page 3: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Se basa en diseñar un programa dividiéndolo Se basa en diseñar un programa dividiéndolo en módulos que resultan de segmentar el en módulos que resultan de segmentar el problema en funciones lógicas que son problema en funciones lógicas que son perfectamente diferenciadasperfectamente diferenciadas

Al considerar funciones lógicas constituye un Al considerar funciones lógicas constituye un intento para diseñar programas que puedan ser intento para diseñar programas que puedan ser cambiados o reemplazados fácilmente sin cambiados o reemplazados fácilmente sin afectar en lo posible a ninguna otra parte o afectar en lo posible a ninguna otra parte o módulo del programamódulo del programa

PROGRAMACION MODULARPROGRAMACION MODULAR

Page 4: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Programación ModularProgramación Modular

Esta división exige la presencia de un módulo Esta división exige la presencia de un módulo denominado módulo de base o principal a fin de que denominado módulo de base o principal a fin de que controle y relacione a todos los módulos.controle y relacione a todos los módulos.

Page 5: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Modularidad

Problema dividido en Problema dividido en subproblemas = Modulosubproblemas = Modulo

A Llama a B • A le pasa control• B hace su tarea• B devuelve el

control a A• B devuelve a A

dato1

MODULO A C es parte de A

B C

Modulo Predefinido

B se reutiliza

Dato 2Dato 1

Control

Page 6: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

¿Qué es Modulo?¿Qué es Modulo?

Un modulo representa una función lógica, que consta de una secuencia continua de instrucciones que se encuentra limitado por elementos de frontera, se caracteriza por disponer de un nombre o identificador. Módulo es un algoritmo autocontenido, que puede ser diseñado independientemente del contexto en el que va a ser usado.

MODULO

Page 7: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

DISEÑO MODULARDISEÑO MODULAR

Abstracción Ocultación de Información ..

NOMBRE

Entradas Salidas

Módulo en un Programa:

• Sentencias juntas

• Límites claros

• Tiene estructura

• Nombre Propio

Page 8: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Ejemplo de un moduloEjemplo de un modulo

Function factorial (int n)Function factorial (int n)

f = 1;f = 1;

For i = 1 to n, inc 1For i = 1 to n, inc 1

f = f * if = f * i

End forEnd for

Return (f)Return (f)

endend

Page 9: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Ej. Modulo Primo en JavaEj. Modulo Primo en Java

static int Primo(int n)static int Primo(int n)

{ int i=1,cont=0,c;{ int i=1,cont=0,c;

while(cont<=n)while(cont<=n)

{ i++; c=0;{ i++; c=0;

for(int k=1;k<=i;k++)for(int k=1;k<=i;k++)

if (i%k==0)if (i%k==0)

c=c+1;c=c+1;

if (c==2)if (c==2)

cont++; }cont++; }

return (i); } return (i); }

Page 10: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

static int pow(int base, int e)

{

int p=1;

for(int i=1;i<=e;i++)

p=p*base;

return(p);

}

Ej. Modulos en Java

static int Fibo (int n)static int Fibo (int n)

{ int a = -1, b = 1, c = 0;{ int a = -1, b = 1, c = 0;

for (int i = 1 ; i <= n ; i++)for (int i = 1 ; i <= n ; i++)

{ c = a + b;{ c = a + b;

a = b;a = b;

b = c;b = c;

} return (c);} return (c);

}}

Page 11: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Modulo PrincipalModulo Principal

//S=2!(x+1!)^2+3!(x+3!)^4+5!(x+5!)^6+7!(x+7!)^8+//S=2!(x+1!)^2+3!(x+3!)^4+5!(x+5!)^6+7!(x+7!)^8+……………..+P!(x+(2*n-1)!)^2*n……………..+P!(x+(2*n-1)!)^2*n

System.out.println("\nIngrese N: "); n = Leer.datoInt ();System.out.println("\nIngrese N: "); n = Leer.datoInt ();

System.out.println("\nIngrese A: "); a = Leer.datoInt ();System.out.println("\nIngrese A: "); a = Leer.datoInt ();

for (i = 1 ; i <= n ; i++)for (i = 1 ; i <= n ; i++)

{{

s = s + Alm.factorial (Alm.Primo (n)) *s = s + Alm.factorial (Alm.Primo (n)) *

Alm.po((x + (2 * i - 1)), 2 * i);Alm.po((x + (2 * i - 1)), 2 * i); }}

Mostrar(s);Mostrar(s);

Page 12: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

PROGRAMACION MODULARPROGRAMACION MODULAR

No usar una metodología de diseño conlleva:• Rigidez e inflexibilidad en los programas• Pérdida excesiva de tiempo en corrección de

errores• Documentación insuficiente o nula• Imposibilidad de Reutilización

Page 13: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Simplificación del diseño.• Programación aislada (encapsulamiento).• Conocimiento sobre qué hace el subprograma y no sobre cómo lo hace(Abstracción procedimental o de Operaciones).• Reutilización del módulo en otro contexto.• Simplificación de la comprensión del algoritmo (mantenimiento).

Ventajas de la Programación ModularVentajas de la Programación Modular

Page 14: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Transportabilidad, agrupando las operaciones dependientes de la máquina en un módulo.• Trabajo en equipo. Cada programador se encarga de desarrollar un módulo.• Compilación separada. No es necesario recompilar todo el programa sino sólo el módulo que se ha modificado.

Ventajas de la Programación ModularVentajas de la Programación Modular

Page 15: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

La programación modular exige una mayor cantidad de La programación modular exige una mayor cantidad de memoria y un tiempo mayor de medición.memoria y un tiempo mayor de medición.

a)      Aún a pesar de que esta claro que un módulo debe a)      Aún a pesar de que esta claro que un módulo debe realizar una función lógica, no está totalmente esclarecido realizar una función lógica, no está totalmente esclarecido un algoritmo formal para completar la modularidad.un algoritmo formal para completar la modularidad.

b)      La programación modular en general requiere del b)      La programación modular en general requiere del uso de mayor cantidad de memoria y su tiempo de uso de mayor cantidad de memoria y su tiempo de ejecución en mayor.ejecución en mayor.

Desventajas de la Programación ModularDesventajas de la Programación Modular

Page 16: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Los módulos se caracterizan por tener máxima cohesión y Los módulos se caracterizan por tener máxima cohesión y mínimo acoplamiento; es decir deben tener la máxima mínimo acoplamiento; es decir deben tener la máxima independencia entre ellos. independencia entre ellos.

Mínimo acoplamientoMínimo acoplamiento - los módulos deben ser tan - los módulos deben ser tan independientes entre si como sea posible.independientes entre si como sea posible.

Máxima cohesiónMáxima cohesión - constituye el segmento que mantiene - constituye el segmento que mantiene unidos a los elementos de un modulo, es decir la relación unidos a los elementos de un modulo, es decir la relación que debe existir entre las diferentes partes internas de un que debe existir entre las diferentes partes internas de un modulo.modulo.

Características de los MódulosCaracterísticas de los Módulos

Page 17: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Módulo Raíz / PrincipalMódulo Raíz / Principal - -Su función es la de coordinar Su función es la de coordinar la realización de todas las funciones lógicas.la realización de todas las funciones lógicas.

Módulo de EntradaMódulo de Entrada - su - su función es la captura de datos función es la captura de datos

Módulo de ProcesoMódulo de Proceso - - Se caracteriza porque en el mismo Se caracteriza porque en el mismo se realiza un tratamiento o cálculo generalse realiza un tratamiento o cálculo general

Módulo de SalidaMódulo de Salida - - Se caracteriza por que su función Se caracteriza por que su función consiste propiamente en efectuar la salida de la consiste propiamente en efectuar la salida de la información procesadainformación procesada..

Existen módulos secundario que para una clase de Existen módulos secundario que para una clase de funciones lógicas se constituye en su módulo raízfunciones lógicas se constituye en su módulo raíz

Clases de MódulosClases de Módulos

Page 18: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Principios de DiseñoPrincipios de Diseño

DescomposiciónDescomposición

Es la división de una tarea en otras que estuvieran Es la división de una tarea en otras que estuvieran contenidas en la primera. contenidas en la primera.

Existen dos principales técnicas de diseño: Existen dos principales técnicas de diseño: Top Down, Bottom UpTop Down, Bottom Up

Page 19: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Principios de DiseñoPrincipios de Diseño

Top DownTop DownTop Down, también conocida como de arriba-abajo, Top Down, también conocida como de arriba-abajo, Este diseño consiste en una serie de descomposiciones Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial. sucesivas del problema inicial. - Se establecen una serie de niveles de mayor a menor - Se establecen una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al complejidad (arriba-abajo) que den solución al problema. problema. - Se efectua una relación entre las etapas de la - Se efectua una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y inmediato inferior se relacionen mediante entradas y salidas de información. salidas de información.

Page 20: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

DISEÑO TOP DOWNDISEÑO TOP DOWN

Page 21: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Principios de DiseñoPrincipios de Diseño

Bottom UpBottom UpEs el diseño ascendente, se refiere a la identificación de Es el diseño ascendente, se refiere a la identificación de aquellos procesos que necesitan computarizarse aquellos procesos que necesitan computarizarse conforme vayan apareciendo. conforme vayan apareciendo. - Los problemas de integración entre los subsistemas - Los problemas de integración entre los subsistemas son sumamente costososson sumamente costosos- Dificultad en la integración total del sistema. Aunque - Dificultad en la integración total del sistema. Aunque cada subsistema parece ofrecer lo que se requiere, cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. tomado un enfoque ascendente.

Page 22: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Tipos de Estructuras ModularesTipos de Estructuras Modulares

MODULO P

M1 M2 M3

M4 M5 M5

M5

M5

M5

M

M5

M5

M5

M5

Estructura en ArbolEstructura en ArbolEstructura en RedEstructura en Red

Page 23: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Puntualizaciones de la Programación ModularPuntualizaciones de la Programación Modular

La programación modular se basa en el diseño La programación modular se basa en el diseño descendente (top-down) que permite comprobar el descendente (top-down) que permite comprobar el funcionamiento de cada modulo mediante funcionamiento de cada modulo mediante módulos ya comprobados.módulos ya comprobados.

El montaje de la red se hace en modo El montaje de la red se hace en modo ascendente(botton-up), por lo que el programador ascendente(botton-up), por lo que el programador puede estar escribiendo el modulo11, mientras puede estar escribiendo el modulo11, mientras que otro hace el modulo 12. Una vez terminados que otro hace el modulo 12. Una vez terminados juntos se puede comprobar su funcionamiento con juntos se puede comprobar su funcionamiento con un modulo ficticio que llama a ambos.un modulo ficticio que llama a ambos.

Page 24: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Puntualizaciones de la Programación ModularPuntualizaciones de la Programación Modular

Los módulos se comunican entre si por las Los módulos se comunican entre si por las variable externas que técnicamente son las mas variable externas que técnicamente son las mas importante en el desarrollo del programa. Los importante en el desarrollo del programa. Los módulos tienen que utilizar las variables bien módulos tienen que utilizar las variables bien como referencia o como modificador de su valor.como referencia o como modificador de su valor.

El programa principal (modulo principal) El programa principal (modulo principal) coordina las llamadas a procedimientos en coordina las llamadas a procedimientos en módulos separados y pasa los datos apropiados en módulos separados y pasa los datos apropiados en forma de parámetros.forma de parámetros.

Page 25: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Puntualizaciones de la Programación ModularPuntualizaciones de la Programación Modular

Actualmente la modularidad están vigentes Actualmente la modularidad están vigentes podemos comprobar al ver sistemas podemos comprobar al ver sistemas implementados en plena ejecución, bajo la forma implementados en plena ejecución, bajo la forma de menús. Los menús antiguamente tenían el de menús. Los menús antiguamente tenían el formato vertical, luego con los visuales los menús formato vertical, luego con los visuales los menús han ido evolucionando al estilo horizontal con sub han ido evolucionando al estilo horizontal con sub menús verticales.menús verticales.

También con los multimedios y las web, los También con los multimedios y las web, los sistemas usan iconos para ingresar a algunos sistemas usan iconos para ingresar a algunos módulos.módulos.

Page 26: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Técnicas de Programación ModularTécnicas de Programación Modular

Las fases de Resolución de problemas son las siguientes:Las fases de Resolución de problemas son las siguientes:

        - Estudio de las especificaciones del problema, en esta - Estudio de las especificaciones del problema, en esta etapa las tablas de decisión son una herramienta de gran etapa las tablas de decisión son una herramienta de gran utilidad.utilidad.

-Confección del organigrama o tabla de decisión de cada -Confección del organigrama o tabla de decisión de cada modulomodulo

-Codificación de cada modulo en el lenguaje adecuado-Codificación de cada modulo en el lenguaje adecuado -Pruebas parciales de cada modulo en el lenguaje -Pruebas parciales de cada modulo en el lenguaje

adecuado.adecuado. - Prueba final de los módulos enlazados.- Prueba final de los módulos enlazados.

Page 27: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Implementación de los módulosImplementación de los módulos

Los módulos reciben el nombre de funciones, procedimientos, Los módulos reciben el nombre de funciones, procedimientos, Metodos y clases. Metodos y clases.

La programación modular exige una comunicación entre el La programación modular exige una comunicación entre el modulo llamador (modulo principal) y el modulo llamado modulo llamador (modulo principal) y el modulo llamado ( el subprograma) que es función o procedimiento.( el subprograma) que es función o procedimiento.

Esta comunicación se realiza a través de una variable de Esta comunicación se realiza a través de una variable de enlace que se denomina enlace que se denomina parámetrosparámetros..

Un modulo contiene operaciones ocultas para el mundo Un modulo contiene operaciones ocultas para el mundo exterior y solo se puede acceder a él por la llamada en exterior y solo se puede acceder a él por la llamada en ejecución ya sea introduciendo parámetros o simplemente ejecución ya sea introduciendo parámetros o simplemente ejecutándolos. ejecutándolos.

Page 28: TEMA 1 PROGRAMACIÓN MODULAR. PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas

Continuamos