Fundamentos de programación con Módula-2 (Tema 14_3)

14.5 Desarrollo modular basado en abstracciones

La técnica de programación estructurada, basada en refinamientos sucesivos, puede ampliarse para contemplar la descomposición modular de un programa. La metodología de desarrollo será esencialmente la misms que se ha presentado en el Tema 8, referente al desarrollo usando abstracciones en forma de subprogramas.

14.5.1 Abstracciones para desarrollo modular
Cuando se ha introducido el concepto de abstracción en los Temas anteriores, sólo se había mencionado la posibilidad de aplicarlo a expresiones o acciones, definiéndolos como funciones o procedimientos.

Estas abstracciones se llaman, en general, abstracciones funcionales, con independencia de que sean una función propiamente dicha o bien un procedimiento que realiza una acción.

El mecanismo de módulos permite ampliar el repertorio de abstracciones que pueden reconocerse y desarrollarse por separado en el proceso de construcción de un programa. Estas nuevas abstracciones se denominan abstracciones de datos, y podemos distinguir en ellas las dos clases ya mencionadas, correspondientes a los tipos abstractos de datos, y a los datos abstractos, encapsulados.

La organización de un programa en módulos se representa gráficamente, como ya se ha indicado, mediante un diagrama de estructura. En este diagrama se pueden marcar de manera diferente cada una de las distintas clases de abstracciones que pueden desarrollar como módulos separados.

 

La Figura 14.3 representa la estructura de un programa que se desarrollará como ejemplo en el resto de este Tema. Se han identificado cuatro abstracciones como módulos separados. Las abstracciones denominadas Portada y Centrar son abstracciones funcionales, correspondientes, respectivamente, al programa principal y a un subprograma algo complejo que se ha desarrollado por separado. Estas abstracciones funcionales se representan con un rectángulo con el borde en trazo sencillo.

La abstracción Cajas es un tipo abstracto de datos. Para distinguirla se ha empleado trazo doble en el borde superior del rectángulo. Finalmente, la abstracción Pagina es un dato encapsulado, y se ha marcado con trazo doble todo el borde del rectángulo.

14.5.2 Desarrollo por refinamiento basado en abstracciones
Esta técnica ya se ha desarrollado para el caso de abstracciones funcionales, definidas dentro del propio programa que las usa. Las únicas novedades que se introducen ahora son las abstracciones de datos y la posibilidad de desarrollar también las abstracciones funcionales como módulos separados.

Aplicaremos la técnica de refinamiento a un programa para componer la página de texto correspondiente a la portada de un libro o documento, imprimiendo en dicha página bloques rectangulares de texto rellenos con un mismo carácter, o con un texto que se imprime con las líneas centradas dentro de la zona.

Con elementos de este tipo podremos componer, por ejemplo, la portada siguiente, en que escribe el título dentro de un rectángulo en medio de la portada, con cuatro rectángulos en trama uniforme situados en las esquinas. Estos elementos aparecen superpuestos unos sobre otros, en la forma:

 

El desarrollo se hace por refinamientos sucesivos. La acción principal se descompone inicialmente en una secuencia de acciones sencillas, tales como:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s