Diagrama de Paquetes

La industria del software, la programación e incluso los sistemas de producción de las grandes empresas utilizan el diagrama de paquetes para modelar mediante una estructura lógica y estática los procesos de interacción entre las distintas áreas.

El objetivo de este tipo de diagrama es facilitar la comprensión de los procesos integrados de un sistema, además, es muy fácil de usar y permite alcanzar un alto grado de especificación de sus componentes.

Diagrama de paquetes
Diagrama de paquetes

Qué es un diagrama de paquetes

El diagrama de paquetes pertenece a la familia de diagramas estructurales, estos se emplean para graficar la disposición y organización de diversos elementos de un modelo en forma de paquetes.

Un paquete es una agrupación de elementos de Lenguaje Unificado de Modelado, también conocido por sus siglas como UML, que están relacionados entre sí, como los diagramas, clases, documentos o incluso otros paquetes.

Cada elemento está anidado en el interior de un paquete, el cual se representa con una carpeta de archivos dentro de la estructura del diagrama. A su vez, los diagramas de paquetes son empleados con frecuencia para aportar una organización visual de la arquitectura en capas dentro de un clasificador UML, como es el caso de un sistema de software.

Es relevante comprender que este diagrama es empleado en los sistemas de información con programación orientada a objetos. Por lo tanto, el desarrollo del diseño debe minimizar el acoplamiento y maximizar la cohesión.

Además, los paquetes están pensados para funcionar como directorios, en el caso del diagrama de paquetes su función es suministrar una descomposición de la jerarquía lógica de un sistema

Por este motivo, los paquetes son excelentes modelos de gestión, pues cada paquete puede asignarse a un equipo y las dependencias entre ellos establecerán el orden de desarrollo requerido.

Por último, es importante destacar que los paquetes y sus dependencias son elementos de los diagramas de clases, de componentes y de casos de uso, por lo que se podría alegar que el diagrama de paquetes es una extensión de estos.

Es decir, el diagrama de paquetes puede ser tratado como una técnica en el análisis, para la agrupación de clases de análisis o casos de uso, para orientar el diseño de la arquitectura, en la agrupación de clases de diseño y en el diseño para agrupar componentes.

Seguir leyendo: Que son los objetos en UML?

Componentes del diagrama de paquetes

El diagrama de paquetes posee una composición relativamente sencilla. Cada diagrama involucra solamente dos símbolos y algunos elementos.

Símbolos del diagrama de paquetes

Paquete: Este agrupa elementos comunes basados en datos, interacciones o comportamiento de los usuarios. Está representado con la siguiente imagen.

paquete
paquete

Los paquetes son un mecanismo de intención general dispuesto para la organización de elementos y diagramas de modelo en grupos. Dispone de un espacio de nombres aislado dentro del cual todos deben ser únicos. Se emplea para agrupar elementos con relación semántica directa.

El paquete es representado mediante un símbolo con forma de carpeta, este se describe colocando el nombre en la pestaña y el contenido dispuesto para éste dentro de la carpeta.

Además, si se ha definido un estereotipo para el paquete, este será representado encima del nombre entre el símbolo << … >>, y en caso de que se definan propiedades, estás se representan debajo del nombre y entre llaves.

Dependencia: Muestra la relación entre un elemento (paquete) y otro. Es representado con una línea discontinua como se aprecia en la siguiente imagen.

dependencia
dependencia

Las dependencias son una representación gráfica de como un elemento o un conjunto de estos, dependen o contribuyen con otro. A su vez, las dependencias se dividen en dos grupos, dependencias de importación y de acceso.

Visualmente, se representa con una flecha discontinúa que parte del elemento de origen y apunta hacía el elemento de destino.

Los símbolos antes mencionados pueden utilizarse de diferentes maneras para representar distintas iteraciones de paquetes, dependencias y otros elementos del sistema.

Elementos del diagrama de paquetes

Además de los componentes simbólicos del diagrama de paquetes, existen elementos adicionales que debes conocer para analizar y comprender un diagrama.

  • Elemento empaquetable: es un elemento con nombre, de posible propiedad directa de otro paquete. Estos pueden incluir componentes, eventos, casos de uso e incluso los propios paquetes. Además, los elementos empaquetables pueden ser representados con un rectángulo dentro del paquete, siempre y cuando estén rotulados con el nombre pertinente.
  • Importación de paquete: se trata de la relación dirigida entre el espacio de nombres de importación y un paquete previamente importado. Este modelo de relación dirigida agrega los nombres de los integrantes del paquete importado en su propio espacio para nombres.
  • Importación de elemento: es la relación dirigida entre el espacio de nombres de importación y un elemento empaquetable importado. Se utiliza para importar algunos elementos sin acudir a una importación de paquete y sin que se publique dentro del espacio de nombres.
  • Fusión de paquetes: consiste en la relación dirigida donde los contenidos de un paquete se difunden según los contenidos de otro paquete. Básicamente, el contenido de dos paquetes se combina para producir un nuevo paquete.

Relaciones de dependencia en un diagrama de paquetes

El diagrama de paquetes es empleado, en gran medida, para representar las dependencias de acceso e importación entre paquetes, componentes, clases y otros elementos con nombre dentro del sistema.

Existen dos tipos principales de dependencias que representa la relación entre dos o más elementos.

Dependencia de acceso: Esta indica que un paquete solicita la asistencia de las funciones establecidas en otro paquete, y es representada de la siguiente forma <<access>>. Sirva la siguiente imagen de referencia.

acces
acces

Dependencia de importación: Señala que la funcionalidad ha sido importada de un paquete a otro, y es representada de la siguiente manera <<import>>. Sirva la siguiente imagen de ejemplo.

import
import

Sin embargo, las variantes de dependencia se pueden desglosar con mayor profundidad en las siguientes categorías:

  • Implementación: Permite visualizar la implementación de un elemento para un objetivo de implementación.
  • Abstracción: Vincula dos elementos que representan el mismo concepto en diferentes niveles de interpretación dentro del sistema, por ejemplo, la relación entre un cliente y un proveedor.
  • Uso: Este sucede cuando un elemento nombrado requiere de otro elemento para su implementación y definición.

Visibilidad de los elementos

La visibilidad de los elementos que conforman un paquete se debe identificar colocando antes del nombre alguno de los siguientes símbolos con el objeto de proporcionarlos de una característica específica de uso:

  • Elemento público: Se representa con un “+” y significa que está disponible para otros elementos del paquete contenedor, para los paquetes anidados y para los paquetes que importan el contenido del paquete contenedor.
  • Elemento privado: Se representa con un “-” y significa que no está disponible fuera del paquete contenedor.
  • Elemento protegido: Se representa con un “#” y significa que el elemento no está disponible ni es visible.

Ejemplos de diagramas de paquetes

El siguiente ejemplo describe el sistema encargado de la gestión de los préstamos y reserva de revistas y libros en una biblioteca.

Ejemplo diagrama de paquete de una biblioteca
Ejemplo diagrama de paquete de una biblioteca

El siguiente ejemplo pertenece a un sistema de producción de empaques, en este se puede detallar como interactúan los estereotipos de dependencia entre los diferentes paquetes.

Ejemplo de diagrama de paquetes - Comercio electrónico
Ejemplo de diagrama de paquetes – Comercio electrónico

¿Cuánto te gustó este artículo?

Votos: 0

Otros artículos interesantes

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *