Sunteți pe pagina 1din 69

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 DCla


Modelo 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 p
El 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 Objetos
Caractersticas d una Clase: C i de Cl
representa 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 Clases


Representacin: rectngulo extendido (con 2 3 secciones) o compacto con nombre significativo en singular Ejemplos:
Persona Persona Persona

operaciones
JuanPrez: Persona JuanPrez: Persona

atributos

Asociaciones soc ac o es
Definicin: D fi i i
Representa 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 Asociaciones
Usando 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

Multiplicidad
Representa 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 Mutiplicidad
Multiplicidad se aplica adems a atributos y clases (se ver ms adelante). Otros ejemplos de multiplicidad: j p p
0..* (tambin se abrevia *) 1..1 (tambin se abrevia 1) ( ) 3..5 2..* 2, 4 0..1, 3..4, 6..* , ,

...Multiplicidad Multiplicidad
Dependiendo 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 asociaciones


Las 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 es


Debe 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 p
La 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 Asociaciones


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

Producto

Ciudad

Distribuidor

Atributos
Propiedades 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

...Atributos
Tambin T bi se usa multiplicidad para i di l i li id d indicar cuntos valores de un atributo puede instancia: tener cada instancia
por 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 valores
CuentaAhorro 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 Atributos


Otras notaciones para los atributos son:
Visibilidad: Visibilidad Se antepone indicando si es
pblico (+), 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 atributos
La 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 autodefinido
Clase.atributo = definicin del atributo; valores: valor1, valor2, ...

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

...Diccionario de atributos Diccionario


Ejemplos:
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 clases


Asociaciones 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 Asociaciones


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

Producto
1..* 1..*

Bodega nombre capacidad [0..1] direccin

cdigo nombre unidad

Asociaciones derivadas soc ac o es de adas


Al igual que los atributos, son asociaciones que se obtienen por medio de otros elementos del modelo. Tambin se anotan con el prefijo /. Ejemplo: j p
toma Persona 1 Empleo E l 0..1 periodo * ofrece 1 Empresa

* / empleada por

0..1

Ms sobre asociaciones
Otras 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 dad


Multiplicidad 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

Restricciones
Se 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 o
con MedioTrabajo, pero no ambos } j p TrabajoCompleto
0..1 1..* 1

Empleado

j 1 MedioTrabajo

0..1

ContratoMediaJornada

ContratoJornadaCompleta p Asistencia
0..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

Operaciones
Es posible representar operaciones en las clases. Dado que los atributos deben poder manipularse, se asumen 2 operaciones p cada atributo: p por
consulta (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.

...Operaciones
Ejemplos:

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/parte
Objetos complejos (objetos todo) pueden dividirse en objetos ms simples (objetos parte). b l ( b ) Ejemplos:
TODO
automvil pan V regin bosque matrimonio matemtica repuesto

PARTE
neumtico 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 Estructuras


Agregacin: Agregacin
1.

Composicin: Composicin
1.

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 Estructuras


Agregacin Composicin

Empresa

Repuesto

* parte Avin

* alaDerecha 1 1 Ala

1..*

departamento

fuselaje Fuselaje

cola

alaIzquierda

Departamento

Cola

...Estructuras todo/parte Estructuras


Otros ejemplos:
MesAgenda { ordenado } 28..31 Da

3..*

Punto P t

1 Crculo

Polgono radio * 1 color relleno Estilo 1 *

...Estructuras todo/parte Estructuras


Combinar 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 p
todo 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 Estructuras


No 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/especializacin
Las 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/especializacin
Representacin:
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 Empleado
Empleado

...Estructuras de generalizacin/especializacin
Herencia 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/especializacin
Ejemplo:
Vehculo BaseArea 1 Asignacin 1..* VehculoAreo altitudMxima VehculoAcutico VehculoTerrestre nmeroEjes [0..1] potenciaMotor capacidadPasajeros 1..* Conduccin * Piloto

VehculoSumergible profundidadMxima

...Estructuras de generalizacin/especializacin
Empleado 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/especializacin
Herencia simple simple: Herencia mltiple mltiple:

VehculoMotorizado

Aeronave

VehculoMotorizado

Avin
Automvil Camin

Automvil

Camin

...Estructuras de generalizacin/especializacin
Categorizacin 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/especializacin
Categorizacin 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/especializacin
No 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: No
Simple 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 i
Jerarqua se puede obtener por: J d b
especializacin: 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 jerarquas


Relaciones 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 Propiedades


Suponiendo 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 jerarquas


Caso 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 Estructurales
Existen 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 Patrones


Propuesta 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 Estticos


Criterios 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 Temporalidad


Atributos 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 Temporalidad


Asociaciones 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 Temporalidad


Alumno nombre

Alumno nombre

1 AlumnoMatrcula *

* Matrcula * Curso clave fecha

Matrcula

* MatrculaCurso 1 Curso clave

[1]

...Criterios de Calidad de Modelos Estticos Criterios


Criterios 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 Criterios


Criterios de expresividad y simplicidad pueden ser contrapuestos. En general se puede afirmar que: g p q
Importancia del criterio de calidad Simplicidad

Expresividad

Complejidad del sistema modelado i t d l d

Transformaciones para mejorar p j Expresividad


Generalizar clases. Ejemplo:
Alumno * Matrcula Curso * *
Alumno * Matrcula Curso * * Dictacin Profesor 1..*

Profesor 1..* Dictacin


Persona { disjunto, completo }

[1]

...Transformaciones para mejorar p j Expresividad


Especializar 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 Expresividad


Especializar asociaciones opcionales. Ejemplo:
Libro
Libro *

Prstamo 0..1 Usuario

LibroEn Prstamo * Prstamo 1 Usuario

Libro

Usuario

LibroEn Prstamo

1..* Prstamo 1 * P t

UsuarioCon Prstamo

[2]

...Transformaciones para mejorar p j Expresividad


Especializar 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 Expresividad


Caso 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 Simplicidad


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

Persona rut nombre ciudadNascimiento

[1]

...Transformaciones para mejorar Simplicidad


Eliminar 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 Simplicidad


Ejemplo:
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]

S-ar putea să vă placă și