Title: DIAGRAMA DE OBJETOS
1DIAGRAMA DE OBJETOS
2TIPOS DE DIAGRAMAS
- Diagramas de estructura mostrar la estructura
estática del sistema que se está modelando - Incluye diagramas de clase, componentes y/o
objetos. - Diagramas de comportamiento muestra el
comportamiento dinámico entre los objetos y el
sistema. - Incluye diagramas de actividades, casos de uso y
de secuencia
3Diagrama de Objetos
- La clase define las reglas los objetos expresan
los hechos. - La clase define que puede ser el objeto describe
que es. - Se considera un caso especial del diagrama de
clases. - Puede construirse junto con el de clases.
- Describe una instancia de un diagrama de clase en
un momento en particular. - Este diagrama contiene objetos y ligas.
4Objetivo
- Es una herramienta para probar y entender un
problema al documentar ejemplos del dominio del
problema. También se usa durante el análisis y
el diseño para verificar la exactitud de un
diagrama de clases. -
5Notación Diagrama de Objetos
- Consiste de dos elementos objetos y uniones
(links). Un objeto es una entidad real creada a
partir de una clase, igual una unión es creada a
partir de una asociación. Ejemplo
Nombre de la clase
J.Perez Cliente
clientID 24629 Nombre Javier Perez Direccion
Pino 45875
Objeto J.Pérez del tipo Cliente
6Notación objeto anónimo
- La forma abreviada utiliza nombre de la clase
sin el nombre del objeto. - Se usa cuando queremos dibujar un ejemplo donde
no importe el objeto específico que participa.
Contiene hechos acerca de los atributos. Cada
atributo es nombrado y se le asigna un valor.
Por eso se dice que la Clase son reglas a
diferencia del Objeto que son hechos.
Cliente
clientID 24629 Nombre Javier Perez Direccion
Pino 45875
7Comparando el diagrama de Clases y el de Objetos
Producto
-descString null -numSerieString asignado
Embarque
entrega
-fechaDate hoy -destinoDierccion null
01 1
21Producto
-desc harina -numSerie 563284
4321Embarque
-fecha 12-12-08 -destino Toluca
96Producto
-desc frijol bayo -numSerie 582364
8Diagrama 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
múltiples interpretaciones o valores como los
atributos. Cada objeto de la misma clase posee
las mismas operaciones.
9Diagrama de clase Diagrama de objetos
Tiene tres compartimentos nombre, atributos y operaciones Tiene dos compartimentos nombre y atributos
Solo se pone el nombre de la clase Se puede poner el nombre del objeto y el de la clase subrayados, o solamente y el nombre de la clase
En los atributos se definen las propiedades de los mismos Solo se definen los valores de cada atributo para la prueba que se esté modelando
Se listan las operaciones Las operaciones no están incluidas en el objeto ya que son idénticas para cada objeto de la misma clase
Las clases se conectan con una asociación con nombre, multiplicidad, roles. Los objetos se conectan con un link que tiene un nombre y no tiene multiplicidad.
10Aplicando Diagramas de Objetos para probar
Diagramas de Clases
VendorProduct
- Esta figura muestra que cada Producto puede
comprarse directamente a los proveedores
(VendorProduct) ó podemos empacarlos juntos y
hacer nuestro propio producto (CustomProduct)
Product
CustomProduct
11Prueba caso 1, Diagrama de objetos
- Un CustomProduct se crea ensamblando
VendorProducts, por ejemplo los VendorProducts 4,
y 12 crean el CustomProduct 821, la siguiente
figura muestra como debe cambiarse el diagrama de
clases para incluir la relación de agregación
entre CustomProduct y VendorProduct.
4VendorProduct
821CustomProduct
12VendorProduct
12Cambio en el diagrama de clases
VendorProduct
- El cambio muestra que un CustomProduct es creado
de uno ó más VendorProducts. Pero un
VendorProduct no nesecita usarse en un
CustomProduct forzosamente.
Product
1 0
CustomProduct
13Caso 2, diagrama de clases
VendorProduct
- Cuál es el número mínimo de objetos tipo
VendorProduct que pueden formar un
CustomProduct?. Si dejamos 1, no habría
diferencia entre ambos productos
Product
2 0
CustomProduct
14Prueba caso 3, Diagrama de objetos
- Es posible que varios CustomProduct configuren
otro CustomProduct?, en caso afirmativo, habría
que incluir un asociación reflexiva, en el
diagrama de clases, ver sig fig.
213CustomProduct
823CustomProduct
23CustomProduct
15Cambio en el diagrama de clases
VendorProduct
- La prueba revela la necesidad de soportar
agregación entre un CustomProduct y otros
CustomProducts. Por ejemplo un condimento puede
estar formado por 3 especies diferentes.
Product
1 0
0
CustomProduct
0
16Creando un esquema de base de datos para el Modelo
- El esquema de base de datos consiste de dos
fases creación de un esquema lógico y la
creación de un esquema físico. - Es posible mapear entidades OO a tablas de bases
de datos. - El esquema lógico se representa por un diagrama
Entidad-Relación. - Cada instancia de una clase se almacena como un
renglón único en la tabla correspondiente. - Los atributos son representados como cambos en
las tablas. - La asociación entre clases se representa como
llaves foráneas entre las tablas.
17Estrategia
- Para convertir un diagrama de clases en un
diagrama lógico ER - Convertir cada clase en una tabla
- Especificar la llave primaria de cada tabla
- Crear asociaciones ER con distintas
multiplicidades.
18Validando el modelo
- Cómo sabemos que este diagrama modela realmente
el dominio del problema? Una técnica 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 CH
está esperando llamadas de clientes que quieran
reservar un cuarto de hotel. Suena el teléfono y
es un cliente que quiere reservar para ir al
hotel de Cancún en Semana Santa, el agente
selecciona Crear una Reservación en su pantalla
principal y aparece una reservación en blanco.
Hasta este momento lo único que sabemos es la
ubicación del hotel (Cancún).
Ubicación
NombreCancún
19Ejemplo
- En un sistema de reservaciones, el diagrama de
clases es
1 hecha para 1
Reservación
Cliente
1
1
1 ubicada en 1
Cuarto
Ubicación
20Continuación 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 ubicación y el cliente selecciona
el 7120.
1352Cuarto
Reservación
NumReserv null Status verif D_llegada
8/04/09 D_salida15/04/09
326Cuarto
Ubicación
NombreCancún
7120Cuarto
21Continuación ejemplo
- El agente introduce los datos del cliente en el
sistema y el objeto Cliente se relaciona con la
reservación
Cliente
Nombre Jaime Apellido López Dirección
xxxx Tel 5874587587
1352Cuarto
Reservación
NumReserv null Status verif D_llegada
8/04/09 D_salida15/04/09
326Cuarto
Ubicación
NombreCancún
7120Cuarto
22Continuación ejemplo
- El agente pregunta si quiere confirmar la
reservación.. En caso afirmativo el sistema
cambia el status a Confirmada y le asigna un
número de reservación
Cliente
Nombre Jaime Apellido López Dirección
xxxx Tel 5874587587
1352Cuarto
Reservación
NumReserv 4582 Status confirmada D_llegada
8/04/09 D_salida15/04/09
326Cuarto
Ubicación
NombreCancún
7120Cuarto
23- Un cliente quiere reservar más de una habitación,
de acuerdo con el diagrama de clases sólo se
puede reservar un cuarto por Reservación. Esto
nos indica que la multiplicidad en Cuarto debe
cambiarse a 1. (Este es otro escenario).
1 hecha para 1
Reservación
Cliente
1
1
1 ubicada en 1
Cuarto
Ubicación
24Con los cambios en la multiplicidad
- El diagrama de clases cambia en Cuarto
Reservación
Cliente
NumReserv Status D_llegada D_salida
1 1
Nombre Apellido Dirección Tel
1
ReservarCto( )
1
Ubicación
Cuarto
1 1
Nombre Dirección
Nombre Capacidad
25Paso 1 Mapear entidades a Tablas
- Crear una tabla para cada clase, dejando los
atributos
Reservación
Cliente
NumReserv Status D_llegada D_salida
Nombre Apellido Dirección Tel
Ubicación
Cuarto
Nombre Dirección
Nombre Capacidad
26Paso 2 Especificar llaves primarias para cada
tabla
Reservación
Cliente
ID_Reservación Status D_llegada D_salida
ID_Cliente Nombre Apellido Dirección Tel
Ubicación
Cuarto
El número de cuarto puede repetirse de un hotel a
otro por eso es necesario incluir en la PK el
ID_Ubicación
ID_Ubicación Nombre Dirección
ID_Ubicación ID_Cuarto Nombre Capacidad
27Paso 3 Crear una Asociación en las relaciones
Uno a Muchos en el diagrama E-R, usando llaves
foráneas (FK)
Reservación
Cliente
ID_Reservación Status D_llegada D_salida ID_Clien
te FK
ID_Cliente Nombre Apellido Dirección Tel
Ubicación
Cuarto
ID_Ubicación Nombre Dirección
ID_Ubicación FK ID_Cuarto Nombre Capacidad
28Paso 4 Crear una Asociación en las relaciones
Muchos a Muchos en el diagrama E-R
Reservación
ID_Reservación Status D_llegada D_salida ID_Clien
te FK
Fue necesario incluir una tabla entre las tablas
Reservación y Cuarto, con una llave primaria
compuesta. En el diagrama de Clases no existía
ya que no hay atributos exclusivos de esta clase
Cliente
ID_Cliente Nombre Apellido Dirección Tel
ReservarCuarto
ID_Reservación ID_Ubicación ID_Cuarto
Ubicación
Cuarto
ID_Ubicación Nombre Dirección
ID_Ubicación ID_Cuarto Nombre Capacidad
29Diagrama E-R
Reservación
ID_Reservación Status D_llegada D_salida ID_Clien
te FK
Cliente
1 1
ID_Cliente Nombre Apellido Dirección Tel
1 1
ReservarCuarto
ID_Reservación ID_Ubicación ID_Cuarto
Ubicación
Cuarto
1 1..
ID_Ubicación Nombre Dirección
ID_Ubicación ID_Cuarto Nombre Capacidad
1..
1