Curso UML
📌 ¿Qué es un Diagrama de Despliegue?
Un Diagrama de Despliegue (Deployment Diagram) muestra la arquitectura física de un sistema: cómo los componentes de software se distribuyen en los nodos físicos (servidores, dispositivos, contenedores, etc.).
Se utiliza para representar:
- Servidores
- Dispositivos hardware
- Contenedores (Docker, máquinas virtuales, etc.)
- Componentes de software desplegados
- Conexiones entre nodos
🧱 Elementos del Diagrama de Despliegue
| Elemento | Descripción |
|---|---|
| Nodo | Recurso físico o virtual que ejecuta procesos. Se representa como una caja 3D. |
| Artefacto | Unidad de implementación como ejecutables, archivos .jar, .dll, etc. |
| Dependencia | Indica que un nodo o artefacto depende de otro. |
| Asociación | Conexión entre nodos. Representa comunicación. |
| Estereotipos | Permiten detallar tipos de nodos o artefactos (<<device>>, <<executionEnvironment>>, etc.). |
📦 Nodo
1@startuml 2node "Servidor Web" { 3} 4@enduml
📦 Nodo con Artefacto
1@startuml 2node "Servidor Web" { 3 artifact "app.war" 4} 5@enduml
🧰 Varios Nodos y Conexiones
1@startuml 2node "Cliente" <<device>> { 3 artifact "browser.exe" 4} 5 6node "Servidor Web" <<executionEnvironment>> { 7 artifact "app.war" 8} 9 10node "Base de Datos" <<database>> { 11 artifact "mysql_data" 12} 13 14"Cliente" --> "Servidor Web" 15"Servidor Web" --> "Base de Datos" 16@enduml
🧩 Artefactos Independientes
Los artefactos también pueden representarse fuera de los nodos y asignarse con líneas punteadas:
1@startuml 2artifact "cliente.exe" 3artifact "api.jar" 4artifact "bbdd.sql" 5 6node "PC Cliente" 7node "Servidor API" 8node "Servidor DB" 9 10"cliente.exe" -down-> "PC Cliente" 11"api.jar" -down-> "Servidor API" 12"bbdd.sql" -down-> "Servidor DB" 13 14"PC Cliente" --> "Servidor API" 15"Servidor API" --> "Servidor DB" 16@enduml
🧠 Estereotipos Comunes
| Estereotipo | Uso |
|---|---|
<<device>> | Dispositivo físico |
<<executionEnvironment>> | VM, contenedor, JVM, etc. |
<<database>> | Nodo que representa una base de datos |
🎓 Ejemplo completo
1@startuml 2node "Cliente" <<device>> { 3 artifact "navegador.exe" 4} 5 6node "Servidor Web" <<executionEnvironment>> { 7 artifact "api.war" 8} 9 10node "Servidor de Base de Datos" <<database>> { 11 artifact "postgres_data" 12} 13 14"Cliente" --> "Servidor Web" : HTTP 15"Servidor Web" --> "Servidor de Base de Datos" : JDBC 16@enduml
✅ Buenas Prácticas
- Usa nombres claros en los nodos.
- Representa conexiones importantes (HTTP, TCP, JDBC...).
- No sobrecargues el diagrama con detalles innecesarios.
- Usa estereotipos para aclarar el rol de cada nodo.