GeoBolivia Infraestructura de Datos Espaciales NORMA ISO 19103 Wilfredo Mendoza Murillo [email protected] Introducción Que es UML Modelo Visual Uml objetos Perfil UML – ISO 19103 Uso general del UML Introducción • La ISO 19103 establece normas y guías para el uso de un lenguaje de esquema conceptual dentro de la serie de normas ISO 19100 de información geográfica, tomando como base el Lenguaje Unificado de Modelado (UML). Introducción Esta especificación técnica se refiere a la adopción y uso de un lenguaje de esquema conceptual (CSL) para desarrollar modelos o esquemas de información geográfica. Que es UML UML - Historia Modelado Visual UML es un lenguaje de modelado. -Un modelo es una simplificación de la realidad. -El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. -Para facilitar este modelado, se realiza una abstracción y se plasma en una notación gráfica. UML composición • Elementos: Los elementos son abstracciones de cosas reales o ficticias (objetos, acciones, etc.) • Relaciones: relacionan los elementos entre sí. • Diagramas: Son colecciones de elementos con sus relaciones. El diagrama de clases muestra un conjunto de clases, interfaces y sus relaciones. Éste es el diagrama más común a la hora de describir el diseño de los sistemas orientados a objetos. Caso de uso Objetivo de conocer UML Uno de los objetivos de la serie de normas 19100 usando modelos UML, es que sirva de base para la cartografía a los fines de la norma ISO 19118, así como una base para la creación de especificaciones de implementación en la aplicación de perfiles de diferentes entornos. Perfil de UML de ISO/TS 19103 Esta cláusula proporciona reglas y pautas sobre el uso de UML dentro del campo de información geográfica. Las subclases se estructuran como sigue: -Uso general de UML -Clases -Atributos -Tipos de datos básicos -Asociaciones -Operaciones -Estereotipos y valor etiquetado -Paquetes -Restricciones -Documentación de modelos Uso general de UML -Los modelos normativos usarán diagramas de clase y diagramas de paquetes. -Otros diagramas-tipo de UML pueden ser usados informativamente. -Todos los modelos normativos deberán contener definiciones completas de atributos, asociaciones, operaciones y definiciones apropiadas de tipos de datos UML - Clases Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, métodos, relaciones, comportamientos y restricciones. Nombre de Clase Atributos Operaciones UML - Clases Operaciones Nombre de Clase ᄎ Relaciones Atributos UML - Clases UML - atributos Un atributo de Notación UML tiene la forma: <<estereotipo>> [visibilidad] nombre [multiplicidad] [:tipo] [= valor inicial] [{propiedad-string}] EJEMPLOS + centro: punto = (0,0) {helado} + origen [0 ..1]: punto / / multiplicidad 0 ..1 significa que esto es opcional El estandar UML define las propiedades que pueden usarse, estas son: cambiable, agregable, helado (const). Un atributo debe ser único dentro del contexto de una clase y de sus supertipos, o también puede ser un atributo derivado, es decir un atributo redefinido de un supertipo. UML – Tipos de Datos Los tipos básicos se han agrupado en tres categorías: a) Tipos Primitivos: tipos básicos para representar los valores, por ejemplos son: Cadena de Caracteres, Entero, Booleano, Fecha, Tiempo, etc. b) Tipos de implementación: Tipos de plantilla para representar ocurrencias múltiples de otros tipos, por ejemplo: Conjunto, Bolsa, Secuencia y Registro. c) Tipos derivados: Tipos de medida y unidades de medida UML – Tipos de datos UML- relaciones Una relación en UML es una conexión semántica materializada entre los elementos del modelo. Los tipos de relaciones incluyen asociación, generalización, agregación/composición, Metarelación, flujo, y Varios tipos Agrupados bajo la dependencia UML- relaciones UML- Asociación, composición y agregación Una asociación en UML es la relación semántica entre dos o más clasificadores (por ejemplo clase, interface, tipo,...) que involucra conexiones entre sus instancias. Asociación UML- Asociación, composición y agregación Una asociación de agregación es una relación entre dos clases, en que una de las clases juega el rol de contenedor y otra juega el rol del que contiene Agregación UML- Asociación, composición y agregación Una asociación composición es una agregación fuerte. En una asociación composición, si un objeto contenedor es eliminado entonces todos los objetos del que lo contiene son eliminados también. La asociación composición se usará cuando los objetos representan las partes de los objeto del que lo contiene, no pueden existir sin el objeto contenedor UML-Estereotipos y valores etiquetados UML contiene tres mecanismos de extensibilidad que se usan para especializar el uso de UML para el modelado de información y servicios geográficos. Un estereotipo de UML es un mecanismo de extensión para los conceptos de UML existentes. Es un modelo elemental que se usa para clasificar (o marcar) otros elementos de UML para que en algún comportamiento se clasifiquen como si fueran instancias de una nueva clase virtual o pseudo metamodelo cuya forma esta basada en la existencia de clases de metamodelo base. Los estereotipos aumentan los mecanismos de clasificación en base a la incorporación de la jerarquía de clases del metamodelo de UML. Por consiguiente, nombres de nuevos estereotipos no deben chocar con elementos predefinidos del metamodelo o de otros estereotipos. UML-Valores Etiquetados Los valores etiquetados son Nombre (etiqueta) separador (=) valor (de la etiqueta) propiedades de un elemento – relevante para la generación del código o la configuración de la dirección a) << Interfaz >> una definición de una colección de operaciones que soportan objetos que tienen esta interface. b) << Tipo >> un estereotipo de clase usado para especificar un dominio de instancias (objetos), junto con las operaciones aplicables a los objetos. Un tipo puede tener atributos y asociaciones. c) << Control >> para una clase cuyo propósito principal es proporcionar un servicio y no representar los datos particulares en sí mismos -extensión de un standard UML del Proceso Unificado de Desarrollo de Software. d) << Entidad >> significa una clase que representa la información-llevada de objetos potencialmente persistentes. -extensión de un standard UML del Proceso Unificado de Desarrollo de Software. e) << Límite >> significa que una clase representa la interface externa para un sistema. Una extensión de la norma UML del Proceso Unificado de Desarrollo de Software. f) << Enumeración >> Un tipo de datos cuyas instancias forman una lista de valores llamados literales. Se declara el nombre de la enumeración y sus valores literales. Los ejemplos clásicos son Booleanos que tienen sólo 2 (o 3) valores potenciales VERDADERO, FALSO (y NULO). g) << Excepción >> Una señal levantada en respuesta las faltas de comportamiento en la ejecución de la maquinaria subyacente. h) << Metaclase >> Una clase cuyas instancias son clases. Se usan típicamente metaclases en la construcción de metamodelos. Por ejemplo, "TipoCaracterística" y "TipoAtributo" son las metaclases para el “Característica” y “Atributo”. i) << Tipo de Dato >> Un descriptor de un conjunto de valores que carecen de identidad. Los tipos de datos incluyen los tipos predefinidos primitivos y los tipos usuario-definibles. Un Tipo deDatos es una clase con alguna o ninguna operación cuyo propósito primario es sostener el estado abstracto de otra clase para la transmisión, almacenamiento, codificación o almacenamiento persistente. UML- Atributos y asociaciones Optativo, condicional y obligatorio En UML todos los atributos son obligatorios por defecto. La posibilidad de mostrar multiplicidad para atributos y nombres de rol de asociaciones proporciona una manera de describir atributos opcionales y condicionales. UML - Nombres y Espacios de nombres -Todas las clases deberían tener nombres únicos. -Todas las clases se definirán dentro de un paquete. -Los nombres de la clase empezarán con una mayúscula. -Una clase no tendrá un nombre que esté basado en su uso externo, ya que esto puede limitar su reuso. -Un nombre de una clase no debe contener espacios. -Palabras separadas en un nombre de la clase deberán ser concatenadas. -Cada subpalabra en un nombre deberé comenzar con una mayúscula, como "XnnnYmmm". UML - Notas Las cajas de nota se usan para comentar el modelo en un ítem general o específico (es decir clase o asociación) del modelo en particular. Estos también pueden usarse para especificar restricciones y condiciones. UML - Paquetes Un paquete de UML es un contenedor que se usa para agrupar declaraciones de subpaquetes, clases y sus asociaciones. La estructura del paquete en UML habilita una estructura jerárquica de subpaquetes, declaraciones de la clase, y asociaciones. Un paquete deberá ser usado para representar un esquema Ejemplo de Estructura de paquete Los paquetes de UML serán usados para agrupar clases y sus asociaciones. • Todas las clases deben ser puestas en un paquete definido de UML. El paquete deberá ser referenciado si un componente del paquete clase es usado dentro de otro paquete diagrama. • Para la documentación del Paquete, un diagrama de clase deberá ser preparado para cada subclase de jerarquía en un paquete, mostrando todas las clases principales contenidas en el paquete. Subclases de diagramas no deberán mostrar atributo interior y operaciones de clase, como éstos serán en el contexto de clase, diagramas asociados a la documentación de la clase descrita anteriormente. Los paquetes de UML serán usados para agrupar clases y sus asociaciones. Las dos-letras mnemónicas (o bi alfa) deben ser prefijadas a nombres de clase en orden a identificar el paquete o Tópico volumen (como GM para geometría, TP para topología, CS para catálogos y CT para sistemas de coordenada y transformaciones). Las Etiquetas de visibilidad determina cómo una clase es accedida y un paquete de dependencias determinará cómo los componentes de implementación son organizados. UML - Restricciones Pueden describirse usando el lenguaje de Restricción de Objeto [32], un conjunto basado en un lenguaje en expresiones lógicas de objetos y propiedades del objeto. Una restricción de OCL es válida en una expresión OCL del tipo del booleano, es decir una expresión con un valor verdadero o falso. UML - Restricciones Pueden describirse usando el lenguaje de Restricción de Objeto [32], un conjunto basado en un lenguaje en expresiones lógicas de objetos y propiedades del objeto. Una restricción de OCL es válida en una expresión OCL del tipo del booleano, es decir una expresión con un valor verdadero o falso. Puede usarse para describir restricciones en varias partes de un modelo, incluyendo restricciones en: *clases *atributos y asociaciones de clases *operaciones de clases (pre y post-condición) *clases abstractas UML – Documentación de modelos Además de los diagramas, es necesario documentar la semántica del modelo. El significado de los atributos, asociaciones, operaciones y restricciones necesitan ser explicadas UML – Documentación de modelos Descripción general de clase A Nombre de clase: A Especializada: una lista de superclases/superTipos Atributos: Nombre: descripción del significado del atributo Asociaciones: Rol: descripción del rol Operaciones: Operación: nombre Descripción: < texto> Precondición: < texto + OCL> UML – Documentación de modelos Parámetros de entrada: < descripción> Parámetros de salida: < descripción> Valor de retorno: < descripción> Excepciones: < descripción> Postcondicion: < texto + OCL> Restricciones: <cualquier restricción de secuencia en el uso de esta operación con otras operaciones?> Otras Restricciones: Cualquier otra restricción es descrita. < texto + OCL> Referencias RESUMEN DE NORMA ISO 19103, INFORMACIÓN GEOGRÁFICA LENGUAJE DE ESQUEMA CONCEPTUAL Aprendiendo UML en 24 horas, Joseph Schmuller, Prentice Hall http://www.uml.org