Documentos de Académico
Documentos de Profesional
Documentos de Cultura
03UML DiagramaClases
03UML DiagramaClases
- Diseño estructural:
Diagrama de clases
Mª Antonia Zapata
Máster Bases de Datos e Internet
Introducción
incluyendo
© 2006 2
Conceptos básicos
© 2006 3
Conceptos básicos
© 2006 4
Elementos básicos
Clase:
Atributo:
© 2006 5
Elementos básicos
Asociación:
describe una relación genérica entre objetos de clases
<min..max>
Multiplicidad:
0..* *
describe el número mínimo y 1..*
máximo de enlaces posibles
1..1 1
n..m
© 2006 6
Representación gráfica
clase nombre de la
asociación asociación
<Nombre>
<NombrClase1> <NombrClase2>
<min..max> <min..max>
por cada objeto de Clase2 hay por cada objeto de Clase1 hay
como mínimo min y como como mínimo min y como
máximo max objetos de Clase1 máximo max objetos de Clase2
relacionados con él relacionados con él
© 2006 7
Ejemplo: cajero automático (versión 1)
Tarjeta
1..* 1..*
1 1
Cliente Cuenta
© 2006 8
Restricciones
© 2006 9
Recomendaciones
© 2006 10
Ejercicios
1 1..* 1..* 1
Cliente Tarjeta Cuenta
ContratadaPor
Persona Empresa
MatriculadoEn
Alumno Asignatura Departamento
© 2006 11
Jerarquía de clases
Generalización:
© 2006 12
Representación gráfica
<NombrClase1>
<NombrClase1>
© 2006 13
Ejemplo
personas
Persona
mujeres
Mujer
© 2006 14
Recomendaciones
Persona
Hombre Mujer
© 2006 15
Se pueden realizar distintas clasificaciones
Seguro
© 2006 16
Tipos de clasificaciones
<NombrClase1>
{restricción}
Persona
{complete, disjoint}
Hombre Mujer
© 2006 18
Clases: atributos
Tipo: describe el tipo del valor del atributo (entero, real, ...)
© 2006 19
Notación y ejemplos
Notación:
Ejemplos:
© 2006 20
Ejemplos
Persona Dirección
Libro Producto
© 2006 21
Clases: operaciones
© 2006 22
Notación y ejemplos
Notación:
Ejemplos:
ponerAlarma(t:temperatura) -compactar( )
© 2006 23
Ejemplos
Ventana
Figura
origen:Punto
origen
tamaño:Vector
mover( )
abrir( )
redimensionar( )
cerrar( )
visualizar( )
mover( )
Transacción
SensorTemperatura
+ejecutar( )
+reiniciar( )
+rollback( )
+ponerAlarma(t:temperatura )
#prioridad( )
+valor( ): temperatura
#marcaDeTiempo( )
© 2006 24
Instancias
Notación
nombre:clasificador
© 2006 25
Ejemplos
:direccion
tipoCalle: "Plaza"
MPR01:Persona calle: "San Francisco"
casa: "3"
nombrePersona: "María"
escalera:
primerApellido: "Ortíz"
piso: "3º"
segundoApellido: "García"
puerta: "A"
fechaNacimiento: 1/2/1980
localidad: "Zaragoza"
CP: "50009"
provincia: "Zaragoza"
miLibro: libro
titulo[0...1]: string = "El Alba"
autor[0...N]: string = null
fechaPublicacion: date[0...1] = null Valor nulo describe la ausencia de valor
tipoLibro: string = "ensayo"
© 2006 26
Propiedad de herencia
Hombre Mujer
numEmbarazos
© 2006 27
Ejemplos
MPR01:Mujer
PPGO3:Hombre
nombrePersona: "María"
nombrePersona: "Pedro"
primerApellido: "Ortíz"
primerApellido: "Pérez"
segundoApellido: "García"
segundoApellido: "García"
fechaNacimiento: 1/2/1980
fechaNacimiento: 7/10/2005
numEmbarazos: 0
© 2006 28
Tipos especiales de asociaciones
Agregación:
Composición:
© 2006 29
Ejemplos
EquipoFutbol JugadorFutbol
0...1 0...*
Proyecto Actividad
© 2006 30
Clase asociativa
Clase asociativa:
© 2006 31
Ejemplo
prestado
LibroFísico SocioBiblioteca
0...* 0...1
Préstamo
fechaPréstamo
fechaDevolución [0...1]
© 2006 32
Multiplicidad de clase
n..m
<NombrClase>
1
ControladorRed
Una clase que tiene sólo una instancia se denomina clase unitaria o
‘singleton’
© 2006 33
Roles y navegación
empleado patrón
Persona X Empresa
1..* 0..*
© 2006 34
Asociaciones n-arias
Proveedor Producto
* *
* Dado un proveedor y
una tienda pueden
Tienda tener varios productos
© 2006 35
Notas
Nota:
<nota>
es una observación, condición semántica o
restricción
prestado
LibroFísico SocioBiblioteca
0-* 0-1
Préstamo RN
fechaPréstamo fechaPrestamo <
fechaDevolución [0-1] fechaDevolucion
© 2006 36
Ejemplo de préstamo con UML 2.0
0..* 0..*
SocioBiblioteca LibroFísico
{bag}
Préstamo
fechaPréstamo
fechaDevolución
© 2006 37
Ejemplo de préstamo con UML 1.5
Préstamo
1 0..* 0..* 1
SocioBiblioteca fechaPréstamo LibroFísico
fechaDevolución
- un socio puede haber solicitado varios préstamos (de un libro cada vez)
© 2006 38
Ejemplo de préstamo con asociación ternaria
SocioBiblioteca LibroFísico
0..1 0..1
- un socio puede haber solicitado varios préstamos (de un libro cada vez)
© 2006 39
Asociaciones ternarias en UML
© 2006 40
Navegación vs atributo
A
X B
b:B[*]
© 2006 41
Especialización dinámica (1/2)
Empleado
{incomplete, disjoint}
Por lo tanto un mismo objeto puede ir cambiando de clase a lo largo del tiempo.
© 2006 42
Especialización dinámica (1/2)
Empleado EstadoDeEmpleado
1 1
{incomplete, disjoint}
* 1
Árbol TipoDeÁrbol
{incomplete, disjoint}
:TipoDeÁrbol
Abedul Abeto
© 2006 44