Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · •...

128
Diagramando UML con PlantUML Guía de Referencia del Lenguaje (martes 17 de octubre de 2017 20:09) PlantUML es un proyecto Open Source (código abierto) que permite escribir rápidamente: • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas de Actividades, • Diagramas de Componentes, • Diagramas de Estados, • Diagramas de Objetos. Los diagramas son definidos usando un lenguaje simple e intuitivo.

Transcript of Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · •...

Page 1: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

Diagramando UML con PlantUML

Guía de Referencia del Lenguaje(martes 17 de octubre de 2017 20:09)

PlantUML es un proyecto Open Source (código abierto) que permite escribir rápidamente:

• Diagramas de Secuencia,

• Diagramas de Casos de uso,

• Diagramas de Clases,

• Diagramas de Actividades,

• Diagramas de Componentes,

• Diagramas de Estados,

• Diagramas de Objetos.

Los diagramas son definidos usando un lenguaje simple e intuitivo.

Page 2: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1 DIAGRAMA DE SECUENCIA

1 Diagrama de Secuencia1.1 Ejemplo básicoLa secuencia -> es usada para dibujar un mensaje entre dos participantes. Los participantes tienen queser declarados explícitamente.

Para definir una flecha punteada, se debe usar -->También se puede usar <- y <--. No provoca cambios en el dibujo, pero puede mejorar la legibilidad.

Tenga en cuenta que esto sólo es posible en diagramas de secuencia, las reglas son diferentes para otrosdiagramas.@startumlAlice -> Bob: Authentication RequestBob --> Alice: Authentication Response

Alice -> Bob: Another authentication RequestAlice <-- Bob: another authentication Response@enduml

1.2 Declarando participantesEs posible cambiar el orden de los participantes usando la palabra reservada participant.

También es posible el uso de otras palabras reservadas para declarar un participante:

• actor

• boundary

• control

• entity

• database

@startumlactor Foo1boundary Foo2control Foo3entity Foo4database Foo5collections Foo6Foo1 -> Foo2 : To boundaryFoo1 -> Foo3 : To controlFoo1 -> Foo4 : To entityFoo1 -> Foo5 : To databaseFoo1 -> Foo6 : To collections

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 1 of 127

Page 3: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.3 Sin usar letras en participantes 1 DIAGRAMA DE SECUENCIA

Se puede renombrar un participante usando la palabra reservada as.También es posible cambiar el color de fondo de los actores o participantes.

@startumlactor Bob #red' The only difference between actor'and participant is the drawingparticipant Aliceparticipant "I have a really\nlong name" as L #99FF99/' You can also declare:participant L as "I have a really\nlong name" #99FF99'/

Alice->Bob: Authentication RequestBob->Alice: Authentication ResponseBob->L: Log transaction@enduml

1.3 Sin usar letras en participantesPuedes usar comillas para definir participantes. Y puedes usar la palabra reservada as para asignar unalias a esos participantes.@startumlAlice -> "Bob()" : Hello"Bob()" -> "This is very\nlong" as Long' You can also declare:' "Bob()" -> Long as "This is very\nlong"Long --> "Bob()" : ok@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 2 of 127

Page 4: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.4 Auto-Mensaje 1 DIAGRAMA DE SECUENCIA

1.4 Auto-MensajeUn participante puede enviar mensajes asi mismo.

También es posible tener un mensaje multi-líneas usando \n.@startumlAlice->Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext@enduml

1.5 Cambiar estilo de la flechaPuede cambiar el estilo de la flecha de diferentes formas:

• añade una x al final para indicar un mensage perdido

• utilice \ o / en lugar de < o > para tener solo la parte inferior o superior de la flecha

• repite la cabeza de la flecha (por ejemplo, >> o //) para tener un trazo más fino

• Utilice -- en lugar de - para obtener una flecha punteada.

• añade una ”o” al final de la cabeza de una flecha

• utilice flechas bidireccionales

@startumlBob ->x AliceBob -> AliceBob ->> AliceBob -\ AliceBob \\- AliceBob //-- Alice

Bob ->o AliceBob o\\-- Alice

Bob <-> AliceBob <->o Alice@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 3 of 127

Page 5: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.6 Cambiar el color de la flecha 1 DIAGRAMA DE SECUENCIA

1.6 Cambiar el color de la flechaPuede cambiar el color de flechas individuales usando la siguiente notación:@startumlBob -[#red]> Alice : helloAlice -[#0000FF]->Bob : ok@enduml

1.7 Numeración de la secuencia de mensajesLa palabra clave autonumber es usada para añadir automáticamente números a los mensajes.@startumlautonumberBob -> Alice : Authentication RequestBob <- Alice : Authentication Response@enduml

Puedes especificar un número de comienzo con autonumber 'número inicial' , y también unincremento con autonumber 'número inicial' 'incremento'.@startumlautonumberBob -> Alice : Authentication RequestBob <- Alice : Authentication Response

autonumber 15Bob -> Alice : Another authentication RequestBob <- Alice : Another authentication Response

autonumber 40 10Bob -> Alice : Yet another authentication Request

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 4 of 127

Page 6: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.7 Numeración de la secuencia de mensajes 1 DIAGRAMA DE SECUENCIA

Bob <- Alice : Yet another authentication Response

@enduml

Puedes especificar un formato para su número usándolo entre comillas dobles.El formateo se hace mediante la calse Java DecimalFormat (’0’ denota un dígito, ’#’ denota un digito

y cero si está ausente).Puedes usar alguna etiqueta HTML en el formato.

@startumlautonumber "<b>[000]"Bob -> Alice : Authentication RequestBob <- Alice : Authentication Response

autonumber 15 "<b>(<u>##</u>)"Bob -> Alice : Another authentication RequestBob <- Alice : Another authentication Response

autonumber 40 10 "<font color=red><b>Message 0 "Bob -> Alice : Yet another authentication RequestBob <- Alice : Yet another authentication Response

@enduml

También puedes usar autonumber stop y autonumber resume 'increment' 'format' para pausary continuar la numeración automática, respectivamente.@startumlautonumber 10 10 "<b>[000]"Bob -> Alice : Authentication RequestBob <- Alice : Authentication Response

autonumber stopBob -> Alice : dummy

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 5 of 127

Page 7: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.8 Dividiendo diagramas 1 DIAGRAMA DE SECUENCIA

autonumber resume "<font color=red><b>Message 0 "Bob -> Alice : Yet another authentication RequestBob <- Alice : Yet another authentication Response

autonumber stopBob -> Alice : dummy

autonumber resume 1 "<font color=blue><b>Message 0 "Bob -> Alice : Yet another authentication RequestBob <- Alice : Yet another authentication Response@enduml

1.8 Dividiendo diagramasLa palabra reservada newpage es empleada para dividir un diagrama en varias imágenes.

Puedes colocar un título para la página nueva justo después de la palabra reservada newpage .Esto es bastante práctico con Word para devolver diagramas grandes en varias páginas.

@startuml

Alice -> Bob : message 1Alice -> Bob : message 2

newpage

Alice -> Bob : message 3Alice -> Bob : message 4

newpage A title for the\nlast page

Alice -> Bob : message 5Alice -> Bob : message 6@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 6 of 127

Page 8: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.9 Agrupando mensajes 1 DIAGRAMA DE SECUENCIA

1.9 Agrupando mensajesEs posible agrupar mensajes usando las siguientes palabras reservadas:

• alt/else

• opt

• loop

• par

• break

• critical

• group, seguida de un texto para mostrar

Es posible añadir un texto que será mostrado en el encabezado (excepto para group).La palabra reservada end es usada para cerrar el grupo.Tenga en cuenta que es posible anidar grupos.

@startumlAlice -> Bob: Authentication Request

alt successful case

Bob -> Alice: Authentication Accepted

else some kind of failure

Bob -> Alice: Authentication Failuregroup My own labelAlice -> Log : Log attack startloop 1000 timesAlice -> Bob: DNS AttackendAlice -> Log : Log attack endend

else Another type of failure

Bob -> Alice: Please repeat

end@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 7 of 127

Page 9: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.10 Notas en mensajes 1 DIAGRAMA DE SECUENCIA

1.10 Notas en mensajesEs posible colocar notas en mensajes usando las palabras reservadas note left o note right inmedi-atamente después del mensaje.

Puedes tener una nota multi-líneas usando la palabra reservada end note .@startumlAlice->Bob : hellonote left: this is a first note

Bob->Alice : oknote right: this is another note

Bob->Bob : I am thinkingnote lefta notecan also be definedon several linesend note@enduml

1.11 Algunas otras notasTambién es posible colocar notas relativas al participante con las palabras reservadas note left of ,note right of o note over .

Es posible resaltar una nota cambiando su color de fondo.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 8 of 127

Page 10: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.12 Cambiando el aspecto de las notas 1 DIAGRAMA DE SECUENCIA

También puedes tener una nota multi-líneas usando la palabra reservada end note .@startumlparticipant Aliceparticipant Bobnote left of Alice #aquaThis is displayedleft of Alice.end note

note right of Alice: This is displayed right of Alice.

note over Alice: This is displayed over Alice.

note over Alice, Bob #FFAAAA: This is displayed\n over Bob and Alice.

note over Bob, AliceThis is yet anotherexample ofa long note.end note@enduml

1.12 Cambiando el aspecto de las notasPuedes usar las palabras reservadas hnote y rnote para cambiar el aspecto de las notas.@startumlcaller -> server : conReqhnote over caller : idlecaller <- server : conConfrnote over server"r" as rectangle"h" as hexagonendrnote@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 9 of 127

Page 11: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.13 Creole y HTML 1 DIAGRAMA DE SECUENCIA

1.13 Creole y HTMLTambién es posible usar sintexis de WikiCreole:@startumlparticipant Aliceparticipant "The **Famous** Bob" as Bob

Alice -> Bob : hello --there--... Some ~~long delay~~ ...Bob -> Alice : oknote leftThis is **bold**This is //italics//This is ""monospaced""This is --stroked--This is __underlined__This is ~~waved~~end note

Alice -> Bob : A //well formatted// messagenote right of AliceThis is <back:cadetblue><size:18>displayed</size></back>__left of__ Alice.end notenote left of Bob<u:red>This</u> is <color #118888>displayed</color>**<color purple>left of</color> <s:red>Alice</strike> Bob**.end notenote over Alice, Bob<w:#FF33FF>This is hosted</w> by <img sourceforge.jpg>end note@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 10 of 127

Page 12: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.14 Divisor 1 DIAGRAMA DE SECUENCIA

1.14 DivisorSi quieres, puedes dividir un diagrama usando el separador == para separar su diagrama en pasos lógicos.@startuml

== Initialization ==

Alice -> Bob: Authentication RequestBob --> Alice: Authentication Response

== Repetition ==

Alice -> Bob: Another authentication RequestAlice <-- Bob: another authentication Response

@enduml

1.15 ReferenciaPuedes referenciar en un diagrama utilizando la palabra clave ref over.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 11 of 127

Page 13: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.16 Retardo 1 DIAGRAMA DE SECUENCIA

@startumlparticipant Aliceactor Bob

ref over Alice, Bob : init

Alice -> Bob : hello

ref over BobThis can be onseveral linesend ref@enduml

1.16 RetardoPuedes usar ... para indicar un retardo en el diagrama. Y también es posible colocar un mensaje conese retardo.@startuml

Alice -> Bob: Authentication Request...Bob --> Alice: Authentication Response...5 minutes latter...Bob --> Alice: Bye !

@enduml

1.17 EspaciadoPuedes usar ||| para indicar espaciado en el diagrama.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 12 of 127

Page 14: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.18 Activación y Destrucción de la Línea de vida 1 DIAGRAMA DE SECUENCIA

También es posible especificar un número de píxel para ser usado.@startuml

Alice -> Bob: message 1Bob --> Alice: ok|||Alice -> Bob: message 2Bob --> Alice: ok||45||Alice -> Bob: message 3Bob --> Alice: ok

@enduml

1.18 Activación y Destrucción de la Línea de vidaactivate y deactivate son usados para denotar la activación de un participante.

Una vez que un participante es activado, su línea de vida aparece.activate y deactivate aplica en el mensaje anterior.destroy denota el final de la línea de vida de un participante.

@startumlparticipant User

User -> A: DoWorkactivate A

A -> B: << createRequest >>activate B

B -> C: DoWorkactivate CC --> B: WorkDonedestroy C

B --> A: RequestCreateddeactivate B

A -> User: Donedeactivate A

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 13 of 127

Page 15: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.19 Creación de participante 1 DIAGRAMA DE SECUENCIA

Puede usarse anidamiento de líneas de vida, y es posible agregar un color a dicha línea de vida.@startumlparticipant User

User -> A: DoWorkactivate A #FFBBBB

A -> A: Internal callactivate A #DarkSalmon

A -> B: << createRequest >>activate B

B --> A: RequestCreateddeactivate Bdeactivate AA -> User: Donedeactivate A

@enduml

1.19 Creación de participantePuedes usar la palabra reservada create justo antes de la primera recepción de un mensaje para recalcarel hecho de que ese mensaje se encuentra creando ese nuevo objeto.@startumlBob -> Alice : hello

create OtherAlice -> Other : new

create control StringAlice -> Stringnote right : You can also put notes!

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 14 of 127

Page 16: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.20 Mensajes entrantes y salientes 1 DIAGRAMA DE SECUENCIA

Alice --> Bob : ok

@enduml

1.20 Mensajes entrantes y salientesPuedes usar flechas entrantes y salientes si quieres centrarte en una parte del diagrama.

Utilice corchetes para denotar el lado izquierdo ”[” o el lado derecho ”]” del diagrama.@startuml[-> A: DoWork

activate A

A -> A: Internal callactivate A

A ->] : << createRequest >>

A<--] : RequestCreateddeactivate A[<- A: Donedeactivate A@enduml

También puedes tener la siguiente sintaxis:@startuml[-> Bob[o-> Bob[o->o Bob[x-> Bob

[<- Bob[x<- Bob

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 15 of 127

Page 17: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.21 Estereotipos y marcas 1 DIAGRAMA DE SECUENCIA

Bob ->]Bob ->o]Bob o->o]Bob ->x]

Bob <-]Bob x<-]@enduml

1.21 Estereotipos y marcasEs posible añadir estereotipos a participantes usando << y >>.

En el estereotipo, puedes añadir un carácter marcado en un círculo coloreado usando la sintaxis(X,color).@startuml

participant "Famous Bob" as Bob << Generated >>participant Alice << (C,#ADD1B2) Testable >>

Bob->Alice: First message

@enduml

Por defecto, guillemet (comillas) son usadas para mostrar el estereotipo. Puedes cambiar este com-portamiento usando skinparam guillemet:@startuml

skinparam guillemet falseparticipant "Famous Bob" as Bob << Generated >>participant Alice << (C,#ADD1B2) Testable >>

Bob->Alice: First message

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 16 of 127

Page 18: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.22 Mayor información en los títulos 1 DIAGRAMA DE SECUENCIA

@startuml

participant Bob << (C,#ADD1B2) >>participant Alice << (C,#ADD1B2) >>

Bob->Alice: First message

@enduml

1.22 Mayor información en los títulosPuedes usar sintaxis de Creole en el título.@startuml

title __Simple__ **communication** example

Alice -> Bob: Authentication RequestBob -> Alice: Authentication Response

@enduml

Puedes añadir una nueva línea usando \n en la descripción del título.@startuml

title __Simple__ communication example\non several lines

Alice -> Bob: Authentication RequestBob -> Alice: Authentication Response

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 17 of 127

Page 19: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.23 Entorno de participante 1 DIAGRAMA DE SECUENCIA

Además puedes definir un título en varias líneas usando las palabras reservadas title y end title .@startuml

title<u>Simple</u> communication exampleon <i>several</i> lines and using <font color=red>html</font>This is hosted by <img:sourceforge.jpg>end title

Alice -> Bob: Authentication RequestBob -> Alice: Authentication Response

@enduml

1.23 Entorno de participanteEs posible dibujar una caja alrededor de algunos participantes, usando los comandos box y end box .

Puedes añadir un título opcional o un color de fondo opcional, después de la palabra reservada box .@startuml

box "Internal Service" #LightBlueparticipant Bobparticipant Aliceend boxparticipant Other

Bob -> Alice : helloAlice -> Other : hello

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 18 of 127

Page 20: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.24 Removiendo pie de página 1 DIAGRAMA DE SECUENCIA

1.24 Removiendo pie de páginaPuedes usar las palabras reservadas hide footbox para remover el pie de página del diagrama.@startuml

hide footboxtitle Footer removed

Alice -> Bob: Authentication RequestBob --> Alice: Authentication Response

@enduml

1.25 Personalización (Skinparam)Puedes usar el comando skinparam para cambiar los colores y fuentes en el dibujo.

Puedes usar este comando:

• En la definición del diagrama, como cualquier otro comando,

• En un archivo incluido,

• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

También puedes cambiar otros parámetros de renderización, como se ve en los siguientes ejemplos@startumlskinparam sequenceArrowThickness 2skinparam roundcorner 20skinparam maxmessagesize 60skinparam sequenceParticipant underline

actor Userparticipant "First Class" as Aparticipant "Second Class" as Bparticipant "Last Class" as C

User -> A: DoWorkactivate A

A -> B: Create Requestactivate B

B -> C: DoWorkactivate CC --> B: WorkDone

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 19 of 127

Page 21: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.25 Personalización (Skinparam) 1 DIAGRAMA DE SECUENCIA

destroy C

B --> A: Request Createddeactivate B

A --> User: Donedeactivate A

@enduml

@startumlskinparam backgroundColor #EEEBDCskinparam handwritten true

skinparam sequence {ArrowColor DeepSkyBlueActorBorderColor DeepSkyBlueLifeLineBorderColor blueLifeLineBackgroundColor #A9DCDF

ParticipantBorderColor DeepSkyBlueParticipantBackgroundColor DodgerBlueParticipantFontName ImpactParticipantFontSize 17ParticipantFontColor #A9DCDF

ActorBackgroundColor aquaActorFontColor DeepSkyBlueActorFontSize 17ActorFontName Aapex}

actor Userparticipant "First Class" as Aparticipant "Second Class" as Bparticipant "Last Class" as C

User -> A: DoWorkactivate A

A -> B: Create Requestactivate B

B -> C: DoWorkactivate C

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 20 of 127

Page 22: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

1.26 Cambiando el relleno 1 DIAGRAMA DE SECUENCIA

C --> B: WorkDonedestroy C

B --> A: Request Createddeactivate B

A --> User: Donedeactivate A

@enduml

1.26 Cambiando el rellenoEs posible ajustar algunos parámetros de relleno@startumlskinparam ParticipantPadding 20skinparam BoxPadding 10

box "Foo1"participant Alice1participant Alice2end boxbox "Foo2"participant Bob1participant Bob2end boxAlice1 -> Bob1 : helloAlice1 -> Out : out@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 21 of 127

Page 23: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2 DIAGRAMA DE CASOS DE USO

2 Diagrama de Casos de Uso2.1 Casos de usoLos casos de uso estan encerrados entre paréntesis (los paréntesis tienen un aspecto similar a un óvalo).

También puede usar la palabra usecase para crear un caso de uso. Ademas puede crear un alias,usando la palabra as. Este alias será usado mas adelante, cuando defina relaciones.@startuml

(First usecase)(Another usecase) as (UC2)usecase UC3usecase (Last\nusecase) as UC4

@enduml

2.2 ActoresLos actores se encierran entre dos puntos.

También puedes usar la palabra reservada actor para definir un actor. Además puedes definir unalias, usando la palabra reservada as. Este alias será usado más adelante, cuando definamos relaciones.

Veremos más adelante que las declaraciones de los actores son opcionales.@startuml

:First Actor::Another\nactor: as Men2actor Men3actor :Last actor: as Men4

@enduml

2.3 Descripción de Casos de usoSi quiere realizar una descripción en varias líneas, puede usar citas (” ”).

También puede usar los siguientes separadores: -- .. == __. Y puede introducir títulos dentro de losseparadores.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 22 of 127

Page 24: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.4 Ejemplo básico 2 DIAGRAMA DE CASOS DE USO

@startuml

usecase UC1 as "You can useseveral lines to define your usecase.You can also use separators.--Several separators are possible.==And you can add titles:..Conclusion..This allows large description."

@enduml

2.4 Ejemplo básicoPara relacionar actores y casos de uso, la flecha --> es usada.

Cuanto más guiones "-" en la flecha, más larga será la misma. Puedes añadir una etiqueta en laflecha, añadiendo el carácter ”:” en la definición de la flecha.

En este ejemplo, puedes ver que User no ha sido definido, y es usado como un actor.@startuml

User -> (Start)User --> (Use the application) : A small label

:Main Admin: ---> (Use the application) : This is\nyet another\nlabel

@enduml

2.5 Extensión

Si un actor/caso de uso extiende a otro, puedes usar el símbolo <|-- (que significa ).

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 23 of 127

Page 25: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.6 Usando notas 2 DIAGRAMA DE CASOS DE USO

@startuml:Main Admin: as Admin(Use the application) as (Use)

User <|-- Admin(Start) <|-- (Use)

@enduml

2.6 Usando notasPuedes usar las palabras claves: note left of , note right of , note top of , note bottom of, paraañadir notas relacionadas a un objeto en particular.

También se puede añadir un nota solitaria con la palabra clave note, y después realacionarla con otroobjeto usando el símbolo .. .@startuml:Main Admin: as Admin(Use the application) as (Use)

User -> (Start)User --> (Use)

Admin ---> (Use)

note right of Admin : This is an example.

note right of (Use)A note can alsobe on several linesend note

note "This note is connected\nto several objects." as N2(Start) .. N2N2 .. (Use)@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 24 of 127

Page 26: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.7 Estereotipos 2 DIAGRAMA DE CASOS DE USO

2.7 EstereotiposPuedes añadir estereotipos mientras defines actores y casos de uso, usando ” << ” y ” >> ”.@startumlUser << Human >>:Main Database: as MySql << Application >>(Start) << One Shot >>(Use the application) as (Use) << Main >>

User -> (Start)User --> (Use)

MySql --> (Use)

@enduml

2.8 Cambiar dirección a las flechasPor defecto, conexiones entre clases tiene dos guiones -- y son verticalmente orientadas. Es posible usaruna conexión horizontal, colocando un solo guión (o punto) de esta forma:@startuml:user: --> (Use case 1):user: -> (Use case 2)@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 25 of 127

Page 27: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.9 Dividiendo los diagramas 2 DIAGRAMA DE CASOS DE USO

También puedes cambiar de dirección revirtiendo la conexión:@startuml(Use case 1) <.. :user:(Use case 2) <- :user:@enduml

También es posible cambiar la dirección de una flecha añadiendo las palabras clave left, right, upor down, dentro de la misma:@startuml:user: -left-> (dummyLeft):user: -right-> (dummyRight):user: -up-> (dummyUp):user: -down-> (dummyDown)@enduml

Puedes acortar la flecha usando sólo el primer carácter de la dirección (por ejemplo, -d- en lugar de-down-) o los primeros dos caracteres (-do-).

Por favor tenga en cuenta que no debería abusar de esta funcionalidad : Graphviz usualmente devuelvebuenos resultados sin realizar muchos ajustes.

2.9 Dividiendo los diagramasLa palabra clave newpage divide su diagrama en varias páginas o imágenes.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 26 of 127

Page 28: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.10 Dirección: de izquierda a derecha 2 DIAGRAMA DE CASOS DE USO

@startuml:actor1: --> (Usecase1)newpage:actor2: --> (Usecase2)@enduml

2.10 Dirección: de izquierda a derechaEl comportamiento general cuando se construye un diagrama, es top to bottom.@startuml'defaulttop to bottom directionuser1 --> (Usecase 1)user2 --> (Usecase 2)

@enduml

Puede cambiar a left to right usando el comando left to right direction. En ocaciones, el resultadoes mejor con esta dirección.@startuml

left to right directionuser1 --> (Usecase 1)user2 --> (Usecase 2)

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 27 of 127

Page 29: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.11 Personalización (Skinparam) 2 DIAGRAMA DE CASOS DE USO

2.11 Personalización (Skinparam)Puedes usar el comando skinparam para cambiar los colores y las fuentes de los dibujos

Puedes usar este comando:

• En la definición del diagrama, como cualquier otro comando,

• En un archivo incluido,

• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

Puedes definir colores y fuentes específicas para los actores y casos de uso estereotipados.@startumlskinparam handwritten true

skinparam usecase {BackgroundColor DarkSeaGreenBorderColor DarkSlateGray

BackgroundColor<< Main >> YellowGreenBorderColor<< Main >> YellowGreen

ArrowColor OliveActorBorderColor blackActorFontName Courier

ActorBackgroundColor << Human >> Gold}

User << Human >>:Main Database: as MySql << Application >>(Start) << One Shot >>(Use the application) as (Use) << Main >>

User -> (Start)User --> (Use)

MySql --> (Use)

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 28 of 127

Page 30: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

2.12 Un ejemplo completo 2 DIAGRAMA DE CASOS DE USO

2.12 Un ejemplo completo

@startumlleft to right directionskinparam packageStyle rectangleactor customeractor clerkrectangle checkout {customer -- (checkout)(checkout) .> (payment) : include(help) .> (checkout) : extends(checkout) -- clerk}@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 29 of 127

Page 31: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3 DIAGRAMA DE CLASES

3 Diagrama de Clases3.1 Relación entre clasesLas relaciones entre clases se definen usando los siguientes símbolos:

Extensión <|--Composición *--Agregación o--

Es posible intercambiar -- por .. para tener lineas punteadas.Sabiendo esas reglas, es posible sacar los siguientes dibujos:

@startumlClass01 <|-- Class02Class03 *-- Class04Class05 o-- Class06Class07 .. Class08Class09 -- Class10@enduml

@startumlClass11 <|.. Class12Class13 --> Class14Class15 ..> Class16Class17 ..|> Class18Class19 <--* Class20@enduml

@startumlClass21 #-- Class22Class23 x-- Class24Class25 }-- Class26Class27 +-- Class28Class29 ^-- Class30@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 30 of 127

Page 32: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.2 Etiquetas en las relaciones 3 DIAGRAMA DE CLASES

3.2 Etiquetas en las relacionesEs posible añadir etiquetas en las relaciones, usando ”:”, seguido del texto de la etiqueta.

Para la cardinalidad, puede usar comillas dobles "" en cada lado de la relación.

@startuml

Class01 "1" *-- "many" Class02 : contains

Class03 o-- Class04 : aggregation

Class05 --> "1" Class06

@enduml

Se puede añadir una flecha extra apuntando a un objeto, mostrando que objeto actúa sobre el otroobjeto, usando < o > al inicio o al final de la etiqueta.@startumlclass Car

Driver - Car : drives >Car *- Wheel : have 4 >Car -- Person : < owns

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 31 of 127

Page 33: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.3 Añadiendo métodos 3 DIAGRAMA DE CLASES

3.3 Añadiendo métodosPara declarar las propiedades y métodos, se puede usar el símbolo ":" seguido del nombre de la propiedad

o el método.

El sistema busca por paréntesis para elegir entre métodos y propiedades.

@startumlObject <|-- ArrayList

Object : equals()ArrayList : Object[] elementDataArrayList : size()

@enduml

También es posible agrupar entre llaves { todos las propiedades y métodos.

Tenga en cuenta que la sintexis es muy flexible acerca del orden tipo/nombre.

@startumlclass Dummy {String datavoid methods()}

class Flight {flightNumber : IntegerdepartureTime : Date}@enduml

Puede usar los modificadores {field} y {method} para modificar el comportamiento por defecto delparse sobre los campos y métodos.@startumlclass Dummy {{field} A field (despite parentheses){method} Some method}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 32 of 127

Page 34: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.4 Definiendo la visibilidad 3 DIAGRAMA DE CLASES

3.4 Definiendo la visibilidadCuando defines propiedades o métodos, puedes usar caracteres para establecer la visibilidad que les

correspondan:

- privado# protegido paquete privado+ público

@startuml

class Dummy {-field1#field2~method1()+method2()}

@enduml

Puedes desactivar esta característica usando el comando skinparam classAttributeIconSize 0 :

@startumlskinparam classAttributeIconSize 0class Dummy {-field1#field2~method1()+method2()}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 33 of 127

Page 35: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.5 Abstracto y Estático 3 DIAGRAMA DE CLASES

3.5 Abstracto y EstáticoPuedes definir métodos o propiedades abstractas y estáticas usando los modificadores static o abstract

.

Esos modificadores pueden ser usado al comienzo o al final de un línea. También puedes usar classifieren lugar de static.

@startumlclass Dummy {{static} String id{abstract} void methods()}@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 34 of 127

Page 36: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.6 Cuerpo avanzado de las clases 3 DIAGRAMA DE CLASES

3.6 Cuerpo avanzado de las clasesPor defecto, las propiedades y los métodos son agrupados automáticamente por PlantUML. Puedes usar

separadores para definir tu propia manera de ordenar las propiedades y los métodos. Son posibleslos siguientes separadores: -- .. == __.

También puedes definir títulos dentro de los separadores:

@startumlclass Foo1 {You can useseveral lines..as you wantand group==things together.__You can have as many groupsas you want--End of class}

class User {.. Simple Getter ..+ getName()+ getAddress().. Some setter ..+ setName()__ private data __int age-- encrypted --String password}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 35 of 127

Page 37: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.7 Notas y estereotipos 3 DIAGRAMA DE CLASES

3.7 Notas y estereotiposLos estereotipos son definidos con la palabra clave class ” << ” and ” >> ” .

También puedes definir notas usando las palabras claves note left of , note right of , note topof , note bottom of .

Además puedes definir una nota en la última clase definida usando note left, note right, note top,note bottom .

Una nota también puede definirse solitariamente con la palabra clave note, y a continuación relacionarlacon otro objeto usando el símbolo .. .@startumlclass Object << general >>Object <|--- ArrayList

note top of Object : In java, every class\nextends this one.

note "This is a floating note" as N1note "This note is connected\nto several objects." as N2Object .. N2N2 .. ArrayList

class Foonote left: On last defined class

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 36 of 127

Page 38: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.8 Más acerca de notas 3 DIAGRAMA DE CLASES

3.8 Más acerca de notas

También es posible usar algunas etiquetas HTML como:

• <b>• <u>• <i>• <s>, <del>, <strike>• <font color="#AAAAAA"> or <font color="colorName">• <color:#AAAAAA> or <color:colorName>• <size:nn> to change font size• <img src="file"> or <img:file> : the file must be accessible by the filesystem

También puedes tener una nota en varias líneas.És possible definir una nota en la última clase definida usando note left, note right, note top,note bottom.@startuml

class Foonote left: On last defined class

note top of ObjectIn java, <size:18>every</size> <u>class</u><b>extends</b><i>this</i> one.end note

note as N1This note is <u>also</u><b><color:royalBlue>on several</color><s>words</s> linesAnd this is hosted by <img:sourceforge.jpg>end note

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 37 of 127

Page 39: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.9 Notas en enlaces 3 DIAGRAMA DE CLASES

3.9 Notas en enlaces

Es posible añadir una nota en un enlace, justo después de la definición de dicho enlace, usandonote on link .También puedes usar note left on link, note right on link, note top on link, note bottomon link si quieres cambiar la posición de la nota, en relación a una etiqueta.@startuml

class DummyDummy --> Foo : A linknote on link #red: note that is red

Dummy --> Foo2 : Another linknote right on link #bluethis is my note on right linkand in blueend note

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 38 of 127

Page 40: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.10 Clases abstractas e interfaces 3 DIAGRAMA DE CLASES

3.10 Clases abstractas e interfaces

Puedes declarar una clase como abstracta usando las palabras claves "abstract" or "abstractclass" .La clase será impresa en italic .Puedes usar también las palabras claves interface, annotation and enum .@startuml

abstract class AbstractListabstract AbstractCollectioninterface Listinterface Collection

List <|-- AbstractListCollection <|-- AbstractCollection

Collection <|- ListAbstractCollection <|- AbstractListAbstractList <|-- ArrayList

class ArrayList {Object[] elementDatasize()}

enum TimeUnit {DAYSHOURSMINUTES}

annotation SuppressWarnings

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 39 of 127

Page 41: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.11 Sin usar letras 3 DIAGRAMA DE CLASES

3.11 Sin usar letras

Si no desea usar letras en la visualización de la clase (o enum...), puede:

• Utilizar la palabra reservada as en la definición de la clase• Colocar comillas "" alrededor del nombre de la clase

@startumlclass "This is my class" as class1class class2 as "It works this way too"

class2 *-- "foo/dummy" : use@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 40 of 127

Page 42: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.12 Atributos, métodos... ocultos 3 DIAGRAMA DE CLASES

3.12 Atributos, métodos... ocultos

Puede parametrizar la visualización de las clases usando el comando hide/show .El comando básico es: hide empty members. Este comando ocultará atributos y métodos si estánvacíos.En lugar de empty members , puedes usar:

• empty fields o empty attributes para atributos vacíos.• empty methods para métodos vacíos,• fields o attributes que ocultará atributos, incluso si son descritos,• methods que ocultará métodos, incluso si son descritos,• members que ocultará atributos y métodos, incluso si son descritos.• circle para el carácter encerrado en un círculo, en frente del nombre de clase.• stereotype para el estereotipo.

También puede proporcionar, justo después las palabras clave hide o show:

• class para todas las clases,• interface para todas las interfaces,• enum para todos los enums,• <<foo1>> para clases que son estereotipadas con foo1,• un nombre de clase existente.

Puedes usar varios comandos show/hide para definir reglas y excepciones.@startuml

class Dummy1 {+myMethods()}

class Dummy2 {+hiddenMethod()}

class Dummy3 <<Serializable>> {String name}

hide membershide <<Serializable>> circleshow Dummy1 methodsshow <<Serializable>> fields

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 41 of 127

Page 43: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.13 Clases ocultas 3 DIAGRAMA DE CLASES

3.13 Clases ocultas

También puedes usar el comando show/hide para ocultar clases.Esto puede llegar a ser útil si defines una archivo !included muy grande y si deseas ocultar algunasclases después de la inclusión de dicho archivo.@startuml

class Foo1class Foo2

Foo2 *-- Foo1

hide Foo2

@enduml

3.14 Uso de clases genéricas

También puedes usar los signos menor < y mayor > para definir el uso de clases genéricas.@startuml

class Foo<? extends Element> {int size()}Foo *- Element

@enduml

Es posible desactivar este dibujo con el comando skinparam genericDisplay old.

3.15 Círculo enmarcador específico

Usualmente, un carácter enmarcado en un círculo (C,I,E o A) es usado por clases, interfaces, enumy clases abstractas.Pero puedes definir tu propio enmarcado para una clase cuando defines un estereotipo, añadiendoun carácter y un color, así como en el ejemplo:@startuml

class System << (S,#FF7700) Singleton >>class Date << (D,orchid) >>@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 42 of 127

Page 44: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.16 Paquetes 3 DIAGRAMA DE CLASES

3.16 Paquetes

Puedes definir un paquete usando la palabra reservada package, y opcionalmente declarar un colorde fondo para tu paquete (Usando el nombre o el código HTML del color).Tenga en cuenta que las definiciones de paquetes pueden ser anidadas.@startuml

package "Classic Collections" #DDDDDD {Object <|-- ArrayList}

package net.sourceforge.plantuml {Object <|-- Demo1Demo1 *- Demo2}

@enduml

3.17 Estilos de paquetes

Hay diferentes estilos disponibles para paquetes.Puedes especificarlos, ya sea configurando un estilo por defecto con el comando : skinparampackageStyle , o usando un estereotipo en el paquete.@startumlscale 750 widthpackage foo1 <<Node>> {class Class1}

package foo2 <<Rectangle>> {class Class2}

package foo3 <<Folder>> {class Class3}

package foo4 <<Frame>> {class Class4}

package foo5 <<Cloud>> {class Class5}

package foo6 <<Database>> {class Class6}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 43 of 127

Page 45: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.18 Espacios de nombre 3 DIAGRAMA DE CLASES

Puedes también definir enlaces entre paquetes, como en el siguiente ejemplo:@startuml

skinparam packageStyle rectangle

package foo1.foo2 {}

package foo1.foo2.foo3 {class Object}

foo1.foo2 +-- foo1.foo2.foo3

@enduml

3.18 Espacios de nombre

En los paquetes, el nombre de una clase es el único identificador de esta clase. Quiere decir que nopuedes tener dos clases con el mismo nombre en diferentes paquetes.En este caso, deberías usar espacios de nombres en lugar de paquetes.Puedes referir a clases de otros espacios de nombre describiendo su ruta completamente. A clasesdel espacio de nombre por defecto son descritas colocando un punto al inicio.Tenga en cuenta que no tiene que especificar explícitamente un espacio de nombre : una clasealtamente clasificada es automáticamente colocada en el espacio de nombre correcto.@startuml

class BaseClass

namespace net.dummy #DDDDDD {.BaseClass <|-- PersonMeeting o-- Person

.BaseClass <|- Meeting}

namespace net.foo {net.dummy.Person <|- Person.BaseClass <|-- Person

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 44 of 127

Page 46: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.19 Creación automática del espacio de nombre 3 DIAGRAMA DE CLASES

net.dummy.Meeting o-- Person}

BaseClass <|-- net.unused.Person

@enduml

3.19 Creación automática del espacio de nombre

Puedes definir otro separador (otro además del punto) usando el comando : set namespaceSeparator???.@startuml

set namespaceSeparator ::class X1::X2::foo {some info}

@enduml

Puedes deshabilitar la creación automática de paquetes usando el comando set namespaceSeparatornone.@startuml

set namespaceSeparator noneclass X1.X2.foo {some info}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 45 of 127

Page 47: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.20 Interface Lollipop 3 DIAGRAMA DE CLASES

3.20 Interface Lollipop

También puedes definir interfaces lollipops en clases, usando la siguiente sintaxsis:

• bar ()- foo• bar ()-- foo• foo -() bar

@startumlclass foobar ()- foo@enduml

3.21 Cambiando la dirección de las flechas

Por defecto, enlaces entre clases tienen dos guiones -- y son verticalemnte orientados. Es posibleusar un enlace horizontal colocando un solo guión (o punto), así:@startumlRoom o- StudentRoom *-- Chair@enduml

También puedes cambiar las direcciones revirtiendo el enlace:@startumlStudent -o RoomChair --* Room@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 46 of 127

Page 48: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.22 Asociación de clases 3 DIAGRAMA DE CLASES

También es posible cambiar la dirección de la flecha añadiendo las palabras claves left, right, upor down dentro de la flecha:@startumlfoo -left-> dummyLeftfoo -right-> dummyRightfoo -up-> dummyUpfoo -down-> dummyDown@enduml

Puedes acortar la flecha usando el primer carácter de la dirección (por ejemplo, -d- en lugar de-down-) o los primeros dos caracteres.Por favor tenga en cuenta que no debería abusar de esta funcionalidad : Graphviz usualmente otorgabuenos resultados sin necesidad de ajustar.

3.22 Asociación de clases

Puedes definir association class después de que una relación haya sido establecida entre dos clases,como en este ejemplo:@startumlclass Student {Name}Student "0..*" - "1..*" Course(Student, Course) .. Enrollment

class Enrollment {drop()cancel()}@enduml

Puedes definirla en otra dirección:

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 47 of 127

Page 49: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.23 Personalización (Skinparam) 3 DIAGRAMA DE CLASES

@startumlclass Student {Name}Student "0..*" -- "1..*" Course(Student, Course) . Enrollment

class Enrollment {drop()cancel()}@enduml

3.23 Personalización (Skinparam)

Puedes usar el comando skinparam para cambiar los colores y fuentes en el diagrama.Puedes usar este comando:

• En la definición del diagrama, como cualquier otro comando,• En un archivo incluido,• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

@startuml

skinparam class {BackgroundColor PaleGreenArrowColor SeaGreenBorderColor SpringGreen}skinparam stereotypeCBackgroundColor YellowGreen

Class01 "1" *-- "many" Class02 : contains

Class03 o-- Class04 : aggregation

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 48 of 127

Page 50: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.24 Estereotipos personalizados 3 DIAGRAMA DE CLASES

3.24 Estereotipos personalizados

Puedes definir colores y fuentes específicas para clases esterotipadas.@startuml

skinparam class {BackgroundColor PaleGreenArrowColor SeaGreenBorderColor SpringGreenBackgroundColor<<Foo>> WheatBorderColor<<Foo>> Tomato}skinparam stereotypeCBackgroundColor YellowGreenskinparam stereotypeCBackgroundColor << Foo >> DimGray

Class01 <<Foo>>Class03 <<Foo>>Class01 "1" *-- "many" Class02 : contains

Class03 o-- Class04 : aggregation

@enduml

3.25 Degrado de colores

Es posible declarar colores individuales para clases o notas usando la notación .Puedes usar el nombre estándar del color o el código RGB.También puedes usar degradación de color en el fondo, con la siguiente sintaxis: dos nombres decolores separados por cualquier de los siguientes:

• |,• /,• \,• or -

dependiendo de la dirección del degradado.Por ejemplo, podrías tener:

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 49 of 127

Page 51: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.26 Ayudar en el diseño 3 DIAGRAMA DE CLASES

@startuml

skinparam backgroundcolor AntiqueWhite/Goldskinparam classBackgroundColor Wheat|CornflowerBlue

class Foo #red-greennote left of Foo #blue\9932CCthis is mynote on this classend note

package example #GreenYellow/LightGoldenRodYellow {class Dummy}

@enduml

3.26 Ayudar en el diseño

Sometimes, the default layout is not perfect...You can use together keyword to group some classes together : the layout engine will try to groupthem (as if they were in the same package).You can also use hidden links to force the layout.@startuml

class Bar1class Bar2together {class Together1class Together2class Together3}Together1 - Together2Together2 - Together3Together2 -[hidden]--> Bar1Bar1 -[hidden]> Bar2

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 50 of 127

Page 52: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.27 Dividiendo archivos grandes 3 DIAGRAMA DE CLASES

3.27 Dividiendo archivos grandes

A veces, puedes obtener imágenes bastante grandes.Puedes usar el comando ”page (hpages)x(vpages)” para dividir la imágen generada, en variasimágenes:hpages es el número que indica la cantidad de páginas horizontales, y vpages es el número queindica la cantidad de páginas verticales.También puede utilizar algunos ajustes específicos skinparam poner fronteras en las páginas splitted(ver ejemplo).@startuml' Split into 4 pagespage 2x2skinparam pageMargin 10skinparam pageExternalColor grayskinparam pageBorderColor black

class BaseClass

namespace net.dummy #DDDDDD {.BaseClass <|-- PersonMeeting o-- Person

.BaseClass <|- Meeting

}

namespace net.foo {net.dummy.Person <|- Person.BaseClass <|-- Person

net.dummy.Meeting o-- Person}

BaseClass <|-- net.unused.Person@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 51 of 127

Page 53: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

3.27 Dividiendo archivos grandes 3 DIAGRAMA DE CLASES

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 52 of 127

Page 54: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4 DIAGRAMA DE ACTIVIDADES

4 Diagrama de Actividades

4.1 Actividades simples

Puedes usar (*) para el punto de inicio y de final en un diagrama de actividades.En algunos casos, quizás quieras usar (*top) para forzar a que el punto de inicio se ubique en laparte superior del diagrama.Utilice --> para las flechas.@startuml

(*) --> "First Activity""First Activity" --> (*)

@enduml

4.2 Etiquetas en las flechas

Por defecto, una flecha comienza en la última actividad usada.Puedes colocar una etiqueta sobre una flecha usando corchetes, [ ] , justo después de la definiciónde la flecha.@startuml

(*) --> "First Activity"-->[You can put also labels] "Second Activity"--> (*)

@enduml

4.3 Cambiando la dirección de la flecha

Puedes usar -> para flechas horizontales. Es posible formzar la dirección de una flecha usando lasiguiente sintaxis:

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 53 of 127

Page 55: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.4 Ramas (bifurcaciones) 4 DIAGRAMA DE ACTIVIDADES

• -down-> (default arrow)• -right-> or ->• -left->• -up->

@startuml

(*) -up-> "First Activity"-right-> "Second Activity"--> "Third Activity"-left-> (*)

@enduml

4.4 Ramas (bifurcaciones)

Puedes usar las palabras reservadas if/then/else para definir ramas o caminos alternos.@startuml(*) --> "Initialization"

if "Some Test" then-->[true] "Some Activity"--> "Another activity"-right-> (*)else->[false] "Something else"-->[Ending process] (*)endif

@enduml

Desafortunadamente, a veces tendrás que repetir la misma actividad en el texto del diagrama:

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 54 of 127

Page 56: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.5 Más acerca de las Ramas 4 DIAGRAMA DE ACTIVIDADES

@startuml(*) --> "check input"If "input is verbose" then--> [Yes] "turn on verbosity"--> "run command"else--> "run command"Endif-->(*)@enduml

4.5 Más acerca de las Ramas

Por defecto, una rama es conectada con la última actividad definida, pero es posible sobrescribiresto y definir un enlace con la palabra reservada if .También es posible anidar ramas.@startuml

(*) --> if "Some Test" then

-->[true] "activity 1"

if "" then-> "activity 3" as a3elseif "Other test" then-left-> "activity 5"else--> "activity 6"endifendif

else

->[false] "activity 2"

endif

a3 --> if "last test" then--> "activity 7"else-> "activity 8"

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 55 of 127

Page 57: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.6 Sincronización 4 DIAGRAMA DE ACTIVIDADES

endif

@enduml

4.6 Sincronización

Puedes usar === code === para mostrar barras de sincronización.@startuml

(*) --> ===B1===--> "Parallel Activity 1"--> ===B2===

===B1=== --> "Parallel Activity 2"--> ===B2===

--> (*)

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 56 of 127

Page 58: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.7 Descripción de actividades de gran contenido 4 DIAGRAMA DE ACTIVIDADES

4.7 Descripción de actividades de gran contenido

Cuando declaras actividades, puedes abarcar la descripción del texto, en varias líneas. Tambiénpuedes añadir \n en la descripción.También puedes colocar una pequeña cantidad de código en la actividad, con la palabra reservadaas . Este código puede usarse más adelante en la descripción del diagrama.@startuml(*) -left-> "this <size:20>activity</size>is <b>very</b> <color:red>long2</color>and defined on several linesthat contains many <i>text</i>" as A1

-up-> "Another activity\n on several lines"

A1 --> "Short activity <img:sourceforge.jpg>"@enduml

4.8 Notas

Puedes añadir notas sobre la actividad usando los comandos note left, note right, note top ornote bottom, justo después de la descripción de la actividad a la quieres añadirle la nota.Si quieres colocar una nota sobre el punto de inicio, define la nota al comienzo de la descripción deldiagrama.También puedes tener una nota de varias líneas, usando la palabra reservada endnote .@startuml

(*) --> "Some Activity"note right: This activity has to be defined"Some Activity" --> (*)note leftThis note is onseveral linesend note

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 57 of 127

Page 59: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.9 Partición 4 DIAGRAMA DE ACTIVIDADES

4.9 Partición

Puedes definir una partición usando la palabra reservada partition y opcionalmente declarar uncolor de fondo para tu partición (Usando el nombre o código HTML del color)Cuando declaras actividades, éstas son automáticamente colocadas en la última partición usada.Puedes cerrar la partición usando una llave de cierre }.@startuml

partition Conductor {(*) --> "Climbs on Platform"--> === S1 ===--> Bows}

partition Audience #LightSkyBlue {=== S1 === --> Applauds}

partition Conductor {Bows --> === S2 ===--> WavesArmesApplauds --> === S2 ===}

partition Orchestra #CCCCEE {WavesArmes --> Introduction--> "Play music"}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 58 of 127

Page 60: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.10 Personalización (Skinparam) 4 DIAGRAMA DE ACTIVIDADES

4.10 Personalización (Skinparam)

Puedes usar el comando skinparam para cambiar las fuentes y colores en el diagrama.Puedes usar este comando :

• En la definición del diagrama, como cualquier otro comando,• En un archivo incluido,• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

Puedes definir colores y fuentes específicas para actividades estereotipadas.@startuml

skinparam backgroundColor #AAFFFFskinparam activity {StartColor redBarColor SaddleBrownEndColor SilverBackgroundColor PeruBackgroundColor<< Begin >> OliveBorderColor PeruFontName Impact}

(*) --> "Climbs on Platform" << Begin >>--> === S1 ===--> Bows--> === S2 ===--> WavesArmes--> (*)

@enduml

4.11 Octágono

Puedes cambiar la forma de las actividades a un octágono usando el comando skinparam activityShapeoctagon .@startuml'Default is skinparam activityShape roundBoxskinparam activityShape octagon

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 59 of 127

Page 61: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.12 Un ejemplo completo 4 DIAGRAMA DE ACTIVIDADES

(*) --> "First Activity""First Activity" --> (*)

@enduml

4.12 Un ejemplo completo

@startumltitle Servlet Container

(*) --> "ClickServlet.handleRequest()"--> "new Page"

if "Page.onSecurityCheck" then->[true] "Page.onInit()"

if "isForward?" then->[no] "Process controls"

if "continue processing?" then-->[yes] ===RENDERING===else-->[no] ===REDIRECT_CHECK===endif

else-->[yes] ===RENDERING===endif

if "is Post?" then-->[yes] "Page.onPost()"--> "Page.onRender()" as render--> ===REDIRECT_CHECK===else-->[no] "Page.onGet()"--> renderendif

else-->[false] ===REDIRECT_CHECK===endif

if "Do redirect?" then->[yes] "redirect request"--> ==BEFORE_DESTROY===elseif "Do Forward?" then-left->[yes] "Forward request"--> ==BEFORE_DESTROY===else-right->[no] "Render page template"--> ==BEFORE_DESTROY===endifendif

--> "Page.onDestroy()"-->(*)

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 60 of 127

Page 62: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.12 Un ejemplo completo 4 DIAGRAMA DE ACTIVIDADES

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 61 of 127

Page 63: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

4.12 Un ejemplo completo 4 DIAGRAMA DE ACTIVIDADES

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 62 of 127

Page 64: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5 DIAGRAMA DE ACTIVIDADES (BETA)

5 Diagrama de Actividades (beta)

La actual sintaxis para los diagramas de actividades tiene varias limitaciones e inconvenientes (porejemplo, es difícil de mantener).Entonces, una implementación y sintaxis nueva propuesta como versión beta , es ofrecida a losusuarios (empezando con V7947), sólo así podremos definir un mejor formato y sintaxis.Otra ventaja de esta nueva implementación es que acaba con la necesidad de tener Graphviz insta-lado (como en los diagramas de secuencia).La nueva sintaxis reemplazará la anterior. Sin embargo, por razones de compatibilidad, la sintaxisvieja seguirá siendo reconocida, para asegurarse la retrocompatibilidad .Los usuarios están siendo motivados para migrarse a la nueva sintaxis.

5.1 Una Actividad simple

Las etiquetas de las actividades inician con un dos puntos (:) y terminan con un punto y coma (;).Se puede aplicar formato a un texto usando sintaxis de WikiCreole.Están implícitamente enlazados en el orden de su definición.@startuml:Hello world;:This is on defined onseveral **lines**;@enduml

5.2 Start/Stop

Puedes usar las palabras reservadas start y stop para denotar el comienzo y el final del diagrama.@startumlstart:Hello world;:This is on defined onseveral **lines**;stop@enduml

También puedes usar la palabra reservada end.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 63 of 127

Page 65: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.3 Condicionales 5 DIAGRAMA DE ACTIVIDADES (BETA)

@startumlstart:Hello world;:This is on defined onseveral **lines**;end@enduml

5.3 Condicionales

Puedes usar las palabras reservadas if, then y else para colocar condiciones en tus diagramas.Las etiquetas pueden ser proporcionadas usando paréntesis.@startuml

start

if (Graphviz installed?) then (yes):process all\ndiagrams;else (no):process only__sequence__ and __activity__ diagrams;endif

stop

@enduml

Puedes usar la palabra reservada elseif para tener varias condiciones :@startumlstartif (condition A) then (yes):Text 1;elseif (condition B) then (yes):Text 2;stopelseif (condition C) then (yes):Text 3;elseif (condition D) then (yes):Text 4;

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 64 of 127

Page 66: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.4 El ciclo Repeat 5 DIAGRAMA DE ACTIVIDADES (BETA)

else (nothing):Text else;endifstop@enduml

5.4 El ciclo Repeat

Puedes usar las palabras reservadas repeat y repeatwhile para colocar bucles.@startuml

start

repeat:read data;:generate diagrams;repeat while (more data?)

stop

@enduml

5.5 El ciclo While

Puedes usar las palabras reservadas while y end while para un ciclo repetitivo.@startuml

start

while (data available?)

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 65 of 127

Page 67: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.6 Procesamiento paralelo 5 DIAGRAMA DE ACTIVIDADES (BETA)

:read data;:generate diagrams;endwhile

stop

@enduml

Es posible proporcionar una etiqueta después de la palabra reservada endwhile, o usar la palabrareservada is .@startumlwhile (check filesize ?) is (not empty):read file;endwhile (empty):close file;@enduml

5.6 Procesamiento paralelo

Puedes usar las palabras reservadas fork, fork again y end fork para denotar procesamientosparalelos.@startuml

start

if (multiprocessor?) then (yes)fork:Treatment 1;fork again:Treatment 2;end forkelse (monoproc):Treatment 1;:Treatment 2;endif

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 66 of 127

Page 68: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.7 Notas 5 DIAGRAMA DE ACTIVIDADES (BETA)

5.7 Notas

Se puede aplicar formato a un texto usando sintaxis de WikiCreole.Una nota puede ser flotante, usando la palabra clave floating.@startuml

start:foo1;floating note left: This is a note:foo2;note rightThis note is on several//lines// and cancontain <b>HTML</b>====* Calling the method ""foo()"" is prohibitedend notestop

@enduml

5.8 Colores

Puedes especificar colores en algunas actividades.@startuml

start:starting progress;#HotPink:reading configuration filesThese files should edited at this point!;#AAAAAA:ending of the process;

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 67 of 127

Page 69: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.9 Flechas 5 DIAGRAMA DE ACTIVIDADES (BETA)

5.9 Flechas

Usando la notación ->, puedes añadir texto a una flecha y cambiar su color.También es posible tener flechas punteadas, en linea discontinua, en negrita u ocultas.@startuml:foo1;-> You can put text on arrows;if (test) then-[#blue]->:foo2;-[#green,dashed]-> The text canalso be on several linesand **very** long...;:foo3;else-[#black,dotted]->:foo4;endif-[#gray,bold]->:foo5;@enduml

5.10 Agrupación

Puedes agrupar actividades definiendo particiones:@startumlstartpartition Initialization {:read config file;

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 68 of 127

Page 70: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.11 Carriles 5 DIAGRAMA DE ACTIVIDADES (BETA)

:init internal variable;}partition Running {:wait for user interaction;:print information;}

stop@enduml

5.11 Carriles

Usando la tecla pipe |, puedes definir carriles.También es posible cambiar el color de los carriles.@startuml|Swimlane1|start:foo1;|#AntiqueWhite|Swimlane2|:foo2;:foo3;|Swimlane1|:foo4;|Swimlane2|:foo5;stop@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 69 of 127

Page 71: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.12 Desacoplar y remover 5 DIAGRAMA DE ACTIVIDADES (BETA)

5.12 Desacoplar y remover

Es posible remover una flecha usando la palabra reservada detach .@startuml:start;fork:foo1;:foo2;fork again:foo3;detachendforkif (foo4) then:foo5;detachendif:foo6;detach:foo7;stop@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 70 of 127

Page 72: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.13 Otras formas de representación de actividades 5 DIAGRAMA DE ACTIVIDADES (BETA)

5.13 Otras formas de representación de actividades

Cambiando el sepador final, ; , puedes configurar diferentes representaciones para una actividad:

• |• <

• >

• /• ]• }

@startuml:Ready;:next(o)|:Receiving;split:nak(i)<:ack(o)>split again:ack(i)<:next(o)on several line|:i := i + 1]:ack(o)>split again:err(i)<:nak(o)>split again:foo/split again:i > 5}stopend split:finish;@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 71 of 127

Page 73: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.14 Un ejemplo completo 5 DIAGRAMA DE ACTIVIDADES (BETA)

5.14 Un ejemplo completo

@startuml

start:ClickServlet.handleRequest();:new page;if (Page.onSecurityCheck) then (true):Page.onInit();if (isForward?) then (no):Process controls;if (continue processing?) then (no)stopendif

if (isPost?) then (yes):Page.onPost();else (no):Page.onGet();endif:Page.onRender();endifelse (false)endif

if (do redirect?) then (yes):redirect process;elseif (do forward?) then (yes):Forward request;else (no):Render page template;endifendif

stop

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 72 of 127

Page 74: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

5.14 Un ejemplo completo 5 DIAGRAMA DE ACTIVIDADES (BETA)

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 73 of 127

Page 75: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6 DIAGRAMA DE COMPONENTES

6 Diagrama de Componentes

6.1 Componentes

Los componentes deberían ser encerrados entre llaves ””.También puedes usar la palabra reservada component para definir un componente. Y puedes definirun alias, usando la palabra reservada as. Este alias será usado más adelante, cuando definamosrelaciones.@startuml

[First component][Another component] as Comp2component Comp3component [Last\ncomponent] as Comp4

@enduml

6.2 Interfaces

Puedes definir una interfaz usando el símbolo () (porque esto luce como un circulo).Puedes usar también la palabra reservada interface para definir una interfaz. Y puedes definirun alias, usando la palabra reservada as. Este alias sera usado luego, definiendo las relaciones.Nosotros veremos mas adelante que la definición de interfaz es opcional.@startuml

() "First Interface"() "Another interface" as Interf2interface Interf3interface "Last\ninterface" as Interf4

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 74 of 127

Page 76: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.3 Ejemplos basicos 6 DIAGRAMA DE COMPONENTES

6.3 Ejemplos basicos

Los links entre los elementos son hechos usando la combinación de símbolos de linea de puntos (..),linea recta (--), y flechas (-->)@startuml

DataAccess - [First Component][First Component] ..> HTTP : use

@enduml

6.4 Usando notas

Puedes usar el note left of , note right of , note top of , note bottom of Las palabrasreservadas para definir notas relacionadas a un objeto simple.Una nota puede ser definida sola usando la plabra reservada note, luego linkea a otro objeto usandoel símbolo ...@startuml

interface "Data Access" as DA

DA - [First Component][First Component] ..> HTTP : use

note left of HTTP : Web Service only

note right of [First Component]A note can alsobe on several linesend note

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 75 of 127

Page 77: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.5 Agrupando componentes 6 DIAGRAMA DE COMPONENTES

6.5 Agrupando componentes

Puedes usar varias palabras reservadas para agrupar componentes e interfaces juntos:

• package• node• folder• frame• cloud• database

@startuml

package "Some Group" {HTTP - [First Component][Another Component]}

node "Other Groups" {FTP - [Second Component][First Component] --> FTP}

cloud {[Example 1]}

database "MySql" {folder "This is my folder" {[Folder 3]}frame "Foo" {[Frame 4]}}

[Another Component] --> [Example 1][Example 1] --> [Folder 3][Folder 3] --> [Frame 4]

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 76 of 127

Page 78: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.6 Cambiando la dirección de las flechas 6 DIAGRAMA DE COMPONENTES

6.6 Cambiando la dirección de las flechas

Por defecto los links entre clases tienen dos guiones --y son orientados verticalmente. Puedes usarla orientacion horizontal para un link poniendo un guion (o punto) como en el siguiente ejemplo:@startuml[Component] --> Interface1[Component] -> Interface2@enduml

Puedes también cambiar direcciones invirtiendo el link:@startumlInterface1 <-- [Component]Interface2 <- [Component]@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 77 of 127

Page 79: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.7 Utiliza la notación UML2 6 DIAGRAMA DE COMPONENTES

También es posible cambiar la dirección de las flechas agregando la palabra reservada left, right,up o down dentro de la flecha:@startuml[Component] -left-> left[Component] -right-> right[Component] -up-> up[Component] -down-> down@enduml

Puedes acortar la flecha usando el primer caracter (por ejemplo, -d- en lugar de -down-) o los dosprimeros caracteres (-do-).Por favor nota que no puedes abuzar de esta funcionalidad Graphviz que usualmente otorga buenosresultados sin ajustes.

6.7 Utiliza la notación UML2

El comando skinparam componentStyle uml2 es usado para cambiar hacia la notación UML2.@startumlskinparam componentStyle uml2

interface "Data Access" as DA

DA - [First Component][First Component] ..> HTTP : use

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 78 of 127

Page 80: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.8 Long description 6 DIAGRAMA DE COMPONENTES

6.8 Long description

It is possible to put description on several lines using square brackets.@startumlcomponent comp1 [This componenthas a long commenton several lines]@enduml

6.9 Colores individuales

Puedes especificar un color despues de la definición del componente.@startumlcomponent [Web Server] #Yellow@enduml

6.10 Using Sprite in Stereotype

You can use sprites within stereotype components.@startumlsprite $businessProcess [16x16/16] {FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF00FFFFFF00000000000FFFFF000000000000FFFF00000000000FFFFFFFFFFFFF00FFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 79 of 127

Page 81: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.11 Personalización (Skinparam) 6 DIAGRAMA DE COMPONENTES

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}

rectangle " End to End\nbusiness process" <<$businessProcess>> {rectangle "inner process 1" <<$businessProcess>> as srcrectangle "inner process 2" <<$businessProcess>> as tgtsrc -> tgt}@enduml

6.11 Personalización (Skinparam)

Puedes usar el comando skinparam para cambiar colores y fuentes en el diagrama.Puedes usar este comando:

• En la definición del diagrama, como cualquier otro comando,• En un archivo incluido,• En un archivo de configuración, proporcionado en la consola de comandos o en la ANT Task

Puedes definir colores y fuentes específicas para interfaces y componentes estereotipados.@startuml

skinparam interface {backgroundColor RosyBrownborderColor orange}

skinparam component {FontSize 13BackgroundColor<<Apache>> RedBorderColor<<Apache>> #FF6655FontName CourierBorderColor blackBackgroundColor goldArrowFontName ImpactArrowColor #FF6655ArrowFontColor #777777}

() "Data Access" as DA

DA - [First Component][First Component] ..> () HTTP : useHTTP - [Web Server] << Apache >>

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 80 of 127

Page 82: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

6.11 Personalización (Skinparam) 6 DIAGRAMA DE COMPONENTES

@startuml[AA] <<static lib>>[BB] <<shared lib>>[CC] <<static lib>>

node node1node node2 <<shared node>>database Production

skinparam component {backgroundColor<<static lib>> DarkKhakibackgroundColor<<shared lib>> Green}

skinparam node {borderColor GreenbackgroundColor YellowbackgroundColor<<shared node>> Magenta}skinparam databaseBackgroundColor Aqua

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 81 of 127

Page 83: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7 DIAGRAMA DE ESTADOS

7 Diagrama de Estados

7.1 Un Estado Simple

Puedes usar [*] para el punto de inicio y finalización del diagrama de estados.Utilice --> para las flechas.@startuml

[*] --> State1State1 --> [*]State1 : this is a stringState1 : this is another string

State1 -> State2State2 --> [*]

@enduml

7.2 Estados compuestos

Un estado también puede ser compuesto. Puedes defirnirlo usando la palabra reservada state yllaves.@startumlscale 350 width[*] --> NotShooting

state NotShooting {[*] --> IdleIdle --> Configuring : EvConfigConfiguring --> Idle : EvConfig}

state Configuring {[*] --> NewValueSelectionNewValueSelection --> NewValuePreview : EvNewValueNewValuePreview --> NewValueSelection : EvNewValueRejectedNewValuePreview --> NewValueSelection : EvNewValueSaved

state NewValuePreview {State1 -> State2}

}@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 82 of 127

Page 84: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.3 Nombres largos 7 DIAGRAMA DE ESTADOS

7.3 Nombres largos

También puedes usar la palabra reservada state para definir largas descripciones en un estado.@startumlscale 600 width

[*] -> State1State1 --> State2 : SucceededState1 --> [*] : AbortedState2 --> State3 : SucceededState2 --> [*] : Abortedstate State3 {state "Accumulate Enough Data\nLong State Name" as long1long1 : Just a test[*] --> long1long1 --> long1 : New Datalong1 --> ProcessData : Enough Data}State3 --> State3 : FailedState3 --> [*] : Succeeded / Save ResultState3 --> [*] : Aborted

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 83 of 127

Page 85: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.4 Estados simultáneos 7 DIAGRAMA DE ESTADOS

7.4 Estados simultáneos

Puedes definir estados simultáneos dentro de un estado compuesto usando los símbolos -- or ||como separadores.@startuml[*] --> Active

state Active {[*] -> NumLockOffNumLockOff --> NumLockOn : EvNumLockPressedNumLockOn --> NumLockOff : EvNumLockPressed--[*] -> CapsLockOffCapsLockOff --> CapsLockOn : EvCapsLockPressedCapsLockOn --> CapsLockOff : EvCapsLockPressed--[*] -> ScrollLockOffScrollLockOff --> ScrollLockOn : EvCapsLockPressedScrollLockOn --> ScrollLockOff : EvCapsLockPressed}

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 84 of 127

Page 86: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.5 Dirección de la flecha 7 DIAGRAMA DE ESTADOS

7.5 Dirección de la flecha

Puedes usar -> para flechas horizontales. Es posible forzar la dirección de las flechas usando lasiguiente sintaxis:

• -down-> (default arrow)• -right-> or ->• -left->• -up->

@startuml

[*] -up-> FirstFirst -right-> SecondSecond --> ThirdThird -left-> Last

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 85 of 127

Page 87: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.6 Notas 7 DIAGRAMA DE ESTADOS

Puedes acortar un flecha usando sólamente el primer carácter del nombre de la dirección (porejemplo, -d- en lugar de -down-) o los dos primeros caracteres (-do-).Por favor tenga en cuenta que no debería de esta funcionalidad : Graphviz usualmente devuelvebuenos resultados sin necesidad de configuración.

7.6 Notas

También puedes definir notas usando las palabras reservadas note left of, note right of, notetop of, note bottom of .También puedes definir notas de varias líneas.@startuml

[*] --> ActiveActive --> Inactive

note left of Active : this is a short\nnote

note right of InactiveA note can alsobe defined onseveral linesend note

@enduml

También puedes tener notas flotantes.@startuml

state foonote "This is a floating note" as N1

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 86 of 127

Page 88: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.7 Más sobre notas 7 DIAGRAMA DE ESTADOS

7.7 Más sobre notas

Puedes colocar notas a estados compuestos.@startuml

[*] --> NotShooting

state "Not Shooting State" as NotShooting {state "Idle mode" as Idlestate "Configuring mode" as Configuring[*] --> IdleIdle --> Configuring : EvConfigConfiguring --> Idle : EvConfig}

note right of NotShooting : This is a note on a composite state

@enduml

7.8 Personalización (Skinparam)

Puedes usar el comando skinparam para cambiar los colores y fuentes de un diagrama.Puedes usar este comando :

• En la definición del diagrama, como cualquier otro comando,• En un archivo incluido,• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

Puedes definir colores y fuentes específicas para estados estereotipados.@startumlskinparam backgroundColor LightYellowskinparam state {StartColor MediumBlueEndColor RedBackgroundColor PeruBackgroundColor<<Warning>> OliveBorderColor GrayFontName Impact}

[*] --> NotShooting

state "Not Shooting State" as NotShooting {

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 87 of 127

Page 89: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

7.8 Personalización (Skinparam) 7 DIAGRAMA DE ESTADOS

state "Idle mode" as Idle <<Warning>>state "Configuring mode" as Configuring[*] --> IdleIdle --> Configuring : EvConfigConfiguring --> Idle : EvConfig}

NotShooting --> [*]@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 88 of 127

Page 90: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

8 DIAGRAMA DE OBJETOS

8 Diagrama de Objetos

8.1 Definición de objetos

Puedes definir instancias de objetos usando la palabra reservada object.@startumlobject firstObjectobject "My Second Object" as o2@enduml

8.2 Relaciones entre objetos

Las relaciones entre objetos son definidas usando los siguientes símbolos:Extensión <|--Composición *--Agregación o--

Es posible reemplazar -- con .. para obtener una línea de puntos.Sabiendo estas reglas, es posible dibujar los siguientes diagramas.Es posible agregar una etiqueta sobre una relación usando ”:”, seguido del texto de la etiqueta.Para la cardinalidad puedes usar doble comillas "" en cada lado de la relación.@startumlobject Object01object Object02object Object03object Object04object Object05object Object06object Object07object Object08

Object01 <|-- Object02Object03 *-- Object04Object05 o-- "4" Object06Object07 .. Object08 : some labels@enduml

8.3 Agregando campos

Para declarar campos, puedes usar el símbolo ":" seguido del nombre del campo.@startuml

object user

user : name = "Dummy"user : id = 123

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 89 of 127

Page 91: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

8.4 Características comunes en diagramas de clases 8 DIAGRAMA DE OBJETOS

También es posible declarar entre llaves {} todos los campos.@startuml

object user {name = "Dummy"id = 123}

@enduml

8.4 Características comunes en diagramas de clases• Visibilidad• Definición de notas• Uso de paquetes• Personalización de la salida (skinparam)

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 90 of 127

Page 92: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

9 COMANDOS COMUNES

9 Comandos comunes

9.1 Comentarios

Todo lo que comienza con comillas simples ' es un comentario.También puedes colocar comentarios de varias líneas, usando /' para empezar y '/ para finalizar.

9.2 Encabezado y pie de página

Puedes usar los comandos header o footer para añadir un encabezado o pie de página en cualquierdiagrama generado.Puedes opcionalmente especificar si quieres un encabezado o pie de página centrado, a la izquierdao a la derecha especificando las palabras clave center, left o right, respectivamente.Para el título, es posible definir un encabezao o pie de página en varias líneas.También es posible introducir algo de HTML en un encabezado o pie de página.@startumlAlice -> Bob: Authentication Request

header<font color=red>Warning:</font>Do not use in production.endheader

center footer Generated for demonstration

@enduml

9.3 Zoom (acercamiento)

Puedes usar el comando scale para hacer zoom a la imágen generada.Puedes usar tanto un número como una fracción para definir el factor escalar. Puedes tambiénespecificar tanto el ancho como el alto (en pixeles). Y también puedes especificar el ancho y alturaen un mismo comando : la imágen es adaptada para cumplir con las dimensionaes especificadas.

• scale 1.5• scale 2/3• scale 200 width• scale 200 height• scale 200*100• scale max 300*200• scale max 1024 width• scale max 800 height

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 91 of 127

Page 93: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

9.4 Título 9 COMANDOS COMUNES

@startumlscale 180*90Bob->Alice : hello@enduml

9.4 Título

La palabra reservada title se usa para colocar un título. Puedes añadir una nueva línea usando\n en la descripción del título.Algunas ronfiguraciones usando skinparam están disponibles para colocar bordes en el título.@startumlskinparam titleBorderRoundCorner 15skinparam titleBorderThickness 2skinparam titleBorderColor redskinparam titleBackgroundColor Aqua-CadetBlue

title Simple communication\nexample

Alice -> Bob: Authentication RequestBob --> Alice: Authentication Response

@enduml

Puedes usar sintaxis de Creole en el título.Además puedes definir un título en varias líneas usando las palabras reservadas title y end title.@startuml

title<u>Simple</u> communication exampleon <i>several</i> lines and using <back:cadetblue>creole tags</back>end title

Alice -> Bob: Authentication RequestBob -> Alice: Authentication Response

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 92 of 127

Page 94: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

9.5 Subtítulo 9 COMANDOS COMUNES

9.5 Subtítulo

Existe también la palabra clave caption para colocar un subtítulo bajo el diagrama.@startuml

caption figure 1Alice -> Bob: Hello

@enduml

9.6 Leyenda del diagrama

Las palabras reservadas legend y end legend son usadas para colocar una leyenda.Puedes opcionalmente especificar left, right o center para establecer la alineación de la leyenda.@startuml

Alice -> Bob : Hellolegend rightShortlegendendlegend

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 93 of 127

Page 95: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

10 SALT

10 Salt

Salt is a subproject included in PlantUML that may help you to design graphical interface.You can use either @startsalt keyword, or @startuml followed by a line with salt keyword.

10.1 Basic widgets

A window must start and end with brackets. You can then define:

• Button using [ and ].• Radio button using ( and ).• Checkbox using [ and ].• User text area using ".

@startumlsalt{Just plain text[This is my button]() Unchecked radio(X) Checked radio[] Unchecked box[X] Checked box"Enter text here "^This is a droplist^}@enduml

The goal of this tool is to discuss about simple and sample windows.

10.2 Using grid

A table is automatically created when you use an opening bracket {.And you have to use | to separate columns.For example:@startsalt{Login | "MyName "Password | "**** "[Cancel] | [ OK ]}@endsalt

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 94 of 127

Page 96: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

10.3 Using separator 10 SALT

Just after the opening bracket, you can use a character to define if you want to draw lines or columnsof the grid :# To display all vertical and horizontal lines! To display all vertical lines- To display all horizontal lines+ To display external lines@startsalt{+Login | "MyName "Password | "**** "[Cancel] | [ OK ]}@endsalt

10.3 Using separator

You can use several horizontal lines as separator.@startsalt{Text1.."Some field"==Note on usage~~Another text--[Ok]}@endsalt

10.4 Tree widget

To have a Tree, you have to start with {T and to use + to denote hierarchy.@startsalt{{T+ World++ America+++ Canada+++ USA++++ New York++++ Boston+++ Mexico++ Europe+++ Italy+++ Germany++++ Berlin

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 95 of 127

Page 97: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

10.5 Enclosing brackets 10 SALT

++ Africa}}@endsalt

10.5 Enclosing brackets

You can define subelements by opening a new opening bracket.@startsalt{Name | " "Modifiers: | { (X) public | () default | () private | () protected[] abstract | [] final | [] static }Superclass: | { "java.lang.Object " | [Browse...] }}@endsalt

10.6 Adding tabs

You can add tabs using {/ notation. Note that you can use HTML code to have bold text.@startsalt{+{/ <b>General | Fullscreen | Behavior | Saving }{{ Open image in: | ^Smart Mode^ }[X] Smooth images when zoomed[X] Confirm image deletion[ ] Show hidden images}[Close]}@endsalt

Tab could also be vertically oriented:

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 96 of 127

Page 98: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

10.7 Using menu 10 SALT

@startsalt{+{/ <b>GeneralFullscreenBehaviorSaving } |{{ Open image in: | ^Smart Mode^ }[X] Smooth images when zoomed[X] Confirm image deletion[ ] Show hidden images[Close]}}@endsalt

10.7 Using menu

You can add a menu by using {* notation.@startsalt{+{* File | Edit | Source | Refactor }{/ General | Fullscreen | Behavior | Saving }{{ Open image in: | ^Smart Mode^ }[X] Smooth images when zoomed[X] Confirm image deletion[ ] Show hidden images}[Close]}@endsalt

It is also possible to open a menu:@startsalt{+{* File | Edit | Source | RefactorRefactor | New | Open File | - | Close | Close All }{/ General | Fullscreen | Behavior | Saving }{{ Open image in: | ^Smart Mode^ }[X] Smooth images when zoomed[X] Confirm image deletion[ ] Show hidden images}[Close]}@endsalt

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 97 of 127

Page 99: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

10.8 Advanced table 10 SALT

10.8 Advanced table

You can use two special notations for table :

• * to indicate that a cell with span with left• . to denotate an empty cell

@startsalt{#. | Column 2 | Column 3Row header 1 | value 1 | value 2Row header 2 | A long cell | *}@endsalt

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 98 of 127

Page 100: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11 CREOLE

11 Creole

A light Creole engine have been integrated into PlantUML to have a standardized way of definingtext style.All diagrams are now supporting this syntax.Note that ascending compatibility with HTML syntax is preserved.

11.1 Emphasized text

@startumlAlice -> Bob : hello --there--... Some ~~long delay~~ ...Bob -> Alice : oknote leftThis is **bold**This is //italics//This is ""monospaced""This is --stroked--This is __underlined__This is ~~waved~~end note@enduml

11.2 List

@startumlobject demo {* Bullet list* Second item}note left* Bullet list* Second item** Sub itemend note

legend# Numbered list# Second item## Sub item## Another sub item# Third itemend legend@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 99 of 127

Page 101: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.3 Escape character 11 CREOLE

11.3 Escape character

You can use the tilde ~ to escape special creole characters.@startumlobject demo {This is not ~___underscored__.This is not ~""monospaced"".}@enduml

11.4 Horizontal lines

@startumldatabase DB1 as "You can have horizontal line----Or double line====Or strong line____Or dotted line..My title..Enjoy!"note rightThis is working also in notesYou can also add title in all these lines==Title==--Another title--end note

@enduml

11.5 Headings

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 100 of 127

Page 102: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.6 Legacy HTML 11 CREOLE

@startumlusecase UC1 as "= Extra-large headingSome text== Large headingOther text=== Medium headingInformation....==== Small heading"@enduml

11.6 Legacy HTML

Some HTML tags are also working:

• <b> for bold text• <u> or <u:#AAAAAA> or <u:colorName> for underline• <i> for italic• <s> or <s:#AAAAAA> or <s:colorName> for strike text• <w> or <w:#AAAAAA> or <w:colorName> for wave underline text• <color:#AAAAAA> or <color:colorName>• <back:#AAAAAA> or <back:colorName> for background color• <size:nn> to change font size• <img:file> : the file must be accessible by the filesystem• <img:http://url> : the URL must be available from the Internet

@startuml:* You can change <color:red>text color</color>* You can change <back:cadetblue>background color</back>* You can change <size:18>size</size>* You use <u>legacy</u> <b>HTML <i>tag</i></b>* You use <u:red>color</u> <s:green>in HTML</s> <w:#0000FF>tag</w>----* Use image : <img:sourceforge.jpg>;

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 101 of 127

Page 103: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.7 Table 11 CREOLE

11.7 Table

It is possible to build table.@startumlskinparam titleFontSize 14titleExample of simple table|= |= table |= header || a | table | row || b | table | row |end title[*] --> State1@enduml

You can specify background colors for cells and lines.@startumlstart:Here is the result|= |= table |= header || a | table | row ||<#FF8080> red |<#80FF80> green |<#8080FF> blue |<#yellow>| b | table | row |;@enduml

11.8 Tree

You can use |_ characters to build a tree.@startumlskinparam titleFontSize 14titleExample of Tree|_ First line|_ **Bom(Model)**|_ prop1|_ prop2|_ prop3|_ Last lineend title[*] --> State1@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 102 of 127

Page 104: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.9 Special characters 11 CREOLE

11.9 Special characters

It’s possible to use any unicode characters with &# syntax or <U+XXXX>@startumlusecase foo as "this is &#8734; long"usecase bar as "this is also <U+221E> long"@enduml

11.10 OpenIconic

OpenIconic is an very nice open source icon set. Those icons have been integrated into the creoleparser, so you can use them out-of-the-box.You can use the following syntax: <&ICON_NAME>.@startumltitle: <size:20><&heart>Use of OpenIconic <&heart></size>class Wifinote leftClick on <&wifi>end note@enduml

The complete list is available on OpenIconic Website, or you can use the following special diagram:@startumllistopeniconic@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 103 of 127

Page 105: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.10 OpenIconic 11 CREOLE

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 104 of 127

Page 106: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.11 Definiendo y usando sprites 11 CREOLE

11.11 Definiendo y usando sprites

Un Sprite es un pequeño elemento gráfico que puede ser usado en diagramas.En PlantUML, los sprites son monocromos y pueden tener 4, 8 o 16 niveles de grises.Para definir un sprite, tienes que usar noteación hexadecimal entre el 0 y la letra F, por cada píxel.Entonces puedes usar los sprites con la etiqueta <$XXX> donde XXX es el nombre del sprite.@startumlsprite $foo1 {FFFFFFFFFFFFFFFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFFFFFFFFFFFFFFFF}Alice -> Bob : Testing <$foo1>@enduml

You can scale the sprite.@startumlsprite $foo1 {FFFFFFFFFFFFFFFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFF0123456789ABCFFFFFFFFFFFFFFFF}Alice -> Bob : Testing <$foo1{scale=3}>@enduml

11.12 Encoding Sprite

To encode sprite, you can use the command line like:

java -jar plantuml.jar -encodesprite 16z foo.png

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 105 of 127

Page 107: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.13 Importing Sprite 11 CREOLE

where foo.png is the image file you want to use (it will be converted to gray automatically).After -encodesprite, you have to specify a format: 4, 8, 16, 4z, 8z or 16z.The number indicates the gray level and the optional z is used to enable compression in spritedefinition.

11.13 Importing Sprite

You can also launch the GUI to generate a sprite from an existing image.Click in the menubar then on File/Open Sprite Window.

After copying an image into you clipboard, several possible definitions of the corresponding spritewill be displayed : you will just have to pickup the one you want.

11.14 Ejemplos

@startumlsprite $printer [15x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEqm0start:click on <$printer> to print the page;@enduml

@startumlsprite $bug [15x15/16z] PKzR2i0m2BFMi15p__FEjQEqB1z27aeqCqixa8S4OT7C53cKpsHpaYPDJY_12MHM -BLRyywPhrrlw3qumqNThmXgd1TOterAZmOW8sgiJafogofWRwtV3nCFsprite $printer [15x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEqm0sprite $disk {44444556667788143600000000999143600000000ACA153700000001A7A153700000012B8A153800000123B8A163800001233C9A1634999AABBC99B1744566778899AB17456AAAAA99AAB18566AFC228AABB18567AC8118BBBB1867BD4433BBBBB139AAAAABBBBBBC1}

title Use of sprites (<$printer>, <$bug>...)

class Example {Can have some bug : <$bug>Click on <$disk> to save}

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 106 of 127

Page 108: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

11.14 Ejemplos 11 CREOLE

note left : The printer <$printer> is available

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 107 of 127

Page 109: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12 CAMBIAR FUENTES Y COLORES

12 Cambiar fuentes y colores

12.1 Uso

Puesdes cambiar los colores y fuentes de un diagrama usando el comando skinparam. Ejemplo:skinparam backgroundColor yellow

Puedes usar este comando:

• En la definición del diagrama, como cualquier otro comando,• En un archivo incluido (vea Preprocesamiento),• En un archivo de configuración, proporcionado en la consola de comandos o en el ANT task.

12.2 Anidado

Para evitar repeticiones, es posible anidar definiciones. Entonces, la siguiente definición:skinparam xxxxParam1 value1skinparam xxxxParam2 value2skinparam xxxxParam3 value3skinparam xxxxParam4 value4

es estrictamente equivalente a:skinparam xxxx {

Param1 value1Param2 value2Param3 value3Param4 value4

}

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 108 of 127

Page 110: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12.3 Color 12 CAMBIAR FUENTES Y COLORES

12.3 Color

Puedes usar, tanto el nombre del color, como el código RGB.

Nombre del parámetro Defecto Color ComentarioValor

backgroundColor white Fondo de la páginaactivityArrowColor #A80036 Color de las flechas en diagramas de actividadesactivityBackgroundColor #FEFECE Fondo de las actividadesactivityBorderColor #A80036 Color de los bordes de la actividadactivityStartColor black Círculo de comienzo en diagramas de actividadesactivityEndColor black Círculo de finalización en diagramas de actividadesactivityBarColor black Barra de sincronización en diagramas de actividadesusecaseArrowColor #A80036 Color de las flechas en diagramas de casos de usousecaseActorBackgroundColor #FEFECE Color de la cabeza del actor en diagramas de casos de usousecaseActorBorderColor #A80036 Color de los bordes del actor en diagramas de casos de usousecaseBackgroundColor #FEFECE Fondo de los casos de usousecaseBorderColor #A80036 Color de los bordes de un caso de uso en diagramas de casos de usoclassArrowColor #A80036 Color de la flechas en diagramas de clasesclassBackgroundColor #FEFECE Fondo de classes/interface/enum en diagramas de clasesclassBorderColor #A80036 Bordes de classes/interface/enum en diagramas de clasespackageBackgroundColor #FEFECE Fondo de paquetes en diagramas de clasespackageBorderColor #A80036 Bordes de paquetes en diagramas de clasesstereotypeCBackgroundColor #ADD1B2 Fondo de puntos de una clase en diagramas de clasesstereotypeABackgroundColor #A9DCDF Fondo de puntos de clases abstractas en diagramas de clasesstereotypeIBackgroundColor #B4A7E5 Fondo de puntos de interface en diagramas de clasesstereotypeEBackgroundColor #EB937F Fondo de puntos de enum en diagramas de clasescomponentArrowColor #A80036 Color de flechas en diagramas de componentescomponentBackgroundColor #FEFECE Fondo de componentescomponentBorderColor #A80036 Bordes de componentescomponentInterfaceBackgroundColor #FEFECE Fondo de interface en diagramas de componentescomponentInterfaceBorderColor #A80036 Bordes de interface en diagramas de componentesnoteBackgroundColor #FBFB77 Fondo de notasnoteBorderColor #A80036 Bordes de notasstateBackgroundColor #FEFECE Fondo de estados en diagramas de estadosstateBorderColor #A80036 Bordes de estados en diagramas de estadosstateArrowColor #A80036 Color de flechas en diagramas de estadosstateStartColor black Círculo de comienzo en diagramas de estadosstateEndColor black Círculo de finalización en diagramas de estadossequenceArrowColor #A80036 Color de flechas en diagramas de secuenciasequenceActorBackgroundColor #FEFECE Color de la cabeza del actor en diagramas de secuenciasequenceActorBorderColor #A80036 Borde del actor en diagramas de secuenciasequenceGroupBackgroundColor #EEEEEE Color de la cabeza de alt/opt/loop en diagramas de secuenciasequenceLifeLineBackgroundColor white Fondo de línea de vida en diagramas de secuenciasequenceLifeLineBorderColor #A80036 Borde de línea de vida en diagramas de secuenciasequenceParticipantBackgroundColor #FEFECE Fondo de participante en diagramas de secuenciasequenceParticipantBorderColor #A80036 Borde de participante en diagramas de secuencia

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 109 of 127

Page 111: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12.4 Color de fuente, nombre y tamaño 12 CAMBIAR FUENTES Y COLORES

12.4 Color de fuente, nombre y tamaño

Puedes cambiar la fuente para el dibujo usando los parámetros xxxFontColor, xxxFontSize yxxxFontName.Ejemplo:skinparam classFontColor redskinparam classFontSize 10skinparam classFontName Aapex

Puedes también cambiar la fuente por defecto para todas las fuentes, usando skinparam defaultFontName.Ejemplo:skinparam defaultFontName Aapex

Por favor tenga en cuenta que fontname es altamente dependiente del sistema, por lo tanto no losobre use, si está buscando portabilidad.

Parámetro Defecto ComentarioNombre ValoractivityFontColor black

Usado para caja de actividadactivityFontSize 14activityFontStyle plainactivityFontNameactivityArrowFontColor black

Usado para texto en las flechas de los diagramas de actividadesactivityArrowFontSize 13activityArrowFontStyle plainactivityArrowFontNamecircledCharacterFontColor black

Usado para texto en círculo para class, enum u otroscircledCharacterFontSize 17circledCharacterFontStyle boldcircledCharacterFontName CouriercircledCharacterRadius 11classArrowFontColor black

Usado para texto en las flechas de los diagramas de clasesclassArrowFontSize 10classArrowFontStyle plainclassArrowFontNameclassAttributeFontColor black

Atributos y métodos de claseclassAttributeFontSize 10classAttributeIconSize 10classAttributeFontStyle plainclassAttributeFontNameclassFontColor black

Usado para nombres de clasesclassFontSize 12classFontStyle plainclassFontNameclassStereotypeFontColor black

Usado para estereotipos de clasesclassStereotypeFontSize 12classStereotypeFontStyle italicclassStereotypeFontNamecomponentFontColor black

Usado para nombres de componentescomponentFontSize 14componentFontStyle plaincomponentFontNamecomponentStereotypeFontColor black

Usado para estereotipos de componentescomponentStereotypeFontSize 14componentStereotypeFontStyle italiccomponentStereotypeFontName

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 110 of 127

Page 112: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12.4 Color de fuente, nombre y tamaño 12 CAMBIAR FUENTES Y COLORES

componentArrowFontColor black

Usado para texto en las flechas de los diagramas de componentescomponentArrowFontSize 13componentArrowFontStyle plaincomponentArrowFontNamenoteFontColor black

Usado para notas en todos los diagramas excepto diagramas de secuencianoteFontSize 13noteFontStyle plainnoteFontNamepackageFontColor black

Usado para nombres de paquetes y particionespackageFontSize 14packageFontStyle plainpackageFontNamesequenceActorFontColor black

Usado para actores en diagramas de secuenciasequenceActorFontSize 13sequenceActorFontStyle plainsequenceActorFontNamesequenceDividerFontColor black

Usado para texto en divisores en diagramas de secuenciasequenceDividerFontSize 13sequenceDividerFontStyle boldsequenceDividerFontNamesequenceArrowFontColor black

Usado para texto en las flechas de los diagramas de secuenciasequenceArrowFontSize 13sequenceArrowFontStyle plainsequenceArrowFontNamesequenceGroupingFontColor black

Usado para texto del ”else” en diagramas de secuenciasequenceGroupingFontSize 11sequenceGroupingFontStyle plainsequenceGroupingFontNamesequenceGroupingHeaderFontColor black

Usado para texto de encabezados ”alt/opt/loop” en diagramas de secuenciasequenceGroupingHeaderFontSize 13sequenceGroupingHeaderFontStyle plainsequenceGroupingHeaderFontNamesequenceParticipantFontColor black

Usado para texto del participante en diagramas de secuenciasequenceParticipantFontSize 13sequenceParticipantFontStyle plainsequenceParticipantFontNamesequenceTitleFontColor black

Usado para títulos en diagramas de secuenciasequenceTitleFontSize 13sequenceTitleFontStyle plainsequenceTitleFontNametitleFontColor black

Usado para títulos en todos los diagramas excepeto diagramas de secuenciatitleFontSize 18titleFontStyle plaintitleFontNamestateFontColor black

Usado para estados en diagramas de estadosstateFontSize 14stateFontStyle plainstateFontNamestateArrowFontColor black

Usado para texto en las flechas de los diagramas de estadosstateArrowFontSize 13stateArrowFontStyle plainstateArrowFontNamestateAttributeFontColor black

Usado para descripciones de estados en diagramas de estadosstateAttributeFontSize 12stateAttributeFontStyle plainstateAttributeFontName

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 111 of 127

Page 113: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12.4 Color de fuente, nombre y tamaño 12 CAMBIAR FUENTES Y COLORES

usecaseFontColor black

Usado para etiquetas de casos de uso en diagramas de casos de usousecaseFontSize 14usecaseFontStyle plainusecaseFontNameusecaseStereotypeFontColor black

Usado para estereotipo en un caso de usousecaseStereotypeFontSize 14usecaseStereotypeFontStyle italicusecaseStereotypeFontNameusecaseActorFontColor black

Usado para etiquetas de actores en diagramas de casos de usousecaseActorFontSize 14usecaseActorFontStyle plainusecaseActorFontNameusecaseActorStereotypeFontColor black

Usado para estereotipo de actorusecaseActorStereotypeFontSize 14usecaseActorStereotypeFontStyle italicusecaseActorStereotypeFontNameusecaseArrowFontColor black

Usado para texto en las flechas de los diagramas de casos de usousecaseArrowFontSize 13usecaseArrowFontStyle plainusecaseArrowFontNamefooterFontColor black

Usado para pie de páginafooterFontSize 10footerFontStyle plainfooterFontNameheaderFontColor black

Usado para encabezadoheaderFontSize 10headerFontStyle plainheaderFontName

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 112 of 127

Page 114: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

12.5 Blanco y negro 12 CAMBIAR FUENTES Y COLORES

12.5 Blanco y negro

Puedes forzar el uso de salida en blanco y negro usando el comando skinparam monochrome true.@startumlskinparam monochrome true

actor Userparticipant "First Class" as Aparticipant "Second Class" as Bparticipant "Last Class" as C

User -> A: DoWorkactivate A

A -> B: Create Requestactivate B

B -> C: DoWorkactivate CC --> B: WorkDonedestroy C

B --> A: Request Createddeactivate B

A --> User: Donedeactivate A

@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 113 of 127

Page 115: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13 PREPROCESAMIENTO

13 Preprocesamiento

Algunos capacidades de preprocesamiento menores son incluídas PlantUML, y disponibles paratodos los diagramas.Aquellas funcionalidades son bastante similares al preprocesador del lenguaje C, excepto que elcarácter especial (#) ha sido cambiado por el signo de exclamación (!).

13.1 Incluyendo archivos

Use la directiva !include para incluir archivos en su diagrama.Imagine que tiene la misma clase que aparece en varios diagramas. En lugar de duplicar la descrip-ción de esa clase, puede definir un archivo que contenga esa descripción.@startuml!include List.iumlList <|.. ArrayList@enduml

File List.iuml: interface List List : int size() List : void clear()El archivo List.iuml puede ser incluido en muchos diagramas, y cualquier modificación en esearchivo repercutirá en todos los diagramas que lo incluyan.A file can be only be included once. If you want to include several times the very same file, youhave to use the directive !include_many instead of !include.Puedes también colocar varios bloques de texto @startuml/@enduml en un archivo incluido y luegoespecificar que bloque quieres incluir, añadiendo !0 donde 0 es el número del bloque.Por ejemplo, si usas !include foo.txt!1, el segundo bloque @startuml/@enduml dentro defoo.txt, será incluido.You can also put an id to some @startuml/@enduml text block in an included file using @startuml(id=MY_OWN_ID)syntax and then include the block adding !MY_OWN_ID when including the file, so using somethinglike !include foo.txt!MY_OWN_ID.

13.2 Incluyendo URL

Use la directiva !includeurl para incluir archivos de Internet/Intranet en su diagrama.También puede usar !includeurl http://someurl.com/mypath!0 para especificar que bloque@startuml/@enduml de http://someurl.com/mypath quiere incluir. La notación !0 denota elprimer diagrama.

13.3 Definición de constante

Puede definir una constante usando la directiva !define. Así como en el lenguaje C, un nombre deconstante puede únicamente usar caracteres alfanuméricos y de subrayado, y no puede comenzarcon un dígito.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 114 of 127

Page 116: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13.4 Definición de Macro 13 PREPROCESAMIENTO

@startuml

!define SEQUENCE (S,#AAAAAA) Database Sequence!define TABLE (T,#FFAAAA) Database Table

class USER << TABLE >>class ACCOUNT << TABLE >>class UID << SEQUENCE >>USER "1" -- "*" ACCOUNTUSER -> UID@enduml

Por supuesto, puedes usar la directiva !include para definir todas las constantes en un solo archivo,e incluirlo en tu diagrama.Una constante puede darse de baja con la directiva !undef XXX.También puedes especificar constantes en la línea de comandos con las banderas -D.

java -jar plantuml.jar -DTITLE="My title" atest1.txt

Tenga en cuenta que la bandera -D debe colocarse después de la sección ”-jar plantuml.jar”.

13.4 Definición de Macro

También puedes definir macros con argumentos.@startuml

!define module(x) component x <<module>>module(ABC)module(XYZ)@enduml

Una macro puede tenes varios argumentos.@startuml!define send(a,b,c) a->b : csend(Alice, Bob, Hello)send(Bob, Alice, ok)@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 115 of 127

Page 117: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13.5 Adding date and time 13 PREPROCESAMIENTO

13.5 Adding date and time

You can also expand current date and time using the special variable %date%.Date format can be specified using format specified in SimpleDataFormat documentation.@startuml!define ANOTHER_DATE %date[yyyy.MM.dd 'at' HH:mm]%Title Generated %date% or ANOTHER_DATEalice -> bob@enduml

13.6 Other special variables

You can also use the following special variables:%dirpath% Path of the current file%filename% Name of the current file

13.7 Macro en varias líneas

También puedes definir una macro en varias líneas usando !definelong y !enddefinelong.@startuml!define DOUBLE(x) x x!definelong AUTHEN(x,y)x -> y : DOUBLE(hello)y -> x : ok!enddefinelong

AUTHEN(Bob,Alice)@enduml

13.8 Default values for macro parameters

It is possible to assign default values to macro parameters.@startuml!define some_macro(x, y = "some default" , z = 'another default' ) x and y and zclass foo {some_macro(Z1, Z2, Z3)some_macro(Z1, Z2)some_macro(A)}@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 116 of 127

Page 118: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13.9 Condiciones 13 PREPROCESAMIENTO

13.9 Condiciones

Puedes usar las directivas !ifdef XXX y !endif para tener dibujos condicionales.Las líneas entre aquellas dos directivas, serán incluidas únicamente si la constante después la direc-tiva !ifdef, ha sido previamente definida.También puedes establecer la parte !else, que será incluida si la constante no fue definida.@startuml!include ArrayList.iuml@enduml

File ArrayList.iuml:

class ArrayList!ifdef SHOW_METHODSArrayList : int size()ArrayList : void clear()!endif

Puedes también usar la directiva !define para activar la parte condicional del diagrama.@startuml!define SHOW_METHODS!include ArrayList.iuml@enduml

También puedes usar la directiva !ifndef que incluye líneas si la constante provista, NO fuedefinida.You can use boolean expression with parenthesis, operators and || in the test.@startuml!define SHOW_FIELDS!undef SHOW_METHODSclass foo {!ifdef SHOW_FIELDS || SHOW_METHODSThis is shown!endif!ifdef SHOW_FIELDS && SHOW_METHODSThis is NOT shown!endif}@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 117 of 127

Page 119: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13.10 Ruta de búsqueda 13 PREPROCESAMIENTO

13.10 Ruta de búsqueda

Puedes especificar la propiedad java ”plantuml.include.path” en la línea de comandos.Por ejemplo:

java -Dplantuml.include.path="c:/mydir" -jar plantuml.jar atest1.txt

Tenga en cuenta que la opción -D debe ser puesta antes de la opción -jar. Las opciones -D despuésde la opción -jar será usada para definir constantes dentro del preprocesador de plantuml.

13.11 Características avanzadas

Es posible anexar texto al argumento de una macro usando la sintáxis ##.@startuml!definelong COMP_TEXTGENCOMP(name)[name] << Comp >>interface Ifc << IfcType >> AS name##Ifcname##Ifc - [name]!enddefinelongCOMP_TEXTGENCOMP(dummy)@enduml

Una macro puede ser definida por otra macro.@startuml!define DOUBLE(x) x x!definelong AUTHEN(x,y)x -> y : DOUBLE(hello)y -> x : ok!enddefinelongAUTHEN(Bob,Alice)@enduml

Una macro puede ser polimórfica con el contador de argumentos.@startuml!define module(x) component x <<module>>!define module(x,y) component x as y <<module>>module(foo)module(bar, barcode)@enduml

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 118 of 127

Page 120: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

13.11 Características avanzadas 13 PREPROCESAMIENTO

Puedes usar una variable de entorno de sistema o definición de constante cuando usas ”include”:

!include %windir%/test1.txt!define PLANTUML_HOME /home/foo!include PLANTUML_HOME/test1.txt

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 119 of 127

Page 121: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

14 INTERNACIONALIZACIÓN

14 Internacionalización

El lenguaje de PlantUML usa letras para definir actores, casos de uso y demás. Pero letras no sonúnicamente caracteres latinos A-Z, podría ser cualquier tipo de letra de cualquier lenguaje.

@startumlskinparam backgroundColor #EEEBDCactor 使用者participant "頭等艙 " as Aparticipant "第二類 " as Bparticipant "最後一堂課 " as 別的東西使用者 -> A: 完成這項工作activate AA -> B: 創建請求activate BB -> 別的東西 : 創建請求activate 別的東西別的東西 --> B: 這項工作完成destroy 別的東西B --> A: 請求創建deactivate BA --> 使用者 : 做完deactivate A@enduml

14.1 Codificación de caracteres (Charset)

La codificación de caracteres usada cuando se lee los archivos de texto que contienen el textodescriptivo UML, dependiente del sistema. Normalmente, debería estar bien, pero en algunos casos,quizás quieras usar alguna otra codificación de caracteres. Por ejemplo, con la lína de comandos:java -jar plantuml.jar -charset UTF-8 files.txt

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 120 of 127

Page 122: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

14.1 Codificación de caracteres (Charset) 14 INTERNACIONALIZACIÓN

O, con el ANT task:<target name="main"><plantuml dir="./src" charset="UTF-8" /></target>

Dependiendo de tu instalación de Java, la siguiente codificación de caracteres debería estar disponible:ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16.

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 121 of 127

Page 123: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

15 NOMBRES DE COLORES

15 Nombres de colores

Esta es la lista de los colores reconocidos por PlantUML. Los nombres son sensibles a mayúsculasy minúsculas.

AliceBlue GhostWhite NavajoWhiteAntiqueWhite GoldenRod NavyAquamarine Gold OldLaceAqua Gray OliveDrabAzure GreenYellow OliveBeige Green OrangeRedBisque HoneyDew OrangeBlack HotPink OrchidBlanchedAlmond IndianRed PaleGoldenRodBlueViolet Indigo PaleGreenBlue Ivory PaleTurquoiseBrown Khaki PaleVioletRedBurlyWood LavenderBlush PapayaWhipCadetBlue Lavender PeachPuffChartreuse LawnGreen PeruChocolate LemonChiffon PinkCoral LightBlue PlumCornflowerBlue LightCoral PowderBlueCornsilk LightCyan PurpleCrimson LightGoldenRodYellow RedCyan LightGreen RosyBrownDarkBlue LightGrey RoyalBlueDarkCyan LightPink SaddleBrownDarkGoldenRod LightSalmon SalmonDarkGray LightSeaGreen SandyBrownDarkGreen LightSkyBlue SeaGreenDarkKhaki LightSlateGray SeaShellDarkMagenta LightSteelBlue SiennaDarkOliveGreen LightYellow SilverDarkOrchid LimeGreen SkyBlueDarkRed Lime SlateBlueDarkSalmon Linen SlateGrayDarkSeaGreen Magenta SnowDarkSlateBlue Maroon SpringGreenDarkSlateGray MediumAquaMarine SteelBlueDarkTurquoise MediumBlue TanDarkViolet MediumOrchid TealDarkorange MediumPurple ThistleDeepPink MediumSeaGreen TomatoDeepSkyBlue MediumSlateBlue TurquoiseDimGray MediumSpringGreen VioletDodgerBlue MediumTurquoise WheatFireBrick MediumVioletRed WhiteSmokeFloralWhite MidnightBlue WhiteForestGreen MintCream YellowGreenFuchsia MistyRose YellowGainsboro Moccasin

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 122 of 127

Page 124: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

CONTENTS CONTENTS

Contents

1 Diagrama de Secuencia 11.1 Ejemplo básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Declarando participantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Sin usar letras en participantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Auto-Mensaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Cambiar estilo de la flecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6 Cambiar el color de la flecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.7 Numeración de la secuencia de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . 41.8 Dividiendo diagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.9 Agrupando mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.10 Notas en mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.11 Algunas otras notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.12 Cambiando el aspecto de las notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.13 Creole y HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.14 Divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.15 Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.16 Retardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.17 Espaciado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.18 Activación y Destrucción de la Línea de vida . . . . . . . . . . . . . . . . . . . . . . 131.19 Creación de participante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.20 Mensajes entrantes y salientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.21 Estereotipos y marcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.22 Mayor información en los títulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.23 Entorno de participante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.24 Removiendo pie de página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.25 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.26 Cambiando el relleno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 Diagrama de Casos de Uso 222.1 Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2 Actores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3 Descripción de Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4 Ejemplo básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5 Extensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.6 Usando notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.7 Estereotipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.8 Cambiar dirección a las flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.9 Dividiendo los diagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.10 Dirección: de izquierda a derecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.11 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.12 Un ejemplo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 123 of 127

Page 125: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

CONTENTS CONTENTS

3 Diagrama de Clases 303.1 Relación entre clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 Etiquetas en las relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.3 Añadiendo métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4 Definiendo la visibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.5 Abstracto y Estático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.6 Cuerpo avanzado de las clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.7 Notas y estereotipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.8 Más acerca de notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.9 Notas en enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.10 Clases abstractas e interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.11 Sin usar letras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.12 Atributos, métodos... ocultos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.13 Clases ocultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.14 Uso de clases genéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.15 Círculo enmarcador específico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.16 Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.17 Estilos de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.18 Espacios de nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.19 Creación automática del espacio de nombre . . . . . . . . . . . . . . . . . . . . . . . 453.20 Interface Lollipop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.21 Cambiando la dirección de las flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.22 Asociación de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.23 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.24 Estereotipos personalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.25 Degrado de colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.26 Ayudar en el diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.27 Dividiendo archivos grandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4 Diagrama de Actividades 534.1 Actividades simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2 Etiquetas en las flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.3 Cambiando la dirección de la flecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4 Ramas (bifurcaciones) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.5 Más acerca de las Ramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.6 Sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.7 Descripción de actividades de gran contenido . . . . . . . . . . . . . . . . . . . . . . 574.8 Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.9 Partición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.10 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.11 Octágono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.12 Un ejemplo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 124 of 127

Page 126: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

CONTENTS CONTENTS

5 Diagrama de Actividades (beta) 635.1 Una Actividad simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.2 Start/Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.3 Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.4 El ciclo Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.5 El ciclo While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.6 Procesamiento paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.7 Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.8 Colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.9 Flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.10 Agrupación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.11 Carriles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.12 Desacoplar y remover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.13 Otras formas de representación de actividades . . . . . . . . . . . . . . . . . . . . . . 715.14 Un ejemplo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6 Diagrama de Componentes 746.1 Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.2 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.3 Ejemplos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.4 Usando notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.5 Agrupando componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.6 Cambiando la dirección de las flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.7 Utiliza la notación UML2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.8 Long description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.9 Colores individuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.10 Using Sprite in Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.11 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

7 Diagrama de Estados 827.1 Un Estado Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827.2 Estados compuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827.3 Nombres largos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.4 Estados simultáneos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847.5 Dirección de la flecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.6 Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867.7 Más sobre notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877.8 Personalización (Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

8 Diagrama de Objetos 898.1 Definición de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.2 Relaciones entre objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.3 Agregando campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.4 Características comunes en diagramas de clases . . . . . . . . . . . . . . . . . . . . . 90

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 125 of 127

Page 127: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

CONTENTS CONTENTS

9 Comandos comunes 919.1 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.2 Encabezado y pie de página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.3 Zoom (acercamiento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.4 Título . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929.5 Subtítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939.6 Leyenda del diagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

10 Salt 9410.1 Basic widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9410.2 Using grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9410.3 Using separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9510.4 Tree widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9510.5 Enclosing brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9610.6 Adding tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9610.7 Using menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9710.8 Advanced table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

11 Creole 9911.1 Emphasized text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9911.2 List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9911.3 Escape character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10011.4 Horizontal lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10011.5 Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10011.6 Legacy HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10111.7 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10211.8 Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10211.9 Special characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10311.10OpenIconic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10311.11Definiendo y usando sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10511.12Encoding Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10511.13Importing Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10611.14Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

12 Cambiar fuentes y colores 10812.1 Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10812.2 Anidado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10812.3 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10912.4 Color de fuente, nombre y tamaño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11012.5 Blanco y negro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 126 of 127

Page 128: Diagramando UML con PlantUMLs.plantuml.com/PlantUML_Language_Reference_Guide_ES.pdf · • Diagramas de Secuencia, • Diagramas de Casos de uso, • Diagramas de Clases, • Diagramas

CONTENTS CONTENTS

13 Preprocesamiento 11413.1 Incluyendo archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11413.2 Incluyendo URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11413.3 Definición de constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11413.4 Definición de Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11513.5 Adding date and time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11613.6 Other special variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11613.7 Macro en varias líneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11613.8 Default values for macro parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 11613.9 Condiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11713.10Ruta de búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11813.11Características avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

14 Internacionalización 12014.1 Codificación de caracteres (Charset) . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

15 Nombres de colores 122

PlantUML : Guía de Referencia del Lenguaje (martes 17 de octubre de 2017) 127 of 127