Está en la página 1de 47

Unidad II

Terminología Básica
(Parte 2)
Relaciones entre clases
- Dependencia
- Asociaciones
Terminología Básica
Contenido
•Relaciones entre clases
•Dependencia (Persona - Autobus)
•Asociaciones (Persona - Auto)
•Agregación (Auto - Llanta)
•Composición (Auto - Chasis)
Terminología Básica
2. Relaciones entre clases
•Una relación es una conexión semántica entre clases
(relación intencional).
•Permite que una clase conozca los atributos, operaciones y
relaciones de otras clases.
•Las clases no actúan aisladas entre sí, al contrario, están
relacionadas unas con otras.
Terminología Básica
•Una clase puede relacionarse por:
•Dependencia: usar métodos y/o atributos de otra clase (por
ejemplo, Calculadora usa métodos y atributos de Math)
•Asociación: contener objetos de otra clase (por ejemplo,
Calculadora recibe Numero)
•Herencia: ser un tipo de otra clase (por ejemplo, Entero es un
Numero)

•La fortaleza de una relación de clases se basa en el modo


de dependencia de las clases implicadas.
Terminología Básica
•El modo de dependencia puede ser:
–Acoplamiento fuerte: si las clases son fuertemente dependientes
una de otra.
–Acoplamiento débil: si las clases son débilmente dependientes
una de otra.
•Las relaciones entre clases se corresponden con las
relaciones entre objetos físicos del mundo real, o bien con
objetos en un mundo virtual.

5
Terminología Básica: Dependencia

Dependencia:
•Es la relación más débil que puede existir entre dos clases.
•Una dependencia significa que una clase utiliza o tiene
conocimiento de otra clase: “lo que una clase necesita conocer de
otra clase para utilizar objetos de esa clase”.
•Normalmente es una relación transitoria y significa que una clase
dependiente interactúa de manera breve con la clase destino (La
relación es de un tiempo definido)
•Una dependencia es una
relación de uso que declara
que un elemento “usa” la
información y los servicios
de otro elemento, pero no
necesariamente a la inversa.
Terminología Básica : Dependencia

•La dependencia se lee normalmente como una relación “… usa un


…”.

•Por ejemplo, si se tiene una clase Ventana que envía un aviso a una
clase llamada EventoCerrarVentana cuando está próxima a cerrarse,
entonces se dice que Ventana utiliza EventoCerrarVentana.

•La flecha punteada de dependencia significa “se utiliza simplemente


cuando se necesita y se olvida luego de ella”.

•Ejemplos:

7
Terminología Básica : Dependencia

•Otro ejemplo de dependencia se muestra entre la clase Interfaz y la


clase EntradaBlog, ya que ambas clases trabajan juntas, pues Interfaz
necesitará leer el contenido de las entradas del blog para visualizar
estas entradas al usuario.

•Una dependencia implica que los objetos de las clases PUEDEN


trabajar juntos; por consiguiente, se considera que es la relación
directa más débil que puede existir entre dos clases.
8
Terminología Básica: Asociación

Asociación:
•Una asociación es más fuerte que la dependencia y normalmente
indica que una clase recuerda o retiene una relación con otra clase
durante un período determinado de tiempo.
•Es decir, las clases se conectan para representar un concepto de la
realidad.

•La asociación realmente significa que una clase contiene una


referencia a un objeto u objetos de la otra clase en la forma de un
atributo (por lo tanto, es una relación estructural).
•Se representa utilizando una simple línea que conecta las dos clases.
9
Terminología Básica: Asociación

•Las asociaciones se deben utilizar cuando se desee representar


relaciones estructurales.
•La descripción de una asociación incluye: línea continua, nombre de
la asociación, dirección del nombre mediante una flecha que apunta
en la dirección de una clase a la otra.
•La navegabilidad se aplica a una relación de asociación, y describe
qué clase contiene el atributo que admite la relación.

En este ejemplo,
Jugador tiene el
atributo de tipo
Equipo, y
Estudiante tiene
el atributo de
tipo Universidad
10
Terminología Básica: Asociación

•Cuando una clase se asocia con otra clase, cada una juega un rol
dentro de la asociación. El rol se representa cerca de la línea próxima
a la clase.

•En la asociación entre un Jugador y un Equipo, si ésta es profesional,


el equipo es el Empleador y el jugador es el Empleado.
•Una asociación puede ser bidireccional.
•Un Equipo emplea a jugadores.

11
Terminología Básica: Asociación

•También pueden existir asociaciones entre varias clases, de modo


que varias clases se pueden conectar a una clase.

12
Terminología Básica: Asociación

•Una asociación es una conexión conceptual o semántica entre clases.


•Cuando una asociación conecta dos clases, cada clase envía
mensajes a la otra en un diagrama de secuencia.

•Una asociación es una abstracción de los enlaces que existen entre


instancias de objetos.

•Los siguientes diagramas muestran objetos enlazados a otros objetos


y sus clases correspondientes asociadas.

•Las asociaciones se representan de igual modo que los enlaces.

•La diferencia entre un enlace y una asociación se determina de


acuerdo al contexto del diagrama. 13
Terminología Básica: Asociación

•Clases asociadas

•Objetos de las clases asociadas (unidas por enlaces)


–Enlace: instancia de una asociación

14
Terminología Básica: Asociación

Regla para asociaciones:


•El significado más típico de asociación es una conexión entre clases,
es una relación semántica entre clases.

•Se dibuja con una línea continua entre las dos clases.

•La asociación tienen un nombre (cerca de la línea que representa la


asociación), normalmente un verbo, aunque está permitido los
nombres o frases nominales.

•Cuando se modela un diagrama de clases, se debe reflejar el sistema


que se está construyendo y por ello los nombres de la asociación
deben deducirse del dominio del problema, al igual que sucede con
los nombres de las clases. 15
Terminología Básica: Asociación

•Es posible utilizar asociaciones navegables añadiendo una flecha al


final de la asociación.

•La flecha indica que la asociación sólo se puede utilizar en la


dirección de la flecha.

16
Terminología Básica: Asociación

•Las asociaciones pueden tener dos nombres, una en cada dirección.

•Las asociaciones pueden ser bidireccionales o unidireccionales.


•En UML las asociaciones bidireccionales se dibujan con flechas en
ambos sentidos.
•En las asociaciones unidireccionales se debe indicar la dirección de
navegación.

17
Terminología Básica: Asociación

En las asociaciones se pueden representar los roles o papeles que


juega cada clase dentro de las mismas.

•Un nombre de rol puede ser especificado en cualquier lado de la


asociación.

•Los nombres de los roles son especialmente interesantes cuando


varias asociaciones conectan dos clases idénticas.

18
Terminología Básica: Multiplicidad

Multiplicidad:
•Entre asociaciones existe la propiedad de la multiplicidad: cierto
número de objetos de una clase se relaciona con un único objeto de
una clase asociada (un equipo de futbol tiene once jugadores)

19
Terminología Básica: Asociación

•La multiplicidad representa la cantidad de objetos de una clase que


se relacionan con un objeto de la clase asociada.

•La información de multiplicidad aparece en el diagrama de clases a


continuación del rol correspondiente.

•Cuando se indica una multiplicidad en un extremo de una asociación


se está especificando cuántos objetos de la clase de ese extremo
puede existir por cada objeto de la clase en el otro extremo.

20
Terminología Básica: Multiplicidad

•UML utiliza un asterisco (*) para representar más y representa


muchos.
•Los valores más típicos de multiplicidad son:
Símbolo Significado
1 Uno y sólo uno
0 .. 1 Cero o uno
m .. n De m a n (enteros naturales)
* De cero a muchos (cualquier entero positivo)
0 .. * De cero a muchos (cualquier entero positivo)
1 .. * De uno a muchos (cualquier entero positivo)
2 Dos
5 .. 11 De cinco a once
5, 10 Cinco o diez 21
Terminología Básica: Multiplicidad

•Si no se especifica multiplicidad, es uno (1) por omisión.

•Ejemplo 1: Establezca la relación de asociación entre las clases


Empresa y Persona, sabiendo que cada objeto Empresa tiene como
empleados 1 o más objetos Persona; pero cada objeto Persona tiene
como patrón a un objeto Empresa.

22
Terminología Básica: Restricciones

Restricciones en asociaciones:
•En algunas ocasiones, una asociación entre dos clases ha de seguir
una regla.

•En este caso, la regla se indica poniendo una restricción cerca de la


línea de asociación que se representa por el nombre encerrado entre
llaves.

•En algunas ocasiones las asociaciones pueden establecer una


restricción entre las clases.

•Las restricciones típicas pueden ser {ordenado} /{or} /{xor}

23
Terminología Básica : Restricciones

•Ejemplo 2: Un cajero de un banco (humano o electrónico) atiende a


clientes. La atención a los clientes se realiza en el orden en que se
colocan ante la ventanilla o mostrador, o bien en función del
momento de la petición electrónica de acceso al cajero.

24
Terminología Básica: Asociaciones

Restricciones en Asociaciones:
• Una asociación entre clases a veces tiene que seguir una regla
determinada, y esta se indica poniendo una restricción cerca de la
línea de la asociación.
• La restricción típica es ordered (ordenado) se produce cuando una
clase atiende a otra en función de un determinado orden o
secuencia.
• Otras restricciones típicas pueden ser {or} /{xor}
• Ejemplo 1: Un vendedor de entradas de cine (taquillero) atiende a
los espectadores a medida que se sitúan delante de la ventanilla de
entradas.

25
Terminología Básica: Asociaciones

• Ejemplo 2: Un cajero de un banco (humano o electrónico) atiende


a clientes.
• La atención a los clientes se realiza en el orden en que se colocan
ante la ventanilla o mostrador, o bien en función del momento de
la petición electrónica de acceso al cajero.

26
Terminología Básica: Asociaciones Reflexivas
Asociaciones reflexivas:
• A veces, una clase tiene una asociación consigo misma.
• En este caso la asociación se denomina asociación reflexiva.
• Esta situación se puede presentar cuando una clase tiene objetos
de la misma clase pero que juegan diferentes roles.
• Por ejemplo, un ocupante de un avión de pasajeros puede ser: un
pasajero, un miembro de la tripulación o un piloto.

• Este tipo de asociación se representa gráficamente dibujando la


línea de asociación con origen y final en la propia clase y con la
indicación de los roles y multiplicidades correspondientes.
27
Terminología Básica: Asociaciones Reflexivas
Ejercicios: Cree los diagramas de clases de los siguientes enunciados.

1. Los doctores que laboran en un hospital, pueden dar consulta a


pacientes y/o a otros doctores del mismo hospital.

2. Un país está formado por al menos dos ciudades y; además, los


países están limitados en su frontera por varios países o ninguno.

3. Un libro tiene un nombre, un número identificador (ISBN) y uno o


varios autores. Un autor tiene nombre, número de pasaporte, y
correo electrónico. Además, un libro puede tener como fuente
bibliográfica otros libros o ninguno.

28
Terminología Básica: Asociaciones
•Los nombres de las asociaciones deben ser una frase verbal.

•Clase-FraseVerbal-Clase
Persona-Trabaja-para-Compañía
Tienda-Almacena-Articulo
Venta-Pagada-mediante-Pago

•Formatos:
Pagada-mediante
Pagada_mediante
PagadaMediante

29
Terminología Básica: Asociaciones

•El sentido de la asociación depende de la dirección de la flecha.

•Por defecto leer (sin usar flecha de dirección):


De izquierda a derecha, y
De arriba hacia abajo

•De lo contrario colocar flecha de dirección

•Ejercicio: Leer los siguientes diagramas de clases

30
Terminología Básica: Asociaciones

31
Terminología Básica: Asociaciones

•La multiplicidad depende del contexto.

32
Terminología Básica: Clases de Asociación

Clases de asociación:
•Una clase conectada a una asociación se denomina clase asociación.
•Una asociación puede tener atributos y operaciones tal como una
clase, éste es el caso de la clase asociación.
•Ejemplo:

33
Terminología Básica: Clases de Asociación

34
Terminología Básica: Clases de Asociación
Criterios de Diseño:
• Cuando se traducen a código las relaciones con clases asociación se
obtienen, normalmente, tres clases: una por cada extremo de la
asociación y una por la propia clase asociación.

• Ejercicios: Diseñar el diagrama de clases de los siguientes


enunciados.
1. En un hospital, los pacientes consultan a los médicos. La consulta
debe programarse y se registra la fecha, la hora y el número de
clínica en que se realizará.
2. Los vendedores de un negocio venden uno o más productos en
cada venta que realizan. De la venta se registra el nombre del
cliente, su teléfono y su dirección; además, la fecha de la venta, el
total y el número de factura.

35
Terminología Básica: Clases de Asociación
3. Un aeropuerto es el punto de llegada o el punto de salida de cada
vuelo. Para cada llegada o salida se registra la fecha y la hora de la
llegada o la salida, así como la puerta de entrada o salida de los
pasajeros. De cada vuelo se conoce su número, que puede tener
al menos una llegada o una salida de ese aeropuerto. Cada línea
aérea tiene al menos un vuelo. El aeropuerto trabaja con al menos
una línea aérea.

36
Terminología Básica: Agregación
Agregación:
•Una agregación es un tipo especial de asociación que expresa un
acoplamiento más fuerte entre clases.
•La agregación permite la representación de relaciones tales como
“maestro y esclavo”, “todo y parte de” o “compuesto y componentes”.

•La agregación implica normalmente propiedad o pertenencia.

37
Terminología Básica: Agregación
• La agregación se lee normalmente como relación “… posee un …” o
relación “todo-parte”, en la cual una clase (“El todo”) representa un
gran elemento que consta de elementos más pequeños (“las
partes”).

38
Terminología Básica: Agregación
• En la agregación, una clase realmente posee, pero puede
compartir objetos de otra clase.
• Ejemplo 3: Agregación de un automóvil que consta de cuatro
ruedas, un motor y una caja de cambios.

39
Terminología Básica: Agregación
• Ejemplo 4: Un árbol binario que consta de cero, uno o dos nuevos
árboles.

• Una agregación se representa como una jerarquía con la clase


“todo” (por ejemplo, un sistema de computadora) en la parte
superior y sus componentes en las partes inferiores (por ejemplo
CPU, discos, webcam, …).

40
Terminología Básica: Agregación

• Ejemplo 5: Una computadora es un conjunto de elementos que


consta de una unidad central, monitor, unidad de CD-ROM,
altavoces, escáner, etc.

41
Terminología Básica: Composición

Composición:
• Una composición es un tipo especial de agregación que impone
algunas restricciones:
– si el objeto completo se copia o se borra (elimina), sus partes
también se copia o se suprimen con él.
• La composición es una relación fuerte entre clases y se utiliza para
representar una relación todo-parte.
• Cada componente dentro de una composición puede pertenecer
tan sólo a un todo.
• Ejemplo 1: Un tablero de ajedrez se compone de 64 casillas.

42
Terminología Básica: Composición
• Una relación de composición se lee normalmente como “… es
parte de …”, que significa que se necesita leer la composición de la
parte al todo.
• Ejemplo 2: si una ventana de una página web tiene una barra de
títulos, se puede representar que la clase BarraTitulo es parte de
una clase denominada Ventana. Pero, las barras horizontal y
vertical podrían o no ser parte de la ventana.

43
Terminología Básica: Composición

• Ejemplo 3: Una mesa para jugar al póker es una composición que


consta de una superficie de la mesa y cuatro o más patas.

44
Terminología Básica: Composición

• Ejemplo 4: Un auto tienen un chasis que no puede ser parte de


otro auto. La eliminación completa del auto supone la eliminación
de su chasis, no así de las partes que están asociadas por medio de
la agregación.

45
Terminología Básica: Asociaciones, Agregación y Composición
•Ejercicios: Elabore los diagramas de clase de los siguientes
enunciados. Identifique asociaciones, agregaciones y composiciones

1. El catálogo de productos está formado por las descripciones de los


productos, la descripción de un producto puede aparecer en el
catálogo o no. Cada producto es descrito por una descripción del
producto.

2. Cada compra es surtida por un proveedor. El proveedor se elige


del catálogo de proveedores. La compra se compone de al menos
una línea de compra. En cada línea de compra se incluye la
cantidad, la descripción del producto, el precio unitario y el
subtotal de un mismo producto.

46
Terminología Básica: Asociaciones, Agregación y Composición

3. Una empresa con varios empleados, se dedica a realizar


proyectos, estos proyectos están formados por una o más
actividades y a su vez cada actividad tiene 1 ó más tareas
específicas. Cada tarea es asignada a uno o dos empleados y los
empleados pueden o no tener asignadas tareas.

47

También podría gustarte