Sie sind auf Seite 1von 20

Metodologa de Desarrollo de Sistemas II

Unidad 4.1 Persistencia de Objetos

Facultad de Tecnologa Informtica UAI


Dr. Carlos Gerardo Neil
2011

Programa de la Asignatura

1.1. Anlisis y diseo OO 2.1. Casos de uso 2.2. Diagramas de clases. 2.3. Diagramas de comunicacin. 2.4. Diagramas de secuencia. 3.1. Lenguaje de restriccin de objetos. 4.1 Transformacin del Modelo de Clases al Modelo ER 5.1. Patrones de Diseo.

Clase anterior repaso general

Cmo puedo complementar los modelos UML con sentencias OCL?


Cul es la ventaja de usar OCL en lugar de un lenguaje informal? Qu significa que OCL es un lenguaje declarativo?

Qu es un invariante en una clase?


Cmo se especfica una propiedad (atributo, operacin, nombre de rol) en un diagrama de clases? Cmo navegar una asociacin a partir de los nombres de rol? Cmo s si hago referencia a un conjunto o un objeto a partir de la multiplicidad del extremo opuesto de una asociacin? Cul es la diferencia entre los distintos tipos de colecciones?

Modelo de Clases vs. Modelo de Datos

Cmo mantengo la persistencia de los objetos...?

En el modelo de clases tenemos:


Clases Asociaciones Clases Asociaciones Generalizaciones Atributos

...Mediante una base de datos

Cmo se puede hacer corresponder un modelo de objetos con un modelo de datos?

En el modelo de datos tenemos:


Entidades Interrelaciones Atributos Identificadores

Cmo hago las transformaciones?


Todas las clases se transformarn en entidades?
Alumno

Alumno

Materia

Qu pasar con las asociaciones?

Alumno

Materia

...y las clases asociaciones?


Nota

Cmo hago las transformaciones?/2


... Qu pasar con las generalizaciones?
vehiculo

camion

automovil

y con los atributos de las clases?

Y con las operaciones?

Transformacin Bsica - Clases


Todas las clases se transforman en entidades
Los atributos de la clase pasan a ser atributos de la entidad

Creo el Atributo identificador

codAlu

ALUMNO

nombre apellido

direccion

Se crean nuevos atributos identificadores para cada entidad (los objetos no precisan Identificador nico.)

el modelo de datos NO hay operaciones

Transformacin Bsica Asociaciones

Las asociaciones se transforman en interrelaciones

Empresa

1..*

Empleado

Se mantiene, en el modelo de datos, la misma multiplicidad de la asociacin

EMPRESA
(1, 1) (1, n)

EMPLEADO

Transformacin Bsica Composicin

Las relaciones de composicin

El todo se transforma en entidad fuerte y la parte y se transforman en entidad dbil

FACTURA
(1, 1) (1, n)

LINEA

Transformacin Bsica Clase Asociacin


La clase asociacin se transforma en interrelacin La multiplicidad es de M:N Los atributos de la clase asociacin pasan a ser atributos de la interrelacin
EMPLEADO
(1, n) FechaIngreso (1, n)

EMPRESA

PUESTO
sueldo

Transformacin Bsica Generalizacin


Las relaciones de clasificacin (tres opciones)

1.

Se transforman en relaciones de clases y subclases en el modelo


entidad interrelacin, o
codAut

codAut

2.

Se pasan los atributos de la superclase a las subclases (desaparece la superclase)

AUTOMOVIL

CAMION

peso

tipoCombustible peso cntidadPasajeros

tipoCombustible capacidad

codAut

3.

Se pasan los atributos de las subclases a la superclase (y desaparecen aquellas)

VEHICULO
capacidad peso tipoCombustible cntidadPasajeros

Tengo que agregar el atributo identificador

Un ejemplo

superclase

ALUMNO

PROFESOR

*
* *

Transformacin del modelo de clases al modelo de datos

1 CURSO

*
NOTA nota fecha

* MATERIA
supeclase

cod_alum

La transformacin al modelo relacional es la conocida...

ALUMNO
N N nota

PROFESOR
N

cod_prof

NOTA
fecha M

CURSO
cod_cur

MATERIA

cod_mat

Otro ejemplo...

cod_cli

cod_ord

CLIENTE 1 1 cod_carro 1 CARRITOCOMPRA 1 1 N

ORDENCOMPRA 1

num_ejemp N N ITEMS 1 EJEMPLARLIBRO N num_item cod_autor N AUTOR

cod_libro 1 N LIBRO

El modelo Relacional Asociado

Cliente(cod_cli, ...) OrdenCompra(cod_ord, ..., cod_cli(Cliente)) CarritoCompra(cod_carro, ..., cod_cli(Cliente), cod_ord(OrdenCompra)) Items(num_item, ..., cod_carro(CarritoCompra), num_ejem(EjemplarLibro)) EjemplarLibro(num_ejem, ..., cod_libro(Libro)) Libro(cod_libro, ...) Autor(cod_autor, ...) LibroAutor(cod_libro(Libro), cod_autor(Autor))

Otro ejemplo
ConceptualModel ERModel

body

1..1 Person
1..

Story part -title -date -summary 1.. *

body 1..1

IDst title date

IDpr name address

1..1 -name -address author -email


1..

1..n Story 1..n summary

1..1 author Person 1..n participant email

participant

part

Essay -illustration

Interview

1..1

Essay

Inteview 1..1 1..1

1..1
1..

illustration 1..n IDqa Q&A answer question

Q&A -question -answer

Sugerencias
El modelo de datos es una consecuencia del modelo de clases, por lo tanto se disea despus de este
La transformacin es del modelo de clases al modelo conceptual (DER) y de ste al modelo lgico (relacional) ver MDS I Tenga en cuenta costos y beneficios de mantener en el modelo de datos conceptual, las relaciones de generalizacin Existen otros mapeos entre el diagrama de clases y el modelo de datos (ver bibliografa especfica)

Auto evaluacin/1
Comprend los conceptos ms importantes de la unidad 4.1 si puedo definir y dar ejemplos de: Transformacin de
Clases Asociaciones Composiciones Generalizaciones

Auto evaluacin/2
Comprend los conceptos ms importantes de la unidad 4.1, si
Entiendo por qu utilizo una base de datos relacional y no, como parecera lgico, una base de datos OO Entiendo por qu derivo el modelo de datos del modelo de clases y no a la inversa Comprendo que la transformacin propuesto no es la nica posible

Entiendo por qu solo transformo datos y no operaciones


Comprendo por qu por a cada clase transformada, adems de los atributos, debo aadirle, en el modelo de datos, un identificar nico

FIN