Diagrama del paquete

Diagrama del paquete

El diagrama de paquete es un diagrama UML estructural (estático) que representa los paquetes (o espacios de nombres) que componen un sistema, así como las relaciones entre estos diferentes paquetes.

Cuando se trata de un sistema grande, puede resultar interesante dividirlo en varias partes (llamadas paquetes).

Por tanto, un paquete es una agrupación de diferentes elementos de un sistema (agrupación de clases, diagramas, funciones, interfaces, etc.). Esto ayuda a aclarar el modelo organizándolo. Está representado por una carpeta con su nombre adentro.

Los paquetes pueden anidar (descomposición jerárquica) pero no superponerse. Un elemento del sistema solo puede pertenecer a uno y solo a un paquete. Cada paquete debe tener un nombre diferente.

Es posible representar los elementos del sistema pertenecientes al paquete: dentro o fuera conectados por una flecha cruzada.

Dependencias

Cada elemento de un paquete es:

  • privado, es decir, encapsulado dentro del paquete e invisible fuera de él. Un elemento privado está designado por un letrero, frente a él.
  • público, es decir, visible y accesible desde fuera del paquete. Un elemento público se designa con un signo + delante de él.

De forma predeterminada, los elementos de un paquete son públicos.

Dependencia del tipo "Importar":

Corresponde a la importación por un paquete B de todos los elementos públicos de un paquete A.

Estos elementos:

  • tendrá visibilidad "pública" en el paquete B (y, por lo tanto, también se pasaría a un paquete C que importaría el paquete B).
  • será accesible para el paquete B sin tener que usar explícitamente el nombre del paquete A.

La dependencia del tipo "importación" está representada por una flecha punteada con el estereotipo <>.

diagrama de paquetes uml de dependencia de importación

El paquete B importa Class1 y Class2 (no Class3, que tiene visibilidad de tipo privado). Class1 y Class2 tienen visibilidad de tipo público en el paquete B. El paquete C importa Class1, Class2 y Class4.

Dependencia del tipo "Acceso":

Corresponde al acceso por un paquete B de todos los elementos públicos de un paquete A. Estos elementos tendrán la visibilidad privada en el paquete B, por lo que no pueden ser transmitidos a un paquete C que haría una importación o un acceso al paquete. B (sin transitividad).

La dependencia del tipo "acceso" está representada por una flecha punteada con el estereotipo <>.

dependencia de acceso al diagrama de paquetes uml

El paquete B tiene acceso a Class1 y Class2 (no a Class3 que tiene visibilidad de tipo privado). Class1 y Class2 tienen visibilidad de tipo privado en el paquete B. El paquete C tiene acceso a Class4 (no Class1 y Class2 que tienen visibilidad de tipo privado en el paquete B).

Dependencias de tipo "Fusionar":

Corresponde a la fusión de 2 paquetes en uno. La dependencia del tipo "fusionar" está representada por una flecha punteada con el estereotipo <>.

dependencia de fusión del diagrama del paquete uml

El paquete A se fusiona con el paquete B (el paquete A no se modifica mientras que el paquete B se sobrescribe para adaptarse a la fusión de los 2 paquetes).