Vous êtes sur la page 1sur 7

Introduccin

En los captulos anteriores hemos visto las estructuras


bsicas para la construccin de algoritmos, sin embargo,
estas no son suficientes para afrontar el desarrollo de
programas reales de aplicacin. Los programas que se
utilizan en la vida diaria, generalmente consta de varios
miles de lneas de cdigo, y de constituyen en tareas
complejas para ser realizadas empricamente, sin ninguna
metodologa y sin herramientas apropiadas.
MODULARIDAD
La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido
como la unin de varias partes que interactan entre s y que trabajan para alcanzar un
objetivo comn, realizando cada una de ellas una tarea necesaria para la consecucin de
dicho objetivo. Cada una de esas partes en que se encuentre dividido el sistema recibe el
nombre de mdulo. Idealmente un mdulo debe poder cumplir las condiciones de caja
negra, es decir, ser independiente del resto de los mdulos y comunicarse con ellos (con
todos o slo con una parte) a travs de unas entradas y salidas bien definidas
Otro concepto es que se denomina modularidad a la propiedad que permite subdividir una
aplicacin en partes ms pequeas, cada una de las cuales debe ser tan independiente
como sea posibles de la aplicacin en s y de las restantes partes.
Estos mdulos se pueden compilar por separado pero que tienen conexiones con otros
mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad de diversas
formas

Mdulo: un mdulo representa una funcin lgica en una secuencia lexicamente


continua de instrucciones que se encuentra limitado por elementos de fronteras y
adems se caracterizan por disponer de un nombre o identificador.
El modulo es aquel 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 funcionar.-
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 mdulos
denominados mdulos de base a principalmente a objetos de que se controlen 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.
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
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 se 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 diversos y diferentes mdulos.
Conforme se extiende el tamao de los algoritmos, se hace ms difcil su revisin,
actualizacin o correccin.
Una poltica ms comn para arreglar el problema consiste en la modularizacion.
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
puesta a punto independiente
Objetivos de la modularizacion.-
Descomponer el sistema en mdulos:
Los grupos deben maximizar el enlace y minimizar el acoplamiento.
Determinar las relaciones entre mdulos:
Identificar y especificar las dependencias entre mdulos.
Determinar la forma de comunicacin entre mdulos (variables llamadas a
funciones, memoria compartida, paso de mensajes)
Especificar las interfaces de los mdulos:
Facilita la prueba independiente entre los mdulos.
Mejora la comunicacin e integracin del grupo.
Caractersticas.-
Permite reducir la complejidad global del sistema descentralizado.
Mejora la escalabilidad y la productividad (los mdulos pueden
desarrollarse independientemente por varias personas)
Principios para asegurar diseos modulares
Soporte de lenguaje para unidades modulares, los mdulos deben
corresponder a unidades sintcticas del lenguaje utilizado.
Pocas interfaces: cada mdulo de comunicarse con tan pocos como sea
posibles
Interfaces pequeas (acoplamiento dbil): si dos mdulos se comunican,
deben estar claro en el texto de uno o de ambos.
Interfaces explicitas: 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 privado al mdulo, a menos que se haya declarado especficamente
como publica.

Ventajas de utilizar mdulos.-


Un programa modular es fcil de mantener y modificar.
Un programa modular es ms fcil de escribir y depurar (ejecutar.
Probar y arreglarlo).
Un programa modular es ms fcil de controlar. El desglose de un
problema en mdulos permite encomendar los mdulos ms
complejos a los expertos y lo mismo con los sencillos.
Posibilita el uso 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)
Procesa mediante el cual un problema se descompone en una serie de niveles o pasos
sucesivos de refinamiento. La metodologa descendente consiste en efectuar una relacin
entre las sucesivas etapas de estructuracin, de modo que se relacionen una 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

Variables:
Clasificacin:

Variable local: aquella que est declarada y defina 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 declarado. Cuando otro sub programa
utiliza el mismo nombre, se refiere a una posicin diferente en la memoria.
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 e accesible
a otros programas, es decir, no puede utilizar este valor.

Variable global.- es 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 programas sin una
correspondiente entrada en la lista de parmetros.

Criterios de descomposicin modular


Descomposicin por tareas o procesos.-
Este criterio hace primero un anlisis de los procesos existentes en el sistema y considera
su complejidad como criterio principal para su descomposicin. Se presenta como una
alternativa natural de descomposicin, y es por esta razn que muchos programadores lo
han utilizado o lo siguen utilizando. Sin embargo, presenta el inconveniente de que los
datos y los procesos se implementan aisladamente, sin establecer ninguna relacin de
agrupamiento o pertenencia entre ellos. No ofrece ninguna relacin de agrupamiento de
datos, por tanto, no existe ningn tipo de proteccin de acceso a los datos, dado que
todos los mdulos tiene acceso a ellos, cualquier mdulo puede modificarlo libremente.
Esta caracterstica hace que en diferentes partes de un programa se tengan mdulos que
actan sobre el mismo grupo de datos, permitiendo que los programas no sean fcilmente
modificables y se genere un cierto desorden lgico sobre los datos. La siguiente figura
ilustra este esquema.

modulo 2

modulo 1 modulo 3

Datos
Modulo6 Modulo 4
Modulo5

Descomposicin por datos.-


Las nuevas metodologas consideran primero identificar la informacin
existente(los datos). Luego los procesos que actuaran sobre estos datos. Este tipo
de descomposicin se da de acuerdo a la siguiente secuencia:
El conceptor o diseador primero debe identificar y especificar los tipos de datos
que se necesitan, luego tambin debe identificar y especificar las operaciones.
El implementador implementa el tipo de datos y sus operaciones encapsulndolos
en un mdulo, de modo que los datos podrn ser modificados solo por las
operaciones definidas sobre estos.
El usuario utiliza los tipos de datos ya implementados integrndolos en sus
programas. No accede directamente a los datos, sino, mediante sus operaciones.
Necesita conocer todas las operaciones definidas sobre el tipo de datos, ms no la
forma como se implementaron.
Arquitectura modular
La arquitectura es el elemento estable ante los cambios en el ciclo de vida de los
mdulos; la clave es separa interfaces de implementaciones.
La separacin entre interfaces e implementacin:
Asla de los cambios.
Sirve de mecanismos de unin entre arquitectura e implementacin.
El papel de la arquitectura es proporcionar informacin de diseo a
los desarrolladores, para que estos 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.

Vous aimerez peut-être aussi