Está en la página 1de 29

DIAGRAMA DE OBJETOS

Universidad Mariano Glvez


Facultad de Ingeniera en Sistemas
Diseo de Sistemas
TIPOS DE DIAGRAMAS
Diagramas de estructura: mostrar la estructura
esttica del sistema que se est modelando
Incluye: diagramas de clase, componentes y/o objetos.

Diagramas de comportamiento: muestra el


comportamiento dinmico entre los objetos y el
sistema.
Incluye: diagramas de actividades, casos de uso y de
secuencia
Diagrama 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.
Objetivo
Es una herramienta para probar y entender un
problema al documentar ejemplos del dominio
del problema. Tambin se usa durante el
anlisis y el diseo para verificar la exactitud de
un diagrama de clases.
Notacin 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 unin es creada a
partir de una asociacin. Ejemplo
Nombre de la clase
J.Perez: Cliente

clientID = 24629 Objeto J.Prez del tipo Cliente


Nombre = Javier Perez
Direccion = Pino 45875
Notacin: objeto annimo
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 especfico que
participa.
Contiene hechos acerca de
los atributos. Cada atributo
: Cliente es nombrado y se le asigna un
valor. Por eso se dice que la
clientID = 24629 Clase son reglas a diferencia del
Nombre = Javier Perez Objeto que son hechos.
Direccion = Pino 45875
Comparando el diagrama de Clases y el
de Objetos
Producto
Embarque -desc:String = null
-numSerie:String =asignado
-fecha:Date = hoy entrega
-destino:Dierccion = null
01 1*

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

Tiene tres compartimentos: nombre, Tiene dos compartimentos: nombre


atributos y operaciones 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 Solo se definen los valores de cada
propiedades de los mismos atributo para la prueba que se est
modelando
Se listan las operaciones Las operaciones no estn incluidas
en el objeto ya que son idnticas
para cada objeto de la misma clase
Las clases se conectan con una Los objetos se conectan con un link
asociacin con nombre, que tiene un nombre y no tiene
multiplicidad, roles. multiplicidad.
Aplicando Diagramas de Objetos para
probar Diagramas de Clases
VendorProduct
Product

CustomProduct

Esta figura muestra que cada Producto puede


comprarse directamente a los proveedores
(VendorProduct) podemos empacarlos juntos
y hacer nuestro propio producto
(CustomProduct)
Prueba caso 1, Diagrama de objetos
4:VendorProduct
821:CustomProduct

12:VendorProduct

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
relacin de agregacin entre CustomProduct y
VendorProduct.
Cambio en el diagrama de clases
VendorProduct
Product
1*

0*
CustomProduct

El cambio muestra que un CustomProduct es


creado de uno ms VendorProducts. Pero un
VendorProduct no nesecita usarse en un
CustomProduct forzosamente.
Caso 2, diagrama de clases
VendorProduct
Product
2*

0*
CustomProduct

Cul es el nmero mnimo de objetos tipo


VendorProduct que pueden formar un
CustomProduct?. Si dejamos 1, no habra
diferencia entre ambos productos
Prueba caso 3, Diagrama de objetos
213:CustomProduct
823:CustomProduct

23:CustomProduct

Es posible que varios CustomProduct


configuren otro CustomProduct?, en caso
afirmativo, habra que incluir un asociacin
reflexiva, en el diagrama de clases, ver sig fig.
Cambio en el diagrama de clases
VendorProduct
Product
1*

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

También podría gustarte