Tipo de Diagrama - Diagramas Estructurales

  Representan la estructura estática del sistema, mostrando cómo se organizan y relacionan los componentes. Estos diagramas ayudan a entender los elementos clave del sistema, como clases, objetos, y sus interacciones:

Diagrama de Clases


Representan la estructura estática del sistema, mostrando cómo se organizan y relacionan los componentes. Estos diagramas ayudan a entender los elementos clave del sistema, como clases, objetos, y sus interacciones. 

La figura de clase en sí misma consiste en un rectángulo de tres filas. La fila superior contiene el nombre de la clase, la fila del centro contiene los atributos de la clase y la última expresa los métodos o las operaciones que la clase puede utilizar. Las clases y las subclases se agrupan para mostrar la relación estática entre cada objeto.

Notación

  • Clases: Representadas por rectángulos con tres compartimentos (nombre, atributos, operaciones).
  • Relaciones: Asociación (línea), herencia (línea con flecha hueca), agregación (rombo blanco), composición (rombo negro), y dependencia (línea discontinua con flecha).
  • Ejemplo: 

    A continuación, se muestra un sistema de gestión de biblioteca: 

    Clases:

    • Ejemplar:
    • Atributos: id (identificador único), título (referencia al título), estado (disponible, prestado, reservado).
    • Métodos: prestar(), reservar(), devolver().
    • Título:
    • Atributos: nombre, autor, ISBN, número de reserva.
    • Métodos: buscarPorTítulo(), buscarPorAutor().
    • Préstamo:
    • Atributos: fecha, fecha_actual, ejemplar (referencia al ejemplar), prestatario (referencia al prestatario).
    • Métodos: crear(), destruir(), encontrar().
    • Reserva:
    • Atributos: fecha, fecha_actual, ejemplar (referencia al ejemplar), prestatario (referencia al prestatario).
    • Métodos: crear(), destruir(), encontrar().
    • Información del prestatario:
    • Atributos: nombre, dirección, estado, código.
    • Métodos: crear(), destruir(), encontrar().
    • Un Ejemplar puede tener uno o ningún Préstamo y uno o ninguna Reserva (relación de uno a uno o cero).
    • Un Título puede tener múltiples Ejemplares (relación de uno a muchos).
    • Un Préstamo y una Reserva están asociados a un Ejemplar y a un Información del prestatario (relación de uno a uno).

    Relaciones:


    Diagrama de Componentes

    Un diagrama de componentes UML ofrece a los desarrolladores una comprensión global de los objetos físicos de un sistema. Este tipo de diagrama UML muestra la relación estructural entre cada componente físico y subcomponente de un sistema de software complejo. Esto ayuda a las partes interesadas a comprender cómo se organizan y conectan los componentes.

    Algunos usos de este tipo de diagrama es el siguiente:

    • Se utilizan en desarrollo basado en componentes para describir sistemas con arquitectura orientada a servicios.
    • Mostrar la estructura del propio código.
    • Se puede utilizar para centrarse en la relación entre los componentes mientras se ocultan los detalles de las especificaciones.
    • Ayudar a comunicar y explicar las funciones del sistema que se está construyendo a los interesados o stakeholders.

    Notación:

    • ComponentesRepresentados como rectángulos con el ícono de componente (una caja con dos líneas pequeñas en la izquierda).
    • DependenciasRepresentadas con una línea discontinua con flechas que indican qué componente depende de otro.
    Ejemplo:

    Modelar un sistema bancario que permita realizar transacciones a través de diferentes canales (cajero automático, página web, empleado) y gestionar la información contable.

    Componentes Clave y sus Relaciones:

    •     Cajero: Representa un cajero automático. Es el punto de contacto físico para los clientes que desean realizar transacciones en efectivo.
    •       Consola cliente: Representa una interfaz digital (por ejemplo, una aplicación móvil o web) a través de la cual los clientes pueden realizar transacciones.
    •          Base de datos banco: Almacena toda la información relevante del banco, como los datos de los clientes, el historial de transacciones, saldos, etc. Es el corazón del sistema.
    •          Consola de empleado: Representa una interfaz para los empleados del banco, donde pueden realizar tareas administrativas como crear cuentas, modificar datos de clientes, etc.
    •          Lector de tarjetas: Es un dispositivo físico conectado al cajero automático que se utiliza para leer la información de las tarjetas bancarias.
    •          Página web: Representa la interfaz web del banco, a través de la cual los clientes pueden realizar transacciones en línea.

    Relaciones Entre las Clases:

    • ·         Cajero, Consola cliente, Consola de empleado, Página web: Todas estas clases interactúan con la Base de datos banco para realizar operaciones de lectura y escritura. Por ejemplo, cuando un cliente realiza un retiro en un cajero automático, el sistema consulta la base de datos para verificar el saldo y registrar la transacción.
    • ·         Cajero y Lector de tarjetas: El cajero utiliza el lector de tarjetas para obtener la información de la tarjeta bancaria del cliente.
    • ·         Cada clase que interactúa con el sistema genera un tipo de transacción: Transacción cajero, transacción cliente, transacción empleado, transacción lector (para las operaciones realizadas a través del lector de tarjetas), y transacción online (para las transacciones realizadas a través de la página web).
    Flujo General

    ·         El usuario interactúa con uno de los canales disponibles: cajero automático, consola cliente, consola de empleado o página web.

    ·         El sistema consulta la base de datos para obtener la información necesaria para completar la transacción.

    ·         Se realiza la transacción y se actualiza la información en la base de datos.

    ·         Se genera un registro de la transacción para fines contables y de auditoría.

     

    Diagrama de Despliegue

    El diagrama de despliegue es otro de los diagramas de estructura del conjunto de los diagramas de UML 2.5. Es utilizado para representar la distribución física (estática) de los componentes software en los distintos nodos físicos de la red.

    Notación:

    • Nodos: Representados como cubos tridimensionales, que pueden representar servidores, dispositivos o cualquier infraestructura de hardware.
    • Artefactos: Representados dentro de los nodos, como componentes o archivos de software que son desplegados en esos nodos.

    Ejemplo:

    A continuación se muestra un diagrama donde se muestran un total de 6 nodos y algunos de sus componentes.

    Componentes Clave y sus Relaciones:

    • Cliente y Cliente Móvil: Representan los usuarios del sistema, ya sea a través de una interfaz web o una aplicación móvil. Ambas clases interactúan con la interfaz del sistema.
    • Interfaz e InterfazMóvil: Definen cómo los usuarios interactúan con el sistema. La interfaz móvil está optimizada para dispositivos móviles, mientras que la interfaz general es más amplia. Ambas interfaces probablemente se comuniquen con el servidor web para solicitar y recibir datos.
    • Servidor Web: El corazón del sistema. Es responsable de procesar las solicitudes de los clientes, generar las respuestas correspondientes y gestionar la aplicación web.
    • Aplicación.war: Representa la aplicación web desplegada en el servidor. Esta es la parte lógica de la aplicación que contiene el código que realiza las tareas principales del sistema.
    • Apache Tomcat: Es un contenedor de servlets, un software que proporciona un entorno de ejecución para la aplicación web.
    • Utilidades: Contiene clases y funciones auxiliares que son utilizadas por la aplicación web para realizar tareas comunes, como enviar correos electrónicos, generar reportes, etc.
    • Servidor de Aplicaciones: Este componente se encarga de ejecutar componentes empresariales (EJBs) y proporcionar servicios web. Los EJBs son módulos reutilizables que contienen la lógica de negocio de la aplicación.
    • EJB Container: Es un contenedor que gestiona los EJBs, proporcionando un entorno de ejecución y servicios como la gestión de transacciones y la seguridad.
    • Acceso BD: Se encarga de la conexión con la base de datos y permite realizar operaciones de lectura y escritura.
    • Web Services: Exponen la funcionalidad del sistema a otros sistemas a través de protocolos web.
    • Base de Datos: Almacena la información persistente del sistema, como los datos de los usuarios, productos, pedidos, etc.
    • Impresora: Representa un dispositivo físico utilizado para generar impresiones.

    Flujo General:

    El cliente o el cliente móvil realiza una solicitud al servidor web a través de la interfaz correspondiente.

    El servidor web procesa la solicitud, invoca los métodos necesarios de la aplicación.war y utiliza el acceso a la base de datos para obtener o almacenar información.

    Los EJBs se ejecutan en el EJB container para realizar tareas de negocio.

    Los servicios web pueden ser utilizados para integrar el sistema con otros sistemas externos.

    La respuesta es enviada al cliente a través del servidor web.



    Diagrama Objetos 

    Los diagramas de objeto están ligados a los diagramas de clase y comparten virtualmente los mismos símbolos para la notación. Los diagramas de objetos pertenecen a la categoría de diagramas estructurales en UML.



    Notación:

    • Objetos: Cada objeto se representa con un rectángulo con su nombre y el de su clase en la parte superior subrayados y separados por dos puntos. En caso de ser un objeto anónimo no se escribe su nombre, dejando solo el de la clase.
    • Atributos: De igual forma que el diagrama de clases, se muestra en un compartimento en la parte inferior del nombre del objeto. A diferencia de las clases, los atributos pueden tener valores asignados a ellos.
    • Vínculos: Son asociaciones entre dos objetos y se representan con los mismos elementos que en el diagrama de clases. 

    Ejemplo:
    Banco y Cuentas: Este diagrama representa una instancia específica de un sistema bancario en un momento dado.

    Objetos:

    • ·         BANK: Representa el banco como un todo. Es el objeto principal al que están vinculadas las cuentas.
    • ·         Account 1: Savings: Es un objeto que representa una cuenta de ahorros específica.
    • ·         Account 2: Checking: Representa una cuenta corriente específica.
    • ·         Account 3: Credit Card: Representa una cuenta de crédito específica.

    Atributos:

    • ·         Balance: El saldo monetario actual de cada cuenta.
    • ·         Identity: Un identificador único para cada cuenta.
    • ·         Interest Rate: La tasa de interés aplicada a la cuenta.
    • ·         Minimum Balance: El saldo mínimo requerido para mantener abierta la cuenta de ahorros.
    • ·         Credit Limit: El límite de crédito disponible para la cuenta de crédito.

    Vínculos:

    Diamante: Representa una relación de composición, lo que significa que las cuentas son parte integral del banco y no pueden existir sin él. El banco "tiene" las cuentas.

    Diagrama de Paquetes

    Un diagrama de paquetes es un tipo de diagrama estructural en el Lenguaje de Modelado Unificado (UML) que se utiliza para representar la organización y disposición de varios elementos dentro de un sistema. Estos elementos pueden incluir clases, interfaces, componentes y otros paquetes. Esencialmente, es una manera de agrupar elementos relacionados en "paquetes" para simplificar sistemas complejos, de manera similar a como las carpetas ayudan a organizar archivos en un ordenador.


    Notación:

    1. Paquetes: Representados como rectángulos con una pestaña en la parte superior izquierda.
    2. Relaciones: Las dependencias entre paquetes se representan con líneas discontínuas con flechas.

    Ejemplo:
    Este diagrama de paquetes nos presenta una vista de alto nivel de un sistema de gestión.

    Paquetes:

    Capa de Presentación:

    • Interfaz usuario: Agrupa todos los elementos relacionados con la interacción directa del usuario con el sistema.
    • Interfaz admin: Contiene los elementos específicos para la administración del sistema, como la gestión de usuarios y la configuración.

    Capa de Lógica de Negocio:

    • Subsistema de recepción de dudas y sugerencias: Agrupa la funcionalidad relacionada con la captura y gestión de las consultas de los usuarios.
    • Subsistema de asignación de responsable: Agrupa la lógica para asignar tareas a los usuarios adecuados.
    • Subsistema de creación de informes: Contiene los componentes necesarios para generar informes personalizados.
    • Gestor documental: Agrupa la funcionalidad relacionada con la gestión de documentos y archivos.
    • Subsistema de gestión de usuarios: Contiene la lógica para administrar los usuarios del sistema, sus roles y permisos.
    • Envío de notificaciones: Agrupa la funcionalidad relacionada con el envío de notificaciones a los usuarios.

    Base de datos:

    • CRM: Agrupa los componentes relacionados con la gestión de la relación con los clientes.
    • DataWarehouse: Agrupa los componentes relacionados con el almacenamiento y gestión de grandes volúmenes de datos para análisis.
    • Relaciones Entre los Paquetes:
    • Dependencia: La capa de presentación depende de la capa de lógica de negocio. Esto significa que la interfaz de usuario necesita acceder a los servicios proporcionados por los subsistemas de la capa de lógica para funcionar.
    • Dependencia: La capa de lógica de negocio depende de la base de datos. Los subsistemas de la capa de lógica necesitan acceder a la información almacenada en el CRM y el DataWarehouse para realizar sus tareas.



    Diagrama de Perfiles

    Un diagrama de perfiles es un elemento que permite extender el Lenguaje Unificado de Modelo, conocido como UML por sus siglas en inglés, de ciertos sistemas específicos, como pueden ser médicos, de ingeniería, financieros, digitales, etc.

    Notación

    • Perfil

    Un perfil es un paquete que extiende a un metamodelo de referencia (en este caso podría ser UML) permitiendo adaptar el metamodelo con directrices que son específicas de un dominio, plataforma o método de desarrollo de software en particular.

    • Metaclase

    Una metaclase es una clase de perfiles y un elemento empaquetable que puede extenderse a través de uno o más estereotipos.

    • Estereotipo

    Un estereotipo es un clase de perfil que define cómo una metaclase existente puede extenderse como parte de un perfil.

    • Extensión

    Una extensión es la relación de asociación que se usa para indicar que las propiedades de una metaclase se extienden a través de un estereotipo, y brinda la posibilidad de agregar flexiblemente los estereotipos a las clases y eliminarlas más adelante, si es necesario.

    • Referencia

    La referencia es una relación de importación representada por la importación del elemento «metaclassReference» y la importación del paquete «metamodelReference».

    • Aplicación de perfil

    La aplicación de perfil es una relación dirigida que se utiliza para mostrar qué perfiles se han aplicado a un paquete.


    Ejemplo:

    Perfil ITManagement:

    • Este perfil engloba los otros tres perfiles, lo que sugiere que se trata de un perfil de alto nivel que abarca diferentes aspectos de la gestión de la tecnología de la información (IT).

    Perfil Network:

    • Se enfoca en los elementos relacionados con las redes.
    • Define el estereotipo <<NetworkNode>> para representar cualquier nodo de la red.
    • Especializa el nodo en Workstation, Server y Switch/Router.
    • Agrega atributos como MAC, IP y nodeType para describir las características de cada tipo de nodo.

    Perfil Telecomms:

    • Probablemente se enfoca en los aspectos de telecomunicaciones de la red.
    • Podría definir estereotipos para representar diferentes tipos de dispositivos de telecomunicaciones y sus características.

    Perfil Software:

    • Se enfoca en los aspectos de software de la red.
    • Podría definir estereotipos para representar diferentes tipos de software, como aplicaciones, servicios, etc.

    Relaciones:

    • Las relaciones entre los perfiles indican que los perfiles Network, Telecomms y Software son especializaciones del perfil ITManagement.
    • Las relaciones de extensión muestran cómo los diferentes tipos de nodos (Workstation, Server, Switch/Router) se especializan a partir del nodo base NetworkNode.


    Diagrama de Estructura Compuesta

    Un diagrama de estructura compuesta desempeña una función similar a un diagrama de clases, pero le permite entrar en más detalles al describir la estructura interna de varias clases y mostrar las interacciones entre ellas. Puede representar gráficamente clases y partes internas y mostrar asociaciones tanto entre clases como dentro de ellas.


    Notación:

    • Parte: una parte representa una función desempeñada en tiempo de ejecución por una instancia de un clasificador o por una colección de instancias. La parte solo puede nombrar el rol, puede nombrar una superclase abstracta o puede nombrar una clase concreta específica. La parte puede incluir un factor de multiplicidad, como el [0 .. *] que se muestra para el Visor en el diagrama.
    • Puerto: Un puerto es un punto de interacción que se puede usar para conectar clasificadores estructurados con sus partes y con el entorno. Los puertos pueden especificar opcionalmente los servicios que prestan y los servicios que requieren de otras partes del sistema.
    • Conector: un conector une dos o más entidades, lo que les permite interactuar en tiempo de ejecución. El conector se muestra como una línea entre una combinación de partes, puertos y clasificadores estructurados. El diagrama muestra tres conectores entre puertos y un conector entre un clasificador estructurado y una parte.
    • Colaboración: una colaboración es generalmente más abstracta que un clasificador estructurado. Se muestra como un óvalo punteado que contiene roles que las instancias pueden utilizar en la colaboración.
    • Clasificador estructurado: Representa una clase, a menudo una clase abstracta, cuyo comportamiento se puede describir completa o parcialmente a través de las interacciones entre las partes.
    • Clasificador encapsulado: E un tipo de clasificador estructurado que contiene puertos

    Ejemplo:

    Clases y sus relaciones:

    • Component:

    Es la clase base o interfaz común para todos los elementos del sistema, ya sean hojas o compuestos.

    Define una operación básica operation() que debe ser implementada por todas las clases hijas.

    También define métodos para gestionar la estructura de los objetos compuestos: add()remove() y getChild().

    • Leaf:

    Representa un objeto hoja, es decir, un objeto que no tiene hijos.

    Implementa la operación operation() de manera específica para los objetos hoja.

    • Composite:

    Representa un objeto compuesto, es decir, un objeto que puede contener otros objetos.

    Hereda los métodos de la clase Component y los implementa de manera que tengan en cuenta la estructura compuesta.

    Además, define un atributo parent para mantener una referencia al objeto compuesto padre.

    Relaciones:

    Herencia: Composite y Leaf heredan de Component, lo que significa que comparten la misma interfaz.

    Agregación: La relación entre Composite y child es de agregación, lo que indica que un objeto Composite puede tener varios objetos child (hojas o otros compuestos).

    Comentarios

    Entradas populares