Escolar Documentos
Profissional Documentos
Cultura Documentos
UML:
Lenguaje Unificado de Modelado
z Diagramas de estructura
z Clases y objetos
z Relaciones
z Interfaces
z Diagramas de comportamiento
z Colaboraciones
z Diagramas de secuencia
z Diagramas de comunicación
Diagramas de estructura
Clases y objetos
z Diagramas de clases: estructura del sistema.
z Clases: conceptos dentro del sistema que comparten los
mismos atributos, operaciones, relaciones y semántica
z Atributos: tipo, visibilidad, posible valor inicial
z Operaciones: signatura, visibilidad
z Relaciones: asociaciones entre clases
Carbono Hidrógeno
Diagrama de
:Hidrógeno :Hidrógeno
Objetos:
:Hidrógeno :Carbono :Carbono :Hidrógeno
:Hidrógeno :Hidrógeno
Diagramas de estructura
Clases y objetos
Nombre En cursiva si es
de la clase Circulo
abstracta
-radio: double
-centrox: double Atributos
visibilidad -centroy: double
+Area(): double
+Perímetro(): double
Operaciones
Clase
del objeto
Nombre unCirculo: Circulo
del objeto radio = 3.4
centrox = 2.0 Valores de
centroy = 2.0 los atributos
Diagramas de estructura
Atributos
z Notación para atributos de clases:
ClaseB
id: {redefines name}
shape: Square
Diagramas de estructura
Métodos
z Notación para métodos de clases:
z Ejemplos: <<enumeration>>
z <<type>>
MiBooleano
z <<enumeration>>
z <<interface>> + cierto: Integer
+ false: Integer
z ...
Diagramas de estructura
Relación de generalización
z Especialización
Figura
z Clasificación múltiple
z Clasificación dinámica
Diagramas de estructura
Relación de asociación
z Especifica que una clase utiliza otra clase
z Pueden tener etiquetas: nombre, roles, multiplicidad
navegación
Círculo Punto
(todo) (parte)
susFiguras
Ventana Figura
0..*
(todo) (parte)
susFiguras Figura
Ventana
0..*
Draw(ContextoDibujo)
suContexto
ContextoDibujo
Dependencia
Diagramas de estructura
Interfaces
z Colección de operaciones que especifican un
servicio de una clase o componente
z Separa especificación e implementación de una
abstracción
z Incluyen:
z Nombre
z Operaciones sin implementación
z Relaciones de realización
z Pueden tener relaciones de generalización
z No incluyen:
z Atributos
z Asociaciones
Diagramas de estructura
Interfaces. Ejemplo
Diagramas de estructura
Estilo
z Los atributos no deben ser objetos (usar
relaciones en tal caso)
El que los PCs puedan conectarse con un único Hub y los servidores con
uno o varios puede modelarse mediante una restricción OCL, o añadiendo
asociaciones desde Servidor y PC
Diagramas de comportamiento
Colaboraciones
z Una colaboración es una interacción entre dos o
más clases
rol
bindings
Diagramas de comportamiento
Diagramas de interacción
z Interacción: comportamiento que comprende una
secuencia de mensajes intercambiados entre un
conjunto de objetos de una colaboración, dentro de
un contexto determinado, para alcanzar cierto fin
1.1: crear(cantidad)
:Pago
Iteraciones:
:ClaseE
2: msg6()
:ClaseD :ClaseC
1b.1: msg5()
Diagramas de comportamiento
Diagramas de comunicación
servers
:Client :Server
:Server
1:aServer:=find(specs)
multi-objeto
aServer <<local>>
:Server
2:process
Diagramas de comportamiento
Diagramas de secuencia
z Mensajes entre objetos (roles o instancias) para una
interacción
z Dos dimensiones:
z Temporal: generalmente vertical
z Instancias: generalmente horizontal. El orden relativo de
las instancias no tiene importancia
lift receiver
dial tone
Objetos
dial digit
Focos de ...
Control route
ac: ds:
LoginPage:
Authentication UserData
Servlet
Controller Service
login(“Dan”,“b4”) validateCredentials
(“Dan”,“b4”)
restoreUserData(“Dan”)
create(“Dan”,”Admin”)
CurrentUser:
UserData
currentUser
currentUser
Diagramas de comportamiento
Diagramas de secuencia
operador guarda marco
preferente usual
:Pedido
:Distribuidor :Distribuidor
entregar()
name:Clase1
new
:Clase2
mensaje
autollamada
return
delete
Diagramas de comportamiento
Diagramas de secuencia
sd M sd N
m1 m3 m4
m2
m3 m5
ref
N
Diagramas de comportamiento
Ejercicio
Especificar el diagrama de secuencia de la operación “crearLaberinto”
h1:Habitacion
h2:Habitacion
create(h1,h2)
puerta:Puerta
añadeHabitacion(h1)
añadeHabitacion(h2)
añadePuerta(puerta)
Diagramas de comportamiento
Ejercicio
Especificar el diagrama de secuencia de la operación “crearLaberinto”
public JuegoLaberinto() {
lab = new Laberinto();
conVentana = true;
}
opt [tieneVentana==true]
v:Ventana
añadeVentana(v)
añadeHabitacion(h)
Diagramas de comportamiento
Ejercicio
Especificar el diagrama de secuencia de la operación “realizarJugada”
definida en la clase Jugador, para el juego del parchís
* 2
Jugador Dado
- casillaActual: int
+ realizarJugada(): void + tirar(): int
+ casillaActual(): int
*
1
Tablero
+ mover(int actual,
int unidades):
boolean
Diagramas de comportamiento
Solución
:Jugador d1:Dado d2:Dado :Tablero
realizarJugada()
par tirar()
n1
tirar()
n2
ca:=casillaActual()
mover(ca,n1+n2)
movRealizado
Diagramas de comportamiento
Ejercicio
Identificar las clases relevantes y realizar el diagrama de secuencia para
el siguiente caso de uso, que corresponde a la realización de una
llamada desde un teléfono móvil.
loop [for i = 1 to 9]
digit(code) displayDigit
(code) emitTone
(code)
send()
connect(pno)
inUse()
Diagramas de comportamiento
Ejercicio: posible solución
loop [for i = 1 to 9]
digit(code) displayDigit
(code) emitTone
(code)
send()
connect(pno)
inUse()