Transparencias Tema 2 Analisis Orientado A Objetos II MCD
Transparencias Tema 2 Analisis Orientado A Objetos II MCD
Transparencias Tema 2 Analisis Orientado A Objetos II MCD
TEMA 2
Objetivos Especficos
El alumno debe ser capaz de:
Definir los siguientes conceptos relacionados con la asociacin: rol, multiplicidad, enlace y atributo de enlace. Diferenciar rol como extremo de una asociacin y rol como concepto. Definir los conceptos clase de asociacin, clasificacin y asociacin calificada.
Objetivos Especficos
El alumno debe ser capaz de:
Modela los requisitos de datos de un sistema. Se describen las estructuras de datos de un sistema y las relaciones estticas que existen entre ellos.
Es la representacin de los conceptos (objetos) significativos en el dominio del problema.
Normalmente contienen: Clases de objetos. Asociaciones entre clases de objetos. Atributos de las clases de objetos. Restricciones de integridad.
Diagrama de Clases
Objeto:
Entidad que existe en el mundo real. Tienen identidad propia y son distinguibles entre ellos.
Ejemplos:
El avin con matrcula 327. El avin con matrcula 999. La factura 3443. Una manzana. Una mesa. Un ordenador con n inventario C-1122. Etc.
Clase: describe un conjunto de objetos con: las mismas propiedades. Comportamiento comn. Idntica relacin con otros objetos. Semntica comn.
abstraccin
Eliminar distinciones entre objetos para poder observar aspectos comunes
Avin
Clase Avin
Los objetos de una clase tienen las mismas propiedades y los mismos patrones de comportamiento
Atributo:
TPV Cliente
Supermercado Producto
Venta Pago
Lnea de Venta
Pago
importe: Integer
Pueden tomar valores nulos (ej. descripcin). Pueden ser multivaluados (ej. telfs).
Asociacin
Es la representacin de relaciones entre dos o ms objetos.
Persona Trabaja > Empresa
nombre de asociacin
direccin de lectura
La navegacin de una asociacin por defecto es bidireccional. Al nombrar una asociacin hay que elegir una determinada direccin.
Cuatrimestre
Se matricula Cada instancia de la asociacin es una n-tupla de valores de cada una de las respectivas clases (cardinalidad)
Vuelo
Ciudad
modelarse
de
dos
formas
Rol en asociacin
jefe 0..1 contratante empleado 0..1 contrata > 0..* Empresa 1..* < posee 1..* propiedad propietario < es jefe de Persona
1..*
subordinado
jefe 0..1 < es jefe de contrata 1..* Empleado > 0..* subordinado Propietario
Clase A
Clase A Clase A
1 1..*
Clase B
Clase B Clase B
Exactamente una
Muchas (1 o ms) Muchas (cero o ms)
*
0..* 0..1 5 5+
Clase A
Clase A
Clase B
Clase B
Clase A
Clase A Clase A
Clase B
Clase B Clase B
Exactamente 5
5 o ms Entre 1 y 10, 15
1..10, 15
Profesor Asignatura
* Se responsabiliza 1..2
* Cuatrimestre
Alumno
0..500
Este modelo permite que no haya ningn alumno matriculado en una asignatura y en un determinado cuatrimestre.
Asignatura
* Se matricula
Cuatrimestre
Asociaciones recursivas
Asociaciones en las que una misma clase de objetos participa ms de una vez (con papeles diferentes o no).
Se pueden trasladar atributos de enlace a alguna de las clases de la asociacin? A nivel conceptual NO, en Diseo. S en asociaciones 1:1 1:m. Se trasladan a la clase del
extremo contrario al de multiplicidad 1. NO en asociaciones n:m.
Persona nombre edad . . . Asignatura Persona nombre edad horas ...
imparte 0..*
horas
imparte
0..*
nombre temario . . .
Persona
nombre edad horas ...
Asignatura
imparte nombre 0..* 0..1 temario . . .
HORA es un atributo de persona? Qu ocurre con las personas que no dan clase con el n horas?
Qu ocurre si queremos contemplar que una persona imparta n asignaturas?
Person a nombre edad ... Asignatura imparte 0..*
horas
Empresa
nombre
Contrato descripcin fechacontrato salario Clase asociativa Los atributos hacen referencia a la asociacin Su existencia depende de la asociacin
Usuario
Clave
Las claves asociadas con el usuario podran mantenerse en orden de menos a ms recientemente usada.
LneaPedido
CodProd 0..1 lneaPedido Unidades: Integer PrecioTotal: Integer
Dentro del mismo pedido no pueden existir dos lneas con el mismo producto. Pueden distinguirse las lneas de pedido en un pedido segn su CodProd.
Empresa
n empleado
Persona
En una determinada empresa no pueden existir dos empleados con el mismo nmero. Pueden distinguirse los empleados de una empresa por su nmero de empleado.
Ruta
Segmento
Men
Receta
1..*
Ordenador
Empresa
Programa
0..*
Bloque
0..*
Sentencia
Segn la dependencia y la exclusividad de la agregacin se diferencian cuatro tipos de agregaciones: Dependencia: La existencia de una parte va ligada a la del agregado?
Composicin
Es un tipo de agregacin exclusiva y dependiente.
La multiplicidad del extremo compuesto puede ser como mximo 1 (como mximo un componente lo es de un compuesto). Si un componente est asociado a un compuesto y el compuesto se borra entonces el componente tambin se ha de borrar (no lo puede sobrevivir).
Cundo mostrarla?
Agregacin/Composicin Existe una relacin todo-parte fsica o lgica. Algunas propiedades del compuesto se propagan a los componentes (destruccin, movimiento).
Composicin
La vida del componente depende de la vida del compuesto.
Persona
Subclases
Discriminador: Es el nombre de la particin. Ha de ser nico entre los atributos y roles de la superclase.
Regla del 100% El 100% de la definicin de la superclase se debe poder aplicar a la subclase. La subclase debe ajustarse al 100% de los Atributos, Asociaciones y Restricciones de Superclase.
Regla Es-Un Todos los objetos de una subclase deben ser objetos de su superclase.
Subclase potencial debe estar de acuerdo: Regla del 100 % (conformidad con la definicin). Regla Es-Un (conformidad con pertenencia a superclase).
Venta
tipo
Pago a crdito * 1 Tarjeta
{disjoint, complete}
Pago con taln num-taln: Integer
definir
una
superclase
(generalizar
Las subclases potenciales representan variaciones de un mismo concepto. Las subclases tienen atributos que pueden ser factorizados y expresados en las superclases. Las subclases tienen asociaciones que pueden ser factorizadas y relacionadas con la superclase. Las subclases se ajustan a las reglas 100% y Es-Un.
Ejemplos discriminador
/dept de un empleado es el nombre-dept del departamento donde trabaja el empleado Tdept es una enumeracin de Direccin, Produccin y Administracin Empleado nombre-empleado sueldo /dept /dept trabaja en >
{disjoint, incomplete}
Direccin matr-coche
Produccin Precio-hora-ext
tipo-pago
{disjoint, incomplete}
Efectivo cambio
Tarjeta num-tarjeta
Hombre
sexo
role
Persona
{disj., compl.}
{disj., incompl.}
Doctor
Mujer
estado
{disj., compl.}
Enfermera
Soltera
Casada
Divorc.
Viuda
Masajista
Estudiante
universidad {disjoint, incomplete} estudios {disjoint, incomplete}
Inform. Mates
Empres.
InformUCA
Slo se puede utilizar si no hay conflictos de herencia. Conflicto de herencia: Una clase tiene ms de una superclase con un mismo atributo/asociacin (operacin) que no proviene de un nico antecesor.
Atributo derivado
Factura n factura fecha / importe contiene > * 1..* Producto cdigo precio
/importe: El importe de una factura f es igual a la suma del importe de los productos (cantidad x precio) que contiene la factura f.
cantidad descuento
/num_empleados: El nmero de empleados de un departamento d es igual al nmero de ocurrencias de tiene donde aparece d
Asociacin derivada
est situado en > Departamento * 1 Ciudad
1..*
tiene >
Empleado
*
/trabaja en >
/trabaja en: La ciudad donde trabaja un empleado es la ciudad donde est situado su departamento. Estudiante
1..*
1..*
estudia >
1..* Asignatura
1..*
< /ensea
1..* Profesor 1
imparte >
/ensea: Los estudiantes a los que ensea un profesor son los estudiantes que estudian las asignaturas que imparte el profesor.
La multiplicidad de clase establece el rango de posibles cardinalidades para las instancias de una clase. Por defecto, es indefenida.
En algunos casos es til establecer una multiplicidad finita, especialmente en casos de clases que pueden tener una sla instancia (y que se denominan singleton).
multiplicidad de clase
La Puntual, S.A. 1
NIF direccin
La cambiabilidad indica si los valores de un atributo o el extremo de una asociacin pueden cambiar o no.
Cambiable (changeable)
Persona
telfono {changeable} * residente
vive en >
Congelado (frozen)
Persona fecha-nac {frozen} * per-nacida
naci en >
1 ciudad-nac {frozen}
Ciudad
Restricciones
Limitan los valores que pueden tomar las clases, los atributos o las asociaciones.
PRODUCTO
Cdigo Stock min Stock max {Stock max > Stock min} {Stock max = 1000} {Stock min > = 10}
Xor
Une diversas asociaciones ligadas a una misma clase base. Una instancia de la clase base puede participar como mximo en una de las asociaciones unidas por xor.
persona propietaria * cuenta per *
Persona
Profesor de > 1..* 0..1
{xor}
Persona
1..*
{xor}
0..1 Estudiante en >
Universidad
Empresa
Subset
Libro
Departamento
1 0..1
< pertenece
miembro 1..*
{subset}
dirige >
director
Persona
Especialidad nom-esp
1..*
Dos especialidades diferentes no pueden tener el mismo nom-esp. Dos equipos mdicos diferentes no pueden tener el mismo cod-equipo. Restricciones de clave Dos mdicos diferentes no pueden tener el mismo num-col. Un mdico no puede estar asignado a un equipo mdico que pertenezca a una especialidad que el mdico no tiene
externa
Realizar un modelo conceptual de datos que responda a las siguientes especificaciones: Las reas metropolitanas tienen una serie de hoteles, algunos de los cuales pertenecen a una determinada cadena de hoteles. Los hoteles aceptan varias tarjetas de crdito. De las reas metropolitanas interesa conocer el nombre del rea, el nombre del estado o provincia a la que pertenece y el nombre del pas. De los hoteles interesa conocer el nombre, la direccin, el n de habitaciones, el n de telfono, el n de estrellas, el precio de la habitacin simple y el precio de la habitacin doble. De las cadenas de hoteles interesa conocer el nombre y el director. De las tarjetas de crdito slo interesa conocer el nombre.
Realizar un modelo conceptual de datos que responda a las siguientes especificaciones de un sistema de vuelos: Los aeropuertos dan servicio a varias ciudades y hay ciudades que tienen ms de un aeropuerto. Los vuelos entre los aeropuertos los gestionan las lneas areas y se describen como se muestra en el siguiente ejemplo: vuelo TW250 del aeropuerto de S. Pablo de Sevilla al aeropuerto Reina Sofa de Tenerife, tiene prevista la salida a las 7:42 am y una duracin estimada de 1 hora y 80 minutos; el vuelo se realizar en un DC9 (modelo de avin) todos los das de la semana excepto los sbados y estar vigente desde febrero de 2013 hasta junio de 2014. De los modelos de aviones interesa conocer el cdigo del modelo (ej. DC9) y el fabricante, de los aeropuertos el cdigo y el nombre, y de las ciudades y las lneas areas slo interesa conocer el nombre.