Enciclopedia de Conocimientos Fundamentales
UNAM ˜ SIGLO XXI


regreso








ABSTRACCION

Abstracción es la actividad por excelencia en la ciencia de la computación, la herramienta intelectual que permite a los científicos de la computación expresar su entendimiento de un problema, mantener la complejidad manejable, y seleccionar el nivel de detalle y grado de generalidad que necesitan en el momento..
COMPUTER SCIENCE: REFLECTIONS ON THE FIELD, 2004.


Arcadio estaba muy emocionado porque su tío Aureliano le prometió que cuando lo fuera a visitar a Estados Unidos le permitiría manejar su coche convertible. Arcadio llegó ya muy noche del aeropuerto a casa de su tío, pero al día siguiente lo primero que hizo al despertarse fue convencerlo de salir a pasear en el convertible.

—Qué bien se maneja este coche, tío.

—Sí, pero no quites los ojos de la calle, que está nuevecito.

—Claro tío, soy muy cuidadoso al manejar.

—¡¿Qué haces?! ¡Aaaaaaah! —gritó Aureliano cuando Arcadio reaccionó al ver que el semáforo cambiaba de verde a amarillo, y el coche que venía atrás casi se estrella contra ellos, dando un fuerte enfrenón y rechinando las llantas.

Arcadio no sabía que en Estados Unidos se permite pasar un semáforo en amarillo, pensó que era como en México, en donde podría ser infracción y motivo de multa. De manera que tomó por sorpresa al coche de atrás, que no se esperaba que Arcadio fuera a frenar en ese momento.
A un nivel de abstracción, un semáforo consiste en tres estados diferentes, cada uno con un significado particular. Es irrelevante cómo se implementa cada estado a este nivel de abstracción. No sólo es irrelevante, es útil no especificar la implementación de los estados, ya que permite evitar distracciones y concentrarnos en la esencia de interés: tres señales diferentes para control de tráfico. Además, permite la independencia de distintas implementaciones. Por ejemplo, una implementación puede ser en luces roja, verde y amarilla, pero no se limita a éstas. Se puede construir un semáforo para ciegos, usando sonidos, o uno para personas con problemas para ver colores con luces de distintas formas, que satisfagan las mismas propiedades de control de tráfico. Cada una de estas implementaciones tiene sus propios detalles y dificultades, que son independientes del significado en sí de cada estado del semáforo.

Pero, ¿cómo explicar la semántica del semáforo? Es decir, ¿qué significa cada uno de los tres estados? Se necesitan dos modelos: por un lado, el de los tres estados y cómo cambian de uno a otro; por otro, el reglamento de tránsito, que no es más que otro modelo que asigna significado al primer modelo que, en este caso, es un crucero, avanzar o no, etcétera.

En esta historia de Arcadio se presenta la problemática de la abstracción. Se tienen dos modelos y se quiere razonar acerca de la relación entre ellos. Ya sea que uno sirva para definir la semántica del otro o para implementarlo, obteniendo beneficios como facilitar su construcción (por ejemplo, usando piezas como focos, disponibles en cualquier tlapalería) o posibilitar distintas implementaciones (para ciegos y daltónicos), y permitiendo la verificación de una implementación de manera no ambigua: un policía debe poder decidir si un auto cometió una infracción o no analizando la relación entre dos modelos: el reglamento de tránsito y una situación real de un auto cruzando un semáforo. Se posibilita así la construcción de sistemas complejos, pero el fabricante de focos rojos puede concentrarse en su propia labor sin preocuparse de cómo se usará su producto.

La abstracción posibilita el razonamiento acerca de las propiedades de los sistemas. ¿No se facilitaría la construcción del semáforo dejándolo siempre en verde? Claro, el semáforo en sí es parte de una abstracción de más alto nivel, de la cual surge el requerimiento de que tenga tres luces que vayan rotando: un cruce de calles. El sistema en cuestión no contiene uno sino varios semáforos para controlar el tráfico en el crucero. Y los semáforos son una sola entre las posibles implementaciones del control de tráfico del crucero. De ahí proviene una preocupación a la que el computólogo le ha dedicado libros enteros: la justicia. Sin ésta sería muy fácil resolver el problema: simplemente se deja en verde uno —y sólo uno— de los semáforos del crucero, siempre. Otro tipo de razonamiento que se puede hacer gracias a la abstracción permite analizar si un modelo es implementable. ¿Qué tal que no haya manera de cumplir con el reglamento de tránsito? ¿Que algunas de sus reglas sean demasiado estrictas, ambiguas o contradictorias? Para razonar acerca de las relaciones entre modelos, la herramienta adecuada es la lógica matemática, como siempre que es necesario hacer razonamientos complejos de manera cuidadosa. Se verá que es posible usar distintas lógicas, con distintos poderes, diferentes capacidades de expresar propiedades, según el modelo en cuestión y los razonamientos requeridos.

Curiosidades
La mayoría de los semáforos del mundo consisten de tres luces, que cambian en el orden rojo, verde, amarillo. Pero en algunos países, como el Reino Unido, Polonia y Alemania, hay semáforos que van de rojo, a rojo con amarillo (para indicar que ya viene el verde), a verde y luego a amarillo.


semaforo


Curiosidades
La Columna de la Independencia de la ciudad de México fue inaugurada el 16 de septiembre de 1910. En enero de 1906 se habían terminado la base, el zócalo y el pedestal. Una vez iniciada la construcción, y cuando ya se habían colocado más de 2 400 piedras de cantera, la cimentación original no pudo soportar el gran peso del monumento y la columna empezó a perder verticalidad por el hundimiento. Se decidió demoler lo construido y se diseñó una nueva cimentación. La abstracción en la que se basó el diseño inicial de los cimientos no fue la adecuada. Este tipo de problema suele ocurrir en computación, en la construcción de sistemas de software, por ejemplo. Siempre es mejor desechar un sistema cuando su diseño fundamental, la abstracción que constituye su "cimentación", no es la adecuada. Es más barato tirar el trabajo hecho que tratar de "enderezar" el sistema corrigiendo los problemas que surgirán durante su elaboración.


Inicio de página