UML
El Lenguaje Unificado de Modelado
.
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
¿Qué es UML?
UML es el Lenguaje Unificado de Modelado (Unified
Modeling Language)
Es un lenguaje gráfico capaz de expresar
Requisitos de Software
Arquitectura del Software
Diseño del Software
Que sirve para
Comunicarse entre desarrolladores
Comunicarse con los clientes
Usar herramientas de generación automática de código
¿Qué es UML?
Consiste en un conjunto integrado de
diagramas definidos para ayudar a los
desarrolladores de software y de sistemas a
realizar las tareas de:
Especificación
Visualización
Diseño Arquitectónico
Construcción
Simulación y pruebas
Documentación
¿Qué es UML?
Abstracción
La técnica de hacer un modelo de tus ideas
del mundo es el uso de la abstracción
Por ejemplo, un mapa es un modelo del mundo,
no el mundo en miniatura
En los diagramas UML se muestra una
abstracción del sistema, no todo el sistema,
con el objetivo de que sea fácil de entender
¿Qué es UML?
Puntos de vista
UML permite crear diagramas que reflejan
diferentes puntos de vista del mismo
sistema.
Por ejemplo, hay mapas físicos, mapas políticos,
mapas históricos … todos sobre el mismo mundo
Esto permite mostrar ciertos aspectos y
ocultar otros para que sean más fáciles de
comprender
¿Qué es UML?
Tipos de diagramas
Diagramas Estructurales: Muestran los elementos
de construcción del sistema. Características que no
cambian con el tiempo
Diagramas de Comportamiento: Muestra como el
sistema responde a las peticiones o evoluciona con
el tiempo.
Diagramas de Interacción: Engloba a ciertos
diagramas de comportamiento que muestran el
intercambio de mensajes dentro de un grupo de
objetos que cooperan (colaboración) para obtener
un objetivo
¿Qué es UML?
Tipos de diagramas
¿Qué es UML?
Tipos de diagramas
Diagramas
Estructurales
Diagrama de Clases
Muestra entidades
del mundo real,
elementos de análisis
y diseño o clases de
implementación y sus
relaciones
¿Qué es UML?
Tipos de diagramas
Diagramas
Estructurales
Diagrama de Objetos
Muestra un ejemplo
ilustrativo de objetos
y sus enlaces
Pueden ser objetos
en memoria, objetos
en base de datos,
objetos de
modelado…
¿Qué es UML?
Tipos de diagramas
Diagramas Estructurales
Diagrama Estructural
Compuesto
Muestra de que está
compuesto algún elemento
Especialmente útil en
estructuras formadas por
otras estructuras o diseño
basado en componentes
¿Qué es UML?
Tipos de diagramas
Diagramas Estructurales
Diagrama de Despliegue
Muestra la arquitectura
cuando el sistema está en
ejecución.
Las plataformas hardware,
elementos de software
(elementos ejecutables) y
los entornos de ejecución
(sistemas operativos,
máquinas virtuales, …)
¿Qué es UML?
Tipos de diagramas
Diagramas
Estructurales
Diagrama de
Componentes
Muestran la
organización y las
relaciones entre
los componentes
software del
sistema
¿Qué es UML?
Tipos de diagramas
Diagramas
Estructurales
Diagrama de
Paquetes
Agrupa los
elementos del
modelo y muestra
las dependencias
entre ellos
Concepto de
paquete similar al
de Java
¿Qué es UML?
Tipos de diagramas
Diagramas de
Comportamiento
Diagrama de Actividades
Muestra el flujo de datos o
el flujo de control
Captura el flujo de trabajo
de objetos que cooperan
¿Qué es UML?
Tipos de diagramas
Diagramas de
Comportamiento
Diagrama de Casos de Uso
Muestra los servicios que
los actores (usuarios y
otros sistemas) pueden
pedir al sistema
No se muestran en este
módulo por estar más
relacionados con el
Proceso Unificado de
Desarrollo
¿Qué es UML?
Tipos de diagramas
Diagramas de
Comportamiento
Diagrama de Máquina
de Estados / Protocolos
con Máquinas de
Estados
Muestra el ciclo de vida
de un objeto en particular
Los estados en los que
se puede encontrar y
como transita de uno a
otro
¿Qué es UML?
Tipos de diagramas
Diagramas de
Interacción
Diagrama de Visión
General
Muestra muchos
escenarios de interacción
diferentes para la misma
colaboración (el conjunto
de objetos que trabajan
juntos para cumplir un
objetivo)
¿Qué es UML?
Tipos de diagramas
Diagramas de
Interacción
Diagrama de
Secuencia
Se centra en el
intercambio de
mensajes entre un
grupo de objetos y el
orden de los
mensajes
¿Qué es UML?
Tipos de diagramas
Diagramas de
Interacción
Diagrama de
Comunicación
Se centra en el
intercambio de
mensajes entre
un grupo de
objetos y las
relaciones entre
los objetos
¿Qué es UML?
Tipos de diagramas
Diagramas de Interacción
Diagrama de Tiempos
Muestra los cambios y su relación con el tiempo en
sistema de tiempo real
No se muestran aquí porque no son muy usados
¿Qué es UML?
Diagramas y Modelo
UML define el formato de un conjunto de diagramas
Un modelo representa los elementos del sistema
Clases con sus métodos y atributos
Objetos con sus relaciones
Cuando existe un conjunto “consistente” de
diagramas se forma un modelo
Es posible que elementos del modelo no aparezcan
en ningún diagrama
¿Qué es UML?
MDA con UML
MDA
Arquitectura guiada por modelos
(Model Driven Architecture)
http://www.omg.org/mda/
Propuesto por el OMG
Grupo de Gestión de Objetos
(Object Managment Group)
http://www.omg.org/
Generación de código partiendo de un modelo UML (formado
por diagramas)
El modelo UML debe ser preciso cuando se vaya a generar
código
Los diagramas UML pueden estar incompletos (bocetos) cuando
se usan para documentar, comunicar, ...
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de clases
Los diagramas de clases están formados por
Clases
Atributos (Propiedades)
Métodos (Operaciones)
Relaciones
Asociación
Herencia
Composición
Uso (Dependencia)
Diagrama de clases
Formato gráfico de una clase
N om bre de
la C lase
Z ona de
Atributos
(puede om itirse)
Z ona de
M étodos
(puede om itirse)
Cuando la clase está en paquete se sigue el esquema
java::io::InputStream
Diagrama de clases
Atributos (Propiedades)
Sintáxis Atributos
nombreAtributo : tipoAtributo
Tipos
Tipos UML: Integer, Boolean, String
Tipos de cualquier lenguaje de programación
Clases del modelo
Se pueden omitir en bocetos
Ejemplos
numPies: Integer
nombre: String
Diagrama de clases
Atributos (Propiedades)
Valores por defecto
nombreAtributo : tipoAtributo = valorPorDefecto
numPies: Integer = 5
nombre: String = ‘Pepe’
Multiplicidad (Arrays)
nombreAtributo : tipoAtributo [Multiplicidad]
numPies: Integer [0..1]
nombres: String [1..*] = (‘Pedro’, ‘Juan’, ‘Antonio’)
fechas: Date [2,3,4]
Diagrama de clases
Métodos (Operaciones)
Sintaxis Métodos
nombreOperacion(parametros) : tipoDevuelto
Ejemplos
rentOutDummy (aDummy:CrashDummy,forClient:Person): SuccessKind
acceptProposal ():Boolean
rentOutDummy(aDummy, toPerson)
Diagrama de clases
Visibilidad
Símbolo Visibilidad
+ Público
- Privado
# Protegido
~ Paquete
Ejemplos
Diagrama de clases
Relación de Asociación
Puede tener navegación direccional (sólo es
posible la navegación en un sentido)
Es posible que una clase se asocie consigo
misma (asociación reflexiva)
public class Nodo {
List<Nodo> hijos;
Object valor
}
Diagrama de clases
Relación de Asociación
Clases de Asociación
Similares a las relaciones atribuidas de BBDD
La clase de asociación debe llamarse como la
asociación
Diagrama de clases
Estereotipos
Los estereotipos son marcas asociadas a cualquier elemento de
un diagrama (cualquier tipo de diagrama)
Indican que el elemento marcado es algo diferente que el
elemento sin marcar
Los estereotipos pueden usarse por las herramientas de
generación de código
Diagrama de clases
Relación de Agregación
Una relación de agregación es
la que forma un todo con sus
partes
Son un tipo especial de
relación de asociación
Pueden tener estereotipos,
nombre, roles, multiplicidad, …
En las relaciones de
agregación, un objeto que
representa una parte puede
estar compartido por varios
objetos que representan el
todo (un alumno está en un
curso y también puede estar en
un grupo de amigos)
Diagrama de clases
Relación de Composición
Las relaciones de
composición son un tipo
especial de relación de
agregación
Los objetos parte siempre
están asociados a un
objeto todo y sólo a uno,
se crean y se destruyen
con él (coche y ruedas).
Los objetos parte no
pueden compartirse
entre varios objetos todo.
Diagrama de clases
Relación de Herencia
Diagrama de clases
Relación de Dependencia
Muestra la dependencia entre una clase y
otra
Existe cuando los cambios en la clase
independiente pueden afectar a la clase
que depende
Relación de uso
Diagrama de clases
Interfaces
Tienen dos
representaciones
gráficas
Se relacionan con las
clases que los
implementan con una
relación de
realización
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Notas
Las notas pueden aparecer en cualquier
diagrama
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Paquetes
Muestran los
paquetes de un
sistema y la
dependencia
entre unos y
otros
Diagrama de Paquetes
Los diagramas
de paquetes se
combinan con los
diagramas de
clases
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Objetos
Se usan para mostrar el estado del sistema
en un momento concreto
Diagrama de Objetos
Formato gráfico de un objeto
Nombre del Objeto (se puede omitir)
Clase del objeto (se puede omitir)
Valores de los atributos (se pueden omitir)
Diagrama de objetos
Enlaces
Si en el diagrama de clases
aparece una asociación, en el
diagrama de objetos puede
aparecer un enlace
Se puede poner el nombre de
la asociación (subrayado)
Se puede poner el nombre del
rol cerca del objeto (no
subrayado)
* MagicDraw 9.5 no subraya los nombres de
los enlaces. Los diagramas de objetos se
crean usando la opción de diagrama de
clases.
Diagrama de Objetos
Se puede
relacionar un objeto
con su clase
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama
Estructural Compuesto
Es una forma alternativa
de mostrar una relación de
composición incluyendo
las clases parte dentro de
la clase todo
* MagicDraw 9.5 no soporta este tipo de diagramas
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Secuencia
Los diagramas de
secuencia
muestran como los
objetos se
intercambian
mensajes a lo
largo del tiempo
Diagrama de Secuencia
Los mensajes
pueden estar
escritos en lenguaje
natural o con una
sintaxis más precisa
y cercana a los
lenguajes de
programación
dependiendo del
nivel de abstracción
Diagrama de Secuencia
Sintaxis mensaje
mensaje (params)
Sintaxis parámetro
dirección nombreParametro: Tipo [Multiplicidad] = valorDefecto
Dirección: in, out, inout (por defecto in)
Para no especificar un parámetro se pone -
Ejemplo
Transaction Results (status=OK, authCode)
Diagrama de Secuencia
Tipos de mensajes
Mensajes en un diagrama alto nivel
Mensajes en diagramas de bajo nivel
Síncronas (p.e llamadas a métodos)
Asíncronas (p.e. sockets)
Diagrama de Secuencia
Cuando se usan mensajes
síncronos (llamadas a
métodos) se puede poner
explícitamente el retorno
(return) o se puede omitir
File fichero = …
String ruta = fichero.getPath();
System.out.println(“Ruta: ”+ruta);
long tamaño = fichero.length();
System.out.println(“Tamaño: ”+tamaño);
Diagrama de Secuencia
Hay veces que
los objetos no
existen durante
todo el tiempo
Se usan
mensajes de
creación y de
destrucción
Diagrama
de Secuencia
Llamadas recursivas
(autodelegación)
Nuevo hilo de
ejecución
Diagrama de Secuencia
Reutilización de
diagramas de secuencia
Funcionalidad similar a
los métodos en
programación
Se pueden especificar
parámetros
Se puede especificar el
valor devuelto o el
nombre de una variable
Diagrama
de Secuencia
Sentencias de control
de flujo de ejecución
en los diagramas de
secuencia
alt: Equivale a un
if/else
loop: Equivale a un for
Existen más
sentencias
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama
de Actividad
Similares a los
organigramas “de
siempre”
Se usan para mostrar
el flujo de datos o el
flujo de control
Puede representar el
flujo de control en
diferentes clases
Diagrama de Actividad
Acción
Obtener o establecer un valor de un atributo
Invocar la operación de una clase
Llamar a una función
Invocar una actividad que contiene acciones
Enviar una señal o notificación de un evento a un grupo
de objetos
Actividad
Agrupación de acciones, actividades, flujos de objetos y
flujos de control
Diagrama de Actividad
acciones actividad
Diagrama de Actividad
Flujo de Control
Conecta las acciones por las que se ejecuta el flujo de
control
Nodo Objeto
Representa un objeto que sale de una acción y entra
en otra acción
Flujo de objeto
Los flujos que unen los objetos con las actividades
Diagrama de Actividad
Flujo de control
Nodos Objeto
Flujo de Objeto
Diagrama de Actividad
Nodo de control
Nodos que guían el flujo de control y objetos
Inicial, Actividad final, Flujo final, Decisión, Fusión,
Bifurcación, Unión, Conector
Existen tipos de nodos más avanzados
Diagrama de Actividad
Actividad
Inicial
Bifurcación Decisión
Flujo Final Fusión
Unión
Actividad
Final
Diagrama de Actividad
Para asignar la
responsabilidad
Se pueden
poner calles de
piscinas (swim
lanes)
Se puede poner
el nombre entre
paréntesis
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de
Interacción en Visión General
Similar al diagrama de
actividad pero en vez
de actividades se
enlazan con los flujos
de control nodos de
ocurrencia de
interacción
Son referencias a
diagramas de
secuencia
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Comunicación
Antes llamados “Diagramas de Colaboración”
Similares a los diagramas de secuencia pero
muestran los enlaces entre los objetos
Para mostrar el orden y anidamiento de los
mensajes, se numeran
Diagrama de Comunicación
En el mensaje se puede incluir una
condición, que debe cumplirse para que se
pueda enviar el mensaje
[condición] mensaje( parametros )
Cuando dos objetos están enlazados se
pueden enviar mensajes. Pueden ser
atributos, variables o parámetros
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Estados
Representan una
máquina de
estados
Muestra los
estados y las
transiciones entre
los estados
dependiendo de los
eventos que se
producen
Diagrama de Estados
Cuando llega un
evento, se puede
realizar una
acción durante la
transición a otro
estado
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Componentes
Un componente es una unidad autónoma
reemplazable de un sistema
Los componentes indican los interfaces públicos
para que otros componentes los usen (relación de
realización)
Los componentes pueden indicar los interfaces
requeridos en otros componentes (relación de uso)
Diagrama de Componentes
En un mismo diagrama pueden aparecer
varios componentes conectados mediante
interfaces
El Lenguaje Unificado de Modelado
¿Qué es UML?
Diagrama de Clases
Notas
Diagrama de Paquetes
Diagrama de Objetos
Diagrama Estructural Compuesto
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Interacción en Visión General
Diagrama de Comunicación
Diagrama de Estados
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Despliegue
Muestra las partes
físicas del sistema
PCs, Servidores
Impresoras, scanners
PDAs, móviles
Conectadas por
Líneas de
comunicaciones
Internet, LAN, USB,
Bluethoot
Diagrama de Despliegue
Artefactos
Un artefacto representa un fichero físico en el
sistema
En versiones anteriores de UML se les
llamaba componentes
Se pueden poner las dependencias entre
artefactos
Diagrama de Despliegue
Artefactos
Se pueden
mostrar los
artefactos, los
nodos y los
componentes y
las relaciones
entre ellos
Los componentes
y artefactos deben
estar en nodos