Documente Academic
Documente Profesional
Documente Cultură
Componentes de un DCla p
El DCla tiene los siguientes componentes principales:
clases asociaciones
Ejemplo simplificado:
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
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:
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 , , *:*
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]
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
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
Ejemplo:
Empleo periodo i d
Persona
* empleado
0..1 empleador
Empresa
Producto
1..* 1..*
* / 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
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
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 }
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:
CuentaAhorro
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
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
Empresa
Repuesto
* parte Avin
* alaDerecha 1 1 Ala
1..*
departamento
fuselaje Fuselaje
cola
alaIzquierda
Departamento
Cola
3..*
Punto P t
1 Crculo
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 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
...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]
Correctos o incorrectos? i t ?
...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 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
Hombre
Mujer
Jefe
Secretaria
Tenista
Ajedrecista
{sobrepuesto, completo }
JefeTcnico
JefeAdministrativo
Ejemplo:
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
1 Cantidad
1 Monto *
Transaccin
* Ocurrencia
1 PuntoTiempo p
1 Asignacin
[1]
Empleado nombre
* Uso
EmpleadoUso
nmeroSerie
Equipo nmeroSerie
[1]
Empleado nombre
1 EmpleadoTrabajo 1..*
Trabajo
[1]
Alumno nombre
1 AlumnoMatrcula *
Matrcula
[1]
Expresividad
[1]
ProveedorNacional rut
[1]
Libro
Usuario
LibroEn Prstamo
1..* Prstamo 1 * P t
UsuarioCon Prstamo
[2]
[1]
Cliente *
1..*
representante Representacin
{ disjunto, completo }
representado
Persona Jurdica *
Representacin
[1]
[1]
Bomba
IntercambiadorCalor I t bi d C l
Estanque capacidad
OtroEquipo tipo ti
Estanque capacidad id d
[1]