Vous êtes sur la page 1sur 27

RELACIONES ENTRE CLASES

DISEÑO DE SISTEMAS

José Andrés Cartuche Valverde


7mo “A”
Tabla de Contenidos
¿QUÉ SON LAS RELACIONES
ENTRE CLASES?
DIAGRAMA DE CLASES UML
Relaciones entre clases
• Una relación es un término general que abarca los tipos específicos
de conexiones lógicas que se pueden encontrar en los diagramas de
clases y objetos.
• Las relaciones que existen en un diagrama de clases permiten
definir las dependencias entre clases, es decir si una clase es
necesaria para la implementación de otra.
• Nos indican como se comunican los objetos de esas clases entre sí.
Relaciones entre clases
TIPOS DE RELACIONES
DIAGRAMA DE CLASES UML
Tipos de relaciones entre clases
Dentro de las relaciones entre clases que existen se pueden definir las
siguientes:

Dependencia
Agregación
Asociación
Relaciones Composición
Generalización

Realización
Relación de dependencia
• También conocida como relación de
uso
• Relación débil de uso que declara
que un cambio en la especificación
de un elemento puede afectar a otro
que lo utiliza
• Gráficamente, la dependencia se
muestra como una línea discontinua
con una punta de flecha que apunta
de la clase dependiente a la clase
independiente
Ejemplo
Resolución de una ecuación de segundo grado
Ejemplo
Tomando como lenguaje de programación a Java, el diagrama anterior
podría corresponder a:
Relación de asociación
• Es una conexión entre clases, que implica la existencia de una
relación estructural entre objetos de esas clases.
• Representan las relaciones más generales entre clases, es decir, las
relaciones con menor contenido semántico.
• Pueden ser binarias (conectan dos clases) o n-arias (conectan n
clases)
• Gráficamente, la asociación binaria en UML se representa mediante
una línea que conecta las dos clases.
• En general, las asociaciones son bidireccionales, esto es, no tienen
un sentido asociado.
Multiplicidad de las asociaciones
• La multiplicidad de una asociación determina cuantos objetos de
cada tipo intervienen en la relación.
• El número de instancias de una clase que se relacionan con una
instancia de otra clase.
• Cada asociación tiene dos multiplicidades.
• Para especificar la multiplicidad de una asociación hay que indicar la
multiplicidad mínima y la multiplicidad máxima (mínima .. máxima)
Multiplicidad de las asociaciones

• Cuando la multiplicidad mínima es 0, la relación es opcional.


• Una multiplicidad mínima mayor o igual a 1 establece una relación
obligatoria
Ejemplo
Si tenemos la clase perro y persona las siguientes relaciones podrían darse:

La cual muestra que una persona es propietaria de uno o varios perros pero
estos son solo de esta persona.
Agregación
• La agregación es una asociación con
unas connotaciones semánticas más
definidas: Es la relación “parte-de”,
que presenta a una entidad como
un agregado de partes (en
orientación a objeto, un objeto
como agregado de otros objetos).
• Gráficamente, se muestra con un
rombo sin rellenar en el extremo de
la línea donde apunta a la clase
agregadora.
Ejemplo
Una empresa tiene clientes.
Ejemplo
En código fuente Java, podría equivaler a:
Composición
• La composición implica que los
componentes de un objeto sólo
pueden pertenecer a un solo objeto
agregado, de forma que cuando el
objeto agregado es destruido todas
sus partes son destruidas también.
• Gráficamente, se muestra con un
rombo rellenado en el extremo de
la línea donde apunta a la clase
contenedora.
Ejemplo
A una empresa la componen empleados.
Ejemplo
En código fuente Java, podría equivaler a:
Relación de generalización
• También conocida como relación de
herencia
• Es una conexión entre clases, que implica
la existencia de una relación estructural
entre objetos de esas clases.
• Concretamente, se refiere a la relación
entre una superclase y sus subclases.
• Gráficamente, la herencia en UML se
representa mediante una flecha cuya
punta es un triángulo vacío. La flecha que
representa a la herencia va orientada
desde la subclase a la superclase.
Ejemplo
Ejemplo
En código fuente Java, equivale a:
Relación de realización
• Se refiere la implementación de un interfaz por
parte de una clase.
• Este proceso tiene dos partes:
• La clase debe declarar la implementación del interfaz.
• La clase debe de definir el cuerpo de los métodos
impuestos por el interfaz.
• Gráficamente, a la interfaz en UML se
representa como una clase sin atributos, con la
etiqueta <<interface>> arriba del nombre de la
clase.
• La línea de conexión es la misma que la relación
de herencia con la particularidad de que es
discontinua.
Ejemplo
La clase Zapato implementa el interfaz ICascador que permite al
zapato utilizarlo como cascanueces.
Ejemplo
En código fuente Java, equivale a: