Вы находитесь на странице: 1из 3

VI: 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.
Modularidad en Ciencias de la computacin es la caracterstica por la cual
un programa de computador est compuesto de porciones que se conocen
como mdulos. El diseo estructurado es la tcnica de diseo de algoritmos en
que se basa la programacin modular, paradigma de programacin que
persigue desarrollar programas modulares.

Modularidad y orientacin a objetos. Traduccin a Java de


diseos modulares
En esta asignatura slo aplicaremos la orientacin a objetos a fin de
aprovechar mejor los mecanismos que el lenguaje Java ofrece para codificar
nuestros diseos modulares. Sin embargo, este
estilo de programacin conlleva un modo particular de abordar la
estructuracin de programas.
Veamos en primer lugar algunos aspectos conceptuales del mismo para pasar,
seguidamente, a
aplicarlos en nuestro contexto.
Considerado como unidad de estructuracin de programas, el concepto de
clase equivale esencialmente al de mdulo. Por tanto, sus fases de diseo son
las mismas, si bien la forma de
especificar, utilizar e implementar difiere ligeramente entre un estilo y el otro.
Las clases y los
objetos representan una manera alternativa de modelizar los datos (la
informacin) de un programa.
En el estilo modular clsico, un mdulo de datos define un tipo con un dominio
de valores y
un conjunto de operaciones que trabajan con diversos parmetros, de los que
al menos uno es del
propio tipo. En programacin orientada a objetos, una clase de datos define
una estructura de
atributos y operaciones que se particulariza (tambin se suele decir que se
instancia) en cada
objeto de la misma que se crea. En este aspecto, una clase tambin hace el
papel de tipo de
dichos objetos.
En el diseo modular clsico, una variable posee un valor del tipo al que
pertenece y sobre

ella se aplican las operaciones de dicho tipo. Podemos decir que una variable
contiene la informacin. Sin embargo, cada vez que se crea un objeto de una
clase de datos, ste se convierte
en un representante de la estructura definida en tal clase, de forma que recibe
como componentes sus atributos y sus operaciones (tambin llamadas
mtodos). En este caso el objeto es la
informacin.
La mayora de lenguajes orientados a objetos introducen maneras de trabajar
que pueden resultar sorprendentes si previamente se ha estudiado diseo
modular, pero que son perfectamente
consistentes con la mencionada diferencia conceptual entre ambos estilos.
Por ejemplo, las operaciones de una clase se conciben para ser aplicadas sobre
un objeto
concreto de la clase, y por eso se parametrizan de una manera especial, de tal
manera que el
objeto que es creado, modificado o consultado por una operacin no aparece
explcitamente
en la lista de paramtros de la misma. Se mencionar slo en las llamadas a
dicha operacin,
mientras que en el cdigo de la misma es referido de forma implcita.
Otra prctica habitual es que las clases no se tratan igual que los tipos simples
a la hora de
parametrizar las operaciones o respecto a la operacin de asignacin. La
primera situacin se
estudia en detalle en la primera sesin de laboratorio de la asignatura. En
cuanto a la segunda,
cuando se desea producir dos objetos distintos con la misma informacin, no se
habla de asignar
un objeto a otro sino de copiar (o tambin, clonar) un objeto en otro. De hecho,
en la mayora
de lenguajes orientados a objetos se permite realizar asignaciones entre
objetos, pero con una
1semntica muy distinta a la de la asignacin clsica. Al realizarse tal
asignacin entre objetos,
el resultado es que la misma informacin pasa a tener dos nombres (situacin
habitualmente
denominada aliasing), lo que puede dar lugar a efectos laterales difcilmente
controlables.
Por ello, en nuestro contexto limitaremos estas asignaciones a un reducido
nmero de casos
particulares que describiremos en su momento, aunque en otros contextos
puede resultar til
explotar esta comparticin de informacin.
En la prctica, esta filosofa de trabajo da lugar a una serie de aspectos
metodolgicos nuevos
que presentamos en los apartados siguientes, aplicados de forma particular al
lenguaje Java.

La modularidad es, en programacin modular y ms especficamente


en programacin orientada a objetos, la propiedad que permite subdividir una
aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales
debe ser tan independiente como sea posible de la aplicacin en s y de las
restantes partes.
Estos mdulos 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.
Segn Bertrand Meyer: El acto de particionar un programa en componentes
individuales para reducir su complejidad en algn grado A pesar de
particionar un programa es til por esta razn, una justificacin ms poderosa
para particionar un programa es que crea una serie de lmites bien definidos y
documentados en el programa. Estos lmites, o interfaces, son muy valiosos en
la comprensin del programa.1
Por su parte Brbara Liskov establece que la modularizacin consiste en
dividir un programa en mdulos que pueden ser compilados de forma
separada, pero que tienen conexiones con otros mdulos. 2

Вам также может понравиться