¿Qué es un diagrama de objetos?
Un diagrama de objetos es un diagrama estructural diagrama UML que actúa como una instantánea concreta y en tiempo real del estado de su aplicación. Mientras que un diagrama de clases describe los planos abstractos, tipos de datos y reglas estructurales de un sistema, un diagrama de objetos visualiza una instancia de ejecución activa en un momento específico. Modela la instanciación de objetos reales, muestra los valores exactos asignados a sus campos y destaca los enlaces específicos que existen entre esas instancias durante la ejecución.
Este tipo específico de tipo de diagrama UML es increíblemente valioso para depurar estructuras de datos complejas, explicar estados de relaciones altamente anidadas (como grafos de árboles padre-hijo) o verificar que un patrón de diseño de ingeniería se comporte como se espera bajo variables de casos extremos específicos. Con VPasCode, puede crear relaciones de objetos en tiempo real de forma limpia, evitando por completo las herramientas manuales de dibujo de cuadros.
Guía de sintaxis principal: elementos y construcciones
Para diseñar un diagrama de objetos UML preciso y conforme a las normas en PlantUML, debe entender la instanciación de objetos, la asignación de valores de campos y los mapeos de enlaces de instancias.
1. Instanciación de objetos (nombre frente a tipos de clase)
Los objetos se declaran utilizando la objectpalabra clave. Según las convenciones estándar de modelado UML, define un objeto proporcionando su nombre único de instancia, seguido de dos puntos y su tipo de plantilla de clase padre:
object "currentUser : Account" como activeUser ![]()
Consejo profesional: Siempre use la comopalabra clave para asignar una declaración larga de nombre de instancia a un ID corto y de acceso interno (como activeUser) para que el dibujo de líneas de enlace sea rápido y limpio.
2. Asignación de estados de campos y valores en tiempo de ejecución
Para rellenar sus objetos con valores de datos de prueba, abra un bloque de cuerpo usando llaves al final y escriba sus asignaciones de clave-valor de datos en líneas separadas. A diferencia de las definiciones de clase, no agregue tipos de datos aquí: use valores operativos reales:
object "adminCart : ShoppingCart" como cart1 {
cartId = "CART-9081"
itemCount = 3
isTaxExempt = false
} 
3. Mapeo de enlaces de instancias
Las conexiones entre instancias concretas en un diagrama de objetos representan punteros de memoria del mundo real en lugar de patrones estructurales abstractos. Mapeas estos enlaces utilizando dobles guiones sólidos (“--). También puedes añadir etiquetas de cadena para indicar el contexto funcional del enlace:
activeUser -- cart1 : "posee y modifica" 
Mejores prácticas para mapas de objetos prácticos
- Enfócate en lo que importa: No listes cada campo individual de una definición de clase. Incluye únicamente los valores de variables clave que expliquen directamente el estado de tiempo de ejecución específico o el error que intentas ilustrar.
- Mantén los enlaces neutrales: Evita usar triángulos de herencia o diamantes de composición estricta en un diagrama de objetos. Usa líneas simples y planas de relaciones (
--) o puntas de flecha básicas (-->) para mostrar referencias. - Alinea las iteraciones horizontalmente: Si estás mapeando una lista de arreglos o una secuencia de objetos históricos, usa flechas de navegación horizontal como
-right->para forzar que las instancias se dibujen limpiamente en una sola línea.
Ejemplos reales de diagramas de objetos PlantUML
Ejemplo 1: Estado de sesión de token de identidad (mapeo de valores concretos)
Esta plantilla mapea un estado de autorización de seguridad en tiempo real, demostrando cómo un único usuario autenticado se vincula a múltiples instancias de sesión activas de máquina específicas con variables de datos distintas.
@startuml
object "targetUser : UserAccount" as user {
userId = 1042
username = "dev_admin"
status = "ACTIVO"
}
object "sessionMobile : UserSession" as session1 {
sessionId = "SESS-AAA-99"
deviceOS = "iOS 17"
ipAddress = "192.168.1.54"
}
object "sessionDesktop : UserSession" as session2 {
sessionId = "SESS-BBB-11"
deviceOS = "macOS 14"
ipAddress = "72.44.12.102"
}
' Establecer enlaces en tiempo de ejecución
user -- session1 : "autenticado en"
user -- session2 : "autenticado en"
@enduml 
Desglose de sintaxis:Este diseño captura un escenario definitivo en código de producción: un registro de usuario específico (ID 1042) que impulsa dos instancias de sesión en tiempo de ejecución completamente separadas al mismo tiempo. Cada contenedor de sesión rastrea sus propios parámetros de diseño de metadatos aislados.
Ejemplo 2: Estado de cumplimiento de factura de comercio electrónico (Mapas de múltiples entidades)
Este plano avanzado del sistema representa un gráfico de transacción financiera completado. Muestra exactamente cómo se relacionan entre sí los registros de pedidos, los registros de transacciones y los paquetes de almacén en un momento específico.
@startuml
object "buyerProfile : Customer" as customer {
email = "[email protected]"
tier = "VIP"
}
object "activeOrder : Order" as order {
orderNumber = "#99122"
subtotal = 149.99
currency = "USD"
}
object "stripeTransaction : LedgerEntry" as ledger {
referenceId = "ch_3Mv8x"
gatewayStatus = "ÉXITO"
settledAt = "2026-05-26"
}
object "packageA : Shipment" as ship1 {
trackingCode = "1Z999AA1"
carrier = "UPS"
weightKg = 1.4
}
object "packageB : Shipment" as ship2 {
trackingCode = "1Z999AA2"
carrier = "UPS"
weightKg = 0.8
}
' Enlaces de ejecución estructural
customer -- order : "enviado"
order -- ledger : "financiado por"
order -- ship1 : "cumplido mediante"
order -- ship2 : "cumplido mediante"
@enduml 
Desglose de sintaxis:Esta plantilla proporciona una visión altamente estructurada de un estado complejo del sistema. Muestra un solo pedido vinculado a un registro de transacción de pago exitoso, y dividido en dos archivos de envío físicos distintos. Este nivel de detalle lo convierte en un excelente plano para auditar estructuras de datos y procesos del sistema.