Framework Introduction
3.3 CMM for software
3.3.2 Key process areas
Una vez concebida y estandarizada la estructura que deben tener las geometrías así como el sistema de referencia en que se van a proyectar sobre la superficie terrestre el proyecto pasó a la fase de crear una estructura que soportara esta información en una base de datos, así surge la Base de Información Geográfica (BIG), que es la implementación en forma de tablas relacionales de una base de datos orientada a objetos. Por su diseño jerárquico en forma de árbol, permite tanto la modelación de estructuras sencillas de organización de la información, como un diseño de una jerarquía corporativa altamente compleja. Dentro de una BIG se almacenan, por niveles jerárquicos, los distintos tipos de catálogos, carpetas, colecciones de objetos y otras entidades que la componen. Todos los elementos que forman una BIG son implementados físicamente como tablas relacionales. La variante local utiliza un driver ODBC para bases de datos de Microsoft Access. La variante remota se implementa como un componente MTS y utiliza un driver ODBC para bases de datos de Microsoft SQL Server.
El usuario que ejecuta una Aplicación BIG, utilizando las opciones disponibles, podrá crear una nueva BIG. Esta operación crea una carpeta inicial que identifica a la BIG y dentro de ella 4 catálogos que son: Grupos y Usuarios, Sistemas de Referencia Espacial, Tipos de Objetos y Vistas.
PROJCS["NAD27_UTM",GEOGCS["GCS_Cuba",DATUM["cuba_Datum", SPHEROID["clarke_1866",6378206.400,294.9786982]], PRIMEM["greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["UTM"],PARAMETER["latitude_of_center",22.350000], PARAMETER["standard_parallel_1",22.999499],PARAMETER["standard_parallel_ 2",21.699469],PARAMETER["false_easting",280296.016000],PARAMETER["false_ northing",500000.000000], PARAMETER["central_meridian",-81.0], PARAMETER["scale_factor",0.999936020],UNIT["Meter",1.0]]
Catálogo de Grupos y Usuarios .
Aquí se definen los grupos de usuarios y usuarios individuales que tendrán acceso a la carpeta propietaria del catálogo o sus carpetas descendientes.
La tabla USERS_GROUPS_CATALOGS contiene todos los grupos y usuarios de la base de información.
Usuario .
Toda persona que acceda a la BIG tendrá una identificación como usuario y una clave, válida para el acceso a las entidades del sistema dentro de la carpeta en que fue definido y sus carpetas descendientes.
La tabla USERS contiene todos los usuarios de la base de información, especificando a cual catálogo pertenece cada uno, además de otras propiedades. Cuando se crea un nuevo usuario, se verifica que no exista otro usuario de la BIG con el mismo nombre. Si existiera se le pide la clave para verificar si se refiere a este usuario que ya está registrado, pudiéndose decidir moverlo a un catálogo superior. Grupo de Usuarios .
Es una agrupación lógica de determinados usuarios, según el criterio del administrador. Esta agrupación permite asignar derechos de acceso comunes a determinada entidad del sistema por parte de un conjunto de usuarios.
La tabla GROUPS contiene todos los grupos de usuarios de la base de información, especificando a cual catálogo pertenece cada uno, además de otras propiedades. Catálogo de Sistemas de Referencia Espacial .
Aquí se definen los sistemas de referencia espacial disponibles para la carpeta propietaria del catálogo o sus carpetas descendientes.
La tabla SPATIAL_REFERENCES_SYSTEM_CATALOGS contiene todos los
Catálogo de Tipos de Objetos .
Aquí se definen los tipos de objetos disponibles para la carpeta propietaria del catálogo o sus carpetas descendientes.
La tabla CLASS_FEATURE_CATALOGS contiene todos los tipos de objetos de la base de información.
Colección de Objetos .
Las colecciones de objetos se utilizan para agrupar objetos por un criterio propio del usuario. Dentro de una colección solamente podrán almacenarse objetos del mismo tipo u objetos de tipos descendientes del declarado para esa colección. Una carpeta puede contener tantas colecciones de objetos como se desee.
La tabla FEATURES_COLLECTIONS contiene todas las colecciones de objetos de la base de información.
Objeto .
Constituye el elemento conceptual básico de la construcción de un modelo real o abstracto del mundo. Un tipo de objeto dado tendrá propiedades que lo distinguirán de otros tipos de objetos. Una vez definido un tipo de objeto se puede reutilizar su definición como ancestro de otros tipos de objetos, lo cual significa que se heredarán sus propiedades.
La tabla CLASS_FEATURES contiene todos los tipos de objetos de la base de información, especificando a cual catálogo pertenece cada tipo y si tuviera algún tipo de objeto ancestro.
Propiedades de los Tipos de Objetos .
Una propiedad de un tipo de objeto dado, define el estado de una característica particular del mismo. Para definir una propiedad se debe especificar el tipo de almacenamiento, el tipo de propiedad y el tipo de dato.
Tipo de almacenamiento de una Propiedad.
Al definir una propiedad se debe especificar el tipo de almacenamiento que soportará la propiedad. Los tipos de almacenamiento son: Simple, Lista y Arreglo.
9 El tipo almacenamiento Simple se utiliza para aquellas propiedades con un solo valor. Por ejemplo: la propiedad Cantidad de Habitantes o la propiedad Límites de la parcela.
9 El tipo almacenamiento Lista se utilizará para aquellas propiedades que requieran definir un listado indefinido de valores para cada objeto. Por ejemplo, la propiedad Teléfonos requerirá de la definición de una lista para almacenar los posibles números telefónicos que estén asignados a un inmueble, pudiendo estar vacía o contener uno o más valores.
9 El tipo almacenamiento Arreglo se utilizará para aquellas propiedades que requieran definir un arreglo de dimensiones conocidas. Por ejemplo, la propiedad Conductos del Soterrado requerirá de la definición de un arreglo de dimensiones prefijadas para el almacenamiento de referencias a objetos de tipo conducto.
Tipos de Propiedades.
Una vez definido el tipo de almacenamiento, se debe especificar el tipo de propiedad. Los tipos de propiedad disponibles son: DB, Geometría, Relación, Enumerativo, Conjunto, Documento, Fórmula.
9 El tipo DB se utilizará para aquellas propiedades con valores alfanuméricos o binarios.
9 El tipo Geometría es utilizado para aquellas propiedades donde se necesite almacenar una descripción geométrica, por ejemplo los límites geográficos de un objeto.
9 El tipo Relación se utiliza para definir relaciones entre objetos, por ejemplo las redes técnicas de telefonía, acueductos, etc.
9 El tipo Enumerativo se utilizará para aquellas propiedades de las cuales se conocen el conjunto de valores posibles a tomar, debiéndose elegir uno de los Tipos enumerativos definidos en los Catálogos de Tipos enumerativos ancestros. Por ejemplo: la propiedad Estado de conservación del Inmueble, estaría asociada al Tipo enumerativo Niveles de Calidad (Bueno, Regular, Malo).
9 El tipo Conjunto se utilizará cuando se necesita definir una propiedad de la cual se conocen sus posibles valores, pudiéndose elegir varios de ellos. Las propiedades basadas en este tipo de columna se basan en Tipos Enumerativos anteriormente definidos. Por ejemplo: la propiedad Monedas de pago, para el cual se definió el Tipo Enumerativo Monedas circulantes (Moneda Nacional, Moneda Libremente Convertible).
9 El tipo Documento se utilizará para almacenar ficheros en formato binarios, estos podrán ser editados por aquella aplicación que halla registrado este tipo de documento.
9 El tipo Fórmula se utiliza para propiedades que calculadas a pedido. La fórmula de una propiedad podrá involucrar tanto operaciones aritméticas entre propiedades de un mismo tipo de objeto, como operaciones que involucran todos los valores de una propiedad de otro tipo de objeto.
Tipos de Datos de las Propiedades.
Una vez definido el tipo de propiedad, y en dependencia de este, se debe especificar el tipo de dato de la misma.
9 Los tipos de datos para el tipo de propiedad DB son aquellos que define OLE DB.
9 Los tipos de datos disponibles para los tipos de propiedad Enumerativo y Conjunto serán aquellos tipos numerativos que se hayan definido en las carpetas ancestros del tipo de objeto al que pertenece la propiedad tratada. 9 Los tipos de datos para el tipo de propiedad Geometría son aquellos definidos
por OpenGIS (fundamentalmente WKT), además de las posibles extensiones que se le hagan al mismo para soportar 3D.
9 Para las propiedades de tipo Relación no se definirá ningún tipo de dato específico.
9 Para las propiedades de tipo Documento se podrán elegir entre los tipos de datos: incrustado o enlazado.
9 Para las propiedades de tipo Fórmula se definirá el tipo de dato al que se quiere moldear (casting) el resultado de la misma, estos tipos de datos serán aquellos que define OLEDB.
Catálogo de Vistas
Aquí se definen las vistas disponibles para la carpeta propietaria del catálogo o sus carpetas descendientes, brindando las funciones necesarias para crear y borrar sus elementos.
La tabla VIEW_CATALOGS contiene todas las vistas de la base de información. Vistas
Las vistas se definen dentro del Catálogo de Vistas, estas se forman a partir de un conjunto de geometrías con sus respectivos atributos de representación, la Vista a su vez está formada por Temas que incluyen Leyenda y Etiquetas. La descripción de una Vista y sus controles se almacenan dentro de la BIG, por lo que múltiples clientes teniendo un visor apropiado podrán tener acceso a la misma.
La tabla VIEW contiene todas las Vistas de la base de información, especificando dentro de qué colección está.
A través de una interfaz adecuada el usuario puede visualizar la jerarquía de las entidades de la BIG en forma de árbol (ver figura III.11), además de disponer de las herramientas necesarias para navegar dentro de este árbol con un cursor a la entidad activa.
Para acceder a cada uno de los catálogos y estructuras que componen la BIG se han diseñado un gran número de interfaces empaquetadas en una Biblioteca de Enlace Dinámico llamada LocalBIGManager.dll. Utilizando esta DLL se pueden acceder a estas interfaces las que posibilitan crear, modificar y eliminar, entre otras operaciones, cada objeto que está incluido en la BIG.
Todos los objetos de la BIG poseen en su interfaz por omisión 3 métodos: New, Load y Save que a pesar de tener diferentes definiciones su función es la misma en todos los objetos.
New: Este método crea e inicializa un nuevo objeto.
Load: Inicializa el objeto a partir de los datos almacenados en la base de datos. Save: Almacena las propiedades del objeto a la bases de datos.
Interfaces
Interfaces definidas en LocalBIGManager.dll para el acceso y manipulación de los objetos de la Base de Información Geográfica son:
ILocalBIG, IGenericFolder, IFolder, IUserCatalog, IEnumTypeCatalog, IMeasureUnitTypeCatalog, ISpatialReferenceSystemCatalog, IFeatureTypeCatalog, IQueryCatalog, IFormCatalog, IReportCatalog, IMapCatalog, IUser, IGroup, IEnumType, IMeasureUnitType, ISpatialReferenceSystem, IFeatureType, IForm, IMap, IFeatureCollection, IFeature, IFeatureProperty, IPrivilege, IFolderShortCut, IFeatureCollectionShortCut, IReportSheet, ISelectionSet, ICategory, IProfile, IQuery, IViewCatalog, IView, ITheme, ILegend, IBIGGraphic, IBIGLabel.
Como resultado de los trabajos realizados se obtuvo una plataforma compacta y segura que permite implementar Sistemas de Información Geográfica de una manera novedosa y que cumple con estas estrictas normalizaciones internacionales, la BIG, y el proyecto estaba listo para enfrentar metas superiores.