Diagramas de Clases
Los diagramas de clases son el tipo más común de diagrama UML, usado para modelar la estructura estática de un sistema mostrando clases, sus atributos, operaciones y relaciones.
Crear Clases
Usando la Herramienta Class
En una página UML Class Diagram, presiona U o elige Class en el menú UML de la barra de herramientas. Haz clic en el lienzo para colocar una caja de clase, o arrastra para establecer su tamaño. Presiona Return con una clase seleccionada para renombrarla.
Estructura de la Caja de Clase
Una caja de clase UML consta de tres compartimentos:
- Compartimento de nombre - Contiene el nombre de la clase y un estereotipo opcional
- Compartimento de atributos - Lista las propiedades/campos de la clase
- Compartimento de operaciones - Lista los métodos/funciones de la clase
Propiedades de la Clase
Selecciona una clase y usa la pestaña Arrange del Inspector → sección UML para configurar sus propiedades:
Name
El nombre de la clase aparece en negrita en el compartimento superior. La convención usa PascalCase (p. ej., CustomerOrder).
Stereotype
Clasificador opcional que aparece encima del nombre de la clase entre comillas angulares:
<<interface>>- Para definiciones de interfaz<<abstract>>- Para clases abstractas<<enumeration>>- Para tipos enum<<entity>>- Para entidades de dominio- También se admiten estereotipos personalizados
Abstract
Actívalo para renderizar el nombre de la clase en cursiva, indicando una clase abstracta.
Constrained resize
Cuando está activado (el predeterminado), redimensionar conserva las proporciones de la caja de clase.
Atributos
Los atributos representan los datos/propiedades de una clase.
Agregar Atributos
- Selecciona la clase
- En la sección UML, busca Attributes — un editor multilínea con un atributo por línea
- Haz clic en + (o presiona
Cmd+L) para agregar un nuevo atributo, luego escribe sus detalles
Sintaxis de Atributo
Los atributos siguen este formato: visibilidad nombre : tipo
Modificadores de Visibilidad:
| Símbolo | Significado | Descripción |
|---|---|---|
+ | Público | Accesible desde cualquier lugar |
- | Privado | Accesible solo dentro de la clase |
# | Protegido | Accesible dentro de la clase y sus subclases |
~ | Paquete | Accesible dentro del mismo paquete |
Ejemplos:
-id: Int- ID entero privado+name: String- Nombre de cadena público#createdAt: Date- Campo de fecha protegido~cache: Map<String, Any>- Caché privado del paquete
Operaciones
Las operaciones representan el comportamiento/métodos de una clase.
Agregar Operaciones
- Selecciona la clase
- En la sección UML, busca Operations — un editor multilínea con una operación por línea
- Haz clic en + (o presiona
Shift+Cmd+L) para agregar una nueva operación, luego escribe sus detalles
Sintaxis de Operación
Las operaciones siguen este formato: visibilidad nombre(parámetros) : tipoDeRetorno
Ejemplos:
+getName(): String- Getter público que devuelve String-validate(input: String): Boolean- Método de validación privado+process(data: Data, options: Options): Result- Método con varios parámetros+save(): void- Método sin valor de retorno
Relaciones
Presiona R para activar la herramienta Relationship, luego arrastra de una clase a otra para crear una conexión.
Tipos de Relación
| Tipo | Estilo de Línea | Flecha | Caso de Uso |
|---|---|---|---|
| Association | Línea sólida | Flecha abierta | Relación general |
| Dependency | Línea discontinua | Flecha abierta | Relación de "uso" |
| Inheritance | Línea sólida | Triángulo hueco | Relación "es-un" (extends) |
| Realization | Línea discontinua | Triángulo hueco | Implementación de interfaz |
| Aggregation | Línea sólida | Rombo hueco | "Tiene-un" (propiedad débil) |
| Composition | Línea sólida | Rombo relleno | "Tiene-un" (propiedad fuerte) |
Crear Relaciones
- Presiona
Rpara activar la herramienta Relationship - Haz clic en la clase de origen
- Arrastra hasta la clase de destino
- Suelta para crear la conexión
- Usa la sección UML del Inspector para establecer el Relationship Type — el estilo de línea y las puntas de flecha siguen el tipo
Etiquetas de Relación
Selecciona una relación y establece sus etiquetas en la sección UML del Inspector:
- Label - Describe la relación (p. ej., "manages", "contains")
- Multiplicity - Valores Source y Target que indican cuántas instancias (p. ej., "1", "0..", "1..")
Buenas Prácticas
- Mantenlo simple - No intentes modelarlo todo; enfócate en las clases clave
- Usa estereotipos - Marca claramente las interfaces y las clases abstractas
- Muestra las relaciones clave - No todas las asociaciones necesitan mostrarse
- Nomenclatura consistente - Usa PascalCase para las clases, camelCase para los miembros
- Agrupa clases relacionadas - Usa la proximidad visual para mostrar agrupaciones lógicas