PROGRAMACION MODULAR La programacin modular es un paradigma

  • Slides: 9
Download presentation
PROGRAMACION MODULAR

PROGRAMACION MODULAR

La programación modular es un paradigma de programación que consiste en dividir un programa

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en varios sub

Al aplicar la programación modular, un problema complejo debe ser dividido en varios sub problemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top. Down). Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la práctica se los suele tomar como sinónimos de procedimientos y funciones. Pero no necesaria ni estrictamente un módulo es una función o un procedimiento, ya que el mismo puede contener muchos de ellos, no debe confundirse el término "modulo" (en el sentido de programación modular) con términos como "función" o "procedimiento", propios del lenguaje que lo soporte.

v. Cada programa contiene un módulo denominado programa principal que controla todo lo que

v. Cada programa contiene un módulo denominado programa principal que controla todo lo que sucede; se transfiere el control a los submódulos o subprogramas. Estos ejecutan su función y una vez completada su tarea, devuelven el control al módulo principal. v Cada submódulo se puede descomponer en otros submódulos, dependiendo de la complejidad de la tarea a realizar y la subdivisión continúa hasta que cada módulo tenga una sola tarea para ejecutar. v Un submódulo puede realizar tareas de distinta naturaleza como: entrada, salida, manipulación de datos, control de otros módulos o una combinación de éstos. Un módulo puede transferir temporalmente (bifurcar) el control a otro módulo; sin embargo, cada módulo debe eventualmente devolver el control al módulo del cual recibió originalmente el control.

Objetivos de la programación modular � Hacer mas legible y manejable un programa �

Objetivos de la programación modular � Hacer mas legible y manejable un programa � Simplificación del problema: Divide y vencerás � Aumentar su capacidad de reutilización � Facilita el trabajo en equipo Funciones � Transforman datos � Variables de entradas � Variables de salida � Variables de Entrada / Salida � Realizan una única tarea, bien definid � El nombre indicara su función � Pueden usar otras funciones � Si se llama a si misma => función rec

Funciones � Espacio de trabajo local � Aisladas del programa, solo se comunican mediante

Funciones � Espacio de trabajo local � Aisladas del programa, solo se comunican mediante los argumentos de entrada y la salida de la función � Excepción: Variables globales � Ej. : A = f(B) � Si B es una variable de entrada, f no puede modificar B � En matlab todos los argumentos son de entrada � La salida se guarda en A Funciones Matlab � function [out 1, out 2, . . . , out. N] � = nombre función (in 1, in 2, . . . , in. M) � Mismo nombre que el fichero. m donde se define � Las variables definidas dentro de la funció locales � Al modificar un parámetro de entrada se h una copia para evitar su modificación � out 1=salida 1 %modifica la salida

Programa vs Función � Programa: Mismo efecto que ejecutar línea a línea en ventana

Programa vs Función � Programa: Mismo efecto que ejecutar línea a línea en ventana de comandos � Funciones: Solo accede a los argumentos de entrada y variables globales declaradas � Variables de programa: globales � Variables de función: locales � Variables locales: � Se destruyen al salir de la función � No interfieren con variables del mismo nombre en otras partes del programa

PROCEDIMIENTOS Y FUNCIONES Un algoritmo que resolviera un problema complejo, contendría cientos o miles

PROCEDIMIENTOS Y FUNCIONES Un algoritmo que resolviera un problema complejo, contendría cientos o miles de líneas de código en su interior. Esto es inabarcable para cualquier programador, por lo que se utiliza el concepto de procedimientos y funciones para subdividir el problema en partes. La idea es que cada una de estas partes contenga un conjunto de instrucciones que permita la ejecución de algún proceso determinado y lógico desde el punto de vista humano. Dos ejemplos, función y procedimiento respectivamente: FUNCION multiplicar(E a: ENTERO, E b: ENTERO): ENTERO RETORNA ( a * b ) FIN_FUNCION ó PROCEDIMIENTO escribir. Edad(E mensaje: CADENA, E edad: ENTERO) ESCRIBIR( mensaje, edad ) FIN_PROCEDIMIENTO La descomposición del software en tareas también se conoce con el nombre de top-down y fue presentada por primera vez por Niklaus Wirth. Este autor proporciona la siguiente visión de refinamiento: “En cada paso (del refinamiento), una o varias instrucciones del programa dado, se descomponen en instrucciones más detalladas. Esta descomposición sucesiva o refinamiento de especificaciones termina cuando todas las instrucciones están expresadas en términos de la computadora usada o del lenguaje de programación… Conforme se refinan las tareas, también los datos pueden ser refinados, descompuestos o estructurados siendo natural refinar las especificaciones del programa y los datos en Paralelo, Cada paso de refinamiento implica algunas decisiones de diseño. Es importante que el programador sea consciente de los criterios subyacentes (en las decisiones de diseño adoptadas) y de la existencia de soluciones alternativas…” Típicamente, una descomposición insuficiente de un problema en tareas conduce a la definición de pocos procedimientos, cada uno de las cuales implementará múltiples funcionalidades.