/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)
/27 Introducción al modelado Modelado de datos Lenguajes de modelado Lenguaje Unificado de Modelado Ejemplos Conclusiones
/27 Modelado de datos Búsqueda de la estructura de datos óptima Cuántos ficheros, registros, campos, claves,... Formatos, longitudes de campos,... Para explotar un SI Para intercambiar datos Para armonizar un campo de aplicación Problema de ingeniería
/27 Ventajas de tener un Modelo Comprensión profunda del problema Modelo independiente de plataformas Facilita: migraciones, ampliaciones, y mejoras Permite la estandarización Descripción formalizada Inteligible por otros (humanos/sistemas) Documentación del sistema
/27 Construcción de un edificioPlanos Implantación de un SIModelo
/27 Para modelar Tener experiencia Tener tiempo suficiente Es un proceso de maduración Nunca modelar en solitario Siempre en equipo Hay métodos Experiencia y criterios generales a aplicar
/27 El modelo El modelo explica el significado de los datos Transforma los datos en información Datos: representación simbólica de una información Datos diferente, información igual 2015MMXV Información: conocimiento comunicado o adquirido Datos iguales, información diferente 2015 puede ser : 2015 d. C.1393 (hégira)
/27 Lenguajes de Modelado Diagramas Entidad-Relación Lenguaje gráfico adaptado al Modelo Relacional UML Norma ISO/IEC 19501: 2005 Lenguaje Unificado de Modelado Tiene muchos tipos de diagramas Diagramas de clase Diagramas de casos de uso
/27 ¿Porqué es tan importante UML? Es el lenguaje de modelado UNIVERSAL Las normas ISO están en UML Las especificaciones OGC están en UML Las especificaciones Inspire están en UML Incluso hay esquemas UML publicados en el BOE, todo está en UML
/27 UML: Diagramas de clase Nombre + atributo1 + atributo2 +… OperacionA ( ) OperacionB ( ) … Clase Agrupación genérica > Instancia Caso, ejemplar Fulano
/27 Agregación y composición Agregación Características: Agrupación débil 1) Se puede concebir una Uva separada del Racimo 2) Si se destruye el Racimo, no siempre desaparece la Uva Una Uva puede formar parte de un Racimo o de otro Multiplicidad típica: 1..* a 0..1 La frase “A es una mera agrupación de B” tiene sentido Bosque y Árbol Provincia y Municipio Rebaño y Oveja 0..
/27 Agregación y composición Composición Características: Agrupación fuerte 1) No se puede concebir un Dedo separado de la Mano 2) Si se destruye la Mano, siempre desaparece el Dedo El Dedo no puede formar parte de una Mano u otra Multiplicidad típica: 1 a N La frase “A está hecho de B” tiene sentido Silla y Pata Familia y Persona Coche y Motor
/27 Agregación y Composición A veces es dudoso En caso de duda y por defecto: Agregación Es más general
/27 Generalización Caso particular, especializado, incluido en Propiedades Toda instancia de una clase hija, lo es de la madre Las clases hijas heredan todo de la clase madre La frase “B es un caso particular de A” tiene sentido Vía interurbana Autopista Autovía Carretera Desdoblada De 1 orden …
/27 Las clases hijas no siempre son excluyentes Ni tampoco exhaustivas Generalizaciones no limpias
/27 Clases de generalizaciones Disyuntiva: las instancias de la clase madre, lo son solo de una clase hija No hay instancias de las dos, no hay intersección
/27 Clases de generalizaciones Completa: no es posible añadir más clases hijas La clase madre es abstracta y se escribe con cursiva
/27 Asociaciones lógicas Establecen vínculos lógicos entre clases Relación casual, contingente Es una relación que puede darse o no La frase que mejor funciona tiene un verbo diferente a los anteriores: «tiene» Se debe dar siempre nombre (tiene) a la asociación
/27 Multiplicidad y roles Multiplicidades Se elige una clase Una Persona ¿con cuántos Perros se relaciona? 0..* Un Perro ¿con cuántas Personas se relaciona? 0..1 Roles Nombre del papel que juega cada clase Inspire: poner siempre nombre de rol
/27 Asociaciones reflexivas Se relaciona una instancia de una clase con otra instancia de la misma clase No necesariamente una instancia consigo misma
/27 Relaciones Agregación Composición Generalización Asociación lógica Multiplicidades
/27 Para modelar Lo primero: Definir el Universo de discurso El subconjunto abstraído del mundo real que tiene todo lo que resulta de interés El contexto Ayuda a fijar los límites del modelo y a no echar a volar la imaginación Evita los: “¿no quedaría mejor si añadimos…?”
/27 Un ejemplo: el jardín de Juan Juan es un jardinero muy cuidadoso que tiene un jardín con un invernadero y cuatro parterres exteriores, dónde cultiva plantas con flores de colores Mantiene la temperatura del invernadero casi sin fluctuaciones, para que las plantas de interior que cultiva allí sobrevivan sin problemas También mantiene una acidez diferente en el suelo de cada parterre para poder cultivar plantas de exterior de todo varios tipos Tiene etiquetas para nombrar a cada planta con el nombre común y el nombre científico
/27
/27
/27 Clase-asociación Una asociación lógica con atributos
/27 Otro ejemplo: la academia Se quiere diseñar una Base de Datos para la gestión administrativa de un centro educativo: Para generar Horarios Listas de clase Listas de notas Calcular sueldo de los profesores Cada asignatura es impartida por un solo profesor, en las asignaturas hay alumnos matriculados que sacan notas
/27 Clases PROFESOR ASIGNATURA ALUMNO
/27 UML: un esquema
/27 Otro ejemplo: el Registro Civil muy tradicional Relaciones entre personas: matrimonios (gananciales, separación de bienes), relación padres-hijos y entre los hermanos Matrimonio Fecha Régimen No hay divorcio Persona Datos de identificación Se tienen en cuenta: Matrimonio (clásico) Nacimientos Defunciones
/27
/27
/27 Objetos Nombres autoexplicativos Hay que buscar el mejor nombre posible, el más claro En singular Salvo excepciones: gafas, tijeras, pantalones… En español, mejor en español Comenzar por Mayúscula, cada palabra con May. A, B, C…Z, a, b…z, 1, 2, 3, 4… con _ en prefijo y sin - UPM_DirectordeCine
/27 Atributos Autoexplicativos, claros y en español Comienzan por minúscula, sin _ ni – A, B, C…Z, a, b…z…1, 2, 3… Hay atributos que pueden tener (n) valores Por defecto: públicos (+)
/27 Para modelar 1) Definir el contexto Universo de discurso: parte y visión del mundo que interesa 2) Resumirlo 3) Definir los requerimientos de usuario Las preguntas que va a responder el sistema 4) Sustantivosobjetos 5) Verbosrelaciones 6) Adjetivosatributos 7) Simplificar 8) La semántica es importante
/27 Estereotipos Es una manera de clasificar las clases UML, de decir que son de un tipo (estereotipo) especial. Se escribe un nombre entre « » Por ejemplo «Enumeration», Tipos «type», Interfaces «interface»
/27 Enumeration y codelist Se pueden definir listas de valores controlados cerradas (enumeration) y abiertas (codelist) Siempre mejor codificadas codelist
/27 Tipos de datos de usuario Tipo de datos de usuario Un lenguaje nos da unos tipos de datos básicos Char, string, boolean, integer, real…. Se pueden definir tipos de datos de usuario
/27 Un objeto puede ser un tipo de datos Manejar un objeto como un tipo de datos Se define como «type» Se utiliza como un tipo de datos de usuario
/27 Primitivas de ISO Spatial schema
/27 Ejemplo de uso de los Tipos de primitiva
/27 Estereotipos Estereotipos Enumeration Codelist Type …
/27 Dependencia Cuando una clase depende de otra Tiene una operación que utiliza los atributos de otra clase Se representa con una flecha discontinua
/27 Paquetes Son submodelos o partes del modelo que interesa aislar por su significado Los objetos pueden llevar un prefijo de paquete GM_Point TP_Node
/27 Notas y restricciones Conectados a los objetos afectados Nota Restricción
/27 Un concepto de modelado en INSPIRE Un atributo [1] es obligatorio [0..1] es opcional «voidable» significa: si se conoce el valor, es obligatorio (es omisible) Ejemplo: El CRS de un fichero Parece obligatorio Pero ¿y si no se sabe?
/27 Objetos geométricos
/27 ISO Modelo espacial esencial
/27 Modelo, esquema y especificaciones Un Modelo consta de: Esquema Objetos, atributos, asociaciones… Definiciones Reglas Un texto explicativo Unas especificaciones constan de un Modelo y más cosas (metadatos, calidad, CRS, catálogo de objetos geográficos, representación…)
/27 Conclusiones Modelar, tarea clave Larga vida al UML Normas ISO, estándares OGC, textos Inspire… Hay que aprender a leer UML
/27 Antonio F. Rodríguez CNIG (IGN) ¡Muchas gracias!
/27 Referencias «Aprendiendo UMP en 24 horas» Joseph SchummerAprendiendo UMP en 24 horas Herramientas para UML