You are on page 1of 6

Modularidad

Adems de la abstraccin y el encapsulamiento, uno de los principios fundamentales del diseo orientado a objetos es la modularidad. Los programas modernos se forman por componentes distintos que deben interactuar en forma correcta, para que todos los sistemas funcionen bien. El mtodo orientado a objetos, la estructura se centra en el concepto modularidad, que se refiere a una organizacin en la que distintos componentes de un sistema de programacin se dividen en unidades que se puedan compilar por separado, pero que tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas. El Mdulo A depende del Mdulo B si cualquier cambio en el Mdulo B implica que el Mdulo A tambin tenga que ser modificado. A veces se dice que el Mdulo A es un cliente del Mdulo B, o que el Mdulo B acta como servidor del Mdulo A. En general, es normal que un mismo mdulo sea tanto cliente como servidor. Esto significa, que depende de algunos mdulos, mientras que otros mdulos dependen de l. Incluso es posible que un par de mdulos se tengan uno al otro de cliente. Por ejemplo, se puede considerar que una casa o un departamento consisten en varias unidades que interaccionan como la instalacin elctrica, de calefaccin y enfriamiento, el servicio sanitario y la estructura, el arquitecto disea la casa o el departamento como mdulos separados que interactan en formas bien definidas. Al hacer esta consideracin se aplica la modularidad. La estructura impuesta por la modularidad ayuda a permitir el reso del programa. Si los mdulos de programa se escriben en forma abstracta para resolver problemas generales, esos mdulos se podrn usar de nuevo, cuando en otros contextos

surjan instancias de esos mismos problemas generales. Por ejemplo, la definicin estructural de un muro es la misma en todas las casas.

La modularidad proporciona:  Calidad de diseo  Facilidad de instrumentacin  Facilidad de depuracin  Facilidad de pruebas  Facilidad de documentacin  Facilidad de mantenimiento  Reglas de modularizacin

Si la abstraccin que se desea representar pueden en ciertos casos corresponder a una nica accin abstracta y se implementan en general con la nocin de objeto abstracto (o tipo abstracto) caracterizado en todo instante por:  Un estado actual, definido por un cierto nmero de atributos.  Un conjunto de acciones posibles. En esencia, las abstracciones se implementan en mdulos, conocidos en la

terminologa de Booch como objetos, que agrupan en una sola entidad:  Un conjunto de datos.  Un conjunto de operaciones que actan sobre los datos. En primer lugar, un mtodo de diseo debe ayudar al programador a resolver un problema, dividiendo el problema en subproblemas ms pequeos, que se puedan resolver independientemente uno de otros. Tambin debe ser fcil conectar los diferentes mdulos a los restantes, dentro del programa que este escribiendo. Cada mdulo tiene un significado especifico propio y debe asegurarse que cualquier cambio en su implementacin no afecte a su exterior (o al menos lo mnimo). De igual modo, asegurar que los errores posibles, condiciones de limites o frontera, comportamientos errticos, no se propaguen ms all del mdulo (o como mximo a los mdulos que estn directamente en contacto con el afectado).

La estructura de un modulo
Un modulo se caracteriza fundamentalmente por su interfaz y por su implementacin. Define el modulo como un conjunto de acciones denominadas, funciones o submodulos que corresponden a una abstraccin coherente, que comparten un conjuntos de datos comunes implantadas estticamente llamadas atributos. Las acciones o funciones de un modulo que son susceptibles de ser llamadas desde el exterior primitivas o puntos de entrada del modulo. Los tipos lgicos eventualmente definidos en el interfaz permiten representar los parmetros de estas primitivas.

Unidad modulares
El lenguaje debe proporcionar estructuras modulares con los cuales se pueda describir las diferentes unidades. De este modo, el lenguaje (y el compilador) puede reconocer un mdulo y debe ser capaz de manipular y gobernar su uso, adems de las ventajas evidentes relativas a la legibilidad del cdigo resultante. Estas construcciones modulares pueden, como en el caso de los lenguajes orientados a objetos, mostrar caractersticas que facilitan a estructura del programa, as como la escritura de programa.

Interfaces explcitos
El interfaz o parte visible externamente de un mdulo se debe declarar y describir explcitamente, el programa debe especificar cules son los datos y procedimientos que un mdulo trata de exportar y cuales deben permanecer ocultos del exterior. El interfaz debe ser fcilmente legible, tanto para el programador como para el compilador. Es decir, el programador debe comprender como funciona el programa y el compilador ha de poder comprobar el cdigo que acede al mdulo se ha escrito correctamente. Ocultacin de la informacin Todos los mdulos deben seguir el principio de ocultacin de la informacin; cada mdulo debe representar al menos un elemento de diseo (por ejemplo, la estructura de un registro, un algoritmo, una abstraccin, etc.)

Otro criterio a tener en cuenta es la subdivisin de un sistema en mdulos, es el principio denominado abierto-cerrado, formulado por Meyer. Este principio entiende que cada mdulo se considera cerrado (esto es, terminado, y por consiguiente til o activo desde dentro de otros mdulos), y al mismo tiempo debe ser abierto (esto es, sometido a cambios y modificaciones). El principio abierto-cerrado debe producirse sin tener que recibir todos los mdulos que ya modificando utilizan el modulo que se est

Acoplamiento de mdulos
El acoplamiento es una medida de grado de interdependencia entre los mdulos, es decir, el modo en que un mdulo sta siendo afectado por la estructura interna de otro mdulo. El grado de acoplamiento se puede utilizar para evaluar la calidad de un diseo de sistema. El objetivo es minimizar el acoplamiento entre mdulos, es decir, minimizar su interdependencia, de modo que un mdulo sea afectado lo menos posible por la estructura de otro mdulo. El acoplamiento entre mdulos vara en un amplio rango. Por un lado, el diseo de un sistema puede tener una jerarqua de mdulos totalmente desacoplados. Sin embargo, dado que un sistema puede tener una jerarqua de mdulos debe realizar un conjunto de funciones o tareas de un modo organizado, no puede constar de un conjunto de mdulos totalmente acoplados; es decir, hay un alto grado de dependencia entre cada pareja de mdulos de diseo. Tal como define Booch, un sistema modular dbilmente acoplado facilita: 1. La sustitucin de un mdulo por otro, de modo que slo unos pocos mdulos sern afectados por el cambio. 2. El seguimiento de un error y el aislamiento del mdulo defectuoso que produce ese error. Existen varias clases de acoplamiento entre dos mdulos. Examinaremos los cinco tipos de acoplamiento, desde el menos deseable al ms deseable. La fuerza de acoplamiento entre dos mdulos sta influenciada por el tipo de comunicacin, el tipo de conexin entre ellos y la complejidad global de su interfaz.

Cohesin de mdulos
La cohesin es una extensin del concepto de ocultamiento de la informacin, dicho de otro modo, la cohesin describe la naturaleza de las interacciones dentro de un mdulo software. Este criterio sugiere que un sistema bien modularizado es aquel en el cual los interfaces de los mdulos son claros y simples. Un mdulo cohesivo ejecuta una tarea sencilla de un procedimiento de software y requiere poca interaccin con procedimientos que ejecutan otras partes de un programa.

 Luis Joyanes Aguilar, programacin Orientada a Objetos, McGraw Hill, 1996.  Javier. Ceballos, Java2, Alfa Y Omega, 1998.  Holzner Steven Anaya, La Biblia De Java 2, Coriolis, 1997.

You might also like