Post on 25-Jan-2016
12015-11-23/27 12015-11-23/27
Introducción a UML
Antonio F. RodríguezCNIG (IGN)
22015-11-23/27
Introducción al modelado
• Modelado de datos
• Lenguajes de modelado
• Lenguaje Unificado de Modelado
• Ejemplos
• Conclusiones
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
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
52015-11-23/27
Construcción de un edificioPlanos
Implantación de un SIModelo
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
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)
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
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
102015-11-23/27
UML: Diagramas de clase
Nombre
+ atributo1+ atributo2+…
OperacionA ( )OperacionB ( )…
ClaseAgrupación genérica<<hombre>>
InstanciaCaso, ejemplarFulano
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..
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
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
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 …
152015-11-23/27
Las clases hijas no siempre son excluyentes
Ni tampoco exhaustivas
Generalizaciones no limpias
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
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
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
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
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
212015-11-23/27
Relaciones
Agregación
Composición
Generalización
Asociación lógicaMultiplicidades
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…?”
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
262015-11-23/27
Clase-asociación
Una asociación lógica con atributos
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
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
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
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 (+)
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
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»
372015-11-23/27
Enumeration y codelist
Se pueden definir listas de valores controlados cerradas (enumeration) y abiertas (codelist)
Siempre mejor codificadascodelist
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
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
402015-11-23/27
Primitivas de ISO 19107 Spatial schema
412015-11-23/27
Ejemplo de uso de los Tipos de primitiva
422015-11-23/27
Estereotipos
EstereotiposEnumerationCodelistType…
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
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
452015-11-23/27
Notas y restricciones
Conectados a los objetos afectados
Nota
Restricción
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?
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…)
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
512015-11-23/27
Antonio F. RodríguezCNIG (IGN)
afrodriguez@fomento.es+34 91 5979661
¡Muchas gracias!
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/