0% encontró este documento útil (0 votos)
727 vistas22 páginas

Tipos de Asociación en UML

El documento describe los cuatro tipos de relaciones entre elementos de un modelo UML: asociación, dependencia, generalización y realización. Detalla las asociaciones, incluyendo sus características como nombre, roles, multiplicidad y agregación/composición. También cubre asociaciones n-arias, clases asociación, diagramas de contexto y dependencias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
727 vistas22 páginas

Tipos de Asociación en UML

El documento describe los cuatro tipos de relaciones entre elementos de un modelo UML: asociación, dependencia, generalización y realización. Detalla las asociaciones, incluyendo sus características como nombre, roles, multiplicidad y agregación/composición. También cubre asociaciones n-arias, clases asociación, diagramas de contexto y dependencias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

2.1.

3 Tipos de relaciones

Existen cuatro tipos de relaciones entre los elementos de un modelo UML:

1. Asociación.
2. Dependencia.
3. Generalización.
4. Realización.

En las relaciones se habla de una clase destino y de una clase origen. La clase origen es desde la que se realiza la acción de relacionar. Es decir, desde la que parte la flecha.
La clase destino es la que recibe la flecha. Las relaciones se pueden modificar con estereotipos o con restricciones.

ASOCIACIONES.

Es una relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos. La asociación se representa con una línea continua, posiblemente
dirigida, que a veces incluye una etiqueta. A menudo se incluyen otros elementos para indicar la multiplicidad y roles de los objetos involucrados, como podemos ver en la
siguiente figura:

Una asociación es una relación estructural que especifica que los objetos de un elemento están conectados con los objetos de otro. Dada una asociación entre dos clases,
se puede navegar desde un objeto de una de ellas hasta uno de los objetos de la otra, y viceversa. Es posible que la asociación se dé de manera recursiva en un objeto, esto
significa que dado un objeto de la clase se puede conectar con otros objetos de la misma clase. También es posible, aunque menos frecuente, que se conecten más de dos
clases, estas se suelen llamar asociaciones n-arias. Las relaciones de asociaciones se utilizan cuando se quieren representar relaciones estructurales.
Por ejemplo, una clase Biblioteca podría tener una asociación uno a muchos con una clase Libro, indicando que cada instancia de Libro pertenece a una instancia de Biblioteca.
Además, dado un Libro, se puede encontrar su Biblioteca, y dada una Biblioteca se puede navegar hacia todos sus Libros. Gráficamente, una asociación se representa con una
línea continua entre las mismas o diferentes clases. Las asociaciones se utilizan para mostrar relaciones estructurales.

Hay cuatro adornos básicos que se aplican a las asociaciones: nombre, rol en cada extremo de la asociación, multiplicidad en cada extremo y agregación.

Las asociaciones se representan gráficamente por una línea continua que une ambas clases.
NOMBRE Y DIRECCIÓN EN ASOCIACIONES.

Se utiliza para describir la naturaleza de la relación. Para que no exista ambigüedad en su significado se le puede dar una dirección al nombre por medio de una flecha (un
pequeño triángulo negro sólido) que apunte en la dirección que se pretende que el nombre sea leído.

En el ejemplo de la Figura se puede leer la asociación como “Director manda sobre Empleado”.

MULTIPLICIDAD.

La multiplicidad o diversificación es uno de los aspectos importantes de las asociaciones entre objetos. Indica la cantidad de objetos de una clase que se relacionan con otro
objeto en particular de la clase asociada. Por ejemplo, en un curso escolar, el curso se imparte por un solo instructor, en consecuencia, el instructor y el curso están en una
asociación de uno a uno. Sin embargo, en un seminario hay diversos instructores que impartirán el curso a lo largo del semestre, por lo tanto, el curso y el instructor tienen una
asociación de uno a muchos.

En muchas situaciones del modelado es conveniente señalar cuantos objetos se pueden conectar a través de una instancia de la asociación. Este “cuantos” se denomina
multiplicidad del rol en la asociación y se expresa como un rango de valores o un valor explicito. Cuando se indica multiplicidad en un extremo de una asociación se está
indicando que, para cada objeto de la clase en el extremo opuesto debe haber tantos objetos en este extremo. Se puede indicar una multiplicidad de exactamente uno (1), cero
o uno (0..1), muchos (0..*), uno o más (1..*) e incluso un número exacto (por ejemplo, 5).
Otras notaciones:

Una línea sin símbolos de multiplicidad denota asociación uno a uno:


ROLES

Para indicar el papel que juega una clase en una asociación se puede especificar un nombre de rol. Se representa en el extremo de la asociación junto a la clase que desempeña
dicho rol.

Como se observa en los ejemplos, los roles se colocan en la parte inferior de la línea que conectan dos clases (asociación en este caso. Debe aclararse que no precisamente
en todos los casos se podrán identificar roles, por ejemplo cuando se cuente con una clase cliente y otra pedido esta asociación no cuenta con roles.

Un rol describe las propiedades estructurales y de comportamiento de un objeto en un objeto. Un objeto juega uno o más roles a lo largo de su existencia y un mismo rol puede
ser jugado por diferentes objetos.
Una clase implementará uno o más roles y un rol podrá ser implementado por una o más clases.

ASOCIACIONES REFLEXIVAS (Involutivas).

En ocasiones una clase es una asociación consigo misma, cuando una clase puede desempeñar diversos roles o papeles. Una persona por ejemplo puede ser Conductor o
pasajero, para representar estas asociaciones se realiza de la siguiente manera.

EJEMPLO DE ROL APLICANDO ASOCIACION REFLEXIVA


CLASES ASOCIACIÓN

Una clase asociación es aquella que modela los atributos u operaciones implícitas en una asociación esta se realiza colocando el nombre de la asociación en la línea que une
las clases y agregando la clase asociación mediante una línea discontinua, esta clase asociación puede tener asociaciones con otras clases.

Tanto la línea como el rectángulo de clase representan el mismo elemento conceptual: la asociación. Por tanto ambos tienen el mismo nombre, el de la asociación. Cuando la
clase asociación sólo tiene atributos el nombre suele ponerse sobre la línea (como ocurre en el ejemplo de la Figura). Por el contrario, cuando la clase asociación tiene alguna
operación o asociación propia, entonces se pone el nombre en la clase asociación y se puede quitar de la línea.

Ejemplo un jugador tiene una asociación de “Participa en” una clase equipo pero a su vez existe una clase asociación de contrato que tiene una asociación “Negociado por”
una clase DirectorGeneral.
Ejemplo de Clase Asociación

ASOCIACIONES N-ARIAS
En el caso de una asociación en la que participan más de dos clases, las clases se unen con una línea a un diamante central. Si se muestra multiplicidad en un rol, representa
el número potencial de tuplas de instancias en la asociación cuando el resto de los N-1 valores están fijos. En la siguiente figura se ha impuesto la restricción de que un jugador
no puede jugar en dos equipos distintos a lo largo de una temporada, porque la multiplicidad de “Equipo” es 1 en la asociación ternaria.

ELEMENTOS DERIVADOS

Un elemento derivado es aquel cuyo valor se puede calcular a partir de otros elementos presentes en el modelo, pero que se incluye en el modelo por motivos de claridad o
como decisión de diseño. Se representa con una barra “/” precediendo al nombre del elemento derivado.
AGREGACIÓN

Como su nombre lo indica la agregación en UML permite representar una relación entre una clase y sus elementos agregados, esto quiere decir que las clases agregadas no
afectan el funcionamiento directo de la clase que las contiene. El símbolo de agregación es un diamante colocado en el extremo en el que está la clase que representa el “todo”.

Por ejemplo sabemos que a una computadora portátil se le pueden agregar elementos como micrófono, cámara web e impresora; sin embargo la a
elementos no repercute en el funcionamiento básico de dicha portátil. El símbolo de agregación es un diamante vacio colocado en el extremo de la cl
las clases agregadas.

En este tipo de asociación, la clase hija puede sobrevivir sin su clase padre.
RESTRICCIONES DE AGREGACIÓN

Es posible que en una agregación se presenten restricciones, por ejemplo una computadora puede contar con una cámara web o micrófono e impresor, lo que indica que
existe una restricción en la que solamente puede agregarse uno de esos dos elementos (cámara o micrófono).

COMPOSICIÓN

La composición a diferencia de la agregación representa una clase que está compuesta por otras clases que son indispensables para que esta funcione. Por ejemplo podríamos
decir que la laptop citada en el ejemplo anterior funciona si le quitamos la cámara web; sin embargo no funcionará si le faltase la pantalla, por lo que podemos decir que una
laptop está compuesta básicamente de una pantalla y su unidad de procesamiento (CPU).

Para representar la composición también se utiliza un rectángulo de la misma forma que una agregación con la diferencia que este no está vacío.
Agregación es una relación débil.

Composición es una relación fuerte.


EJEMPLO DE AGREGACIÓN Y COMPOSICIÓN

Como se puede observar en el ejemplo la clase computadora tienen tanto clases de composición como de agregación ya que una computadora puede funcionar ya sea con
ratón o con teclado pero no puede funcionar si le falta el monitor y el CPU, a su vez el CPU también está compuesto por clases de composición y agregación puesto que puede
funcionar ante la ausencia de una unidad de lectura (DVD-ROOM) pero no ante la falta de la motherboard, procesador, disco duro y memoria.

DIAGRAMA DE CONTEXTO

El diagrama de contexto nos permite englobar en un entorno en común la agregación y asociación de elementos para poder utilizarlo en un ámbito más general, básicamente
podemos detallar el contexto de una clase bajo la representación de un rectángulo y relacionar este contexto con otras clases. Enfoca la atención en una clase específica dentro
de un sistema.
EJEMPLO DE UN DIAGRAMA DE CONTEXTO.

DEPENDENCIA

Es una relación semántica entre dos elementos en la cual un cambio a un elemento (el elemento independiente) puede afectar a la semántica del otro elemento (elemento
dependiente).

Declara que un cambio en la especificación de una clase puede afectar a otra que la utiliza.

Se representa como una línea discontinua que a veces incluye una etiqueta.
Suponga que diseñará un sistema que muestre formularios corporativos en pantalla para que los empleados los llenen. El empleado utiliza un menú
el formulario por llenar. En su diseño, tiene una clase Sistema y una clase Formulario. Entre sus muchas operaciones, la clase sistema tiene mostrarForm
El formulario que el sistema desplegará, dependerá, obviamente, del que elija el usuario. La notación del UML para ello es una línea discontinua c
flecha en forma de triangulo sin relleno que apunta a la clase de la que depende, como se muestra en la siguiente figura :

HERENCIA (POO) O GENERALIZACIÓN (UML)

Uno de las características principales de la orientación a objetos es poder asociar a los objetos (clases en UML) con características y operaciones que puedan heredarse entre
ellos, siempre y cuando estos estén ligados a un entorno en común, por ejemplo se no es fácil determinar que un radio, televisor y lavadora tienen atributos y operaciones en
común como poseer un interruptor, un cable de energía eléctrica, operaciones de encendido y apagado que los identifican como parte de la superclase Electrodomésticos. La
orientación a objetos se refiere a esto como herencia y en UML se denomina generalización la cual está representada por una línea continua que va desde la clase
subordinada hasta la clase principal o clase “padre” conectada por un rectángulo vacio, como puede observarse en la figura.
NOTA: En una generalización no hay multiplicidad ni roles.

HERENCIA MULTIPLE

Se dice que una herencia múltiple se presenta cuando una clase subordinada proviene de varias clases principales. Así por ejemplo si tenemos una clase padre e hijo ambos
pueden estar contenidos en otra clase alumno.
CLASES ABSTRACTAS

Una clase es abstracta cuando no puede ser instanciada o que no proveen objetos, la abstracción se utiliza cuando se desea englobar objetos de distintos tipos en clases que
únicamente sirven para definir subclases. La abstracción en UML se representa colocando el nombre de la clase en cursiva.

Una clase abstracta no tiene atributos, solo tiene métodos dentro de ella.

Se usa nombre en cursiva para la clase abstracta. Posee métodos abstractos (sin implementación). Las subclases implementan los métodos abstractos definidos. No tiene
atributos, solo métodos dentro de ella.

Por ejemplo en la siguiente representación observamos que la clase empleado es una clase abstracta porque no tiene sentido calcular su salario per
los empleados por hora, asalariado o autónomo. Puede decirse que una clase abstracta esta basa en interfaces puesto que esta solo contiene operacio
otras clases otro motivo por el cual no puede ser instanciada.
REALIZACION

Es una relación semántica entre clasificadores, donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. Se pueden encontrar relaciones de
realización en dos sitios: entre interfaces y las clases y componentes que las realizan, y entre los casos de uso y las colaboraciones que los realizan. La realización se representa
como una mezcla entre la generalización y la dependencia, esto es, una línea discontinua con una punta de flecha vacía.
INTERFAZ (Forma abreviada)

Una interfaz es aquella que contiene una colección de operaciones y se utiliza para especificar los servicios de una clase o de un componente. La interfaz en UML se representa
también como un círculo conectado con una línea continua, como se puede ver en la figura.

Para entender mejor la función de una interfaz y como se implementa mediante realización se plantea el siguiente ejemplo.

Un caballo de carreras puede considerarse como una interfaz. La interfaz se compone de diferentes métodos: correr, detenerse, etc.

Las carreras al galope o al trote se realizan solo con caballos entrenados específicamente para un tipo u otro de carrera. Para los caballos de galope c
galopar. Para los caballos de trote (trotadores), correr significa trotar. Ambos responden a la interfaz Caballo_Carrera pero con diferentes clases deb
de su entrenamiento.
VISIBILIDAD

La visibilidad se aplica en los atributos y operaciones de una clase o interfaz, estableciendo la proporción en la que otras clases podrán utilizar estos atributos u operaciones. La
visibilidad se establece en tres niveles:

• Nivel público: la funcionabilidad se extiende a otras clases (para su representación en UML se utiliza el signo +)
• Nivel protegido: La funcionabilidad se otorga solo a las clases que se heredan de la clase original (para su representación en UML se utiliza el signo #)
• Nivel privado: solo la clase original puede utilizar el atributo u operación (Para su representación en UML se utiliza el signo -)

La visibilidad se implementa en casos en los que algunas operaciones son transparentes al usuario o no son necesarias que el usuario las conozca por ejemplo en una clase
Automóvil las operaciones acelerar() y Frenar() son públicas y las operación ActualizarKilometraje() es protegido.

También podría gustarte