Read this post in: de_DEen_USfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Diagrama de Clases UML: Guía completa de referencia

Class Diagram Sample


Introducción a los Diagramas de Clases

Diagrama de Clasesproporciona una visión general del sistema objetivo describiendo los objetos y clases dentro del sistema y las relaciones entre ellos. Ofrece una amplia variedad de usos; desde modelar la estructura de datos específica del dominio hasta el diseño detallado del sistema objetivo.

Principales beneficios:

  • Modelado de dominio: Capturar entidades de negocio y sus relaciones

  • Diseño del sistema: Definir la arquitectura de software a nivel de clase

  • Generación de código: Generar código de implementación a partir de elementos del modelo

  • Documentación: Crear documentación técnica mantenible

  • Reutilización de modelos: Compartir modelos de clases entre diagramas de interacción para el modelado del comportamiento dinámico

  • Generación automática: Utilice el Diagrama de Formulario para generar diagramas automáticamente con un alcance definido por el usuario


Notaciones y elementos principales

Elementos estructurales básicos

Class Icon Clase

Class

Definición: Una clase describe un conjunto de objetos que comparten las mismas especificaciones de características, restricciones y semántica. La clase es un tipo de clasificador cuyas características son atributos y operaciones.

Propiedades clave:

Propiedad Descripción
Nombre El nombre de la clase
Padre El elemento del modelo que posee la clase
Visibilidad Determina la apariencia y accesibilidad del espacio de nombres
Abstracto Si es verdadero, la clase no se puede instanciar directamente
Hoja Si es verdadero, la clase no se puede especializar más
Raíz Indica si la clase no tiene ancestros
Activo Determina si los objetos son activos (concurrentes) o pasivos
Atributos Propiedades directas poseídas por la clase
Operaciones Características comportamentales que especifican los parámetros de invocación
Parámetros de plantilla Parámetros formales para la vinculación de plantillas

Enumeration Icon Clase <>

Enumeration

Definición: Una forma de clase que actúa como contenedor de literales de enumeración. Por ejemplo, una enumeración Color contiene literales de enumeración rojoverde, y azul.


Interface Icon Clase <>

Interface

Definición: Una interfaz es un tipo de clasificador que representa una declaración de un conjunto de características públicas coherentes y obligaciones. Una interfaz especifica un contrato; cualquier instancia de un clasificador que realice la interfaz debe cumplir ese contrato.

Características clave:

  • Las interfaces son declaraciones y no instanciables

  • Implementadas por instancias de clasificadores instanciables

  • Un clasificador puede implementar múltiples interfaces

  • Puede incluir restricciones y especificaciones de protocolo


Primitive Icon Clase <>

Primitive

Definición: Una forma de clase que representa un tipo de dato predefinido. Por ejemplo, una booleano clase (tipo).


Note Icon Nota

Note

Definición: Una nota (comentario) permite adjuntar diversos comentarios a elementos. Un comentario no tiene fuerza semántica, pero puede contener información útil para un modelador.


Constraint Icon Restricción

Constraint

Definición: Una condición o restricción expresada en texto de lenguaje natural o en un lenguaje legible por máquina con el fin de declarar parte de la semántica de un elemento.

Propiedades:

Propiedad Descripción
Nombre Nombre opcional de la restricción
Expresión La condición que debe ser verdadera para su satisfacción
Documentación Descripción de la restricción

Collaboration Icon Colaboración

Collaboration

Definición: Una colaboración se representa como un tipo de clasificador y define un conjunto de entidades cooperativas que deben ser desempeñadas por instancias (sus roles), así como un conjunto de conectores que definen los caminos de comunicación entre las instancias participantes.


Model Icon Modelo

Definición: Un paquete de nivel superior que contiene todo el modelo o una parte importante de él.


NARY Icon NARY

Definición: Representa una asociación n-aria que conecta múltiples clasificadores simultáneamente.


Tipos de relación

Relaciones de asociación

Association Icon Asociación (Sin agregación)

Association

Definición: Una asociación especifica una relación semántica que puede ocurrir entre instancias tipificadas. Tiene al menos dos extremos representados por propiedades, cada una de las cuales está conectada al tipo del extremo.

Propiedades clave:

Propiedad Descripción
Nombre El nombre de la asociación
Visibilidad Apariencia y accesibilidad en el espacio de nombres
Extremo de asociación Desde/Hacia Origen y destino de la asociación
Abstracto Si es verdadero, la asociación es incompleta y no instanciable
Hoja Si es verdadero, la asociación no puede ser especializada más
Derivado Especifica si se deriva de otros elementos del modelo

Aggregation Icon Agregación (asociación compartida)

Aggregation

Definición: Un tipo de asociación que tiene uno de sus extremos marcadocompartidocomo un tipo de agregación, lo que significa que tiene una agregación compartida (relación todo-parte en la que las partes pueden existir de forma independiente).


Composition Icon Composición (asociación compuesta)

Composition

Definición: Una forma fuerte de agregación en la que una instancia de parte puede incluirse en como máximo un compuesto a la vez. Si se elimina un compuesto, normalmente se eliminan también todas sus partes.

Características clave:

  • Las partes no pueden pertenecer a múltiples compuestos simultáneamente

  • Eliminar el compuesto normalmente elimina sus partes

  • Las partes pueden eliminarse antes de la eliminación del compuesto

  • Las composiciones pueden formar grafos acíclicos dirigidos con eliminación transitiva


Association Class Icon Clase de asociación

Association Class

Definición: Un elemento de modelo que tiene propiedades de asociación y de clase. Una Clase de asociación puede considerarse como una asociación que también tiene propiedades de clase, o como una clase que también tiene propiedades de asociación.

Recurso relacionadoDibujar clase de asociación


Relaciones de dependencia

Dependency Icon Dependencia

Dependency

Definición: Una relación que indica que un elemento de modelo o un conjunto de elementos de modelo requiere otros elementos de modelo para su especificación o implementación.

Propiedades:

Propiedad Descripción
Proveedor Elemento(s) independiente(s) en la relación
Cliente Elemento(s) dependiente(s) en la relación
Visibilidad Apariencia y accesibilidad del espacio de nombres
Mapeo Expresión opcional que indica la relación

Abstraction Icon Abstracción

Abstraction

Definición: Una relación que relaciona dos elementos o conjuntos de elementos que representan el mismo concepto a diferentes niveles de abstracción o desde diferentes puntos de vista.


Realization Icon Realización

Realization

Definición: Una relación de abstracción especializada entre dos conjuntos de elementos de modelo, uno que representa una especificación (el proveedor) y el otro que representa una implementación de este último (el cliente).

Casos de uso: Refinamiento paso a paso, optimizaciones, transformaciones, plantillas, síntesis de modelos, composición de marcos


Generalization Icon Generalización

Generalization

Definición: Una relación taxonómica entre un clasificador más general y un clasificador más específico. Cada instancia del clasificador específico también es una instancia indirecta del clasificador general.

Propiedad clave:

Propiedad Descripción
Sustituible Si es verdadero, el clasificador específico puede reemplazar al clasificador general en tiempo de ejecución

Usage Icon Uso

Usage

Definición: Una relación en la que un elemento requiere otro elemento (o conjunto de elementos) para su implementación o operación completa.


Access Icon Acceso

Access

Definición: Una importación de elemento definida como una relación dirigida entre un espacio de nombres que importa y un elemento empaquetable. El nombre del elemento empaquetable o su alias se agrega al espacio de nombres del espacio de nombres que importa.

Notación:

  • <<import>>palabra clave para visibilidad pública

  • <<acceso>>palabra clave para visibilidad privada


Import Icon Importar

Import

Definición: Una importación de paquete se define como una relación dirigida que identifica un paquete cuyos miembros deben ser importados por un espacio de nombres.


Permission Icon Permiso

Permission

Definición: Un tipo de dependencia que otorga a un elemento de modelo el permiso para acceder a elementos en otro espacio de nombres.


Instantiation Icon Instanciación

Instantiation

Definición: Una dependencia de uso entre clasificadores que indica que las operaciones sobre el cliente crean instancias del proveedor.


Binding Icon Vinculación

Binding

Definición: La vinculación de plantilla es una relación dirigida desde un elemento vinculable a una plantilla hasta la firma de plantilla de la plantilla objetivo. Una vinculación de plantilla posee un conjunto de sustituciones de parámetros de plantilla.


Derive Icon Derivar

Derive

Definición: Especifica una relación de derivación entre elementos de modelo que normalmente, pero no necesariamente, son del mismo tipo. Una dependencia derivada especifica que el cliente puede calcularse a partir del proveedor.


Refine Icon Refinar

Refine

Definición: Especifica una relación de refinamiento entre elementos de modelo a diferentes niveles semánticos, como análisis y diseño.

Casos de uso: Transformaciones del análisis al diseño, evolución del modelo


Trace Icon Rastrear

Trace

Definición: Especifica una relación de rastreo entre elementos de modelo o conjuntos de elementos de modelo que representan el mismo concepto en modelos diferentes.

Uso principal: Seguimiento de requisitos y cambios entre modelos; el mapeo suele ser informal y bidireccional


Substitution Icon Sustitución

Substitution

Definición: Una relación entre dos clasificadores que indica que el clasificador sustituto cumple con el contrato especificado por el clasificador de contrato.

Implicación: Las instancias del clasificador sustitutivo son sustituibles en tiempo de ejecución donde se esperan instancias del clasificador de contrato.


Merge Icon Fusión

Merge

Definición: Una fusión de paquetes es una relación dirigida entre dos paquetes que indica que los contenidos de ambos paquetes deben combinarse.

Características clave:

  • Similar a la generalización, pero para el contenido de paquetes

  • Utilizado cuando elementos en paquetes diferentes representan el mismo concepto

  • Permite la extensión incremental de conceptos base

  • Particularmente útil en la metamodelización y definición de metamodelos UML


Variantes de clase y estereotipos

Clases específicas de ORM

ORM Persistable Icon Clase <>

ORM Persistable

Definición: Una forma especial de clase que se puede utilizar para modelar un modelo de objetos de una base de datos relacional. Se puede generar código ORM a partir de un conjunto de clases ORM Persistable.

Propiedades adicionales:

Propiedad Descripción
Detalles de la clase ORM Configuraciones que afectan la generación de código ORM
Clave de negocio Utilizado para generar operaciones equals() y hashCode()
Consulta ORM Define calificadores ORM y consultas con nombre

ORM Abstract Persistable Icon Clase <>

ORM Abstract Persistable

Definición: Una forma especial de clase que captura los atributos comunes de las clases sub-ORM-Persistable.


ORM User Type Icon Clase <>

ORM User Type

Definición: Una clase de tipo de usuario define un tipo de objeto para el modelo de objetos que puede ser accedido en el código ORM generado y persistir en la base de datos como una columna en lugar de una entidad.

Recurso relacionadoSoporte de tipo de usuario de Hibernate


ORM Parameterized Type Icon Clase <>

ORM Parameterized Type

Definición: Un tipo parametrizado de ORM le proporciona la oportunidad de garantizar la corrección de los datos mediante la implementación de verificaciones de corrección en el código ORM generado.


Entity Bean Icon Clase <>

Entity Bean

Definición: Una forma especial de clase para modelar el bean de entidad EJB.

Propiedades adicionales:

Propiedad Descripción
Detalles del código de la clase EJB Atributos relacionados con EJB para la generación de código

Propiedades y configuración

Referencia de propiedades comunes de clase

Propiedad Aplica a Descripción
Nombre Todos los elementos Identificador para el elemento del modelo
Padre Clases, Interfaces Elemento del modelo propietario
Visibilidad La mayoría de los elementos Controla la apariencia del espacio de nombres: públicoprivadoprotegidopaquete
Abstracto Clases, Asociaciones Si es verdadero, el elemento es incompleto y no se puede instanciar directamente
Hoja Clases, Asociaciones Si es verdadero, el elemento no se puede especializar más
Raíz Clases Indica si el elemento no tiene ancestros
Activo Clases Determina si los objetos son activos (concurrentes) o pasivos
Modelo de Negocio Clases Bandera para marcar como una “clase de negocio”
Atributos Clases Propiedades directas poseídas por la clase
Operaciones Clases Características comportamentales con parámetros y restricciones
Parámetros de plantilla Elementos con plantilla Parámetros formales para elementos genéricos/parametrizados
Derivado Asociaciones Especifica si el elemento se deriva de otros elementos de modelo

Configuración de generación de código

Configuración específica de Java

Configuración específica de ORM

  • Consulta de ORM: Define calificadores y consultas con nombre para clases persistibles

  • Clave de negocio: Configure los campos utilizados para la generación de equals()/hashCode()

  • Mapeo de columnas: Especifique nombres y tipos de columnas de base de datos


Tipos de diagramas UML relacionados

Los diagramas de clases se integran con otros diagramas UML para un modelado completo del sistema:

Tipo de diagrama Propósito Enlace
Diagrama de casos de uso Capturar requisitos funcionales Diagrama de casos de uso
Diagrama de secuencia Modelar interacciones dinámicas con el tiempo Diagrama de secuencia
Diagrama de comunicación Mostrar interacciones y enlaces entre objetos Diagrama de comunicación
Diagrama de máquina de estados Modelar el ciclo de vida y los estados de los objetos Diagrama de máquina de estados
Diagrama de actividad Representar flujos de trabajo y procesos Diagrama de actividad
Diagrama de componente Mostrar componentes de software físicos Diagrama de componente
Diagrama de despliegue Modelar el despliegue de hardware y software Diagrama de despliegue
Diagrama de paquete Organizar elementos del modelo en paquetes Diagrama de paquete
Diagrama de objeto Mostrar instancias en un momento específico Diagrama de objeto
Diagrama de estructura compuesta Modelar la estructura interna de los clasificadores Diagrama de estructura compuesta
Diagrama de tiempo Enfocarse en las restricciones de tiempo Diagrama de tiempo
Diagrama de vista general de interacción Combinar diagramas de interacción y diagramas de actividad Diagrama de vista general de interacción

Lista de referencias

  1. Referencias de diagramas principales
  2. Diagrama de casos de uso: Representación visual de la funcionalidad del sistema desde la perspectiva del usuario, capturando actores y sus objetivos.

  3. Diagrama de secuencias: Muestra las interacciones entre objetos dispuestos en secuencia temporal, enfatizando el orden de los mensajes.

  4. Diagrama de comunicación: Muestra las interacciones entre objetos con énfasis en las relaciones estructurales entre ellos.

  5. Diagrama de máquinas de estado: Modela el comportamiento dinámico de un objeto a través de sus estados de ciclo de vida y transiciones.

  6. Diagrama de actividades: Representa flujos de trabajo, procesos de negocio y pasos operativos con flujo de control.

  7. Diagrama de componentes: Ilustra componentes de software físicos, sus interfaces y dependencias.

  8. Diagrama de despliegue: Muestra nodos de hardware, artefactos de software y sus relaciones de despliegue.

  9. Diagrama de paquetes: Organiza elementos del modelo en paquetes jerárquicos para modularidad y gestión de espacios de nombres.

  10. Diagrama de objetos: Muestra instancias de clases y sus enlaces en un momento específico del tiempo.

  11. Diagrama de estructura compuesta: Modela la estructura interna de clasificadores incluyendo partes, puertos y conectores.

  12. Diagrama de tiempo: Se enfoca en las restricciones de tiempo y los cambios de estado durante intervalos de tiempo precisos.

  13. Diagrama de vista general de interacción: Combina diagramas de interacción con la notación de diagramas de actividades para flujos de interacción de alto nivel.

  14. Referencias de notación de diagramas de clases
  15. Abstracción: Relación que vincula elementos que representan el mismo concepto a diferentes niveles de abstracción.

  16. Acceso: Relación de importación de elementos que controla la visibilidad de los elementos packageables importados.

  17. Agregación (asociación compartida): Relación todo-parte donde las partes pueden existir independientemente del todo.

  18. Asociación (Sin agregación): Relación semántica entre instancias tipificadas con extremos navegables.

  19. Clase de asociación: Elemento de modelo que combina propiedades de asociación y clase para atributos de relación.

  20. Vinculación: Relación de vinculación de plantilla con sustituciones de parámetros para elementos genéricos.

  21. Clase: Clasificador principal que describe objetos con características, atributos y operaciones compartidos.

  22. Clase <>: Clase contenedora para literales de enumeración que representan conjuntos de valores fijos.

  23. Clase <>: Especificación de contrato que declara características públicas para clasificadores que las implementan.

  24. Clase <>: Clase de tipo de datos predefinido que representa tipos básicos del lenguaje.

  25. Clase <>: Clase mapeada a base de datos que apoya la generación de código ORM y la persistencia.

  26. Clase <>: Clase base abstracta para compartir atributos comunes de ORM entre subclases persistibles.

  27. Clase <>: Tipo personalizado persistido como columna de base de datos en lugar de tabla de entidad.

  28. Clase <>: Tipo parametrizado que permite la validación de corrección de datos en código ORM.

  29. Clase <>: Clase de modelo de bean entidad EJB para aplicaciones empresariales de Java.

  30. Colaboración: Clasificador que define roles cooperativos y caminos de comunicación para instancias que interactúan.

  31. Composición (asociación compuesta): Relación fuerte de todo-parte con propiedad exclusiva y eliminación en cascada.

  32. Restricción: Condición o restricción que declara el significado de los elementos del modelo.

  33. Dependencia: Relación que indica que un elemento requiere a otro para su especificación o implementación.

  34. Derivar: Relación que especifica que el elemento cliente es computable a partir del elemento proveedor.

  35. Generalización: Relación de herencia donde un clasificador específico hereda características de un clasificador general.

  36. Importar: Relación de importación de paquete que hace disponibles los miembros del paquete al espacio de nombres que lo importa.

  37. Instanciación: Dependencia que indica que las operaciones del cliente crean instancias del clasificador proveedor.

  38. Fusión: Fusión de paquetes que combina el contenido de dos paquetes para una extensión incremental de conceptos.

  39. Modelo: Contenedor de nivel superior para organizar elementos del modelo y paquetes.

  40. N-ARIO: Asociación n-aria que conecta múltiples clasificadores simultáneamente.

  41. Nota: Elemento de comentario para adjuntar observaciones no semánticas a elementos del modelo.

  42. Permiso: Dependencia que otorga permiso de acceso a elementos en otro espacio de nombres.

  43. Realización: Abstracción especializada donde el cliente implementa la especificación definida por el proveedor.

  44. Perfeccionar: Relación entre elementos del modelo a diferentes niveles semánticos, como análisis y diseño.

  45. Sustitución: Relación que indica que un clasificador sustituto cumple con la especificación del clasificador de contrato.

  46. Rastrear: Relación de seguimiento del mismo concepto en diferentes modelos, principalmente para la gestión de requisitos.

  47. Uso: Dependencia en la que el elemento cliente requiere al elemento proveedor para una implementación o operación completa.

  48. Tutoriales y referencias de recursos
  49. Dibujar clase de asociación: Guía paso a paso para crear clases de asociación en Visual Paradigm.

  50. Generar y sincronizar código Java: Tutorial para la ingeniería de ida y vuelta entre diagramas de clases y la implementación Java.

  51. Soporte para tipos de usuario de Hibernate: Recurso para implementar tipos de usuario personalizados de Hibernate con clases ORM-Persistable.

  52. Referencia de estándares
  53. Grupo de Gestión de Objetos – Lenguaje Unificado de Modelado: Fuente oficial de la especificación UML del organismo normativo que rige UML.

  54. La definición de notaciones está citada de Grupo de Gestión de Objetos Lenguaje Unificado de Modelado (OMG UML) Versión de Superestructura 2.2 y versiones anteriores (para notaciones que ya no existen en la especificación más reciente).


  1. Esta guía se basa en la documentación del diagrama de clases UML de Visual Paradigm. Para las especificaciones más actuales, siempre consulte los estándares oficiales OMG UML.