3 diagrama de clases

Upload: jbhbhsdfsdsef

Post on 14-Jul-2015

140 views

Category:

Documents


1 download

TRANSCRIPT

Diagrama de Clases

Diagrama de Clases (DCla)Caractersticas del DCla Componentes de un DCla Atributos Restricciones Operaciones Estructuras todo/parte y generalizacin/ especializacin Patrones estructurales Criterios de calidad de modelos estticos

Caractersticas del DClaModelo tiene sus orgenes en Shlaer & Mellor (1989) y OMT (1991). Es predominantemente esttico, con visos funcionales al representar operaciones. Responde a preguntas tales como:qu debe quedar en la memoria del sistema? qu clases de objetos pertenecen al sistema? qu asociaciones son posibles entre ellas?

Componentes de un DCla pEl DCla tiene los siguientes componentes principales:clases asociaciones

Ejemplo simplificado:

Producto cdigo ttulo observaciones disponibilidad stock precio Inclusin

Pedido nmero fecha tipoDespacho estado autorizacinPago fechaCierre Solicitud

Cliente Registrado nombre correoElectrnico direccinParticular formaPago cdigo contrasea

Clases y ObjetosCaractersticas d una Clase: C i de Clrepresenta un conjunto o clase de objetos es una abstraccin que destaca propiedades comunes de los elementos del conjunto cada elemento es un objeto o instancia con j valoracin especfica de sus propiedades es una plantilla a partir de la cual los objetos son instanciados instanciados

Persona

...Clases y Objetos ClasesRepresentacin: rectngulo extendido (con 2 3 secciones) o compacto con nombre significativo en singular Ejemplos:Persona Persona Persona

operacionesJuanPrez: Persona JuanPrez: Persona

atributos

Asociaciones soc ac o esDefinicin: D fi i iRepresenta conjuntos variables de conexiones entre instancias de clases Requiere indicacin del nmero de instancias participantes (multiplicidad)

Representacin: R t i

1..1 Persona

PropiedadVehculo

0..*

Vehculo

propietario

propiedad

...Asociaciones AsociacionesUsando diagramas de Venn para los conjuntos de instancias de las clases y la asociacin, en el ejemplo anterior:PropiedadVehculo

Persona

Vehculo

...Asociaciones Asociaciones...Representacin:relacionamientos se leen preferentemente de izquierda a derecha y de arriba hacia abajo nombre asume forma nominal: la PropiedadVehculo, la Compra, el Prstamo nombre no es obligatorio, pero se recomienda colocarlo roles tampoco son obligatorios, pero pueden omitirse alternativamente los nombres pueden ser direccionados usando formas verbales con voces pasiva y activa:

inscribe Alumno es inscrito por Curso

MultiplicidadRepresenta el nmero de instancias de cada clase que participan en la asociacin. Generalmente se indica el nmero mnimo y mximo de instancias en forma de rangos: min..max. Ejemplos:Cliente 0..* Compra 0..* Cliente 0..1 Compra 1..* Publicacin 0..5 Prstamo 0..1 1..1 Pertenencia 1..1 Pas Alumno 10..50 Matrcula 1..6

Artculo

Artculo

Lector

Capital

Curso

...Mutiplicidad MutiplicidadMultiplicidad se aplica adems a atributos y clases (se ver ms adelante). Otros ejemplos de multiplicidad: j p p0..* (tambin se abrevia *) 1..1 (tambin se abrevia 1) ( ) 3..5 2..* 2, 4 0..1, 3..4, 6..* , ,

...Multiplicidad MultiplicidadDependiendo de la multiplicidad mnima con respecto a una clase las asociaciones se clase, denominan:opcionales: opcionales con mnima = 0 obligatorias: obligatorias con mnima > 0

Muchas veces no es relevante o no se sabe an si una asociacin es opcional u obligatoria, en estos casos p g , las asociaciones pueden caracterizarse slo en trminos de multiplicidades mximas como 1:1, 1:*, p , , *:*

Ms sobre las asociacionesLas asociaciones se pueden clasificar segn el nmero de clases y roles participantes:Asociacin recursiva o auto-asociacin: Cuando asocia a auto-asociacin diferentes instancias de una misma clase. Binaria: Binaria Cuando asocia exactamente a 2 clases distintas (todos los ( d l ejemplos vistos hasta aqu). l h ) Mltiple: Mltiple Cuando asocia 3 o ms clases o roles. Se denominan especficamente t d i fi t ternarias, cuaternarias, etc. Poco i t i t P comunes de encontrar.

Auto-asociaciones uto asoc ac o esDebe indicarse siempre el rol que cumple cada lado de la clase en la asociacin. Ejemplos:Persona 0..1 mujer i it * pre-requisito 0..1 0 1 hombre Vigilante * reemplazado 0..1 0 1 reemplazante

Matrimonio

Reemplazo

Asignatura * requerida

Empleado *

0..1 0 1 jefe

Requisito

Jefatura subordinado

Asociaciones mltiples pLa multiplicidad de una clase en una asociacin mltiple de n clases, es tomada con respecto al conjunto de n-1 clases participantes. Ejemplo:Distribucin Ciudad Distribuidor

* *Producto

0..1

[1]

...Asociaciones mltiples AsociacionesLa opcionalidad no significa que algunas instancias de una asociacin n-aria sean instancias de una asociacin (n-1)-aria. Distribucin Ejemplo:

Producto

Ciudad

Distribuidor

AtributosPropiedades P i d d comunes a las instancias de una clase que, al l i i d l l valorizarlas, permiten describir dichas instancias. Atributos deben ser:relevantes: relevantes significativos para el sistema modelado determinantes: determinantes valoracin determina la existencia de las instancias

Ejemplo:Alumno rut nombre direccin sexo aoIngreso * Matrcula * clave paralelo horario sala Curso

...AtributosTambin T bi se usa multiplicidad para i di l i li id d indicar cuntos valores de un atributo puede instancia: tener cada instanciapor omisin se asume exactamente un valor omisin: (no se anota) opcional: opcional valor puede o no estar presente [0 ] [0.. mltiple: mltiple 2 o ms valoresCuentaAhorro nmero titular segundoTitular [0..1] fechaApertura /antigedad tasaDeInters tipo movimientos [1..*] /saldo

Atributos cuyos valores se pueden obtener y p de otros elementos del modelo se dicen derivados y se anotan con el prefijo /. Propiedades li bl P i d d aplicables a toda una clase se d l subrayan para distinguirlas de las p p propiedades aplicables a las instancias. p

...Atributos de las Clases AtributosOtras notaciones para los atributos son:Visibilidad: Visibilidad Se antepone indicando si espblico (+), visible para cualquier objeto protegido (#), para estar disponible dentro de una jerarqua privado (-), para estar disponible slo dentro de la clase

Tipificacin: Indica l ti b i Tipificacin I di el tipo bsico, ej. h bilit d Boolean Ti ifi i j habilitado: B l Valor Inicial Indica el valor inicial a dar cuando se crea la Inicial: instancia, ej instancia ej. habilitado: Boolean = true Propiedad del atributo Restricciones sobre modificacin atributo: de los valores, ej. identificador: Integer {constante}

Diccionario de atributosLa L mayora de los atributos d las clases debieran ser d l ib de l l d bi autodefinidos, es decir, su nombre indicar claramente qu p representan. Atributos no autodefinidos requieren una definicin complementaria. Se recomienda que todos los atributos y en particular los no autodefinidos, se definan fuera del DCla en un Diccionario de Atributos Atributos. Formato recomendado de la definicin de atributo:no autodefinidoClase.atributo = definicin del atributo; valores: valor1, valor2, ...

autodefinidoClase.atributo Clase atributo = unidad de medida; rango: min..max min max

...Diccionario de atributos DiccionarioEjemplos:Persona.estatura = unidad: cm; rango: 80..250 Cliente.status = calidad en que es catalogado el cliente; valores: bueno, regular bueno regular, malo ClienteEmpresa.tipo = sector de la empresa; valores: gobierno, industria, universidad, otro Horno.temperatura = temperatura de operacin del horno; valores: alta (501C T 800C), media (201C T 500C), baja (T 200C) ) Pedido.estado = estado en que se encuentra el pedido; valores: recibido, en proceso, enviado parcialmente, enviado totalmente, cancelado, cancelado suspendido

Asociaciones co o c ases soc ac o es como clasesAsociaciones como clases:tambin llamadas clases asociativas permiten definicin de propiedades existe la restriccin implcita de que slo existe una instancia de la clase asociativa por cada par de instancias participantes

Ejemplo:

Persona no puede trabajar en la misma Empresa en ms de un periodo

Empleo periodo i d

Persona

* empleado

0..1 empleador

Empresa

...Asociaciones como clases AsociacionesCuidar de asignar correctamente los atributos de las clases asociadas y la clase asociativa. Ejemplo:Almacenamiento stockActual stockMnimo localizacin [1..*]

Producto1..* 1..*

Bodega nombre capacidad [0..1] direccin

cdigo nombre unidad

Asociaciones derivadas soc ac o es de adasAl igual que los atributos, son asociaciones que se obtienen por medio de otros elementos del modelo. Tambin se anotan con el prefijo /. Ejemplo: j ptoma Persona 1 Empleo E l 0..1 periodo * ofrece 1 Empresa

* / empleada por

0..1

Ms sobre asociacionesOtras notaciones especiales para las asociaciones son:Navegabilidad: Navegabilidad Indica que la asociacin puede navegarse en un sentido determinado (se anota con una flecha). Calificadores: Calificadores Indica que la asociacin est determinada por l valores de uno o ms atributos. los l d b Visibilidad: Visibilidad Indica, al igual que los atributos, si las asociaciones son pblicas, privadas o protegidas. i i bli i d t id

Ms sobre Multiplicidad s sob e u t p c dadMultiplicidad tambin es aplicable a las instancias de una clase. Se asume * si no se anota. Ejemplos:

1 Juzgado nmero nombre titular direccin ciudad fono 1..10 ClasificacinDecimal

RestriccionesSe S usan cuando existen situaciones no representables d i i i bl fcilmente con los componentes del DCla. Se incluyen como notas o comentarios en texto libre S i l i lib entre { ... } Ejemplo: Ej l { Empleado con TrabajoCompleto ocon MedioTrabajo, pero no ambos } j p TrabajoCompleto0..1 1..* 1

Empleado

j 1 MedioTrabajo

0..1

ContratoMediaJornada

ContratoJornadaCompleta p Asistencia0..1

{ Empleado con Asistencia implica Empleado con MedioTrabajo }

CursoPostgrado

...Restricciones Restricciones...Ejemplo:CotizacinFonasa 0..1 Fonasa * { La suma de los Empleado.salario de todos los Empleados con Trabajo en un Departamento debe ser menor al 60% del p p p Departamento.presupuesto } Trabajo 1..* Empleado salario 1 Departamento * CotizacinIsapre 0..1 Isapre { Empleado con CotizacinFonasa o con CotizacinIsapre, pero no ambas }

Qu restricciones aplicara? presupuesto

Partida Empleado * subordinado 0..1 jefe 1 Jefatura Ciudad 1

*

Vuelo * Llegada

OperacionesEs posible representar operaciones en las clases. Dado que los atributos deben poder manipularse, se asumen 2 operaciones p cada atributo: p porconsulta (get) actualiza (set) ( )

Operaciones:tienen argumentos de entrada y salida: in (entrada no se (entrada, anota), out (salida), inout (entrada y salida). se subrayan si se aplican a la clase, en forma consistente con y p , los atributos de la clase.

...OperacionesEjemplos:

Persona nombre direccin correoElectrnico edad Adicionalmente se puede sexo

CuentaAhorro

indicar visibilidad (+, -, #).

getDireccin(out direccin) setDireccin(direccin) setCorreoElectrnico(correoElectrnico) envaCorreoElectrnico(mensaje) getEdad(out edad)

nmero tasaDeInters tipo saldo getTasaDeInters(out tasaInters) setTasaDeInters(tasaDeInters) getSaldo(out saldo)

Estructuras todo/parteObjetos complejos (objetos todo) pueden dividirse en objetos ms simples (objetos parte). b l ( b ) Ejemplos:TODOautomvil pan V regin bosque matrimonio matemtica repuesto

PARTEneumtico harina Valparaso rbol mujer trigonometra repuesto

Para representar estas relaciones todo/parte existen 2 estructuras en el DCla:agregacin: agregacin caso ms flexible y preferido cuando en duda composicin: composicin caso ms restringido de agregacin

...Estructuras todo/parte EstructurasAgregacin: Agregacin1.

Composicin: Composicin1.

2.

3.

El objeto agregado (el todo) puede existir sin sus objetos constituyentes (las partes). Un objeto constituyente puede formar parte de ms d f d de un objeto agregado a la vez. Homogeneidad: los objetos constituyentes son todos de la misma clase clase.Agregado Constituyente

2.

3.

El objeto compuesto (el todo) no existe sin todos sus objetos componentes (las partes). Un b U objeto componente puede d formar parte de un solo objeto compuesto a la vez. Heterogeneidad: los objetos componentes pueden ser de distintas clases clases.Compuesto Componente

...Estructuras todo/parte EstructurasAgregacin Composicin

Empresa

Repuesto

* parte Avin

1

* alaDerecha 1 1 Ala

1..*

departamento

1

fuselaje Fuselaje

1

cola

alaIzquierda

Departamento

Cola

...Estructuras todo/parte EstructurasOtros ejemplos:MesAgenda { ordenado } 28..31 Da

3..*

Punto P t

1 Crculo

Polgono radio * 1 color relleno Estilo 1 *

...Estructuras todo/parte EstructurasCombinar criterios para decidir entre composicin y agregacin: independencia/dependencia de existencia del todo en relacin a las partes comparticin o no de las partes entre los todos forma de distribucin (heterognea/homognea) de las partes

Ejemplos: j ptodo computador y parte placa madre? todo todo Pinky & Cerebro y parte Pinky? todo todo holding de empresas y parte empresa? todo todo torta y parte porcin de torta?

...Estructuras todo/parte EstructurasNo son agregaciones ni composiciones:inclusin topolgica relacin contenedor/contenido topolgica: espacial o temporal, ej. el cliente est en la tienda, la reunin es en la maana inclusin por clasificacin aplicacin de conceptos clasificacin: comunes a un conjunto, ej. Hijo de Ladrn es un libro atribucin: atribucin propiedades de una clase, ej. dimensiones y peso de un televisor anexin clases que se anexan a otras, ej. documento de anexin: l i jd d internacin en una encomienda internacional propiedad: propiedad relaciones de pertenencia ej Pedro tiene un pertenencia, ej. departamento

Estructuras de generalizacin/especializacinLas clases pueden categorizarse y organizarse en jerarquas de acuerdo a relaciones de generalizacin o especializacin. La categorizacin de clases se origina en la relacin semntica es un(a) o es un tipo de. ( ) p Ejemplos:camioneta es un vehculo proveedor internacional es un tipo de proveedor producto perecible es un tipo de producto cliente registrado es un tipo de cliente

...Estructuras de generalizacin/especializacinRepresentacin:Empleado

Permanente

Temporal

Define jerarqua denominada padre-hijo. En el ejemplo:es superclase de las clases Permanente y Temporal Permanente y Temporal son subclases de la clase EmpleadoEmpleado

...Estructuras de generalizacin/especializacinHerencia en la jerarqua de clases:implica que todos las propiedades (atributos y operaciones) y asociaciones de una clase estn implcitamente definidos en todas sus subclases propiedades y asociaciones comunes (ms generales) tienden a subir en la jerarqua hacia las superclases propiedades y relacionamientos particulares (ms especficos) tienden a bajar en la jerarqua hacia las subclases

Se S recomienda introducir jerarqua de clases en el d d d l l DCla, porque aumenta en forma importante su poder de expresin expresin.

...Estructuras de generalizacin/especializacinEjemplo:Vehculo BaseArea 1 Asignacin 1..* VehculoAreo altitudMxima VehculoAcutico VehculoTerrestre nmeroEjes [0..1] potenciaMotor capacidadPasajeros 1..* Conduccin * Piloto

VehculoSumergible profundidadMxima

...Estructuras de generalizacin/especializacinEmpleado nombre direccin Empleado direccin salarioPorHora salarioMensual totalUsoVehculo [0..1]

EmpleadoAsalariado nombre direccin salarioMensual totalUsoVehculo [0 1] [0..1]

EmpleadoPorHoras nombre direccin salarioPorHora EmpleadoAsalariado nombre EmpleadoPorHoras nombre

Empleado nombre direccin

Correctos o incorrectos? i t ?

Empleado nombre direccin salarioMensual [0..1] salarioPorHora [0..1]

EmpleadoAsalariado salarioMensual totalUsoVehculo [0..1]

EmpleadoPorHoras salarioPorHora EmpleadoAsalariado totalUsoVehculo [0..1] EmpleadoPorHoras

...Estructuras de generalizacin/especializacinHerencia simple simple: Herencia mltiple mltiple:

VehculoMotorizado

Aeronave

VehculoMotorizado

AvinAutomvil Camin

Automvil

Camin

...Estructuras de generalizacin/especializacinCategorizacin puede hacerse de acuerdo a los criterios no excluyentes:Subtipo: Subtipo una clase entendida como una categora es particionada en subcategoras, generalmente disjuntas. Ejemplo: figuras cerradas particionadas en polgonos, elipses, etc. t Restriccin: Restriccin se define una restriccin (o caso particular) que es slo aplicable a un subconjunto de instancias instancias. Ejemplos: cuadrado como un rectngulo restringido, crculo p p es un caso particular de elipse.

...Estructuras de generalizacin/especializacin...Categorizacin puede hacerse de acuerdo a los criterios no excluyentes:Extensin: Extensin cuando se agregan propiedades adicionales a un subconjunto de instancias. Ejemplo: perecible con atributos adicionales fecha de vencimiento y temperatura de almacenamiento a l d producto comn. l i t los de d t Vistas: Vistas cuando existen mltiples subcategoras no excluyentes entre s. Ejemplo: empleados que son s permanentes y temporales, pero adems pueden ser p g supervisores, administrativos e ingenieros.

...Estructuras de generalizacin/especializacinCategorizacin por criterios asociados a las operaciones:Variacin funcional subclase slo modifica una o ms funcional: operaciones heredadas de la clase. Variacin de tipo subclase altera la firma (nombre y tipo: parmetros) de una o ms operaciones heredadas de la )d h d d d l clase. Anulacin (no A l i ( recomendada): subclase deja sin efecto o d d ) b l d j i f t anula una o ms operaciones heredas de la clase, es decir, las redefine para que no hagan nada.

...Estructuras de generalizacin/especializacinNo son jerarquas de tipos de clases:Sin relacin semntica: en general, todo par de clases que semntica no soporte la relacin es un(a) o es un tipo de. Ejemplos: PERSONA no es un tipo de VEHCULO PERSONA es un VEHCULO, EMPLEADO. Extensin i E t i incorrecta al asumir una restriccin o caso incorrecta: l t i t i i particular en forma invertida. Ejemplo: RECTNGULO agrega el atributo otro lado a los de CUADRADO (que ya tiene el atributo lado).

...Estructuras de generalizacin/especializacin...No son jerarquas de tipos de clases: NoSimple taxonoma usar slo una propiedad con pocos taxonoma: valores fijos para discriminar, sin extensiones, restricciones o variaciones de ningn tipo. Ejemplo: distinguir HOMBRE y MUJER de PERSONA slo por sexo. Herencia por conveniencia: H i conveniencia aprovechar propiedades de i i h i d d d una clase para heredarlas en una subclase. Ejemplo: asignar BODEGA como subclase de PERSONA para heredar los atributos nombre y direccin.

...Estructuras de generalizacin/especializacin li i / i li iJerarqua se puede obtener por: J d bespecializacin: especializacin distincin de subclases a partir de una clase (sentido padre a hijos) generalizacin: generalizacin abstraccin de propiedades comunes en una superclase a partir de distintas clases (sentido hijos a padre)

Ejemplo:

especializ zacin

VehculoMotorizado

gene eralizacin

Automvil

Camin

Propiedades de las jerarquasRelaciones entre las instancias de las clases que participan en una jerarqua: Interseccin: Interseccin si la interseccin entre las instancias de las subclases de la clase es:vaca (disjunto disjunto) no vaca (sobrepuesto sobrepuesto)

Cobertura: Cobertura si de las instancias de la clase:todas pertenecen a alguna de las subclases (completo completo) algunas no estn en las subclases (incompleto incompleto)

Propiedades se anotan como restricciones en las jerarquas. j p j , p Ejemplo: { disjunto, completo } Puede indicarse un discriminador que muestra el criterio discriminador, utilizado para distinguir las subclases. p g

...Estructuras de generalizacin/especializacin

Persona

sexo { j {disjunto, completo} , p }

cargo {disjunto, incompleto} {sobrepuesto, {sobrepuesto incompleto}

Hombre

Mujer

Jefe

Secretaria

Tenista

Ajedrecista

{sobrepuesto, completo }

JefeTcnico

JefeAdministrativo

...Propiedades de las jerarquas PropiedadesSuponiendo que los diagramas de Venn g muestran diferentes formas de clasificar las instancias d una clase: i i de l qu propiedades de las jerarquas de representaran cada uno de estos diagramas?

... op edades ...Propiedades de las je a qu as as jerarquasCaso especial son los denominados simplemente subconjuntos subconjuntos:jerarqua de una clase con una nica subclase no se anotan las propiedades (por qu?)

Ejemplo:

Empleado nombre direccin

EmpleadoPorHoras salarioPorHora

Patrones EstructuralesExisten propuestas de modelos universales o patrones de modelos centrados en problemas de dominios especficos: personas y organizaciones, procedimientos y actividades, productos, facturacin, contratos, contabilidad, etc. Estos patrones:tienen una alta calidad, p q son modelos y p , porque ya probados aumentan la productividad, ya que pueden reutilizarse son flexibles, p q p , porque pueden adaptarse a un p p problema especfico

...Patrones Estructurales PatronesPropuesta de patrones de M. Fowler (analysis patterns) para dominios tales como contabilidad, observaciones y mediciones, inventario, planificacin, etc. Ejemplo de Patrn de Transaccin de 2 entradas:{ Balance = suma(Depsitos) ( p ) suma(Giros) }

1 Cantidad

1 Monto *

/ Balance * 1 Cuenta 1 Giro Depsito * *

Transaccin

* Ocurrencia

1 PuntoTiempo p

Criterios de Calidad de Modelos EstticosCriterios bsicos de calidad:Completitud: Completitud se busca un modelo completo, que representa todos los elementos relevantes del dominio. Correctitud: Correctitud se busca un modelo correcto, que no presenta errores sintcticos ni semnticos. Temporalidad ( i (opcional): se desea un modelo con ) temporalidad, para expresar adecuadamente el histrico de las modificaciones de atributos y asociaciones asociaciones.

Transformaciones para mejorar p j TemporalidadAtributos que requieren un histrico deben ser representados como una clase asociada. Ejemplo:Empleado

nombre Empleado nombre b sueldo 1..* Sueldo fecha valor

1 Asignacin

[1]

...Transformaciones para mejorar TemporalidadAsociaciones que requieren un histrico originan una clase intermedia entre las clases inicialmente asociadas. Ejemplos:Empleado nombre 1

Empleado nombre* Uso

EmpleadoUso

1 Uso 0..1 Equipo

fecha 1.. 1 * UsoEquipo 1

nmeroSerie

Equipo nmeroSerie

[1]

...Transformaciones para mejorar Temporalidad

Empleado nombre

Empleado nombre cargo

1 EmpleadoTrabajo 1..*

1..* Trabajo 1 Sucursal fecha cargo

Trabajo

1..* TrabajoSucursal 1 Sucursal

[1]

...Transformaciones para mejorar p j TemporalidadAlumno nombre

Alumno nombre

1 AlumnoMatrcula *

* Matrcula * Curso clave fecha

Matrcula

* MatrculaCurso 1 Curso clave

[1]

...Criterios de Calidad de Modelos Estticos CriteriosCriterios avanzados de calidad:Expresividad: Expresividad se busca un modelo expresivo que representa los conceptos sin requerir informacin adicional, es decir, que el modelo logre explicarse por si mismo. Simplicidad: Simplicidad se busca un modelo simple, prefirindose utilizar representaciones alternativas ms simples, logrando tili t i lt ti i l l d representar lo mismo con un menor nmero de elementos.

...Criterios de Calidad de Modelos Estticos CriteriosCriterios de expresividad y simplicidad pueden ser contrapuestos. En general se puede afirmar que: g p qImportancia del criterio de calidad Simplicidad

Expresividad

Complejidad del sistema modelado i t d l d

Transformaciones para mejorar p j ExpresividadGeneralizar clases. Ejemplo:Alumno * Matrcula Curso * *Alumno * Matrcula Curso * * Dictacin Profesor 1..*

Profesor 1..* DictacinPersona { disjunto, completo }

[1]

...Transformaciones para mejorar p j ExpresividadEspecializar atributos. E i li ib Ejemplo:Proveedor cdigo nombre direccin

Proveedor cdigo rut [0..1] nombre direccin

ProveedorNacional rut

[1]

...Transformaciones para mejorar p j ExpresividadEspecializar asociaciones opcionales. Ejemplo:LibroLibro *

Prstamo 0..1 Usuario

LibroEn Prstamo * Prstamo 1 Usuario

Libro

Usuario

LibroEn Prstamo

1..* Prstamo 1 * P t

1

UsuarioCon Prstamo

[2]

...Transformaciones para mejorar p j ExpresividadEspecializar asociaciones cuando posible. Ejemplo:Juez Juez 3..* Arbitraje A bit j * PartidoTenis 1 ArbitrajePrincipal ArbitrajeLnea PartidoTenis JuezPrincipal JuezLnea 2..* { sobrepuesto, completo }

*

*

[1]

...Transformaciones para mejorar p j ExpresividadCaso particular del anterior es cuando se trata de una auto-asociacin. Ejemplo:Cliente

Cliente *

1..*

representante Representacin

{ disjunto, completo }

representado

Persona Natural 1..*

Persona Jurdica *

Representacin

[1]

...Transformaciones para mejorar p j SimplicidadEliminar clases colgantes en asociaciones. Clase colgante tiene 1 2 atributos y participa en una nica asociacin. Ejemplo: j pPersona rut nombre 0..1Nacimiento N i i t 1 Ciudad nombre b

Persona rut nombre ciudadNascimiento

[1]

...Transformaciones para mejorar SimplicidadEliminar subclases colgantes (simple taxonoma) en jerarquas de clase:Subclase colgante no tiene propiedades ni asociaciones especializadas, adems no posee ms subclases. i li d d b l Reemplazar las subclases colgantes por una nica subclases con un atributo tipo tipo.

...Transformaciones para mejorar p j SimplicidadEjemplo:Equipo cdigoInventario marca modelo { disjunto, completo }

Bomba

IntercambiadorCalor I t bi d C l

Estanque capacidad

Equipo cdigoInventario marca modelo { disjunto, completo }

OtroEquipo tipo ti

Estanque capacidad id d

[1]