Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad V - Diagramas de Objetos
Unidad V - Diagramas de Objetos
21:Producto
-desc = harina
-numSerie = 563284
4321:Embarque
-fecha = 12-12-08
-destino = Toluca 96:Producto
-desc = frijol bayo
-numSerie = 582364
Diagrama anterior
El diagrama de objeto muestra que el objeto
4321 de tipo Embarque tiene dos Productos.
Cada atributo de los 3 objetos tiene asignado un
valor.
Las operaciones de las clases no se incluyen en el
diagrama de objetos, ya que stas no tienen
mltiples interpretaciones o valores como los
atributos. Cada objeto de la misma clase posee
las mismas operaciones.
Diagrama de clase Diagrama de objetos
CustomProduct
12:VendorProduct
0*
CustomProduct
0*
CustomProduct
23:CustomProduct
0* 0*
CustomProduct
0*
La prueba revela la necesidad de soportar
agregacin entre un CustomProduct y otros
CustomProducts. Por ejemplo un condimento
puede estar formado por 3 especies diferentes.
Creando un esquema de base de datos
para el Modelo
El esquema de base de datos consiste de dos fases:
creacin de un esquema lgico y la creacin de un
esquema fsico.
Es posible mapear entidades OO a tablas de bases de
datos.
El esquema lgico se representa por un diagrama
Entidad-Relacin.
Cada instancia de una clase se almacena como un
rengln nico en la tabla correspondiente.
Los atributos son representados como cambos en las
tablas.
La asociacin entre clases se representa como llaves
forneas entre las tablas.
Estrategia
Para convertir un diagrama de clases en un
diagrama lgico ER:
1. Convertir cada clase en una tabla
2. Especificar la llave primaria de cada tabla
3. Crear asociaciones ER con distintas
multiplicidades.
Validando el modelo
Cmo sabemos que este diagrama modela realmente el
dominio del problema? Una tcnica consiste en construir
diagramas de objetos usando los escenarios de casos de
uso y verificando que el diagrama de objetos se ajusta al
diagrama de clases.
Supongamos el siguiente proceso:
Un agente de reservaciones de los hoteles C&H est esperando
llamadas de clientes que quieran reservar un cuarto de hotel.
Suena el telfono y es un cliente que quiere reservar para ir al
hotel de Cancn en Semana Santa, el agente selecciona Crear
una Reservacin en su pantalla principal y aparece una
reservacin en blanco. Hasta este momento lo nico que
sabemos es la ubicacin del hotel (Cancn).
:Ubicacin
Nombre=Cancn
Ejemplo
En un sistema de reservaciones, el diagrama de
clases es:
1* hecha para 1
Reservacin Cliente
1*
1
1* ubicada en 1
Cuarto Ubicacin
Continuacin ejemplo
El agente pregunta de que fecha a que fecha quiere
ir e introduce las fechas en la forma.
Se despliegan los cuartos disponibles en esa fecha
y en esa ubicacin y el cliente selecciona el 7120.
1352:Cuarto
Reservacin
NumReserv = null
Status = verif 326:Cuarto :Ubicacin
D_llegada = 8/04/09 Nombre:Cancn
D_salida=15/04/09
7120:Cuarto
Continuacin ejemplo
El agente introduce los datos del cliente en el
sistema y el objeto Cliente se relaciona con la
reservacin :Cliente
Nombre: Jaime
Apellido = Lpez
Direccin = xxxx
Tel = 5874587587
1352:Cuarto
Reservacin
NumReserv = null
Status = verif 326:Cuarto :Ubicacin
D_llegada = 8/04/09 Nombre:Cancn
D_salida=15/04/09
7120:Cuarto
Continuacin ejemplo
El agente pregunta si quiere confirmar la
reservacin.. En caso afirmativo el sistema
cambia el status a Confirmada y le asigna un
nmero de reservacin: :Cliente
Nombre: Jaime
Apellido = Lpez
Direccin = xxxx
Tel = 5874587587
1352:Cuarto
Reservacin
NumReserv = 4582
Status = confirmada 326:Cuarto :Ubicacin
D_llegada = 8/04/09
Nombre:Cancn
D_salida=15/04/09
7120:Cuarto
Un cliente quiere reservar ms de una habitacin,
de acuerdo con el diagrama de clases slo se
puede reservar un cuarto por Reservacin. Esto
nos indica que la multiplicidad en Cuarto debe
cambiarse a 1*. (Este es otro escenario).
1* hecha para 1
Reservacin Cliente
1*
1*
1* ubicada en 1
Cuarto Ubicacin
Con los cambios en la multiplicidad
El diagrama de clases cambia en Cuarto
Reservacin
Cliente
NumReserv 1* 1
Status Nombre
D_llegada Apellido
D_salida Direccin
1* Tel
ReservarCto( )
1*
Cuarto Ubicacin
1* 1 Nombre
Nombre Direccin
Capacidad
Paso 1: Mapear entidades a Tablas
Crear una tabla para cada clase, dejando los
atributos
Reservacin
Cliente
NumReserv
Status Nombre
D_llegada Apellido
D_salida Direccin
Tel
Cuarto Ubicacin
Nombre
Nombre Direccin
Capacidad
Paso 2: Especificar llaves primarias
para cada tabla
Reservacin
Cliente
ID_Reservacin
Status ID_Cliente
D_llegada Nombre
D_salida Apellido
Direccin
Tel
Cuarto Ubicacin
El nmero de cuarto
ID_Ubicacin ID_Ubicacin
puede repetirse de
ID_Cuarto Nombre
un hotel a otro por eso
Nombre Direccin
es necesario incluir en
la PK el ID_Ubicacin Capacidad
Paso 3: Crear una Asociacin en las relaciones
Uno a Muchos en el diagrama E-R, usando llaves
forneas (FK)
Reservacin
Cliente
ID_Reservacin
Status ID_Cliente
D_llegada Nombre
D_salida Apellido
ID_Cliente FK Direccin
Tel
Cuarto Ubicacin
ID_Ubicacin FK ID_Ubicacin
ID_Cuarto Nombre
Nombre Direccin
Capacidad
Paso 4: Crear una Asociacin en las relaciones
Muchos a Muchos en el diagrama E-R
Reservacin
ID_Reservacin
Status Fue necesario incluir
D_llegada una tabla entre las
Cliente
D_salida tablas Reservacin
ID_Cliente FK y Cuarto, con una llave ID_Cliente
primaria compuesta. Nombre
En el diagrama de Clases Apellido
no exista ya que no hay Direccin
atributos exclusivos de Tel
ReservarCuarto esta clase
ID_Reservacin
ID_Ubicacin Cuarto Ubicacin
ID_Cuarto
ID_Ubicacin ID_Ubicacin
ID_Cuarto Nombre
Nombre Direccin
Capacidad
Diagrama E-R
Reservacin
ID_Reservacin
Status
D_llegada
1* 1 Cliente
D_salida
ID_Cliente FK ID_Cliente
Nombre
1* Apellido
Direccin
1 Tel
ReservarCuarto
ID_Reservacin
ID_Ubicacin Cuarto Ubicacin
ID_Cuarto 1 1..*
ID_Ubicacin ID_Ubicacin
ID_Cuarto 1..* Nombre
Nombre 1 Direccin
Capacidad