Professional Documents
Culture Documents
Universitat de Valncia
objetos.
Necesidad de este paradigma: los usuarios demandan
programas y entornos de trabajo simples y fciles de
usar.
Implicaciones: mayor nmero de lneas de cdigo que
es necesario organizar, gestionar y mantener.
Proporciona mejores herramientas para:
Obtener un modelo del mundo real cercano a la
procedimientos.
En la programacin orientada a objetos las entidades
empresa Seat).
Otros son entidades conceptuales (por ejemplo, la frmula
Objetos
Los objetos y sus relaciones se describen mediante
diagramas de instancias:
barcelona:Ciudad
sim143:Simulacin
nombreCiudad=Barcelona
poblacin=6000000
descripcin=Normal
fechaEjecucin=14Dic1999
convergencia=false
unArbolBinario:ArbolBinario
IAH:Aeropuerto
cdigoAeropuerto=IAH
nombreAeropuerto=Intercont
zonaHoraria=Central
MAD:Aeropuerto
cdigoAeropuerto=MAD
nombreAeropuerto=Barajas
zonaHoraria=MET
Objetos
Cuando se construye un modelo es necesario decidir qu
problema.
No resulta til modelar detalles irrelevantes o extraos, ya
Clases
Un objeto es una instancia (u ocurrencia) de una clase.
Una Clase es la descripcin de un grupo de objetos con:
Propiedades similares (atributos del objeto).
Comportamiento (operaciones y diagramas de estado) y
semntica comn.
Y que establecen el mismo tipo de relaciones con otros
objetos.
Las clases proporcionan un mecanismo para compartir la
estructura entre objetos similares
Clases
Algunas clases tienen una contrapartida real (persona y
diagramas de clases:
ArbolBinario
Ciudad
nombreCiudad
poblacin
Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
Simulacin
descripcin
fechaEjecucin
convergencia
calcular
Clases
No se especifican ni los atributos ni las operaciones de la
clase ArbolBinario.
La clase Ciudad tiene los atributos nombreCiudad y
poblacin.
La clase Aeropuerto cuenta con los atributos
Aeropuerto
idAeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
Inadecuado en la etapa
de anlisis aunque correcto
en la etapa de diseo
Operaciones y mtodos
Una operacin es una funcin o procedimiento que se
implcito.
ArbolBinario
Ciudad
nombreCiudad
poblacin
Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
Simulacin
descripcin
fechaEjecucin
convergencia
calcular
Operaciones y mtodos
Al nombre de la operacin se pueden aadir detalles
ORL:Aeropuerto
cdigoAeropuerto=CHG
nombreAeropuerto=De Gaulle
zonaHoraria=MET
Sirve
cdigoAeropuerto=ORL
nombreAeropuerto=Orly
zonaHoraria=MET
paris:Ciudad
nombreCiudad=Pars
poblacin=5000000
Sirve
(a)
Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
0..*
Sirve
0..*
Ciudad
nombreCiudad
poblacin
(b)
derecho propio.
La identidad de un enlace deriva de los objetos que
relaciona y no puede existir de forma aislada.
En la etapa de anlisis, todas las relaciones entre objetos
AreaMetropolitana
nombre
provincia
pais
0..*
nombre
direccin
0..*
nmeroHabitaciones
nmeroTelefno
estrellas
precioHabSimple
precioHabDoble
CadenaHotelera
0..*
nombre
0..1 direccin
nmeroTelefno
Multiplicidad
La multiplicidad especifica el nmero de instancias de una
clase que se pueden relacionar con una instancia de la
clase relacionada
1..*
exactamente uno
Clase
uno o ms
Clase
0..1
cero o ms (varios)
Clase
{ordenado}
varios ordenados
Clase
0..*
cero o uno
Clase
2..4
nmero explcito
Clase
Multiplicidad
Vuelo
Ticket
pasaje
Reserva
ReservaVuelo
cdigoPasaje
ReservaViaje
{ordenado}
localizadorRegistro
(a)
Vuelo
Ticket
pasaje
0..1
Reserva
*
ReservaVuelo
cdigoPasaje
ReservaViaje
{ordenado}
localizadorRegistro
(b)
13019 Diseo de bases de datos p. 25/52
Multiplicidad
Un vuelo puede ser reservado por mltiples reservas de
vuelo.
El cdigo de pasaje de un vuelo reservado determina el
Roles
Un rol es uno de los extremos de una asociacin al que se
DescripcinVuelo
origen
destino
0..*
0..*
nmeroVuelo
salidaPrevista
duracinPrevista
Roles
Ya que el rol es un pseudo-atributo, el nombre de rol no
Persona
0..*
Padre
Hijo
2
hijo
0..*
Modelo correcto
Modelo incorrecto
Atributos de enlace
El atributo de un objeto es una propiedad de la clase con un
0..*
Prueba
Arbitro
arbitra
puntuacin
Atributos de enlace
un rbitro asigna una puntuacin a los esfuerzos realizados
dos clases.
UML permite definir dos tipos de agregacin:
Agregacin simple: tambin denominada agregacin
Agregacin simple
No cambia el significado de la navegacin entre el todo y
sus partes.
No liga la vida del todo y las partes.
UML representa la agregacin simple mediante una figura
Asignatura
1..*
Departamento
Empleado
0..*
Composicin
Representa una fuerte relacin de pertenencia y vidas
HistorialClinico
1..*
Clases de asociacin
Una clase de asociacin es una asociacin cuyos enlaces
y de clase:
Como el enlace de una asociacin, las instancias de
una clase de asociacin obtienen su identidad de las
instancias de las clases que las constituyen.
Como una clase, pueden participar en asociaciones.
autorizador
Usuario
0..*
dueo
autorizado
0..*
Autorizacin
0..*
0..*
Tabla
Clases de asociacin
autorizador
Usuario
0..*
dueo
autorizado
0..*
Autorizacin
0..*
0..*
Tabla
ejemplo:
El usuario A autoriza el acceso a los usuarios B y C.
El usuario A es el autorizador y B y C los autorizados.
B puede a su vez autorizar a un usuario D a acceder a
la tabla.
13019 Diseo de bases de datos p. 35/52
Clases de asociacin
Las clases de asociacin constituyen una faceta importante
0..*
competidor
Persona
0..*
0..*
rbitro
Prueba
0..*
puntuacin
13019 Diseo de bases de datos p. 36/52
Asociacin calificada
Una asociacin calificada es una asociacin en la cual los
Asociacin calificada
Banco
nombreBanco
0..1
numeroCuenta
Cuenta
Asociacin cualificada
Banco
nombreBanco
0..*
Cuenta
numeroCuenta
Asociacin no cualificada
aporta ms informacin:
Aade una restriccin en la multiplicidad: la
combinacin de un banco y un nmero de cuenta
conduce a una nica cuenta bancaria.
El modelo cualificado es ms adecuado, ya que un nmero
Asociaciones ternarias
El grado de asociacin es el nmero de roles de cada
enlace.
La gran mayora de las asociaciones son binarias o
binarias-cualificadas.
Una asociacin ternaria es una asociacin con tres roles
que no pueden representarse mediante asociaciones
binarias.
Las asociaciones ternarias son poco frecuentes y es
muy difcil encontrar asociaciones de grado mayor.
Profesor
AsignaturaImpartida
Curso
nmeroAula
0..*
LibroTexto
0..*
Asignatura
13019 Diseo de bases de datos p. 39/52
Concepto de generalizacin
Generalizacin es la relacin entre una clase (la superclase) y una o ms variaciones de esta clase (las subclases).
Organiza las clases de acuerdo con sus similitudes y
diferencias.
Proporciona estructura a la descripcin de los objetos.
La superclase contiene los atributos, operaciones,
Concepto de especializacin
La especializacin proporciona otra prespectiva de la estructura del sistema. Tiene el mismo significado que generalizacin pero aporta una visin de arriba a abajo.
Generalizacin
La generalizacin simple organiza las clases en una jerarqua
en la que cada subclase tiene una nica superclase inmediata.
ProductoFinanciero
nombre
valorActual
fechaValor
nombreMoneda
tipoProductoFinanciero
Accin
dividendo
Seguro
Bono
fechaVencimiento
valorVencimiento
tipoSeguro
cuotaAnual
tipoBono
BonoInteresFijo
inters
BonoIntersVariable
intersReferencia
frmulaInters
Generalizacin
Todos los productos financieros tienen un nombre y un
directores de la compaa.
Los bonos tienen fecha y valor de vencimiento adems de
Herencia
La generalizacin es la relacin estructural que permite la
redefinirse en la subclase.
La subclase puede definir nuevas propiedades no
presentes en la superclase.
La generalizacin simple es otro trmino para herencia
simple.
El caso en el que una subclase tiene mltiples superclases
Ciudad
LneaAerea
nombreCiudad
nombreCompaa nmeroCuenta
nmeroVuelo
0..*
0..1
DescripcinVuelo
Sirve
0..*
Aeropuerto
cdigoAeropuerto
nombreAeropuerto
0..*
0..*
salidaPrevista
duracinPrevista
0..*
frecuencia
destino fechaInicioServicio
fechaFinServicio
origen
DescripcinAvin
fabricante
nmeroModelo
nmeroAsiento
0..1
DescripcinAsiento
fechaSalida
0..1
Vuelo
nmeroRegistro
0..1
CuentaUsuarioHabitual
0..*
{ordenado}
0..*
ReservaViaje
0..*
AgenciaViajes
nombreAgencia
Agente
nombreAgente
0..* 0..*
Asiento
0..*
cdigoPasaje
localizadorRegistro
Avin
0..*
horaSalidaActual
duracinActual
0..*
ReservaVuelo
tipoAsiento
0..*
0..1
Ticket
0..1
pasaje
0..1
0..*
pasajero
0..*
0..*
ticketFacturacin
Cliente
nombreCliente
direccin
nmeroTelfono
nmeroReclamacin
patrn
0..*
AgenteViajes
AgenteLneaAerea
0..*
Diagrama de clases . . .
Un diagrama de clases es la representacin grfica que
describe los objetos y sus relaciones.
1. Un aeropuerto sirve a varias ciudades y una ciudad puede
tener varios aeropuertos.
2. Las lneas areas ofertan vuelos entre aeropuertos.
3. Descripcin de vuelo hace referencia a la informacin
pblica que describe un tipo de vuelo entre dos
aeropuertos. Un vuelo hace referencia al viaje concreto que
lleva a cabo un avin en una fecha concreta.
Diagrama de clases . . .
4. Normalmente, se registran varias reservas para un vuelo,
cada una con su cdigo de pasaje. Los cdigos de pasaje
determinan el precio del pasaje. Los cdigos de pasaje
reflejan mltiples factores, tales como:
El nmero de das que hace que se compr el pasaje.
La posibilidad de devolucin.
Si el pasajero pasar el fin de semana en la ciudad de
destino.
El tipo de asiento (tipoAsiento).
5. Un pasajero tiene asignado un asiento junto con su reserva
de vuelo. Un asiento puede estar relacionado con multitud
de reservas de vuelo, pero desde luego, no ms de una por
vuelo.
Diagrama de clases . . .
6. Una reserva de viaje consiste en una secuencia de
reservas de vuelo.
7. La reserva de viaje la realizan los agentes, que pueden
trabajar bien para la compaa area, bien para una
agencia de viajes.
8. Para cada pasajero que hace una reserva de viaje es
necesario un ticket y en ocasiones, utilizar adems una
cuenta de usuario (en el caso de clientes habituales).
Diagrama de instancias
Un diagrama de instancias implica slo objetos, enlaces y
valores.
Los diagramas de instancias son tiles para depurar y
Diagrama de instancias
Un grafo dirigido consiste en un conjunto de nodos y vrtices.
Cada vrtice conecta, mediante una flecha que indica la
direccin, dos nodos.
GrafoDirigido
GrafoDirigido
1..*
0..*
raz
Nodo
1..*
hijo
padre
1..*
Hoja
Rama
0..*
fuente
0..*
Nodo
0..*
Vrtice
sumidero 0..*
(a)
(b)
grafo dirigido.
13019 Diseo de bases de datos p. 50/52
Diagrama de instancias . . .
En el esquema se muestra un grafo dirigido de ejemplo y los
diagramas de instancias asociados a cada diagrama de clases.
Grafo dirigido X
A
1
B
3
B:Rama
hijo
padre
padre
raz
padre
padre
A:Rama
X: GrafoDirigido
C:Rama
hijo
padre
D:Rama
F:Hoja
hijo
hijo
hijo
E:Rama
padre
A:Nodo
fuente
fuente
C:Nodo
1:Vrtice
sumidero
5:Vrtice
fuente
D:Nodo
2:Vrtice
sumidero
6:Vrtice
sumidero
fuente
3:Vrtice
F:Nodo
sumidero
fuente
E:Nodo
fuente
B:Nodo
4:Vrtice
7:Vrtice
sumidero
sumidero
Diagrama de instancias . . .
Modelo (a): se corresponde directamente con el grafo