![Page 1: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/1.jpg)
12015-11-23/27 12015-11-23/27
Introducción a UML
Antonio F. RodríguezCNIG (IGN)
![Page 2: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/2.jpg)
22015-11-23/27
Introducción al modelado
• Modelado de datos
• Lenguajes de modelado
• Lenguaje Unificado de Modelado
• Ejemplos
• Conclusiones
![Page 3: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/3.jpg)
32015-11-23/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
![Page 4: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/4.jpg)
42015-11-23/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
![Page 5: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/5.jpg)
52015-11-23/27
Construcción de un edificioPlanos
Implantación de un SIModelo
![Page 6: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/6.jpg)
62015-11-23/27
Para modelar
Tener experiencia
Tener tiempo suficienteEs un proceso de maduración
Nunca modelar en solitarioSiempre en equipo
Hay métodos Experiencia y criterios generales a aplicar
![Page 7: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/7.jpg)
72015-11-23/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 igual2015 MMXV
Información: conocimiento comunicado o adquirido
Datos iguales, información diferente2015 puede ser : 2015 d. C. 1393 (hégira)
![Page 8: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/8.jpg)
82015-11-23/27
Lenguajes de Modelado
Diagramas Entidad-Relación Lenguaje gráfico adaptado al Modelo Relacional
UMLNorma ISO/IEC 19501: 2005Lenguaje Unificado de Modelado
Tiene muchos tipos de diagramasDiagramas de claseDiagramas de casos de uso
![Page 9: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/9.jpg)
92015-11-23/27
¿Porqué es tan importante UML?
Es el lenguaje de modelado UNIVERSAL
Las normas ISO 19100 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
![Page 10: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/10.jpg)
102015-11-23/27
UML: Diagramas de clase
Nombre
+ atributo1+ atributo2+…
OperacionA ( )OperacionB ( )…
ClaseAgrupación genérica<<hombre>>
InstanciaCaso, ejemplarFulano
![Page 11: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/11.jpg)
112015-11-23/27
Agregación y composición
Agregación
Características:Agrupación débil1) Se puede concebir una Uva separada del Racimo2) Si se destruye el Racimo, no siempre desaparece la UvaUna Uva puede formar parte de un Racimo o de otroMultiplicidad típica: 1..* a 0..1 La frase “A es una mera agrupación de B” tiene sentido
Bosque y ÁrbolProvincia y
MunicipioRebaño y Oveja
0..
![Page 12: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/12.jpg)
122015-11-23/27
Agregación y composición
Composición
Características:Agrupación fuerte1) No se puede concebir un Dedo separado de la Mano2) Si se destruye la Mano, siempre desaparece el DedoEl Dedo no puede formar parte de una Mano u otraMultiplicidad típica: 1 a NLa frase “A está hecho de B” tiene sentido
Silla y PataFamilia y
PersonaCoche y Motor
![Page 13: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/13.jpg)
132015-11-23/27
Agregación y Composición
A veces es dudoso
En caso de duda y por defecto:Agregación
Es más general
![Page 14: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/14.jpg)
142015-11-23/27
Generalización
Caso particular, especializado, incluido en
PropiedadesToda instancia de una clase hija, lo es de la madreLas clases hijas heredan todo de la clase madreLa frase “B es un caso particular de A” tiene sentido
Vía interurbana
Autopista Autovía Carretera
Desdoblada De 1 orden …
![Page 15: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/15.jpg)
152015-11-23/27
Las clases hijas no siempre son excluyentes
Ni tampoco exhaustivas
Generalizaciones no limpias
![Page 16: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/16.jpg)
162015-11-23/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
![Page 17: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/17.jpg)
172015-11-23/27
Clases de generalizaciones
Completa: no es posible añadir más clases hijas
La clase madre es abstracta y se escribe con cursiva
![Page 18: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/18.jpg)
182015-11-23/27
Asociaciones lógicas
Establecen vínculos lógicos entre clasesRelació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
![Page 19: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/19.jpg)
192015-11-23/27
Multiplicidad y roles
MultiplicidadesSe elige una claseUna Persona ¿con cuántos Perros se relaciona? 0..*Un Perro ¿con cuántas Personas se relaciona? 0..1
RolesNombre del papel que juega cada clase
Inspire: poner siempre nombre de rol
![Page 20: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/20.jpg)
202015-11-23/27
Asociaciones reflexivas
Se relaciona una instancia de una clase con otra instancia de la misma clase
No necesariamente una instancia consigo misma
![Page 21: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/21.jpg)
212015-11-23/27
Relaciones
Agregación
Composición
Generalización
Asociación lógicaMultiplicidades
![Page 22: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/22.jpg)
222015-11-23/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 contextoAyuda 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…?”
![Page 23: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/23.jpg)
232015-11-23/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
![Page 26: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/26.jpg)
262015-11-23/27
Clase-asociación
Una asociación lógica con atributos
![Page 27: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/27.jpg)
272015-11-23/27
Otro ejemplo: la academia
Se quiere diseñar una Base de Datos para la gestión administrativa de un centro educativo:
Para generar HorariosListas de claseListas de notasCalcular sueldo de los profesores
Cada asignatura es impartida por un solo profesor, en las asignaturas hay alumnos matriculados que sacan notas
![Page 30: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/30.jpg)
302015-11-23/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
MatrimonioFecha Régimen
No hay divorcio Persona
Datos de identificación
• Se tienen en cuenta:• Matrimonio (clásico)• Nacimientos• Defunciones
![Page 33: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/33.jpg)
332015-11-23/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
![Page 34: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/34.jpg)
342015-11-23/27
Atributos
Autoexplicativos, claros y en españolComienzan 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 (+)
![Page 35: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/35.jpg)
352015-11-23/27
Para modelar
1) Definir el contextoUniverso 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) Sustantivos objetos 5) Verbos relaciones 6) Adjetivos atributos 7) Simplificar 8) La semántica es importante
![Page 36: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/36.jpg)
362015-11-23/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»
![Page 37: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/37.jpg)
372015-11-23/27
Enumeration y codelist
Se pueden definir listas de valores controlados cerradas (enumeration) y abiertas (codelist)
Siempre mejor codificadascodelist
![Page 38: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/38.jpg)
382015-11-23/27
Tipos de datos de usuario
Tipo de datos de usuarioUn lenguaje nos da unos tipos de datos básicos
Char, string, boolean, integer, real….
Se pueden definir tipos de datos de usuario
![Page 39: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/39.jpg)
392015-11-23/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
![Page 40: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/40.jpg)
402015-11-23/27
Primitivas de ISO 19107 Spatial schema
![Page 41: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/41.jpg)
412015-11-23/27
Ejemplo de uso de los Tipos de primitiva
![Page 42: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/42.jpg)
422015-11-23/27
Estereotipos
EstereotiposEnumerationCodelistType…
![Page 43: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/43.jpg)
432015-11-23/27
Dependencia
Cuando una clase depende de otraTiene una operación que utiliza los atributos de otra clase
Se representa con una flecha discontinua
![Page 44: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/44.jpg)
442015-11-23/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
![Page 45: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/45.jpg)
452015-11-23/27
Notas y restricciones
Conectados a los objetos afectados
Nota
Restricción
![Page 46: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/46.jpg)
462015-11-23/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 obligatorioPero ¿y si no se sabe?
![Page 49: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/49.jpg)
492015-11-23/27
Modelo, esquema y especificaciones
Un Modelo consta de:Esquema
Objetos, atributos, asociaciones…
DefinicionesReglasUn texto explicativo
Unas especificaciones constan de un Modelo y más cosas (metadatos, calidad, CRS, catálogo de objetos geográficos, representación…)
![Page 50: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/50.jpg)
502015-11-23/27
Conclusiones
Modelar, tarea clave
Larga vida al UML Normas ISO, estándares OGC, textos Inspire…
Hay que aprender a leer UML
![Page 52: 1 2015-11-23/27 1 Introducción a UML Antonio F. Rodríguez CNIG (IGN)](https://reader035.vdocuments.co/reader035/viewer/2022070417/56a188a41a28abe5459574f3/html5/thumbnails/52.jpg)
522015-11-23/27
Referencias
«Aprendiendo UMP en 24 horas» Joseph Schummer
Herramientas para UMLhttp://modeling-languages.com/herramientas-para-uml/
http://www.umlzone.com/