Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UML Tutorial
UML Tutorial
Tema 2
Objetivos y Bibliografa
Objetivos
Bibliografa
Bsica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje Unificado de Modelado
Caps. 2 y 7.
Complementaria
Booch, Rumbaugh y Jacobson (2006): El Lenguaje Unificado de Modelado
Caps. 4, 5 y 6.
2.2
Bibliografa (cont.)
www.uml.org
Especificaciones, tutoriales, etc.
ltima versin de la especificacin UML: 2.3
http://www.omg.org/spec/UML/2.3/Superstructure/PDF/
Webs
2.3
Contenido
Introduccin
Modelo Conceptual
Elementos
Caractersticas principales
Ventajas e inconvenientes
Objetivos de UML
Conceptos de Modelado
Modelos
Vistas Arquitecturales
Relaciones
Diagramas
Estructurales
De Comportamiento
Reglas
Mecanismos Comunes
Estructurales
De Comportamiento
De Agrupacin
De Anotacin
Especificaciones
Adornos
Divisiones comunes
Extensibilidad
OCL
2.4
Introduccin
Qu es UML?
Para qu sirve UML?
Qu es un modelo?
Para qu sirve un modelo?
Patricia Lpez, Francisco Ruiz - IS1
2.5
Introduccin - Modelado
2.6
2.7
Es ambigua y confusa
Es lenta de interpretar
Difcil de procesar
2.8
2.9
Introduccin - Qu es UML?
UML = Unified Modeling Language
OMT
Jacobson
Objectory (Use Cases)
Odell
Meyer
Pre- and Post-conditions
UML
Shlaer-Mellor
Harel
Embly
Singleton classes
Patricia Lpez, Francisco Ruiz - IS1
State Charts
Fusion
Operation descriptions,
Message numbering
2.10
2.11
2.12
2.13
Ventajas de UML
Es estndar => Facilita la comunicacin
Est basado en metamodelo con una semntica bien definida
Se basa en una notacin grfica concisa y fcil de aprender y utilizar
Se puede utilizar para modelar sistemas software en diversos dominios:
Sistemas de informacin empresariales, Sistemas WEB, sistemas crticos y de tiempo real, etc.
Incluso en sistemas que no son software
Es fcilmente extensible
Inconvenientes de UML
No es una metodologa. Adems de UML, hace falta una metodologa OO
No cubre todas las necesidades de especificacin de un proyecto software
No define los documentos textuales o el diseo de interfaces de usuario
2.14
UML 2.4
Extensiones de UML
2.15
Objetivos
visualizar,
especificar,
construir y
documentar
Sistemas
2.16
Objetivos - Visualizar
E m pleado
N m in a
C a l cu l a r N m i n a
U su a ri o
C alc ular
E m pleado
F i jo
Tem poral
2.17
Objetivos - Especificar
2.18
Objetivos - Construir
UML no es un
lenguaje de
programacin visual,
pero es posible
establecer
correspondencias
entre un modelo UML
y lenguajes de
programacin (Java,
C++) y bases de
datos (relacionales,
OO).
Ingeniera Directa
Modelo
CDIGO
UML
Ingeniera Inversa
2.19
Objetivos - Documentar
Importancia en el mantenimiento
2.20
Conceptos de Modelado
Sistema
Modelo
Vista (Arquitectural)
Diagrama
2.21
2.22
verificado por
realizado por
implementado por
distribuido por
Modelo de
anlisis
Modelo de
diseo
Modelo de
implementacin
Modelo de
despliegue
Modelo de
pruebas
2.23
2.24
Vista de diseo
Vista de
casos de uso
Vista de
interaccin
Lgico
Patricia Lpez, Francisco Ruiz - IS1
Vista de
despliegue
Fsico
2.25
2.26
2.27
2.28
2.29
2.30
2.31
Modelo
captura
(caractersticas estticas)
organizado en
visualizadas en
Vistas Arquitecturales
Diagramas
Diagramas de Casos de Uso
Diagramas de Clases
Diagramas de Objetos
Diagramas de Secuencia
Diagramas de Colaboracin
Diagramas de Estado
Diagramas de Actividad
Diagramas de Componentes
2.32
En resumen
2.33
Modelo Conceptual
Especificaciones
Adornos
Divisiones comunes
Mecanismos de extensibilidad.
2.34
Elementos
Estructurales
De Comportamiento
De Agrupamiento
De Anotacin
2.35
Elementos - Estructurales
Clase
Clase activa
Interfaz
Componente
Colaboracin
Artefacto
Caso de Uso
Nodo
Objeto
2.36
Elementos - Estructurales
Clase
Una clase es una descripcin de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semntica.
Es un concepto de diseo
En ejecucin, el sistema est formado por instancias de clases (Objetos)
Cuenta
ServicioReserva
Entradas
Patricia Lpez, Francisco Ruiz - IS1
Cliente
2.37
Elementos - Estructurales
Objeto
Es un concepto de ejecucin
El sistema estar formado por un conjunto de objetos interaccionando
entre s
bancoSantander:Banco
Pepe:Cliente
cuentaPepe:Cuenta
Juan:Cliente
cuentaJuan:Cuenta
balance = 5000
2.38
Elementos - Estructurales
Interfaz
<<Interface>>
IVentana
+abrir()
+cerrar()
+mover()
+dibujar()
Patricia Lpez, Francisco Ruiz - IS1
Ventana
IVentana
IDibujo
2.39
Elementos - Estructurales
Caso de Uso
Realizar pedido
2.40
Elementos - Estructurales
Colaboracin
Realizar pedido
Realizar pedido
cliente
servicioCompras
compra
2.41
Elementos - Estructurales
Clase Activa
Son iguales que las clases salvo que sus objetos pueden ser
concurrentes con otros objetos de clases activas.
GestorDeEventos
suspender()
vaciarCola()
2.42
Elementos - Estructurales
Componente
GestinPedidos
2.43
Subsystem
Subsystem
Subsystem
Component
Component
Component
Class
ActiveClass
Class
2.44
Elementos - Estructurales
Artefacto
ventana.dll
2.45
Elementos - Estructurales
Nodo
Servidor
2.46
Elementos De Comportamiento
Interaccin
Mquina de Estados
Actividad
2.47
Elementos - De Comportamiento
Interaccin
dibujar
2.48
Elementos - De Comportamiento
Mquina de Estados
Involucran a:
Estados,
Transiciones (flujo de un estado a otro),
Eventos (que disparan una transicin) y
Actividades (respuesta a una transicin)
Esperando
2.49
Elementos - De Comportamiento
Actividad
Procesar pedido
2.50
Elementos De Agrupacin
N o m b re d e
p a q u e te
2.51
Elementos De Agrupacin
Paquete
2.52
Elementos De Anotacin
Nota
Smbolo para mostrar restricciones y comentarios asociados a un
elemento o coleccin de elementos.
Se usan para aquello que se muestra mejor en forma textual (comentario)
o formal (restriccin).
ClaseA
modifica()
2.53
Relaciones
2.54
Relaciones - Dependencia
Dependencia
Ventana
Evento
2.55
Relaciones Asociacin
Asociacin
Profesor
tutor
0..1
Tutoriza
alumno
Estudiante
2.56
Relaciones - Asociacin
Asociacin
tutor
0..1
Estudiante autor
1
*
prcticaEntregada
Prctica
tutorizado
Calificacin
2.57
Agregacin y Composicin
Composicin
Relacin esttica: el tiempo de vida del objeto incluido est condicionado
por el tiempo de vida del objeto compuesto.
El objeto compuesto se construye a partir del objeto incluido.
SIMILAR parmetro pasado por valor.
2.58
Ejemplos
Curso
*
Alumno
Agregacin
(por referencia)
Composicin
(por valor)
2.59
Relaciones - Generalizacin
Generalizacin
Directivo
Administrativo
Obrero
2.60
Relaciones - Generalizacin
Generalizacin
2.61
Relaciones - Realizacin
Realizacin
Ventana
<<Interface>>
IVentana
+abrir()
+cerrar()
+mover()
+dibujar()
2.62
Relaciones - Jerarquas
Jerarquas de Relaciones
Motor
1..4
1..2
1
Avin
Vendedor de billetes
Piloto
Vuelo
Reserva
n
n
1
Avin militar
Avin comercial
Avin de carga
Patricia Lpez, Francisco Ruiz - IS1
Lnea area
Avin de pasajeros
2.63
Relaciones - Jerarquas
2.64
Diagramas
2.65
Diagramas
(DINMICA)
Clases
Objetos
Componentes
Despliegue
Paquetes
Estructura Compuesta
Casos de uso
Estados
Actividades
Interaccin
Secuencia
Comunicacin
Tiempos
Revisin de Interacciones
2.66
Diagramas - Estructurales
Tipo de
Diagrama
Elementos
Centrales
Clases
Clases, Interfaces,
Colaboraciones
Componentes
Componentes
Estructura
Compuesta
Estructura Interna
de Clase o
Componente
Objetos
Objetos
Paquetes
Paquetes
Despliegue
Nodos, Artefactos
2.67
Diagramas - Estructurales
De Clases:
F i jo
Tem poral
2.68
Diagramas - Estructurales
De Clases:
2.69
Diagramas - Estructurales
De Objetos:
2.70
Diagramas - Estructurales
De Componentes:
2.71
Diagramas - Estructurales
De Despliegue:
2.72
Diagramas - Estructurales
De Despliegue:
2.73
Diagramas - Estructurales
De Paquetes:
2.74
Diagramas - Estructurales
De Estructura Compuesta:
2.75
Diagramas - De Comportamiento
Los diagramas de
comportamiento de UML 2 sirven
para visualizar, especificar,
construir y documentar los
aspectos dinmicos de un
sistema.
Se organizan en base a las
formas en que se puede modelar
la dinmica de un sistema.
Tipo de
Diagrama
Forma de
Modelar la Dinmica
Casos de Uso
Especificar el
comportamiento externo
Secuencia
Comunicacin
Organizacin estructural de
los objetos y envan y
reciben mensajes
Estados
Actividades
Flujo de control de
actividades
Tiempos
Revisin de
Interacciones
Diagramas De Comportamiento
De Casos de Uso:
relacin
UsuarioWEB
CompraEntrada
Caso de Uso
2.77
Diagramas De Comportamiento
De Casos de Uso:
Consultar Extracto
Cliente
Realizar transferencia
2.78
Diagramas De Comportamiento
De Estados:
en el paro
perder empleo
jubilarse
jubilarse
jubilado
Patricia Lpez, Francisco Ruiz - IS1
2.79
Diagramas De Comportamiento
De Estados:
Estados y Transiciones:
2.80
Diagramas De Comportamiento
De Estados:
Ejemplo.
alta
baja
sin pr stam os
nm er o_prs tam os = 0
Socio
nmero : i nt
nombre : char[50]
nmero_ prestamo s : int = 0
pres tar
alta()
baja()
prestar(c digo_libro : int, fecha : date)
devolver(cdi go_libro : int, fecha : date)
2.81
Diagramas De Comportamiento
De Actividad:
2.82
Diagramas De Comportamiento
De Actividad:
Actividad
entry/ MostrarMensajeBienvenida()
do/ EscribirMilPrimerosPrimos()
exit/ LeerHora()
[ Hora<13 ]
[ Hora>=13 ]
2.83
Diagramas De Comportamiento
De Actividad:
Ejemplo.
GraspAt(x,y,z)
Proximity Sensor
evIsNear
[area not clear]
Alarm System
AnnunciateAlarm
[area clear]
ComputeJointAngles(a,b)
Joint 1 to a
Joint 2 to b
OpenGrip
Grasp Object
2.84
Diagramas De Comportamiento
Diagramas de Interaccin
Secuencia
Comunicacin (antiguo de Colaboracin en UML 1.x)
Tiempos
Revisin de las Interacciones
2.85
Diagramas De Comportamiento
De Secuencia:
Objeto2
Llamada()
tiempo
Patricia Lpez, Francisco Ruiz - IS1
2.86
Diagramas De Comportamiento
De Secuencia:
Ejemplo.
: WInP rstam os
: Encargado
:Socio
:Video
: Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
2.87
Diagramas De Comportamiento
De Comunicacin:
Clase 1
llamada()
Clase2
2.88
Diagramas De Comportamiento
De Comunicacin:
Ejemplo.
:Socio
:Video
2: verificar situacin socio
1: prestar(video, socio)
5: entregar recibo
: Encargado
4: registrar prstamo
:Prstamo
2.89
Diagramas De Comportamiento
De Tiempos:
2.90
Diagramas De Comportamiento
De Revisin de Interacciones:
Tambin llamados
Visin Global de Interacciones
2.91
Diagramas - Jerarqua
2.92
Mecanismos Comunes
Especificaciones
Adornos
Divisiones comunes
Extensibilidad
2.93
2.94
Ejemplo de Especificacin:
Detrs del icono de una clase hay una especificacin con
informacin de los atributos, operaciones, signaturas y
comportamiento.
2.95
2.96
2.97
Interfaz vs Implementacin.
2.98
Tipo vs Rol.
2.99
2.100
Estereotipo
Ejemplo
En Java las excepciones son clases, aunque se tratan de formas
especiales.
<<exception>>
Overflow
2.101
2.102
Valor Etiquetado
Ejemplo
Aadir versin y autor mediante la creacin del estereotipo
<<conAutorVersion>> y asocindole una nota con los dos valores
etiquetados.
<<conAutorVersion>>
ColaDeEventos
aadir()
eliminar()
vaciarCola()
<<conAutorVersion>>
version=3.2
autor=frg
2.103
Restriccin
ColaDeEventos
aadir()
eliminar()
vaciarCola()
{ordered}
2.104
2.105
OCL
Usos:
2.106
OCL
Ejemplo
2.107
OCL
Invariantes:
Condiciones o restricciones que deben cumplirse siempre.
Ejemplo
El nmero de empleados debe ser mayor que 50
context Compaa inv:
self. nmeroDeEmpleados > 50
Compaa
2.108
OCL
Condiciones
Pre-condiciones o post-condiciones que deben cumplirse
en operaciones
Sintaxis
context NombreTipo::NombreOperacin(Param1 : Tipo1, ...
):TipoRetorno
pre parametroOk: param1 < ...
post resultadoOk : result > ...
Ejemplo
context Persona::nmina(fecha : Date) : Integer
post: result > 650
Patricia Lpez, Francisco Ruiz - IS1
2.109
OCL
Sintaxis
context NombreTipo::NombreAtributo: Tipo
init: - alguna expresin representando el valor inicial
context NombreTipo::NombreRolAsociacin: Tipo
derive: - alguna expresin representando la regla de derivacin
Ejemplos
context Persona::estaEnParo: Boolean
init: true
derive: if self.empleador->notEmpty()
false
else
true
end if
2.110
OCL
Definiciones
Ejemplo
context Persona
def: ingresos : Integer = self.puesto.sueldo->sum()
def: apodo : String = Gallito rojo
Ejemplos
a) Los casados tienen al menos 18 aos de edad
context Persona inv:
self.esposa
- >notEmpty() implies self.esposa.edad >= 18 and
self.esposo
- >notEmpty() implies self.esposo.edad >= 18
2.111