Un diagrama de clases es una representación visual de las clases, atributos, métodos y relaciones en un sistema orientado a objetos. PlantUML es una herramienta que permite crear estos diagramas a partir de texto plano, lo que los hace versionables en Git.
Esta guía está diseñada para que puedas empezar a graficar de inmediato.
Parte 1: Lo Mínimo para Empezar¶
Para empezar a crear diagramas sin instalar nada, podés usar el editor online oficial:
Todo diagrama de PlantUML comienza con @startuml y termina con @enduml.
1. Definir una Clase¶
Podés definir clases, atributos y métodos usando sintaxis muy similar a Java:
@startuml
class Persona {
-String nombre
-int edad
+void hablar()
}
@endumlDefinición de clase
Los símbolos -, + y # representan visibilidad privada, pública y protegida respectivamente.
2. Interfaces y Clases Abstractas¶
@startuml
interface Volador {
+volar(): void
}
abstract class Figura {
{abstract} +dibujar(): void
}
@endumlInterfaces y Abstractas
3. Relaciones entre clases¶
Las flechas indican cómo se relacionan las clases.
@startuml
' Herencia (es un)
Animal <|-- Perro
' Implementación de interfaz
Volador <|.. Pajaro
' Asociación (conoce a)
Persona --> Direccion
' Composición (tiene un - fuerte)
Auto *-- Motor
' Agregación (tiene un - débil)
Departamento o-- Profesor
@endumlTipos de Relaciones
4. Cardinalidad (Multiplicidad)¶
Podés indicar cuántos elementos participan en la relación añadiendo cadenas de texto entre comillas sobre la flecha.
@startuml
Empresa "1" -- "1..*" Empleado : contrata
Empleado "1..*" -- "*" Proyecto : trabaja en
@endumlCardinalidad
Parte 2: Uso Intermedio y Organización¶
Cuando tus diagramas empiecen a crecer, vas a necesitar organizarlos.
Disposición (Layout)¶
PlantUML intenta organizar automáticamente, pero podés forzar la dirección:
@startuml
left to right direction
class Izquierda
class Derecha
Izquierda --> Derecha
@endumlNotas y Comentarios¶
Ayudan a documentar visualmente el diagrama.
@startuml
class Usuario
note right of Usuario
Esta clase representa
a un usuario del sistema.
end note
@endumlAgrupación por Paquetes¶
@startuml
package "Sistema de Facturación" {
class Factura
class Detalle
}
@endumlParte 3: Publicación y GitHub (Avanzado)¶
Es común querer mostrar los diagramas directamente en los archivos Markdown (README.md) de GitHub.
Método 1: Proxy de PlantUML (Recomendado para repos públicos)¶
Podés usar el servidor público de PlantUML para que lea el archivo .puml de tu repositorio y devuelva una imagen.
En tu archivo Markdown de GitHub, usá esta sintaxis:
Atención a los placeholders que debés reemplazar:
TU_USUARIO: Tu nombre de usuario en GitHub (ej:mrtin).TU_REPO: El nombre de tu repositorio (ej:tpi-2025).TU_RAMA: La rama donde está el archivo (usualmentemain).ruta/al/archivo.puml: La ruta completa desde la raíz del repo (ej:diagramas/clases.puml).
Método 2: Exportar imágenes localmente (Más robusto)¶
Si trabajás en repositorios privados (el proxy público no podrá acceder a tu código) o querés evitar depender de servidores externos, lo mejor es exportar la imagen localmente.
Instalá un plugin de PlantUML en IntelliJ IDEA o VS Code.
Exportá el diagrama como
.svgo.pngy guardalo en tu repositorio (ej:docs/imagenes/clases.svg).Referencialo de forma nativa en Markdown:
