Modelado de Datos Orientado a Objetos para un Sistema de Información Geográfica Nidia Posada, David Sol {posada, sol} @mail.udlap.mx CENTIA Universidad de las Américas-Puebla 72820 Sta. Catarina Mártir Puebla, México Resumen Nuestro trabajo presenta el diseño y la implementación de Objetos Geográficos (OG) que permitan el manejo de datos en un Sistema de Información Geográfica (SIG). Utilizando una Base de Datos ObjetoRelacional (Informix Universal Server IUS), es posible manejar la persistencia de los OG. El modelo describe OG del mundo real, así como conceptos del enfoque orientado a objetos tales como la herencia, la asociación y la clasificación. Un visualizador de objetos geográficos apoya en la administración del almacenamiento y la recuperación de objetos geográficos, permitiendo así el manejo de la persistencia. De esta manera los objetos geográficos no necesitan ser armados y desarmados para su utilización. Palabras clave: Herencia, asociación, superclase, orientado a objeto, Objeto Geográfico, SIG. tradicional tanto de información que no podrá ser representada de manera trivial. Esto se debe a que la mayoría de los datos espaciales que representan información real no es regular. El uso de nuevas geometrías permitirá un manejo más adecuado de la información espacial [López 98]. 1.- Introducción Los sistemas de información se han convertido en herramientas útiles de la ingeniería y de las ciencias básicas. Son tres las características que han propiciado que los sistemas de información geográfica (SIG) se estén desarrollando en forma considerable y estas características son: el resolver problemas de manera eficiente, rápida y oportuna. Las bases de datos se utilizan normalmente para guardar una variedad de información dependiendo del dominio de la aplicación elegida. Los datos necesitan a menudo ser periódicamente actualizados en cuanto a la información con la que cuenta (valores), como de los cambios en el dominio de la aplicación. Los mecanismos de almacenamiento de datos actuales en una base de datos utilizan modelos formales que garantizan la consistencia, la seguridad, reducen la redundancia y permiten su uso concurrente. Debido a estas exigencias una base de datos modela datos de una manera distinta a su representación real. Tal es el caso del modelo relacional. Como es bien conocido, si los datos que se manejan son complejos y estructurados se necesitan crear mecanismos de armado y desarmado de datos para que Los SIG son un tipo especializado de sistemas que se distinguen por su capacidad de manejar información espacialmente referenciable y que permiten además su representación gráfica [Velez 96]. Se dice que son herramientas, porque ayudan a la formación de elementos de juicio para la toma de decisiones luego que se han aprovechado sus funciones de captura, almacenamiento, refinamiento, análisis y visualización de la información. La forma de organizar la información en un SIG espacial es importante. La información puede ser muy variada ya que tomamos en cuenta características del mundo real. Podemos tener información tanto de cuerpos y figuras regulares que son bien representados por la geometría 1 aplicaciones de explotación y bases de datos puedan interactuar [Cattell 91]. cuenta que se están realizando muchos estudios para lograr un estándar en el modelado de los datos geográficos. Algunos ejemplos pueden encontrarse en [Posada 99]. Hasta el día de hoy no se ha llegado a un acuerdo, pero es bueno notar que los trabajos tienen ideas similares. El advenimiento del paradigma de programación orientado a objeto y la aparición de estructuras de datos no atómicos, sugieren nuevos métodos para organizar información en una base de datos. Los sistemas de base de datos objeto (ODBMS) deben de soportar aplicaciones complejas tales como: diseño automatizado (CAD) y software automatizado (CASE), y sistemas multimedia tales como SIG, manejo de imágenes, voz y video. Los trabajos descritos coinciden en el hecho de que es importante considerar los conceptos del enfoque orientado a objetos. Algunos han hecho más énfasis en el aspecto de la herencia. Las características que los trabajos descritos consideraron más relevantes fueron las consideramos en nuestro trabajo. Nuestro trabajo describe en este contexto el manejo de datos geográficos en una base de datos orientada a objetos, utilizando el enfoque objeto/relacional. Nuestro trabajo utiliza como base una interfaz para datos geográficos desarrollada en nuestro grupo de trabajo [Briones 98] donde los aspectos básicos de un SIG ya han sido considerados. Por otro lado, pretende ser una base experimental para aspectos adicionales como consultas, interoperabilidad y compartición de datos geográficos. En el contexto del esfuerzo que se lleva a cabo para este tipo de modelado, los investigadores han coincidido también en el uso de un estándar para los datos geográficos. Los estándares que han presentado más interés proponen el uso de geometrías basadas en puntos, líneas y polígonos. La tabla 1 presenta los trabajos que fueron analizados junto con las características que poseen cada uno. Así como las características que tomó nuestro trabajo. 2.- Trabajos Relacionados D es pleg ado P ro pa ga c ió n H ere nc ia A g reg ac ión A s oc iac ió n M odelo G en era liz ac ió n C la s if ic a c ión Se analizaron varios trabajos describiendo sus técnicas donde cada uno tiene características propias pero otras generales. Hay que tomar en O bject-O riented M odeling for G IS [E genhofer 98] R ock & R oll [F ernandes 99] C omputer C artography for G IS: an O bject-O riented view on the D isplay T ransformation [Andrew 92] M odelado de D atos O rientado a O bjeto para un Sistemas de Información G eográfico (SIG O O ) [Posada 99] Tabla 1 Características de los trabajos analizados y el sistema SIGOO propuesto La tabla muestra las características similares son: En el modelo presentado por [Egenhofer 98] es importante estudiar como modela el manejo de la Asociación y la Herencia. Agregación, Asociación, Herencia, Generalización y Clasificación 3. Metodología La metodología que se utilizó para el diseño del modelo en el sistema es el Modelo y Diseño Orientado a Objeto (OMT) [Rambaugh 96 et. al], 2 debido a que maneja los conceptos orientados a objeto. Esto nos permite manejar a nivel diseño, implementación y almacenamiento un enfoque orientado a objetos. Describiremos a continuación brevemente algunos aspectos del relacional que nos parecen interesantes para después describir el enfoque objeto/relacional. Este enfoque fue el que utilizamos en el desarrollo de nuestro trabajo. El hecho de manejar un enfoque homogéneo en 3 niveles de construcción de la aplicación permite reflejar en la base de datos objetos geográficos del mundo real y al mismo tiempo conservar las ventajas que ya existen en los modelos de bases de datos actuales. 4.1 Modelo Relacional La popularidad del modelo relacional se debe primariamente a su simplicidad. Hay únicamente una sola estructura de datos: una tabla con renglones y columnas conteniendo datos de tipo específico, tales como integer o string. El lenguaje de consultas está basado en simples operaciones con tablas, y las más complejas características (tales como la integridad limitada en datos y definición de vistas, ocultar o reestructurar datos) que no necesitan ser entendidos por el usuario [Cattell 91]. Las características más relevantes del modelo orientado a objetos son las siguientes: Clasificacón: es la organización de métodos y datos de la misma estructura, además de su comportamiento. En éste caso se puede ver que una capa se encuentra compuesto por tipos como son punto, líneas, polilíneas y polígonos estos a su vez manejan atributos y métodos. Generalización: es la capacidad que permite que un objeto especializado pueda ser substituido por un elemento de su super-clase. En este caso la sub-clase comparte la estructura y el comportamiento de la super-clase. Asociación: Es un enlace que existe entre una clase y otra. Este enlace permite hacer una referencia hacia otras clases. Agregación: es una propiedad que permite que se manejan objetos compuestos, los cuales a su vez son otros objetos. Es una relación parte-de donde al unirse forman el ensamblaje completo. Estos objetos tienen su propia funcionalidad. Herencia: Define a las clases en términos de super-clases. Para que el modelo relacional pueda almacenar datos geográficos, éstos necesitan ser atomizados en renglones y columnas. Los mecanismos de almacenamiento y recuperación de datos geográficos son entonces desarrollados en el contexto de la aplicación que hace acceso a la base de datos. Esto puede provocar que el manejo de uno o dos objetos geográficos represente el manejo de varias tablas en el contexto del relacional. Un SIG maneja sus datos por capas. Por ejemplo: un territorio puede estar compuesto por ríos, carreteras y ciudades. Cada uno de estos componentes es una capa. Cada capa esta compuesta por un conjunto de objetos geográficos del mismo tipo. Cada objeto puede necesitar de una o más tablas para poder ser almacenado. Pensemos tan sólo en un objeto representado por un polígono. El polígono está compuesto por varios segmentos y cada segmento está compuesto por dos puntos. Dependiendo del tipo de representación que sea utilizado, podríamos tener una tabla para los puntos, una para los segmentos y otra para los polígonos, con sus respectivas referencias. Todas estas propiedades y conceptos nos permitieron experimentar como el enfoque objeto/relacional permite el manejo de datos y objetos geográficos. 4. Modelos de Datos La representación de datos geográficos puede llevarse a cabo de manera natural en el contexto del enfoque orientado a objetos. Sin embargo, el manejo de base de datos se realiza actualmente en el contexto del enfoque relacional, dadas las ventajas que éste ofrece. Este manejo reduce de manera considerable la claridad de representación de los datos que manejan. Se garantiza integridad y consistencia, pero se pierde en claridad. El enfoque orientado a objetos propone una alternativa, que en principio pretende garantizar la integridad y la consistencia y gana en claridad. A partir del desarrollo de la metodología orientada a objetos, dos enfoques se han sido impulsados: el enfoque puramente objeto el enfoque objeto/relacional 3 procedimientos, objetos, versiones y otras nuevas capacidades. El desarrollo de modelo objeto/relacional deriva del hecho que las ventajas del relacional se conservan y pueden integrarse aspectos de diseño que agregan claridad a la representación de los datos. 4.2 Modelo Orientado a Objeto Los sistemas basados en modelos de datos orientados a objeto fueron inspirados a partir del paradigma de programación orientada a objeto. Entre los primeros lenguajes orientados a objetos podemos citar Smalltalk y Simula. Ejemplos más recientes son C++, CIOS, CLU y JAVA [Berard 96]. Para evitar que múltiples extensiones del relacional se generen se encuentra en proceso de definición un estándar en el contexto de SQL [Manola 97 et. al]. El paradigma de programación orientada a objetos incluye el concepto de tipos abstractos de datos en lenguajes de programación. Las declaraciones de tipos abstractos de datos explícitamente se definen públicos y privadas en algunas porciones de la estructura de datos, u objetos. Los tipos abstractos de datos en un lenguaje orientado a objeto, son implementados en clases, es decir encapsula porciones privadas de datos del objeto con procedimientos públicos, llamados métodos. El argumento para encapsulación es uno de los más simples en la construcción y mantenimiento de programas a través de modularización. Un objeto es como una caja negra, que puede ser construida y modificada independientemente del resto del sistema, tan grande como una interfaz pública (método) en la cual las definiciones no cambian. Para que un SIG pueda ser manejado en el contexto del enfoque objeto/relacional, son creados tipos de acuerdo a los objetos geográficos que desean manejarse. Una jerarquía de tipos es creada, donde a partir de los tipos básicos, son construidos tipos más sofisticados. Todos los tipos creados son entonces implementados por clases que permiten su manejo y lo hacen compatible con la jerarquía que se utilice en un lenguaje de programación orientado a objetos. 5. Objetos Geográficos Los objetos geométricos de base son: No hay un sólo paradigma orientado a objeto, y por lo tanto hay una variedad de modelos y como consecuencia diferentes estándares [Khoshafian 95]. Generalmente, los lenguajes de programación orientados a objeto parten de conceptos comunes además de encapsulación, en particular el uso de jerarquías de tipos de objetos con herencias en sus atributos y métodos. De cualquier modo, las características específicas varían, y pueden regular la definición estricta de encapsulación provista por tipos abstractos de datos - que los procedimientos son públicos, cuando los datos son privados. El tipo de modelado también influye en la manera como son manejados los DBMS´s Orientados a Objeto. Puntos Líneas Polilíneas Polígonos Cada uno de los cuales es modelado por un tipo abstracto de datos en el contexto del enfoque objeto/relacional. El modelo de representación que usamos es el vectorial, debido a que su estructura básica descansa en puntos, líneas y polígonos. El modelado basado en puntos, líneas y polígonos corresponde con el desarrollado para el visualizador de objetos geográficos. Una descripción del enfoque vectorial para aspectos de visualización puede encontrarse en [Briones 98]. Actualmente se esta trabajando en un formato que nos ayudará a compartir datos heterogéneos usando el standard de OPENGIS para la exportación e importación de los datos [Kottman 95]. En la figura 1 puede verse como los puntos, líneas y polígonos son utilizados para modelar el campus de la Universidad de las Américas en Puebla. 4.3 Modelo Objeto-Relacional El camino más inmediato que remedia el problema de la claridad en el modelo relacional es el modelo extendido o modelo objetorelacional. El modelo de datos "Extended Relational" es usado en sistemas basados en el modelo de datos relacional incorporando 4 Figura 1 Campus de la UDLA abstractos de datos principales son: punto, línea, polilínea y polígono. 6. Modelo SIGOO Nuestro trabajo utiliza como plataforma un visualizador desarrollado en nuestro grupo [Briones 98] y se concentra en el modelado de objetos geométricos del campus de la Universidad de las Américas. La aportación más relevante de nuestro trabajo es la manipulación de objetos geográficos persistentes. La Figura 2 muestra la jerarquía de clases que se maneja a nivel de la programación. La jerarquía muestra como clase principal a vista, la cual es manejada como el nombre del proyecto, el cual está formado por varias capas. En el segundo nivel encontramos a la clase Capa, en la cual se manejan los distintos tipos de datos mencionados anteriormente, por último en el tercer nivel encontramos a los tipos básicos de datos. El desarrollo de nuestro trabajo requirió en primera instancia la creación de tipos abstractos de datos para los objetos geográficos. Los tipos Figura 2 Jerarquía de clases en el Sistemas de Información Geográfico 5 6.1 Punto Un punto está formado por coordenadas X,Y. La clase Punto maneja las coordenadas en variables x, y. polígono. Lo mismo podríamos decir para las redes de agua potable, para las oficinas y cualquier otro objeto que sea componente del campus. Este tipo de organización nos permite clasificar los tipos de datos utilizados en una aplicación geográfica. 6.2 Línea Una línea esta formada por un par de puntos, es decir dos parejas de coordenadas X,Y. Por lo tanto la agregación de puntos se ve reflejada en una línea. La utilidad que nos aporta esta clase se debe a que pueden derivarse de ella otras más específicas, las cuales tendrán atributos que nos proporcionen más información de la que una línea puede darnos, un ejemplo claro puede ser, que se utilice para la creación de pasillos, la cual tendrá como atributos: nombre del pasillo, edificio al que pertenece y sus medidas. 6.6 Vista Se encuentra formada por varias capas. Retomando el ejemplo anterior, ya tenemos dos capas, los edificios y la red la de agua potable. La clase vista nos permite saber cual de esas capas se encuentra activada, es decir puede ser vista por el usuario. También permite añadir más tipos de datos a cada capa, siempre y cuando sea el mismo del que esta compuesto dicha capa. Además cuenta con un método de intersección el cual nos permite saber si entre capas del tipo linea, polilínea o polígono existen intersecciones y en el caso de haberlas se genera una nueva capa con aquellas líneas que se encuentran afectadas 6.3 Polilínea Una polilínea está formada por dos o más líneas, es decir por más de dos pares de puntos. En ésta clase se toma en cuenta este concepto, que contiene un conjunto de coordenadas X,Y, otro atributo adicional que es el número de puntos del que ésta formada. Así como en la Línea, la polilínea es una agregación de Líneas. Para tener una aportación de información más clara, la polilínea puede generar otra clase más específica por ejemplo, las carreteras, de las cuales obtenemos mayor información como puede ser: sentido de circulación, número de carriles, destino al que lleva, y kilometraje por mencionar algunas. De ésta forma teniendo nuestra clase básica polilínea la cual al principio no nos remitía información alguna, al realizar una subclase de ella se obtiene información adicional. Se tomaron en cuenta entonces como tipos básicos las líneas, puntos, polígonos y polilíneas manejándolos en el concepto de figuras geométricas. A continuación describiremos como se organizaron estos tipos en una base de datos objeto/relacional. 7. Organización de la Base de Datos La estructura de la base de datos se encuentra dividida en dos partes, una en la que se encuentran los tipos abstractos que serán requeridos para la generación de las tablas y en las cuales encontraremos los atributos necesarios. La segunda parte esta compuesta por las tablas. Las tablas se construyen sobre los tipos abstractos existentes. Los objetos existirán en las tablas, pero para describir su estructura harán referencia a los tipos abstractos de datos. 6.4 Polígono El polígono es parecido a una polilínea con la diferencia que ésta figura es cerrada. Contiene un conjunto de coordenadas X,Y, además de un atributo adicional el cual nos dirá cuantos puntos son los que forman al polígono. De la misma forma que la línea y la polílinea siendo clases básicas no nos retribuye información. De esta manera, utilizamos la clase polígono para representar a los edificios en el campus de la UDLA, en una subclase. En primera instancia describiremos los tipos abstractos de datos y enseguida describiremos las tablas: 7.1 Tipos y Tablas Los tipos de datos que necesitamos manejar en nuestro modelado son: un tipo que tenga la estructura de un punto y una línea ya que efectuando la asociación serán generados los tipos polilínea y polígono. Una vez descritos los tipos de base, describiremos como se utiliza los conceptos de objetos como herencia y asociación para formar tipos más complejos. Así 6.5 Capa Se encuentra formada por una agregación de un solo tipo de dato que puede ser: puntos o líneas o polilíneas o polígonos. Bajo este esquema la capa de edificios estará formada únicamente por edificios. A su vez edificio es sub-clase de 6 como las tablas con las cuales comenzará a funcionar el sistema. Ello puede verse en la N o m b re T ip o T a b la p u n to _ t Si ca p a _ t ca p a p o lilin e a _ t V ista Capa H e re n c ia As o c ia c ió n n o m b re , co lo r, tip o Si ca p a lin e a s_ t V a ria b le s x, y Si ca p a p u n to _ t Tabla 1. ca p a _ t x, y e xtre m o 1 , Si e xtre m o 2 num, Si Si p u n to _ t ca p a _ t p u n to _ t e xtre m o 1 , e xtre m o 2 Si ca p a _ t n o m b re _ vista , n o m b re _ ca p a V ista n o m b re _ ca p a ,tip o Tabla 1 Tipos y Tablas usadas en el sistema SIGOO La segunda tabla es capa la cual es un apoyo que nos permitirá tener una administración de las capas existentes y el tipo al que pertenecen cada una de ellas, línea, punto, polilínea, polígono. En el momento en que el usuario pida abrir una capa o inserte una capa primero verifique si existe la tabla en capa y posteriormente recupere la información si es que esta existe. Con este tipo de datos ya podemos comenzar a generar nuestras tablas, las cuales podrán ser de estos tipos según sean las necesidades que se requieran. Es importante mencionar que la capa polígono es almacenado como la estructura de una polilínea pero a diferencia de que esta figura será cerrada. Las tablas son la estructura en la cual se encuentra almacenada la información de la base de datos. Por lo que las dos tablas con las que cuenta inicialmente el sistema son: vista en la cual se almacenaran el nombre de las capas existentes por cada proyecto. Esta clase cuenta con dos atributos que son nombre_vista y nombre_capa, como podemos verlo en Tabla 1. En el primer atributo se almacena el nombre del proyecto y en el segundo se almacena el nombre que se le dió a cada capa generada por el usuario en el sistema. 8. Prototipo Para probar los tipos modelados, supongamos que en la aplicación se desarrolle un mapa que contenga la estructura del campus de la UDLA, y de ella se generen las capas que se muestran en la Tabla 2. Para cada capa podemos notar que asigna un tipo de dato. La figura 10 muestra un ejemplo de nuestra interfaz que maneja las capas presentadas en la Tabla 2. C ap a T ip o E dificios P oligono C ircuito P olilineas T om as de A gua P untos P asillos Línea Tabla 2 7 Figura 10 Aplicación en la cual encontramos las capas generadas. Las clases que implementan los tipos descritos fueron creadas en el lenguaje de programación Java. Para la creación de las estructuras que darán soporte para el almacenamiento persistente de las clases se dieron los siguientes pasos: las necesidades requeridas por el diseño del modelado presentado, lo que da como resultado que no se generen más tablas de las necesarias. En comparación con el modelo relacional la generación de tablas depende de cuantas líneas, polilíneas, polígonos y puntos contenga cada capa y por lo mismo el número de tuplas generadas. Lamentablemente todavía no contamos con la tecnología que nos permita manejar listas en la base de datos para guardar una colección de líneas y poder utilizarla para la generación del tipo de capa polilínea o polígono, ya que para el manejo de listas en IUS se necesita programar en ESQL/C, que utiliza librerías de lenguaje C y el Data Blade. Como el lenguaje de programación que se utilizó en el desarrollo de nuestro modelo fue Java, todavía no hay una interoperatividad transparente entre ambos lenguajes. Se creó la capa con el tipo de dato que contenía (punto, línea, polilínea o polígono) con el nombre dado por el usuario, que en este caso son Edificios, Circuito, Tomas de Agua y Pasillos. Posteriormente se insertaron los datos A continuación se muestra como fueron creadas las capas y su inserción a la base de datos. create table Circuito of type capapolilineas_t; insert into Circuito values ('Circuito','java.awt.Color[r=0,g=0,b=0]','poligono',0, row(108,93)::punto_t, row(80,95)::punto_t); Las pruebas realizadas nos han permitido el manejo de objetos geográficos en el contexto de una base de datos objeto/relacional. El uso de los estándares que están en desarrollo permitirán confirmar los resultados de los experimentos desarrollados en el presente trabajo. Aspectos como la compartición de datos geográficos pueden ser favorecidos por el hecho de manejar un enfoque orientado a objetos en el contexto de la base de datos. create table Edificios of type capapolilineas_t; insert into Edificios values ('Edificios','java.awt.Color[r=0,g=0,b=255]','poligono',0, row(58,69)::punto_t, row(79,70)::punto_t); Nuestro modelo fue implantado usando una base de datos Objeto-Relacional como es el caso de Informix Universal Server (IUS) [Informix 97]. Éste manejador nos permite además la generación de tipos que se adapten a 8 and Extended Relational Database Systems, Addison-Wesley, United States of America, 1991. 9. Conclusiones El objetivo de nuestro trabajo fue el manejo transparente de objetos geográficos en una base de datos. Con este manejo transparente es posible administrar la persistencia de objetos geográficos. Este manejo nos evitó la creación de rutinas de armado y desarmado de objetos al momento de la lectura o la escritura en la base de datos. Los tipos de datos abstractos de la base de datos son referenciados por las tablas de la base de datos y en el contexto de la aplicación en Java son implementados por clases. Es importante señalar que los trabajos previos hicieron énfasis en el aspecto del modelado de objetos geográficos a nivel programación y que nuestro trabajo permite además experimentar el aspecto del modelo de objetos geográficos en el contexto de una base de datos. Con el manejo de objetos geográficos se reduce el número de accesos, pues los objetos son recuperados de la base de datos y utilizados en el contexto de la aplicación. [Egenhofer 98] Egenhofer Max J., Frank Andrew U., Object-Oriented Modeling for GIS, URISA Journal, 1998. [Fernandes 99] Fernandes, Alvaro A. A., Paton, W. Norman, Howard Williams M., A Logical Query Language for an ObjectOriented Data Model, Department of Computing and Electrical Engineering, HeriotWatt University, Edinburgh, UK, Enero 1999. [Informix 97] Informix Software, Inc. Answer on line, http://ict2.udlap.mx/informix/, 1997. [Khoshafian 95] Khoshafian Setray, Abnous Razmik, Object Orientation, Segunda edición, John Wiley & Suns, Inc,. United States of America, 1995. [Kottman 95] Kottman, Cliff, OpenGis, Open Gis Consortium, Inc., http://www.opengis.org, 1995. El manejo de datos geográficos como objetos nos permite manejar objetos portables. En el contexto de compartición, interoperabilidad y exportación de datos, nos parece que el manejo de objetos geográficos persistentes es un paso que permitirá llevar a cabo éstas tareas. [López 98] López Ornelas, Erick de Jesús, Modelación de Información Espacial y Geográfica, tesis para obtener el grado de Licenciatura en Ingeniería en Sistemas computacionales, UDLA, Mayo de 1998. Con el uso del standard OPENGIS perimitirá la compartición de datos en forma heterogénea de tal manera que la información sea portable y de fácil acceso. El uso de SIG será explotado más ampliamente y con ello una visión mas general de ésta poderosa herramienta. [Manola 97et al] Manola, Frank, Sutherland, Jeff, SQL3 Object Model, http://www.objs.com/x3h7/sql3.html, 1997. [Posada 99] Posada Toledo, Nidia, Modelado de Datos Orientado a Objeto para un Sistema de Información Geográfica, tesis para obtener el grado de Licenciatura en Ingeniería en Sistemas Computacionales, UDLA; Mayo de 1999. 10. Bibliografía [Andrew 92] Andrew U. Frank, Max J. Egenhofer, Computer Cartography for GIS: an Object-Oriented view on the Display Transformation, Computer & Geociences Vol 18, No.8 pp 975-987, 1992. [Rambaugh 96 et. al] Rumbaugh James, Blaha Michael, Premerlani William, Eddy Frededick, Lorensen William, Modelado y diseño orientados a objetos, Prentice Hall, España, 1996. [Berard 96] Berard, Edward V. Basic Object-Oriented Concepts, http://www.toa.com/pub/html/oobasics/oobasics. html, 1996. [Vélez 96] Vélez Macías, Fabio., Introducción a los Sistemas de información Geográficos, Universidad de Antioquia Facultad de Ingeniería, Departamento de Ingeniería Sanitaria y Ambiental, http://quimbaya.udea.edu.co/~fabiovel/, Medellín, Septiembre de 1996. [Briones 98] Briones del Río, Juan Luis, Interfaz gráfica para un Sistemas de Información Geográfico, tesis para obtener el grado de Licenciatura en Ingeniería en Sistemas computacionales, UDLA, Diciembre de 1998. [Cattell 91] Cattell, Roderic Geoffrey Galton, Object Data Management: Object-Oriented 9