Sie sind auf Seite 1von 5

Modularidad

Dividir el programa en componentes individuales, puede reducir en algn grado la complejidad, una razn ms poderosa para realizarlo es que esto crea un nmero de contornos bien documentados dentro del programa. En algunos lenguajes, como por ejemplo Smalltalk, no existe el concepto de mdulo, y la clase forma la unidad fsica de descomposicin. En otros (Object Pascal, C++, Ada, CLOS), el mdulo es una construccin separada. En estos lenguajes, las clases y los objetos forman la estructura lgica de un sistema; colocando estas abstracciones en mdulos se produce la estructura fsica. La mayora de los lenguajes que soportan al mdulo como un concepto separado, tambin distinguen entre la interface y la implementacin del mdulo. C++ maneja los mdulos directamente como files compilados en forma separada. La prctica tradicional en la comunidad C/C++ es colocar las interfaces de los mdulos en files con extensin .h (header files). Las implementaciones de los mdulos son colocados en archivos con extensin .c ,.cpp o .C. MODULARIDAD Mdulo: Un mdulo que se supone que representa una funcin lgica es una secuencia lxicamente contina de instrucciones que se encuentra limitado por elementos de fronteras y adems se caracteriza por disponer de un nombre o identificador Es aqul que est constituido por una o varias instrucciones fsicamente contiguas y lgicamente encadenadas, las cuales se pueden referenciar mediante un nombre y pueden ser llamadas desde diferentes puntos de un programa. Un mdulo puede ser: Un programa Una funcin Una subrutina (o procedimiento)

La modularidad se basa en la descomposicin de un problema en una serie de sub problemas; dividindolo en mdulos que resultan de segmentar el problema en funciones lgicas que son perfectamente diferenciadas. Esta divisin exige la presencia de un mdulo denominado mdulo de base o principal a objeto de que controle y se relacione con los dems. Es una tcnica de programacin que todava se utiliza tanto para la construccin de algoritmos computacionales bsicos as como apoyo al desarrollo de sistemas de gestin (en el diseo de diagramas modulares).

La salida del mdulo debe ser funcin de la entrada, pero no de ningn estado interno. En la creacin de los mdulos deben cumplirse tres aspectos bsicos: descripcin, rendimiento y diseo. En la descripcin se definen las funciones y objetivos del programa. Para obtener el mximo rendimiento se ha de comprobar que el programa realice el proceso aprovechando al mximo todos los recursos de los que dispone. En cuanto al diseo, se debe comprobar la estructura que sigue el mdulo, as como la estructura de los datos y la forma de comunicaciones entre los diversos y diferentes mdulos. Conforme se extiende el tamao de los algoritmos, se hace ms difcil su revisin, actualizacin y/o correccin. Una poltica comn para solventar este problema consiste en la modularizacin. Esto significa que el algoritmo se fragmenta en partes llamadas mdulos. En realidad, es un mtodo de diseo que tiende a dividir el problema, de forma lgica, en partes perfectamente diferenciadas que pueden ser analizadas, programadas y puestas a punto independientes. 1. Objetivos: Descomponer el sistema en mdulos: o Los grupos deben maximizar el enlace y minimizar el acoplamiento. Determinar las relaciones entre mdulos: o - Identificar y especificar las dependencias entre mdulos. o - Determinar la forma de comunicacin entre mdulos (variables llamadas a funciones, memoria compartida, paso de mensajes) Especificar las interfaces de los mdulos: o - Facilita la prueba independiente entre los mdulos. o - Mejora la comunicacin e integracin del grupo

2. Caractersticas: Permite reducir la complejidad global del sistema descentralizado; ejm. Divide y vencers. Mejora la escalabilidad y la productividad (los mdulos pueden desarrollarse independientemente por varias personas)

3. Principios para asegurar diseos modulares: o o o o Soporte de lenguaje para unidades modulares. Los mdulos deben corresponder a unidades sintcticas del lenguaje utilizado. Pocas interfaces: Cada mdulo debe comunicarse con tan pocos como sea posible. Interfaces pequeas (Acoplamiento dbil): Si dos mdulos se comunican, deben intercambiar la menor informacin posible. Interfaces explcitas: Cuando dos mdulos se comunican, debe estar claro en el texto de uno o de ambos.

Ocultacin de la informacin: Toda la informacin sobre un mdulo debe ser privada al mdulo, a menos que se haya declarado especficamente como pblica.

Algunas ventajas de utilizar mdulos son: Un programa modular es fcil de mantener y modificar. Un programa modular es ms fcil de escribir y depurar (ejecutar, probar y poner a punto). Un programa modular es ms fcil de controlar. El desglose de un problema en mdulos permite encomendar los mdulos ms complejos a los programadores ms experimentados y los ms sencillos a los programadores nveles. Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes programas. Desventajas del uso de mdulos: No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los mdulos. La programacin modular requiere ms memoria y tiempo de ejecucin. Segmento: El segmento a diferencia del mdulo se caracteriza porque no dispone de un nombre o identificador METODOLOGA DESCENDENTE: (TOP DOWN) Proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stipwise). La metodologa descendente consiste en efectuar una relacin entre las sucesivas etapas de estructuracin, de modo que se relacionen unas con otras mediante entradas y salidas de informacin. Es decir se descompone un problema en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura desde dos puntos de vista; Qu hace? Para ver el grfico seleccione la opcin "Descargar" del men superior Cmo lo hace? Para ver el grfico seleccione la opcin "Descargar" del men superior El diseo descendente se puede ver: Para ver el grfico seleccione la opcin "Descargar" del men superior VARIABLES: Clasificacin. Variable Local: Aquella que est declarada y definida dentro de un sub programa, en el sentido de que est dentro de ese sub programa y es distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal. El significado de una variable se confina al procedimiento en el que est declarada. Cuando otro sub programa utiliza el mismo nombre, se refiere a una posicin diferente en memoria.

El uso de variables locales tiene muchas ventajas. En particular, hace a los sub programas independientes con la comunicacin entre el programa principal y los sub programas manipulados estructuralmente a travs de la lista de parmetros. Una variable local a un sub programa, no tiene ningn significado en otros sub programas. Si un sub programa asigna un valor a una de sus variables locales, este valor no es accesible a otros programas, es decir, no pueden utilizar este valor. Variable Global: Aquella que est declarada para el programa o algoritmo principal del que dependen todos los sub programas Esta variable tiene la ventaja de compartir informacin de diferentes sub programas sin una correspondiente entrada en la lista de parmetros PROCEDIMIENTOS: Un procedimiento o sub rutina, es un sub programa que ejecuta un proceso especfico. Ningn valor est asociado con el nombre del procedimiento, por consiguiente no puede ocurrir en una expresin. Un procedimiento se llama escribiendo su nombre Ej. SORT para indicar que un procedimiento denominado SORT se va a usar. Cuando se invoca el procedimiento los pasos que los define se ejecuta y a continuacin se devuelve el control al programa que le llam. PROCEDIMIENTO VS FUNCION Los procedimientos y funciones son sub programas, cuyo diseo y misin son similares, sin embargo existen unas diferencias esenciales entre ellos: 1. Un procedimiento es llamado desde el algoritmo o programa principal, mediante su nombre y una lista de parmetros actuales o bien con la instruccin llamar_a (call). Al llamar al procedimiento se detiene momentneamente el programa que se est realizando y el control pasa al procedimiento llamado, despus de que las acciones del procedimiento se ejecutan, se regresa a la accin inmediata siguiente a la que se llam. 2. Las funciones devuelven un valor, los procedimientos pueden devolver 0, 1 n valores y en forma de lista de parmetros. 3. El procedimiento se declara igual que la funcin, pero su nombre no est asociado a ninguno de los resultados que obtiene. FUNCIONES: Las funciones son bloques de instrucciones que tienen por objeto el alcanzar un resultado que sustituir a la funcin en el punto de invocacin (las funciones devuelven un resultado). Cada funcin se evoca utilizando su nombre en una expresin con los argumentos actuales o reales encerrados entre parntesis. Para hacer una referencia a una funcin se invoca mediante un nombre y en caso de existir, una lista de parmetros actuales necesarios (argumentos). Los argumentos deben coincidir en

cantidad, tipo y orden con los de la funcin que fue definida. La funcin devuelve un valor nico. Las funciones a que se hace referencia, se conocen como funciones de usuario puesto que son definidas por l mismo y permiten su uso en forma idntica a las funciones estndares. Para coordinar e iniciar el procesamiento, se utiliza un mdulo principal que es colocado al final del algoritmo. Una llamada a la funcin implica los siguientes pasos: 1. A cada parmetro formal se le asigna el valor real de su correspondiente parmetro actual. 2. Se ejecuta el cuerpo de acciones de la funcin. 3. Se devuelve el valor de la funcin al nombre de la funcin y se retorna al punto de llamada. ARQUITECTURA MODULAR: La arquitectura es el elemento estable ante los cambios en el ciclo de vida de los mdulos; la clave est en separar interfaces de implementaciones. La separacin entre interfaces e implementacin: Asla de los cambios. Sirve de mecanismo (compilable) de unin entre arquitectura e implementacin. El papel de la arquitectura es proporcionar informacin de diseo a los desarrolladores, para que stos puedan hacer cambios y correcciones a los mdulos, sin romper la arquitectura. En cada escala de un sistema modular, se puede definir una arquitectura y una implementacin: La implementacin es la realizacin de los componentes modulares. La arquitectura es la abstraccin que define las interfaces entre componentes.

Das könnte Ihnen auch gefallen