PlantUML言語リファレンスガイド Plant UML Language Reference Guide JA

PlantUML_Language_Reference_Guide_JA

PlantUML_Language_Reference_Guide_JA

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 127

DownloadPlantUML言語リファレンスガイド Plant UML Language Reference Guide JA
Open PDF In BrowserView PDF
PlantUML を使った UML の描き方

言語リファレンスガイド
(2017 年 9 月 3 日 17:17)

PlantUML は以下のような図を手早く書くためのオープンソースプロジェクトです。
• シーケンス図
• ユースケース図
• クラス図
• アクティビティ図
• コンポーネント図
• 状態遷移図
• オブジェクト図
これらの図はシンプルかつ直感的な言語によって定義されています。

1 シーケンス図

1 シーケンス図
1.1 基本的な例
シーケンス”->” を、2 つの分類子間のメッセージを描画するために使います。分類子を、明示的に宣
言する必要はありません。
点線の矢印を使う場合は、”-->” とします。
また、”<-” や”<--” を使うこともできます。これらは図を変更することなく、可読性を高めること
ができます。ただし、以上の方法はシーケンス図だけに当てはまります。ほかの種類の図には当ては
まりません。
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

1.2 分類子の宣言
キーワード participant を使って、分類子の並び順を変えることができます。
分類子の宣言に別のキーワードを使用することも可能です:
• actor
• boundary
• control
• entity
• database
@startuml
actor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
collections Foo6
Foo1 -> Foo2 : To
Foo1 -> Foo3 : To
Foo1 -> Foo4 : To
Foo1 -> Foo5 : To
Foo1 -> Foo6 : To

boundary
control
entity
database
collections

@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

1 of 126

1.3 分類子名にアルファベット以外を使う

1 シーケンス図

キーワード as を使って分類子の名前を変更することができます。
アクターや分類子の背景色を、HTML コードや色名を使って変更することもできます。
@startuml
actor Bob #red
' The only difference between actor
'and participant is the drawing
participant Alice
participant "I have a really\nlong name" as L #99 FF99
/' You can also declare:
participant L as "I have a really\nlong name" #99 FF99
'/
Alice ->Bob: Authentication Request
Bob ->Alice: Authentication Response
Bob ->L: Log transaction
@enduml

1.3 分類子名にアルファベット以外を使う
分類子を定義するときに引用符を使用することができます。そして、分類子にエイリアスを与えるた
めにキーワード as を使用することができます。
@startuml
Alice -> "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 : 言語リファレンスガイド (2017 年 9 月 3 日)

2 of 126

1.4 自分自身へのメッセージ

1 シーケンス図

1.4 自分自身へのメッセージ
分類子は自分自身へメッセージを送信できます。
\n を使用して、複数行のテキストを扱えます。
@startuml
Alice ->Alice: This is a signal to self .\nIt also demonstrates\nmultiline \ntext
@enduml

1.5 矢印の見た目を変える
矢印の見た目をいくつかの方法によって変更できます。
• メッセージの消失を示す最後の x を追加
• \ や / を < や > の代わりに使うと矢印の先端が上側だけまたは下側だけになります。
• 矢印の先端を繰り返す (たとえば >> や //) と、矢印の先端が細くなります。
• -- を - の代わりに使うと、矢印が点線になります。
• 矢じりに最後の”O” を追加
• 双方向の矢印を使用する
@startuml
Bob ->x Alice
Bob -> Alice
Bob ->> Alice
Bob -\ Alice
Bob \\- Alice
Bob //-- Alice
Bob ->o Alice
Bob o\\-- Alice
Bob <-> Alice
Bob <->o Alice
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

3 of 126

1.6 矢印の色を替える

1 シーケンス図

1.6 矢印の色を替える
以下の表記を使って、個々の矢印の色を変えることができます。
@startuml
Bob -[#red]> Alice : hello
Alice -[#0000FF]->Bob : ok
@enduml

1.7 メッセージシーケンスの番号付け
メッセージへ自動で番号を振るために、キーワード autonumber を使います。
@startuml
autonumber
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
@enduml

autonumber ' 開始' で開始番号を、また、autonumber ' 開始' ' 増分' で増分も指定すること
ができます。
@startuml
autonumber
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
autonumber 15
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response
autonumber 40 10
Bob -> Alice : Yet another authentication Request

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

4 of 126

1.7 メッセージシーケンスの番号付け

1 シーケンス図

Bob <- Alice : Yet another authentication Response
@enduml

二重引用符で囲って番号の書式を指定することができます。
その書式指定は Java の DecimalFormat 方式で行う(’0’ は桁を表し, ’#’ は存在しない場合は 0 で
埋める桁を意味する)。
HTML タグを書式に使うこともできます。
@startuml
autonumber "[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
autonumber 15 "(##)"
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response
autonumber 40 10 "Message 0 "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response
@enduml

autonumber stop と autonumber resume ' 増分' ' 書式' を自動採番の一時停止と再開にそれぞ
れを使用することができます。
@startuml
autonumber 10 10 "[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
autonumber stop
Bob -> Alice : dummy

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

5 of 126

1.8 図の分割

1 シーケンス図

autonumber resume "Message 0 "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response
autonumber stop
Bob -> Alice : dummy
autonumber resume 1 "Message 0
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response
@enduml

"

1.8 図の分割
図を複数の画像に分けるためにキーワード newpage を使います。
新しいページのタイトルをキーワード newpage の直後に書くことができます。
これは、複数ページにわたる長い図を書くときに便利な機能です。
@startuml
Alice -> Bob : message 1
Alice -> Bob : message 2
newpage
Alice -> Bob : message 3
Alice -> Bob : message 4
newpage A title for the\nlast page
Alice -> Bob : message 5
Alice -> Bob : message 6
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

6 of 126

1.9 メッセージのグループ化

1 シーケンス図

1.9 メッセージのグループ化
次のキーワードを使えば、メッセージをまとめてグループ化できます。
• alt/else
• opt
• loop
• par
• break
• critical
• group 表示するテキスト
ヘッダ部分に文字列を追加することが可能です。(group を除く)
グループを閉じるにはキーワード end を使用します。
注:グループはネスト可能です。
@startuml
Alice -> Bob: Authentication Request
alt successful case
Bob -> Alice: Authentication Accepted
else some kind of failure
Bob -> Alice: Authentication Failure
group My own label
Alice -> Log : Log attack start
loop 1000 times
Alice -> Bob: DNS Attack
end
Alice -> Log : Log attack end
end
else Another type of failure
Bob -> Alice: Please repeat
end
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

7 of 126

1.10 メッセージの注釈

1.10

1 シーケンス図

メッセージの注釈

メッセージのすぐ後ろにキーワード note left または note right を使用しメッセージの注釈をつけ
ることが可能です。
end note キーワードを使って、複数行の注釈を付けることができます。
@startuml
Alice ->Bob : hello
note left: this is a first note
Bob ->Alice : ok
note right: this is another note
Bob ->Bob : I am thinking
note left
a note
can also be defined
on several lines
end note
@enduml

1.11

その他の注釈

分類子との相対位置を指定して注釈を付けるには、次のものを使います:
注釈を目立たせるために、背景色を変えることができます。
また、キーワード end note を使って複数行の注釈を付けることができます。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

8 of 126

1.12 ノートの形を変える。

1 シーケンス図

@startuml
participant Alice
participant Bob
note left of Alice #aqua
This is displayed
left 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 , Alice
This is yet another
example of
a long note.
end note
@enduml

1.12

ノートの形を変える。

キーワード hnote と rnote を使ってノートの形を変更できます。
@startuml
caller -> server : conReq
hnote over caller : idle
caller <- server : conConf
rnote over server
"r" as rectangle
"h" as hexagon
endrnote
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

9 of 126

1.13 Creole と HTML

1 シーケンス図

1.13 Creole と HTML
PlantUML では creole フォーマットを使うこともできます。
@startuml
participant Alice
participant "The ** Famous ** Bob" as Bob
Alice -> Bob : hello --there -... Some ~~ long delay ~~ ...
Bob -> Alice : ok
note left
This is ** bold **
This is // italics //
This is "" monospaced ""
This is --stroked -This is __underlined__
This is ~~ waved ~~
end note
Alice -> Bob : A // well formatted // message
note right of Alice
This is  displayed 
__left of__ Alice.
end note
note left of Bob
This  is  displayed 
**left of  Alice  Bob **.
end note
note over Alice , Bob
This is hosted  by 
end note
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

10 of 126

1.14 境界線

1.14

1 シーケンス図

境界線

== を使って、図を論理的なステップに分けることも出来ます。
@startuml
== Initialization ==
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
== Repetition ==
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

1.15

リファレンス

キーワード ref over を使用して、図中にリファレンスを挿入できます。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

11 of 126

1.16 遅延

1 シーケンス図

@startuml
participant Alice
actor Bob
ref over Alice , Bob : init
Alice -> Bob : hello
ref over Bob
This can be on
several lines
end ref
@enduml

1.16

遅延

処理の遅延を表すために ... が使えます。また、作成した遅延にコメントを付けることもできます。
@startuml
Alice -> Bob: Authentication Request
...
Bob --> Alice: Authentication Response
...5 minutes latter ...
Bob --> Alice: Bye !
@enduml

1.17

間隔

図の間隔を調整するために、記号 ||| を使用することができます。
さらにピクセル数を指定することもできます。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

12 of 126

1.18 ライフラインの活性化と破壊

1 シーケンス図

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

1.18

ライフラインの活性化と破壊

activate と deactivate を使って分類子の活性化を表します。
分類子の活性化はライフラインで表されます。
activate と deactivate は直前のメッセージに適用されます。
destroy は分類子のライフラインが終わったことを表します。
@startuml
participant User
User -> A: DoWork
activate A
A -> B: << createRequest >>
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: RequestCreated
deactivate B
A -> User: Done
deactivate A
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

13 of 126

1.19 分類子の生成

1 シーケンス図

ライフラインはネスト (入れ子に) することができ、色をつけることもできます。
@startuml
participant User
User -> A: DoWork
activate A #FFBBBB
A -> A: Internal call
activate A #DarkSalmon
A -> B: << createRequest >>
activate B
B --> A: RequestCreated
deactivate B
deactivate A
A -> User: Done
deactivate A
@enduml

1.19

分類子の生成

キーワード create を、オブジェクトが最初のメッセージを受信する直前に置くことにより、このメッ
セージがオブジェクトを新しく 生成していることを強調して表現できます。
@startuml
Bob -> Alice : hello
create Other
Alice -> Other : new
create control String
Alice -> String
note right : You can also put notes!

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

14 of 126

1.20 インとアウトのメッセージ

1 シーケンス図

Alice --> Bob : ok
@enduml

1.20

インとアウトのメッセージ

図の一部だけにフォーカスを当てたい場合には、インまたはアウトのメッセージを使えます。
左角括弧”[” を使って図の左端、右角括弧”]” を使って図の右側を表せます。
@startuml
[-> A: DoWork
activate A
A -> A: Internal call
activate A
A ->] : << createRequest >>
A<--] : RequestCreated
deactivate A
[<- A: Done
deactivate A
@enduml

また、次の書き方も使えます:
@startuml
[-> Bob
[o-> Bob
[o->o Bob
[x-> Bob
[<- Bob
[x<- Bob

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

15 of 126

1.21 ステレオタイプとスポット

Bob
Bob
Bob
Bob

1 シーケンス図

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

Bob <-]
Bob x<-]
@enduml

1.21

ステレオタイプとスポット

<< と >> を使い分類子にステレオタイプをつけることができます。
(X,color) と記述することによりステレオタイプに色付きの文字と円のアイコンをつけることが
できます。
@startuml
participant "Famous Bob" as Bob << Generated >>
participant Alice << (C,# ADD1B2) Testable >>
Bob ->Alice: First message
@enduml

デフォルトでは guillemet キャラクターはステレオタイプを表示するために使用されます。スキン
パラメータ guillemet を使用してこの動作を変更することができます:
@startuml
skinparam guillemet false
participant "Famous Bob" as Bob << Generated >>
participant Alice << (C,# ADD1B2) Testable >>
Bob ->Alice: First message
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

16 of 126

1.22 タイトルについての詳細

1 シーケンス図

@startuml
participant Bob << (C,# ADD1B2) >>
participant Alice << (C,# ADD1B2) >>
Bob ->Alice: First message
@enduml

1.22

タイトルについての詳細

タイトルには creole フォーマットが使用できます。
@startuml
title __Simple__ ** communication ** example
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml

タイトルの説明では \n で改行を表せます。
@startuml
title __Simple__ communication example\non several lines
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

17 of 126

1.23 分類子の囲み

1 シーケンス図

また、キーワード title と end title を使うことにより、タイトルを複数行にわたって記述できます。
@startuml
title
Simple  communication example
on several  lines and using html 
This is hosted by 
end title
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml

1.23

分類子の囲み

キーワード box と end box を使い、分類子のまわりにボックスを描くことができます。
タイトルや背景色をキーワード box に続けて任意で追加できます。
@startuml
box "Internal Service" #LightBlue
participant Bob
participant Alice
end box
participant Other
Bob -> Alice : hello
Alice -> Other : hello
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

18 of 126

1.24 フッターの除去

1.24

1 シーケンス図

フッターの除去

図のフッターを削除するにはキーワード hide footbox を使います。
@startuml
hide footbox
title Footer removed
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml

1.25

スキンパラメータ

図の色やフォントを変えるにはキーワード skinparam を使います。
キーワードを使用できるのは:
• 他のコマンドと同じように図の定義の中、
• インクルードしたファイルの中、
• またはコマンドラインで指定された設定ファイルや Ant タスクの中です。
次の例のように他のパラメータを変えることもできます。
@startuml
skinparam
skinparam
skinparam
skinparam

sequenceArrowThickness 2
roundcorner 20
maxmessagesize 60
sequenceParticipant underline

actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
C --> B: WorkDone

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

19 of 126

1.25 スキンパラメータ

1 シーケンス図

destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml

@startuml
skinparam backgroundColor #EEEBDC
skinparam handwritten true
skinparam sequence {
ArrowColor DeepSkyBlue
ActorBorderColor DeepSkyBlue
LifeLineBorderColor blue
LifeLineBackgroundColor #A9DCDF
ParticipantBorderColor DeepSkyBlue
ParticipantBackgroundColor DodgerBlue
ParticipantFontName Impact
ParticipantFontSize 17
ParticipantFontColor #A9DCDF
ActorBackgroundColor aqua
ActorFontColor DeepSkyBlue
ActorFontSize 17
ActorFontName Aapex
}
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

20 of 126

1.26 パディングの変更

1 シーケンス図

C --> B: WorkDone
destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml

1.26

パディングの変更

パディングの設定を変更することができます。
@startuml
skinparam ParticipantPadding 20
skinparam BoxPadding 10
box "Foo1"
participant Alice1
participant Alice2
end box
box "Foo2"
participant Bob1
participant Bob2
end box
Alice1 -> Bob1 : hello
Alice1 -> Out : out
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

21 of 126

2 ユースケース図

2 ユースケース図
2.1 ユースケース
ユースケースは丸括弧で囲んで使います (丸括弧の対は楕円に似ているからです)。
usecase キーワードを使ってユースケースを定義することもできます。as キーワードを使ってエ
イリアスを定義することもできます。このエイリアスはあとで、ユースケースの関係を定義するため
に使います。
@startuml
(First usecase)
(Another usecase) as (UC2)
usecase UC3
usecase (Last\nusecase) as UC4
@enduml

2.2 アクター
アクターは 2 つのコロンで囲まれます。
actor キーワードを使ってアクターを定義することもできます。as キーワードを使ってエイリア
スを定義することもできます。このエイリアスはあとで、ユースケースの関係を定義するために使い
ます。
後から説明しますが、アクターの定義は必須ではありません。
@startuml
:First Actor:
:Another\nactor: as Men2
actor Men3
actor :Last actor: as Men4
@enduml

2.3 ユースケースの説明
クオート記号を使うことにより、複数行にわたる説明を記述できます。
また、次の区切り記号を使用できます:-- .. == __。区切り記号の中にはタイトルを記入できま
す。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

22 of 126

2.4 簡単な例

2 ユースケース図

@startuml
usecase UC1 as "You can use
several 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 簡単な例
アクターとユースケースを繋げるには --> 矢印を使います。
矢印に使うハイフン "-" の数を増やすと矢印を長くできます。矢印の定義に”:” を使うことにより
矢印にラベルをつけることができます。
以下の例では User は定義なしにアクターとして使われています。
@startuml
User -> (Start)
User --> (Use the application) : A small label
:Main Admin: ---> (Use the application) : This is\nyet another\nlabel
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

23 of 126

2.5 継承

2 ユースケース図

2.5 継承
もしアクターやユースケースが継承をする場合には、<|-- 記号を使います(これが
す)。

になりま

@startuml
:Main Admin: as Admin
(Use the application) as (Use)
User <|-- Admin
(Start) <|-- (Use)
@enduml

2.6 ノートの使用方法
オブジェクトに関連のあるノートを作成するには note left of 、note right of 、note top of 、
note bottom of キーワードを使います。
または note キーワードを使ってノートを作成し、.. 記号を使ってオブジェクトに紐づけること
ができます。
@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 also
be on several lines
end note
note "This note is connected\nto several objects ." as N2
(Start) .. N2
N2 .. (Use)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

24 of 126

2.7 ステレオタイプ

2 ユースケース図

2.7 ステレオタイプ
” <<” と” >> ” を使い、アクターとユースケースを定義中にステレオタイプを追加できます。
@startuml
User << Human >>
:Main Database: as MySql << Application >>
(Start) << One Shot >>
(Use the application) as (Use) << Main >>
User -> (Start)
User --> (Use)
MySql --> (Use)
@enduml

2.8 矢印の方向を変えるには
デフォルトでは、クラス間の線は 2 個のハイフン -- で表され、縦方向につながります。横方向の線を
描くには以下のようにハイフン 1 つかドット 1 つを書きます。
@startuml
:user: --> (Use case 1)
:user: -> (Use case 2)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

25 of 126

2.9 図を分割する

2 ユースケース図

線を反対にすることでも方向を変えることができます。
@startuml
(Use case 1) <.. :user:
(Use case 2) <- :user:
@enduml

矢印の内側に left、right、up、down を書くことによっても線の方向を変えられます。
@startuml
:user: -left -> (dummyLeft)
:user: -right -> (dummyRight)
:user: -up -> (dummyUp)
:user: -down -> (dummyDown)
@enduml

例えば、-down- ではなく -d- など、各方向の頭文字、または頭 2 文字(-do- )だけ使って矢印を
短くすることも出来ます。
ただし、この機能の使いすぎには注意しましょう。ほとんどの場合、特別なことをしなくても
Graphviz がその場にあった表示を選びます。

2.9 図を分割する
newpage キーワードは、いくつかのページや画像に図を分割します。

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

26 of 126

2.10 左から右に描画する

2 ユースケース図

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

2.10

左から右に描画する

デフォルトの作図方向は top to bottom となっています。
@startuml
'default
top to bottom direction
user1 --> (Usecase 1)
user2 --> (Usecase 2)
@enduml

作図方向を left to right に変更するには left to right direction コマンドを使います。
@startuml
left to right direction
user1 --> (Usecase 1)
user2 --> (Usecase 2)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

27 of 126

2.11 スキン設定(Skinparam)

2.11

2 ユースケース図

スキン設定(Skinparam)

ダイアグラムの色やフォントを変更するには skinparam コマンドを使用します。
このコマンドは以下の場面で使用できます。
• ・ダイアグラム定義内で他のコマンドを同様に。
• ・インクルードされたファイル内。
• ・設定ファイルのコマンドライン内や ANT タスク内。
個別のステレオタイプ付きアクターやユースケースにそれぞれ色やフォントを定義することができ
ます。
@startuml
skinparam handwritten true
skinparam usecase {
BackgroundColor DarkSeaGreen
BorderColor DarkSlateGray
BackgroundColor << Main >> YellowGreen
BorderColor << Main >> YellowGreen
ArrowColor Olive
ActorBorderColor black
ActorFontName 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 : 言語リファレンスガイド (2017 年 9 月 3 日)

28 of 126

2.12 完全な例

2.12

2 ユースケース図

完全な例

@startuml
left to right direction
skinparam packageStyle rectangle
actor customer
actor clerk
rectangle checkout {
customer -- (checkout)
(checkout) .> (payment) : include
(help) .> (checkout) : extends
(checkout) -- clerk
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

29 of 126

3

クラス図

3 クラス図
3.1 クラス間の関係
クラス間の関係は次の記号を使用して定義されています:
継承 <|-合成 *-集約 o-”--” を”..” に置き換えると点線にできます。
これらのルールを知ることで、以下の図面を描くことができます:
@startuml
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
@enduml

@startuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
@enduml

@startuml
Class21 #-Class23 x-Class25 }-Class27 +-Class29 ^-@enduml

Class22
Class24
Class26
Class28
Class30

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

30 of 126

3.2 関係のラベル

3

クラス図

3.2 関係のラベル
”:” にテキストを続けることによって、関係へラベルを追加することが可能です。
多重度を示す為に関係のそれぞれの側にダブルクォーテーション"" を使うことができます。
@startuml
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
Class05 --> "1" Class06
@enduml

ラベルの最初または最後に < か > を使って、他のオブジェクトへの関係を示す矢印を追加できま
す。
@startuml
class Car
Driver - Car : drives >
Car *- Wheel : have 4 >
Car -- Person : < owns
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

31 of 126

3.3 メソッドの追加

3

クラス図

3.3 メソッドの追加
":" に続けてフィールド名やメソッド名を記述すると、フィールドやメソッドを宣言できます。
システムは括弧をチェックしてメソッドとフィールドのどちらなのかを選択します。
@startuml
Object <|-- ArrayList
Object : equals ()
ArrayList : Object [] elementData
ArrayList : size ()
@enduml

波括弧 {} を使って、フィールドやメソッドをくくることもできます。
構文はタイプや名前の順番について非常に柔軟であることに注意してください。
@startuml
class Dummy {
String data
void methods ()
}
class Flight {
flightNumber : Integer
departureTime : Date
}
@enduml

You can use {field} and {method} modifiers to override default behaviour of the parser about fields
and methods.
@startuml
class Dummy {
{field} A field (despite parentheses)
{method} Some method
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

32 of 126

3.4 可視性の定義

3

クラス図

3.4 可視性の定義
メソッドやフィールドを定義するときに対応する項目の可視性を定義する記号を使用することができ
ます。
private (クラス外からは非可視)
protected (サブクラスからも可視)
package private (パッケージ外からは非可視)
public (どこからでも可視)

#
̃
+

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

コマンド skinparam classAttributeIconSize 0 を使用してこの機能を切ることができます。
@startuml
skinparam classAttributeIconSize 0
class Dummy {
-field1
#field2
~method1 ()
+method2 ()
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

33 of 126

3.5 Abstract と Static

3

クラス図

3.5 Abstract と Static
静的または抽象的なメソッドまたはフィールドは {static} または {abstract} 修飾子を使用するこ
とで定義することができます。
これらの修飾子は行の始めまたは終りに使用することができます。
{static} の代わりに {classifier}
もまた使用できます。
@startuml
class Dummy {
{static} String id
{abstract} void methods ()
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

34 of 126

3.6 高等なクラス本体

3

クラス図

3.6 高等なクラス本体
デフォルトでは, メソッドやフィールドは PlantUML によって自動再編成されます。メソッドやフィー
ルドに独自の順序付けを定義するためのセパレータを使用できます。以下のセパレータが使用で
きます:-- .. == __
セパレータ内でタイトルを使用することもできます:
@startuml
class Foo1 {
You can use
several lines
..
as you want
and group
==
things together.
__
You can have as many groups
as you want
-End of class
}
class User {
.. Simple Getter ..
+ getName ()
+ getAddress ()
.. Some setter ..
+ setName ()
__ private data __
int age
-- encrypted -String password
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

35 of 126

3.7 注釈とステレオタイプ

3

クラス図

3.7 注釈とステレオタイプ
ステレオタイプは、キーワード class に” << ” と” >> ” で定義されます。
注釈の定義には、キーワード note left of, note right of, note top of, note bottom of も使用
できます。
クラス定義の最後には note left, note right, note top, note bottom も使用できます。
注釈は、キーワード note とで単独に定義することができ、記号 .. を使用して他のオブジェクトと
リンクすることもできます。
@startuml
class Object << general >>
Object <|--- ArrayList
note top of Object : In java , every class\nextends this one.
note "This is a floating note" as N1
note "This note is connected\nto several objects ." as N2
Object .. N2
N2 .. ArrayList
class Foo
note left: On last defined class
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

36 of 126

3.8 注釈の詳細

3.8

3

クラス図

注釈の詳細

次のようないくつかの HTML タグを使用することも可能です:
• , ,  or  or  to change font size
•  or  : the file must be accessible by the filesystem
また、複数行にまたがる注釈も可能です。
クラス定義の最後には note left, note right, note top, note bottom も使用できます。
@startuml
class Foo
note left: On last defined class
note top of Object
In java , every  class 
extends 
this  one.
end note
note as N1
This note is also 
on several 
words  lines
And this is hosted by 
end note
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

37 of 126

3.9 リンクへの注釈

3.9

3

クラス図

リンクへの注釈

リンク定義の直後に note on link を使用して、リンクに注釈を加えることが可能です。
もし注釈の相対位置を変えたい場合には、ラベル note left on link, note right on link,
note top on link, note bottom on link も使用できます。
@startuml
class Dummy
Dummy --> Foo : A link
note on link #red: note that is red
Dummy --> Foo2 : Another link
note right on link #blue
this is my note on right link
and in blue
end note
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

38 of 126

3.10 抽象クラスとインタフェース

3.10

3

クラス図

抽象クラスとインタフェース

抽象クラスは、キーワード "abstract" または "abstract class" を使用して宣言できます。
そのクラスは イタリック体で印字されます。
キーワード interface, annotation と enum も使用できます。
@startuml
abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection
List <|-- AbstractList
Collection <|-- AbstractCollection
Collection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayList
class ArrayList {
Object [] elementData
size ()
}
enum TimeUnit {
DAYS
HOURS
MINUTES
}
annotation SuppressWarnings
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

39 of 126

3.11 非文字の使用

3.11

3

クラス図

非文字の使用

クラス(または列挙型...)の表示に文字以外を使用したい場合は、次のいずれかの方法でするこ
とができます:
• クラス定義にはキーワード as を使用する
• クラス名の前後に引用符 "" を入れる
@startuml
class "This is my class" as class1
class class2 as "It works this way too"
class2 *-- "foo/dummy" : use
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

40 of 126

3.12 属性、メソッド等の非表示

3

クラス図

属性、メソッド等の非表示

3.12

コマンド hide/show を使用して、クラスの表示をパラメータ化できます。
基本のコマンドは hide empty members です。このコマンドは属性やメソッドが空の場合に非表
示にします。
empty members の代わりに使用することができます:
• empty fields または empty attributes は空のフィールドに、
• empty methods は空のメソッドに、
• fields または attributes は、それらが記述されていても非表示になります、
• methods はメソッドが記述されていても非表示になります、
• members はフィールドと メソッドが記述されていても非表示になります、
• circle はクラス名の前の丸で囲んだ文字に、
• stereotype はステレオタイプに。
キーワード hide または show のすぐ後ろに提供することもできます:
• class は全てのクラスに、
• interface は全てのインタフェースに、
• enum は全ての列挙型に、
• <> は foo1 でステレオタイプ化されたクラスに、
• 既存のクラス名。
コマンド show/hide をルールや例外の定義にそれぞれ使用することができます。
@startuml
class Dummy1 {
+myMethods ()
}
class Dummy2 {
+hiddenMethod ()
}
class Dummy3 <> {
String name
}
hide
hide
show
show

members
<> circle
Dummy1 methods
<> fields

@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

41 of 126

3.13 非表示クラス

3.13

3

クラス図

非表示クラス

コマンド show/hide でクラスを非表示にすることができます。
これは大規模なインクルードファイルを定義する場合で、ファイルのインクルードの後でいくつ
かのクラスを非表示にしたい場合に有用である可能性が有ります。
@startuml
class Foo1
class Foo2
Foo2 *-- Foo1
hide Foo2
@enduml

3.14

ジェネリクスの使用

括弧 < と > を使用してジェネリクスの使用をクラスに定義できます。
@startuml
class Foo  {
int size ()
}
Foo *- Element
@enduml

It is possible to disable this drawing using skinparam genericDisplay old command.

3.15

特殊な目印

通常、目印文字 (C,I,E,A) は、クラス、インターフェイス、列挙型と抽象クラスのために使用さ
れます。
しかし、つぎの例のように単一の文字と色を追加し、ステレオタイプを定義するクラスに独自の
目印を作成することができます:
@startuml
class System << (S,# FF7700) Singleton >>
class Date << (D,orchid) >>
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

42 of 126

3.16 パッケージ

3.16

3

クラス図

パッケージ

キーワード package を使用してパッケージを定義でき、必要に応じてパッケージの背景色
(HTML カラーコードまたは名前)を宣言します。
パッケージ定義は入れ子にできることに注意してください。
@startuml
package "Classic Collections" #DDDDDD {
Object <|-- ArrayList
}
package net.sourceforge.plantuml {
Object <|-- Demo1
Demo1 *- Demo2
}
@enduml

3.17

パッケージスタイル

パッケージに利用可能なさまざまなスタイルがあります。
コマンド skinparam packageStyle を使用してデフォルトのスタイルを設定する、またはパッ
ケージのステレオタイプを使用する、のどちらかで指定することができます。or by using a
stereotype on the package:
@startuml
scale 750 width
package foo1 <> {
class Class1
}
package foo2 <> {
class Class2
}
package foo3 <> {
class Class3
}
package foo4 <> {
class Class4
}
package foo5 <> {
class Class5
}
package foo6 <> {
class Class6
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

43 of 126

3.18 名前空間

3

クラス図

次の例のように、パッケージ間のリンクを定義することもできます:
@startuml
skinparam packageStyle rectangle
package foo1.foo2 {
}
package foo1.foo2.foo3 {
class Object
}
foo1.foo2 +-- foo1.foo2.foo3
@enduml

3.18

名前空間

パッケージ内では、クラスの名前はこのクラスの一意な識別子です。それは、全く同じ名前の 2
つのクラスを異なるパッケージに持つことができないことを意味します。
そのような場合、パッケージの代わりに名前空間を使用したらいいでしょう。
名前空間からの完全修飾名によりクラスを参照することができます。デフォルトの名前空間から
のクラスは、一つのドットで修飾します。
明示的に名前空間を作成する必要はないことに注意してください:完全修飾されたクラスは自動
的に適切な名前空間に置かれています。
@startuml
class BaseClass
namespace net.dummy #DDDDDD {
.BaseClass <|-- Person
Meeting o-- Person
.BaseClass <|- Meeting
}
namespace net.foo {
net.dummy.Person <|- Person
.BaseClass <|-- Person

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

44 of 126

3.19 自動的に名前空間を作成する

3

クラス図

net.dummy.Meeting o-- Person
}
BaseClass <|-- net.unused.Person
@enduml

3.19

自動的に名前空間を作成する

コマンド set namespaceSeparator ??? を使用して、(ドット以外の)別の区切り文字を定義す
ることができます。
@startuml
set namespaceSeparator ::
class X1::X2::foo {
some info
}
@enduml

コマンド set namespaceSeparator none を使用して、自動的に名前空間を作成する機能を無効
にすることができます。
@startuml
set namespaceSeparator none
class X1.X2.foo {
some info
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

45 of 126

3.20 ロリポップ(棒付きキャンディー)インタフェース

3.20

3

クラス図

ロリポップ(棒付きキャンディー)インタフェース

次の構文を使用して、クラスにロリポップインタフェースを定義することもできます:
• bar ()- foo
• bar ()-- foo
• foo -() bar
@startuml
class foo
bar ()- foo
@enduml

3.21

矢印の向きを変える

デフォルトではクラス間のリンクは 2 つのダッシュ-- を持っており、垂直に配向されています。
次のように単一のダッシュ(またはドット)を置くことによって水平方向にリンクを使用するこ
とが可能です。
@startuml
Room o- Student
Room *-- Chair
@enduml

リンクをひっくり返すことにより向きを変えることができる:
@startuml
Student -o Room
Chair --* Room
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

46 of 126

3.22 関連クラス

3

クラス図

キーワード left, right, up, down を矢印の内側に置くことにより、矢印の方向を変えることも
可能です:
@startuml
foo -left -> dummyLeft
foo -right -> dummyRight
foo -up -> dummyUp
foo -down -> dummyDown
@enduml

方向の最初の文字を使用して矢印を短縮することができます(例えば、-d- を -down- の代わり
に、または、最初の 2 文字(-do-)。
この機能を悪用してはならないことに注意してください。Graphviz は微調整のいらない良い結
果を通常は与えてくれます。

3.22

関連クラス

この例のように、2 つのクラスの関係を定義した後で 関連クラスを定義することができます。
@startuml
class Student {
Name
}
Student "0..*" - "1..*" Course
(Student , Course) .. Enrollment
class Enrollment {
drop ()
cancel ()
}
@enduml

別の方向にそれを定義することができます:

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

47 of 126

3.23 化粧をする

3

クラス図

@startuml
class Student {
Name
}
Student "0..*" -- "1..*" Course
(Student , Course) . Enrollment
class Enrollment {
drop ()
cancel ()
}
@enduml

3.23

化粧をする

色やフォントを変えるために skinparam コマンドを使用することができます。
次のようにコマンドは使用できます:
• 図の定義では、他のコマンドのように、
• インクルードファイルの中に、
• 設定ファイルの中に, コマンドラインまたは ANT タスクで提供。
@startuml
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
}
skinparam stereotypeCBackgroundColor YellowGreen
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

48 of 126

3.24 ステレオタイプの化粧

3.24

3

クラス図

ステレオタイプの化粧

ステレオタイプクラスに特定の色やフォントを定義することができます。
@startuml
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
BackgroundColor <> Wheat
BorderColor <> Tomato
}
skinparam stereotypeCBackgroundColor YellowGreen
skinparam stereotypeCBackgroundColor << Foo >> DimGray
Class01 <>
Class03 <>
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
@enduml

3.25

色のグラデーション

表記を使用して、クラスや注釈の個々の色を宣言することが可能です。
標準的な色の名前または RGB コードのいずれかを使用することができます。
次の構文で背景に色のグラデーションをつけることもできます。2 つの色の名前を次のいずれか
で分割:
• |,
• /,
• \,
• or グラデーションの方向に依存します。
例えば、こんなふうにできるかも:
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

49 of 126

3.26 レイアウトの手助け

3

クラス図

@startuml
skinparam backgroundcolor AntiqueWhite/Gold
skinparam classBackgroundColor Wheat|CornflowerBlue
class Foo #red -green
note left of Foo #blue \9932 CC
this is my
note on this class
end note
package example #GreenYellow/ LightGoldenRodYellow {
class Dummy
}
@enduml

3.26

レイアウトの手助け

Sometimes, the default layout is not perfect...
You can use together keyword to group some classes together : the layout engine will try to group
them (as if they were in the same package).
You can also use hidden links to force the layout.
@startuml
class Bar1
class Bar2
together {
class Together1
class Together2
class Together3
}
Together1 - Together2
Together2 - Together3
Together2 -[hidden]--> Bar1
Bar1 -[hidden]> Bar2

@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

50 of 126

3.27 大きなファイルの分割

3.27

3

クラス図

大きなファイルの分割

時には、ある非常に大きな画像ファイルを受け取ることがあるでしょう。
生成された画像を複数のファイルに分割するコマンド”page (hpages)x(vpages)” を使用するこ
とができます:
hpages は横方向のページ数を示すコマンドであり、そして vpages は縦方向のページ数を示す
コマンドです。
特定のスキンパラメータ設定を使用して、分割されたページに罫線を配置することもできます
(例を参照)。
@startuml
' Split into 4 pages
page 2x2
skinparam pageMargin 10
skinparam pageExternalColor gray
skinparam pageBorderColor black
class BaseClass
namespace net.dummy #DDDDDD {
.BaseClass <|-- Person
Meeting o-- Person
.BaseClass <|- Meeting
}
namespace net.foo {
net.dummy.Person <|- Person
.BaseClass <|-- Person
net.dummy.Meeting o-- Person
}
BaseClass <|-- net.unused.Person
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

51 of 126

3.27 大きなファイルの分割

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

3

クラス図

52 of 126

4

アクティビティ図

アクティビティ図

4
4.1

単純なアクティビティ

(*) をアクティビティ図の開始点と終了点に使います。
場合によっては、(*top) を使用して開始点を図の一番上に置くこともできます。
--> で矢印を表します。
@startuml
(*) --> "First Activity"
"First Activity" --> (*)
@enduml

4.2

矢印のラベル

デフォルトで、矢印は最後に書いたアクティビティを起点に描かれます。
矢印にラベルを付けるために brackets [ and ] を使います just after the arrow definition.
@startuml
(*) --> "First Activity"
-->[You can put also labels] "Second Activity"
--> (*)
@enduml

4.3

矢印の方向を変える

水平矢印には -> を使用できます。次の構文を使用して矢印の方向を強制することができます。
• -down-> (default arrow)
• -right-> or ->
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

53 of 126

4.4 分岐

4

アクティビティ図

• -left->
• -up->
@startuml
(*) -up -> "First Activity"
-right -> "Second Activity"
--> "Third Activity"
-left -> (*)
@enduml

4.4

分岐

キーワード if/then/else を使用してブランチを定義することができます。
@startuml
(*) --> "Initialization"
if "Some Test" then
-->[true] "Some Activity"
--> "Another activity"
-right -> (*)
else
->[false] "Something else"
-->[Ending process] (*)
endif
@enduml

残念ながら、図のテキストで同じアクティビティを繰り返すことがあります:
@startuml
(*) --> "check input"
If "input is verbose" then
--> [Yes] "turn on verbosity"

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

54 of 126

4.5 もっと分岐

4

アクティビティ図

--> "run command"
else
--> "run command"
Endif
-->(*)
@enduml

4.5

もっと分岐

デフォルトでは、分岐は最後に定義されたアクティビティに接続されますが、これを上書きして
キーワード if でリンクを定義することは可能です。
分岐をネストすることも可能です。
@startuml
(*) --> if "Some Test" then
-->[true] "activity 1"
if "" then
-> "activity 3" as a3
else
if "Other test" then
-left -> "activity 5"
else
--> "activity 6"
endif
endif
else
->[false] "activity 2"
endif
a3 --> if "last test" then
--> "activity 7"
else
-> "activity 8"
endif
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

55 of 126

4.6 同期

4.6

4

アクティビティ図

同期

=== code === を使用して同期バーを表示できます。
@startuml
(*) --> ===B1===
--> "Parallel Activity 1"
--> ===B2===
===B1=== --> "Parallel Activity 2"
--> ===B2===
--> (*)
@enduml

4.7

長いアクティビティの記述

アクティビティを宣言するとき、説明文を複数の行にまたがせることができます。説明に \n を
追加することもできます。
キーワード as を使ってアクティビティに短いコードを与えることもできます。このコードは、
図の説明の後半で使用できます。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

56 of 126

4.8 注釈

4

アクティビティ図

@startuml
(*) -left -> "this  activity 
is very  long2 
and defined on several lines
that contains many text " as A1
-up -> "Another activity\n on several lines"
A1 --> "Short activity "
@enduml

4.8

注釈

注釈をつけるアクティビティの説明の直後にあるコマンド note left, note right, note top or
note bottom, を使用して、アクティビティに注釈を追加することができます。
開始点に注釈を付ける場合は、図の説明の最初に注釈を定義します。
キーワード endnote を使用して、複数の行に注釈を付けることもできます。
@startuml
(*) --> "Some Activity"
note right: This activity has to be defined
"Some Activity" --> (*)
note left
This note is on
several lines
end note
@enduml

4.9

パーティション

キーワード partition を使用してパーティションを定義し、必要に応じてパーティションの背
景色を宣言することができます(HTML カラーコードまたは名前を使用)。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

57 of 126

4.10 スキンパラメータ

4

アクティビティ図

アクティビティを宣言すると、自動的に最後に使用されたパーティションに配置されます。
閉じ括弧 } を使用してパーティション定義を閉じることができます。
@startuml
partition Conductor {
(*) --> "Climbs on Platform"
--> === S1 ===
--> Bows
}
partition Audience #LightSkyBlue {
=== S1 === --> Applauds
}
partition Conductor {
Bows --> === S2 ===
--> WavesArmes
Applauds --> === S2 ===
}
partition Orchestra #CCCCEE {
WavesArmes --> Introduction
--> "Play music"
}
@enduml

4.10

スキンパラメータ

コマンド skinparam を使用して、図面の色とフォントを変更することができます。
PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

58 of 126

4.11 八角形

4

アクティビティ図

このコマンドを使用することができます:
• 図の定義中では、他のコマンドと同様に、
• インクルードされたファイルの中で、
• コマンドラインまたは ANT タスクで提供される構成ファイルの中で。
定型アクティビティには、特定の色とフォントを定義できます。
@startuml
skinparam backgroundColor #AAFFFF
skinparam activity {
StartColor red
BarColor SaddleBrown
EndColor Silver
BackgroundColor Peru
BackgroundColor << Begin >> Olive
BorderColor Peru
FontName Impact
}
(*)
-->
-->
-->
-->
-->

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

@enduml

4.11

八角形

コマンド skinparam activityShape octagon を使用して、アクティビティの形状を八角形に変
更できます。
@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon
(*) --> "First Activity"
"First Activity" --> (*)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

59 of 126

4.12 完全な例

4.12

4

アクティビティ図

完全な例

@startuml
title 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 ()"
--> render
endif
else
-->[false] === REDIRECT_CHECK ===
endif
if "Do redirect ?" then
->[yes] "redirect request"
--> == BEFORE_DESTROY ===
else
if "Do Forward ?" then
-left ->[yes] "Forward request"
--> == BEFORE_DESTROY ===
else
-right ->[no] "Render page template"
--> == BEFORE_DESTROY ===
endif
endif
--> "Page.onDestroy ()"
-->(*)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

60 of 126

4.12 完全な例

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

4

アクティビティ図

61 of 126

5 アクティビティ図(ベータ版)

5

アクティビティ図(ベータ版)

アクティビティ図の現在の構文には、いくつかの制限と欠点があります(例えば、メンテナンス
が難しい)。
そこで、私たちがより良い書式と構文を定義できるよう、全く新しい構文と実装がユーザーに
ベータ版として提案されています(V7947 以降)
。
この新しい実装のもう一つの利点は、(シーケンス図と同様に)Graphviz パッケージのインス
トールを必要としないことです。
新しい構文は古いものに取って代わるでしょう。しかし、互換性の理由で、上位互換を確保する
ことで、古い構文は認識されるでしょう。
ユーザーは新しい構文に移行することをつよく奨励されます。

5.1

単純なアクティビティ

アクティビティのラベルは: で開始し; で終了します。
テキストの書式設定は、Creole 記法の Wiki 構文を使用して行うことができます。
それらは定義順に暗黙的にリンクされます。
@startuml
:Hello world;
:This is on defined on
several ** lines **;
@enduml

5.2

開始/終了

図の開始と終了を示すために、キーワード start と stop を使用できます。
@startuml
start
:Hello world;
:This is on defined on
several ** lines **;
stop
@enduml

キーワード end もまた使用できます。

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

62 of 126

5.3 条件文

5 アクティビティ図(ベータ版)

@startuml
start
:Hello world;
:This is on defined on
several ** lines **;
end
@enduml

5.3

条件文

図に条件分岐を追加したい場合は、キーワード if、then そして else を使用することができま
す。ラベルは括弧を使用することで与えることができます。
@startuml
start
if (Graphviz installed ?) then (yes)
:process all\ndiagrams;
else (no)
:process only
__sequence__ and __activity__ diagrams;
endif
stop
@enduml

いくつもの条件分岐がある場合には、キーワード elseif を使用できます:
@startuml
start
if (condition A) then (yes)
:Text 1;
elseif (condition B) then (yes)
:Text 2;
stop
elseif (condition C) then (yes)
:Text 3;
elseif (condition D) then (yes)
:Text 4;

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

63 of 126

5.4 繰り返し(後判定)

5 アクティビティ図(ベータ版)

else (nothing)
:Text else;
endif
stop
@enduml

5.4

繰り返し(後判定)

繰り返し処理(後判定)がある場合には、キーワード repeat と repeat while を使用できます。
@startuml
start
repeat
:read data;
:generate diagrams;
repeat while (more data ?)
stop
@enduml

5.5

繰り返し(前判定)

繰り返し処理(前判定)がある場合には、キーワード while と end while を使用できます。
@startuml
start
while (data available ?)

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

64 of 126

5.6 並列処理

5 アクティビティ図(ベータ版)

:read data;
:generate diagrams;
endwhile
stop
@enduml

キーワード endwhile の後ろ、または、キーワード is を使用することで、ラベルを与えること
ができます。
@startuml
while (check filesize ?) is (not empty)
:read file;
endwhile (empty)
:close file;
@enduml

5.6

並列処理

並列処理を示すために、キーワード fork、fork again そして end fork が使用できます。
@startuml
start
if (multiprocessor ?) then (yes)
fork
:Treatment 1;
fork again
:Treatment 2;
end fork
else (monoproc)
:Treatment 1;
:Treatment 2;
endif
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

65 of 126

5.7 注釈

5.7

5 アクティビティ図(ベータ版)

注釈

Creole 表記の Wiki 構文を使用することで、テキストの書式設定ができます。
キーワード floating を使用し、注釈を遊離させることもできます。
@startuml
start
:foo1;
floating note left: This is a note
:foo2;
note right
This note is on several
// lines // and can
contain HTML 
====
* Calling the method ""foo ()"" is prohibited
end note
stop
@enduml

5.8

色指定

各アクティビティに、色を指定することができます。
@startuml
start
:starting progress;
#HotPink:reading configuration files
These files should edited at this point !;
#AAAAAA:ending of the process;
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

66 of 126

5.9 矢印

5.9

5 アクティビティ図(ベータ版)

矢印

記号 -> を用いて、矢印にテキストを添えることができ、また、色を変えることもできます。
点線、破線、太線、または、矢印なし、もまた可能です。
@startuml
:foo1;
-> You can put text on arrows;
if (test) then
-[#blue]->
:foo2;
-[#green ,dashed]-> The text can
also be on several lines
and ** very ** long ...;
:foo3;
else
-[#black ,dotted]->
:foo4;
endif
-[#gray ,bold]->
:foo5;
@enduml

5.10

グループ化

キーワード partition で複数のアクティビティを分割して、グループ化できます:
@startuml
start
partition Initialization {
:read config file;

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

67 of 126

5.11 動線

5 アクティビティ図(ベータ版)

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

5.11

動線

パイプ記号 | を用いて、複数の動線を定義することができます。
さらに、動線毎に色を変えることができます。
@startuml
|Swimlane1|
start
:foo1;
|# AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

68 of 126

5.12 分離

5.12

5 アクティビティ図(ベータ版)

分離

キーワード detach を使用して、矢印を取り除くことができます。
@startuml
:start;
fork
:foo1;
:foo2;
fork again
:foo3;
detach
endfork
if (foo4) then
:foo5;
detach
endif
:foo6;
detach
:foo7;
stop
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

69 of 126

5.13 SDL 図

5 アクティビティ図(ベータ版)

5.13 SDL 図
終端記号; を置き換えることで、アクティビティの表現形式を変えることができます:
• |
• <
• >
• /
• ]
• }
@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}
stop
end split
:finish;
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

70 of 126

5.14 完全な例

5.14

5 アクティビティ図(ベータ版)

完全な例

@startuml
start
:ClickServlet.handleRequest ();
:new page;
if (Page.onSecurityCheck) then (true)
:Page.onInit ();
if (isForward ?) then (no)
:Process controls;
if (continue processing ?) then (no)
stop
endif
if (isPost ?) then (yes)
:Page.onPost ();
else (no)
:Page.onGet ();
endif
:Page.onRender ();
endif
else (false)
endif
if (do redirect ?) then (yes)
:redirect process;
else
if (do forward ?) then (yes)
:Forward request;
else (no)
:Render page template;
endif
endif
stop
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

71 of 126

5.14 完全な例

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

5 アクティビティ図(ベータ版)

72 of 126

6

6
6.1

コンポーネント図

コンポーネント図
コンポーネント

コンポーネントは括弧でくくります。
また、component キーワードでもコンポーネントを定義できます。そして、コンポーネントには
as キーワードにより別名をつけることができます。この別名は、後でリレーションを定義する
ときに使えます。
@startuml
[First component]
[Another component] as Comp2
component Comp3
component [Last\ncomponent] as Comp4
@enduml

6.2

インタフェース

インタフェースは丸括弧 () でシンボルを囲うことで定義できます。(何故なら見た目が丸いから
です。)
もちろん interface キーワードを使って定義することもできます。as キーワードでエイリアス
を定義できます。このエイリアスは後で、関係を定義する時に使えます。
後で説明されますが、インタフェースの定義は省略可能です。
@startuml
() "First Interface"
() "Another interface" as Interf2
interface Interf3
interface "Last\ninterface" as Interf4
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

73 of 126

6.3 基本的な例

6.3

6

コンポーネント図

基本的な例

要素間の関係は、破線 (..)、直線 (--), 矢印 (-->) の組合せで構成されます。
@startuml
DataAccess - [First Component]
[First Component] ..> HTTP : use
@enduml

6.4

ノートの使用方法

オブジェクトに関連のあるノートを作成するには note left of 、note right of 、note top
of 、note bottom of キーワードを使います。note left of , note right of , note top of ,
note bottom of
または note キーワードを使ってノートを作成し、.. 記号を使ってオブジェクトに紐づけること
ができます。
@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 also
be on several lines
end note
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

74 of 126

6.5 コンポーネントのグループ化

6.5

6

コンポーネント図

コンポーネントのグループ化

いくつかのキーワードをグループコンポーネントやインタフェースに使用することができます:
• 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 : 言語リファレンスガイド (2017 年 9 月 3 日)

75 of 126

6.6 矢印の方向を変える

6.6

6

コンポーネント図

矢印の方向を変える

デフォルトではクラス間のリンクは 2 つのダッシュ-- を持っており垂直方向に配向されていま
す。次のように単一のダッシュ(またはドット)を置くことによって水平方向のリンクを使用す
ることが可能です:
@startuml
[Component] --> Interface1
[Component] -> Interface2
@enduml

リンクを反対にすることで方向を変更することもできます。
@startuml
Interface1 <-- [Component]
Interface2 <- [Component]
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

76 of 126

6.7 UML2 表記の使用

6

コンポーネント図

また、left を加えることで矢印の向きを変更することもできます。right, up, down などのキー
ワードを矢印の間に記述します。:
@startuml
[Component]
[Component]
[Component]
[Component]
@enduml

-left -> left
-right -> right
-up -> up
-down -> down

方向の最初の文字のみを使用して矢印を短くすることができます(例えば、-down- の代わりに
-d-)、または最初の 2 文字(-do-)
。
この機能を悪用してはならないことに注意してください:Graphviz は微調整の必要がない良い
結果を通常は与えてくれます。

6.7

UML2 表記の使用

コマンド skinparam componentStyle uml2 は、UML2 表記に切り替えるために使用されます。
@startuml
skinparam componentStyle uml2
interface "Data Access" as DA
DA - [First Component]
[First Component] ..> HTTP : use
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

77 of 126

6.8 長い説明

6.8

6

コンポーネント図

長い説明

角括弧を使用して説明を複数行で記述することができます。
@startuml
component comp1 [
This component
has a long comment
on several lines
]
@enduml

6.9

個々の色

コンポーネント定義のあとに色を指定することができます。
@startuml
component
@enduml

6.10

[Web Server] #Yellow

ステレオタイプでスプライトを使用

ステレオタイプのコンポーネント内にスプライトを使用することができます。
@startuml
sprite $businessProcess [16 x16 /16] {
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFF00FFFF
FF00000000000FFF
FF000000000000FF
FF00000000000FFF
FFFFFFFFFF00FFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

78 of 126

6.11 見かけを変える

6

コンポーネント図

FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
}

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

6.11

見かけを変える

描画色とフォントを変えるためにコマンド skinparam を使用することができます。
このコマンドを次のように使用することができるのは:
• 図の定義では、他のコマンドのように、
• インクルードファイルで、
• 設定ファイルでは、コマンドラインまたは ANT タスクで提供。
ステレオタイプのコンポーネントおよびインタフェースのための特定の色とフォントを定義する
ことができます。
@startuml
skinparam interface {
backgroundColor RosyBrown
borderColor orange
}
skinparam component {
FontSize 13
BackgroundColor <> Red
BorderColor <> #FF6655
FontName Courier
BorderColor black
BackgroundColor gold
ArrowFontName Impact
ArrowColor #FF6655
ArrowFontColor #777777
}
() "Data Access" as DA
DA - [First Component]
[First Component] ..> () HTTP : use
HTTP - [Web Server] << Apache >>
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

79 of 126

6.11 見かけを変える

6

コンポーネント図

@startuml
[AA] <>
[BB] <>
[CC] <>
node node1
node node2 <>
database Production
skinparam component {
backgroundColor <> DarkKhaki
backgroundColor <> Green
}
skinparam node {
borderColor Green
backgroundColor Yellow
backgroundColor <> Magenta
}
skinparam databaseBackgroundColor Aqua
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

80 of 126

7

7
7.1

ステート図

ステート図
簡単なステート

ステート図の始点と終点は、[*] で示します。
矢印は、--> で示します。
@startuml
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string
State1 -> State2
State2 --> [*]
@enduml

7.2

複合状態

状態は複合することができます。キーワード state と中括弧を使用して定義することができま
す。
@startuml
scale 350 width
[*] --> NotShooting
state NotShooting {
[*] --> Idle
Idle --> Configuring : EvConfig
Configuring --> Idle : EvConfig
}
state Configuring {
[*] --> NewValueSelection
NewValueSelection --> NewValuePreview : EvNewValue
NewValuePreview --> NewValueSelection : EvNewValueRejected
NewValuePreview --> NewValueSelection : EvNewValueSaved
state NewValuePreview {
State1 -> State2
}
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

81 of 126

7.3 長い言葉

7.3

7

ステート図

長い言葉

キーワード state によって、状態についての長めの記述を使用することができます。
@startuml
scale 600 width
[*] -> State1
State1 --> State2 : Succeeded
State1 --> [*] : Aborted
State2 --> State3 : Succeeded
State2 --> [*] : Aborted
state State3 {
state "Accumulate Enough Data\nLong State Name" as long1
long1 : Just a test
[*] --> long1
long1 --> long1 : New Data
long1 --> ProcessData : Enough Data
}
State3 --> State3 : Failed
State3 --> [*] : Succeeded / Save Result
State3 --> [*] : Aborted
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

82 of 126

7.4 同時状態

7.4

7

ステート図

同時状態

記号 --で分離することで、同時状態となる複合状態を定義することができます。
@startuml
[*] --> Active
state Active {
[*] -> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
-[*] -> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
-[*] -> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

83 of 126

7.5 矢印の方向

7.5

7

ステート図

矢印の方向

記号 -> を水平矢印として使用でき、以下の構文を使用することで、矢印の方向を支配すること
ができます。
• -down-> (default arrow)
• -right-> or ->
• -left->
• -up->
@startuml
[*] -up -> First
First -right -> Second
Second --> Third
Third -left -> Last
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

84 of 126

7.6 注釈

7

ステート図

方向を示す単語の、最初の文字だけ(例:-down-の代わりに -d-)、または 2 文字(-do-)を使
用することで、矢印の記述を短くすることができます。
この機能を乱用しないよう注意しなくてはいけません:通常、Graphviz は微調整なしでよい結
果をもたらしてくれます。

7.6

注釈

キーワード note left of, note right of, note top of, note bottom of を使用して注釈を定
義することができます。
さらに、いくつもの行で注釈を定義できます。
@startuml
[*] --> Active
Active --> Inactive
note left of Active : this is a short\nnote
note right of Inactive
A note can also
be defined on
several lines
end note
@enduml

さらに、状態にひもづかない注釈を定義できます。
@startuml
state foo
note "This is a floating note" as N1
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

85 of 126

7.7 もっと注釈

7.7

7

ステート図

もっと注釈

複合状態にも注釈をつけることができます。
@startuml
[*] --> NotShooting
state "Not Shooting State" as NotShooting {
state "Idle mode" as Idle
state "Configuring mode" as Configuring
[*] --> Idle
Idle --> Configuring : EvConfig
Configuring --> Idle : EvConfig
}
note right of NotShooting : This is a note on a composite state
@enduml

7.8

見栄え

描画のフォントや色を変えるコマンド skinparam を使用できます。
このコマンドは以下のように使用できます。
• 図の定義において、他のコマンドと同じように。
• インクルードファイルとして。
• 設定ファイルとして、コマンドラインや ANT タスクから提供する。
定型化した状態に、特定の色とフォントを定義することができます。
@startuml
skinparam backgroundColor LightYellow
skinparam state {
StartColor MediumBlue
EndColor Red
BackgroundColor Peru
BackgroundColor <> Olive
BorderColor Gray
FontName Impact
}
[*] --> NotShooting
state "Not Shooting State" as NotShooting {

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

86 of 126

7.8 見栄え

7

ステート図

state "Idle mode" as Idle <>
state "Configuring mode" as Configuring
[*] --> Idle
Idle --> Configuring : EvConfig
Configuring --> Idle : EvConfig
}
NotShooting --> [*]
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

87 of 126

8 オブジェクト図

8
8.1

オブジェクト図
オブジェクトの定義

オブジェクトのインスタンスを、キーワード object を使用して定義します。
@startuml
object firstObject
object "My Second Object" as o2
@enduml

8.2

オブジェクト間の関係

オブジェクト間の関係は次の記号を用いて定義します:
継承 <|-合成 *-集約 o--- を .. に置き換えることで点線を示すことができます。
これらのルールを知ることで、以下の図を描くことができます。
関係にラベルをつけることができ、” : ” を用い、ラベルの文字列を続けます。
関係の各側のスペースを含む文字列を引用符 "" で囲むことができます。
@startuml
object Object01
object Object02
object Object03
object Object04
object Object05
object Object06
object Object07
object Object08
Object01
Object03
Object05
Object07
@enduml

8.3

<|-- Object02
*-- Object04
o-- "4" Object06
.. Object08 : some labels

フィールドの追加

フィールドを宣言するには、シンボル ":" にフィールド名を続けます。
@startuml
object user
user : name = "Dummy"
user : id = 123
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

88 of 126

8.4 クラス図と共通の機能

8 オブジェクト図

全てのフィールドを括弧 {} で括って範囲を示すことも可能です。
@startuml
object user {
name = "Dummy"
id = 123
}
@enduml

8.4

クラス図と共通の機能

• 可視性
• 注釈の定義
• パッケージの使用
• 出力スキン

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

89 of 126

9 共通コマンド

共通コマンド

9
9.1

コメント

シングルクォート ' から始まるものはコメントとして扱われます。
また、/' で初まり'/で終わる複数行にまたがるコメントも書けます。

9.2

フッターとヘッダー

どのダイアグラムも、header 及び footer で、ヘッダー及びフッターを追加できます。
キーワード center、left、right を追記することで、ヘッダー/フッターを中央、左、右に寄
せることが可能です。
タイトルと同様にヘッダー/フッターは複数行記述可能です。
ヘッダー/フッターを HTML で記述することも可能です。
@startuml
Alice -> Bob: Authentication Request
header
Warning :
Do not use in production.
endheader
center footer Generated for demonstration
@enduml

9.3

ズーム

scale コマンドで、生成するイメージのズームを指定できます。
拡大率を定義するために、数値か分数のいずれかを使用することができます。幅または高さ(ピ
クセル数)のいずれかでも指定することができます。幅と高さの両方を与えることもできます:
イメージは指定した範囲に収まるようにスケーリングされます。
• 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
@startuml
scale 180*90
Bob ->Alice : hello
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

90 of 126

9.4 タイトル

9.4

9 共通コマンド

タイトル

タイトルの指定にキーワード title を使います。タイトルの記述では \n を使用して新しい行を
追加することができます。
いくつかの skinparam 設定が、タイトルに境界をつけるために利用可能です。
@startuml
skinparam
skinparam
skinparam
skinparam

titleBorderRoundCorner 15
titleBorderThickness 2
titleBorderColor red
titleBackgroundColor Aqua -CadetBlue

title Simple communication\nexample
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml

タイトルには creole フォーマットが使用できます。
また、キーワード title と end title を使うことにより、タイトルを複数行にわたって記述で
きます。
@startuml
title
Simple  communication example
on several  lines and using creole tags 
end title
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

91 of 126

9.5 見出し

9.5

9 共通コマンド

見出し

図の下に見出しを置くキーワード caption もあります。
@startuml
caption figure 1
Alice -> Bob: Hello
@enduml

9.6

図の説明文

legend と end legend は説明文を記入するために使用されるキーワードです。
必要に応じて left、right、center によって説明文の位置合わせをすることができます。
@startuml
Alice -> Bob : Hello
legend right
Short
legend
endlegend
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

92 of 126

10

10

SALT(GUI 設計ツール)

Salt(GUI 設計ツール)

Salt はグラフィカルインタフェースの設計を助ける PlantUML のサブプロジェクトです。
キーワード @startsalt、または、@startuml と次の行に続くキーワード salt の、いずれかを使
用することができます。

10.1

基本のウィジェット

ウィンドウは中括弧で始めて中括弧で閉じなければなりません。次のように定義できます。
• ボタンは [ と ] で括ります。
• ラジオボタンは ( と ) で括ります。
• チェックボックスは [ と ] で括ります。
• テキスト領域は " で括ります。
@startuml
salt
{
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

このツールの目標は簡単な見本でウィンドウについて議論することです。

10.2

罫線の使用

表は括弧 { で開始すれば自動的に作成されます。
そして | で列を分割する必要があります。
例:
@startsalt
{
Login
| "MyName
"
Password | "****
"
[Cancel] | [ OK
]
}
@endsalt

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

93 of 126

10.3 セパレータの使用

10

SALT(GUI 設計ツール)

括弧で表を開始したら、行や列の罫線を表示したいがために定義された文字を使用することがで
きます:
# 全ての縦横の罫線を表示する
! 全ての縦線を表示する
- 全ての横線を表示する
+ 枠線を表示する
@startsalt
{+
Login
| "MyName
"
Password | "****
"
[Cancel] | [ OK
]
}
@endsalt

10.3

セパレータの使用

いくつかの横線をセパレータとして使用することができます。
@startsalt
{
Text1
..
"Some field"
==
Note on usage
~~
Another text
-[Ok]
}
@endsalt

10.4

木構造ウィジェット

木構造があるなら、{T で開始して階層を示すために + を使用する必要があります。
@startsalt
{
{T
+ World
++ America
+++ Canada
+++ USA
++++ New York
++++ Boston
+++ Mexico
++ Europe
+++ Italy
+++ Germany
++++ Berlin

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

94 of 126

10.5 括弧で括る

10

SALT(GUI 設計ツール)

++ Africa
}
}
@endsalt

10.5

括弧で括る

定義中に、新しい括弧で括ることによりサブ要素を定義することができます。
@startsalt
{
Name
| "
"
Modifiers:
| { (X) public | () default | () private | () protected
[] abstract | [] final
| [] static }
Superclass: | { "java.lang.Object " | [Browse ...] }
}
@endsalt

10.6

タブの追加

{/ 表記を使用してタブを追加することができます。太字のテキストを設けるように、HTML コー
ドを使用できることに注意してください。
@startsalt
{+
{/ General | Fullscreen | Behavior | Saving }
{
{ Open image in: | ^Smart Mode^ }
[X] Smooth images when zoomed
[X] Confirm image deletion
[ ] Show hidden images
}
[Close]
}
@endsalt

タブは垂直方向にも配向できます:

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

95 of 126

10.7 メニューの使用

10

SALT(GUI 設計ツール)

@startsalt
{+
{/ General
Fullscreen
Behavior
Saving } |
{
{ Open image in: | ^Smart Mode^ }
[X] Smooth images when zoomed
[X] Confirm image deletion
[ ] Show hidden images
[Close]
}
}
@endsalt

10.7

メニューの使用

{* 表記でメニューを追加することができます。
@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

メニューを開くことも可能です:
@startsalt
{+
{* File | Edit | Source | Refactor
Refactor | 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 : 言語リファレンスガイド (2017 年 9 月 3 日)

96 of 126

10.8 テーブル(上級)

10.8

10

SALT(GUI 設計ツール)

テーブル(上級)

テーブルのための2つの特別な表記を使用することができます。
• * は残りのセルとの範囲を示すために
• . は空のセルを示すために
@startsalt
{#
. | Column 2 | Column 3
Row header 1 | value 1 | value 2
Row header 2 | A long cell | *
}
@endsalt

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

97 of 126

11 CREOLE(マークアップ言語)

11

Creole(マークアップ言語)

軽量版 Creole エンジンは、文書の様式を定義する標準化された方法として PlantUML に統合さ
れました。
現在、全ての図がこの構文をサポートしています。
HTML 構文との上位互換生が保たれていることに注意してください。

11.1

テキストの強調

@startuml
Alice -> Bob : hello --there -... Some ~~ long delay ~~ ...
Bob -> Alice : ok
note left
This is ** bold **
This is // italics //
This is "" monospaced ""
This is --stroked -This is __underlined__
This is ~~ waved ~~
end note
@enduml

11.2

リスト

@startuml
object demo {
* Bullet list
* Second item
}
note left
* Bullet list
* Second item
** Sub item
end note
legend
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
end legend
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

98 of 126

11.3 エスケープ文字

11.3

11 CREOLE(マークアップ言語)

エスケープ文字

特別なクレオール文字をエスケープするためにチルダ ~ を使用することができます。
@startuml
object demo {
This is not ~___underscored__.
This is not ~"" monospaced "".
}
@enduml

11.4

横線

@startuml
database DB1 as "
You can have horizontal line
---Or double line
====
Or strong line
____
Or dotted line
..My title ..
Enjoy!
"
note right
This is working also in notes
You can also add title in all these lines
== Title ==
--Another title -end note
@enduml

11.5

見出し

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

99 of 126

11.6 伝統的な HTML タグ

11 CREOLE(マークアップ言語)

@startuml
usecase UC1 as "
= Extra -large heading
Some text
== Large heading
Other text
=== Medium heading
Information
....
==== Small heading"
@enduml

11.6

伝統的な HTML タグ

Some HTML tags are also working:
•  は太字に
•  は下線に
•  は斜体(イタリック)に
•  は打ち消し線に
•  は波線(下線)に
•  は背景色に
•  はフォントサイズを変更するために
•  :そのファイルはファイルシステムによりアクセスできる必要があります
•  :その URL はインターネットによりアクセスできる必要があります
@startuml
:* You can change text color 
* You can change background color 
* You can change size 
* You use legacy  HTML tag 
* You use color  in HTML  tag 
---* Use image : 
;
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

100 of 126

11.7 表

11.7

11 CREOLE(マークアップ言語)

表

表を構築することが可能です。
@startuml
skinparam titleFontSize 14
title
Example of simple table
|= |= table |= header |
| a | table | row |
| b | table | row |
end title
[*] --> State1
@enduml

セルの背景色と線を指定することができます。
@startuml
start
:Here is the result
|= |= table |= header |
| a | table | row |
|<#FF8080 > red |<#80FF80 > green | <#8080FF > blue |
<#yellow >| b | table | row |;
@enduml

11.8

木構造

文字列 |_ を木構造を構築するために使用できます。
@startuml
skinparam titleFontSize 14
title
Example of Tree
|_ First line
|_ **Bom(Model )**
|_ prop1
|_ prop2
|_ prop3
|_ Last line
end title
[*] --> State1
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

101 of 126

11.9 特殊文字

11.9

11 CREOLE(マークアップ言語)

特殊文字

&# 構文や  でユニコード文字を使用することが可能です。
@startuml
usecase foo as "this is ∞ long"
usecase bar as "this is also  long"
@enduml

11.10

Open Iconic

Open Iconic は非常に素晴らしいオープンソースのアイコンセットです。これらのアイコンはク
レオールパーザに統合されているので、図の外部領域にそれらを使用することができます。
次の構文を使用できます:<&ICON_NAME>
@startuml
title: <&heart >Use of OpenIconic <&heart >
class Wifi
note left
Click on <&wifi >
end note
@enduml

完全なリストは Open Iconic ウェブサイト上で利用可能ですが、このような特殊な図形を使用す
ることができます。
@startuml
listopeniconic
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

102 of 126

11.10 Open Iconic

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

11 CREOLE(マークアップ言語)

103 of 126

11.11 スプライトの定義と使い方

11.11

11 CREOLE(マークアップ言語)

スプライトの定義と使い方

Sprite は、図で使用できる小さなグラフィック要素です。
PlantUML では、スプライトはモノクロで 4、8 または 16 のグレーレベルのいずれかを持つこと
ができます。
スプライトを定義するには、ピクセルごとに 0〜F の間の 16 進数を使用する必要があります。
次に、<$XXX> を使用してスプライトを使用できます。ここで XXX はスプライトの名前です。
@startuml
sprite $foo1 {
FFFFFFFFFFFFFFF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
F0123456789ABCF
FFFFFFFFFFFFFFF
}
Alice -> Bob : Testing <$foo1 >
@enduml

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

11.12

スプライトのエンコード

スプライトをエンコードするには、コマンドラインを次のように使用します:
java -jar plantuml.jar -encodesprite 16z foo.png

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

104 of 126

11.13 スプライトのインポート

11 CREOLE(マークアップ言語)

foo.png は使用したい画像ファイルです(自動的にグレーに変換されます)。
-encodesprite の後で、フォーマットを指定する必要があります:4, 8, 16, 4z, 8z または
16z。
数値はグレイレベルを示し、オプションの z はスプライト定義で圧縮を有効にするために使用さ
れます。

11.13

スプライトのインポート

GUI を起動して、既存のイメージからスプライトを生成することもできます。
メニューバーをクリックし File/Open Sprite Window をクリックします。
イメージをクリップボードにコピーした後、対応するスプライトの定義がいくつか表示されま
す:必要なものをピックアップするだけです。

11.14

例

@startuml
sprite $printer [15 x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEq
start
:click on <$printer > to print the page;
@enduml

@startuml
sprite $bug [15 x15 /16z] PKzR2i0m2BFMi15p__FEjQEqB1z27aeqCqixa8S4OT7C53cKpsHpaYPDJY_12MHM - BLRyywPhrrlw3qum
sprite $printer [15 x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEq
sprite $disk {
444445566677881
436000000009991
43600000000 ACA1
53700000001 A7A1
53700000012 B8A1
53800000123 B8A1
63800001233 C9A1
634999 AABBC99B1
744566778899 AB1
7456 AAAAA99AAB1
8566 AFC228AABB1
8567 AC8118BBBB1
867 BD4433BBBBB1
39 AAAAABBBBBBC1
}
title Use of sprites (<$printer >, <$bug >...)
class Example {
Can have some bug : <$bug >
Click on <$disk > to save
}

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

105 of 126

11.14 例

11 CREOLE(マークアップ言語)

note left : The printer <$printer > is available
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

106 of 126

12

12
12.1

フォントや色の変更

フォントや色の変更
使い方

コマンド skinparam を使用して、製図の色やフォントを変えることができます。例:
skinparam backgroundColor yellow

このコマンドを使用することができます:
• 図の定義には、他のコマンドのように、
• インクルードファイルには(Preprocessing 参照)、
• 設定ファイルには、コマンドラインまたは ANT タスクで提供します。

12.2

入れ子

繰返しを避けるために、入れ子に定義することが可能です。次のような定義は、
skinparam
skinparam
skinparam
skinparam

xxxxParam1
xxxxParam2
xxxxParam3
xxxxParam4

value1
value2
value3
value4

次のとまったく等価です。
skinparam xxxx {
Param1 value1
Param2 value2
Param3 value3
Param4 value4
}

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

107 of 126

12.3 色

12.3

12

フォントや色の変更

色

標準的な色名または RGB コードのいずれかを使用できます。

パラメータ名
backgroundColor
activityArrowColor
activityBackgroundColor
activityBorderColor
activityStartColor
activityEndColor
activityBarColor
usecaseArrowColor
usecaseActorBackgroundColor
usecaseActorBorderColor
usecaseBackgroundColor
usecaseBorderColor
classArrowColor
classBackgroundColor
classBorderColor
packageBackgroundColor
packageBorderColor
stereotypeCBackgroundColor
stereotypeABackgroundColor
stereotypeIBackgroundColor
stereotypeEBackgroundColor
componentArrowColor
componentBackgroundColor
componentBorderColor
componentInterfaceBackgroundColor
componentInterfaceBorderColor
noteBackgroundColor
noteBorderColor
stateBackgroundColor
stateBorderColor
stateArrowColor
stateStartColor
stateEndColor
sequenceArrowColor
sequenceActorBackgroundColor
sequenceActorBorderColor
sequenceGroupBackgroundColor
sequenceLifeLineBackgroundColor
sequenceLifeLineBorderColor
sequenceParticipantBackgroundColor
sequenceParticipantBorderColor

既定値

色

white

解説
ページ背景色

#A80036

アクティビティ図の矢線色

#FEFECE

アクティビティ毎の背景色

#A80036

アクティビティの枠線色

black

アクティビティ図の開始円

black

アクティビティ図の終了円

black

アクティビティ図の同期バー

#A80036
#FEFECE
#A80036
#FEFECE

ユースケース図の矢線色
ユースケース図のアクターの頭の色
ユースケース図のアクターの縁取り色
各ユースケースの背景

#A80036

ユースケース図のユースケース枠線色

#A80036

クラス図の矢線の色

#FEFECE

クラス図のクラス/インタフェース/列挙型の背景色

#A80036

クラス図のクラス/インタフェース/列挙型の枠線色

#FEFECE

クラス図のパッケージの背景色

#A80036

クラス図のパッケージの枠線色

#ADD1B2

クラス図のクラススポットの背景色

#A9DCDF

クラス図の抽象クラススポットの背景色

#B4A7E5

クラス図のインタフェーススポットの背景色

#EB937F

クラス図の列挙型スポットの背景色

#A80036

コンポーネント図の矢線色

#FEFECE

コンポーネントの背景色

#A80036

コンポーネントの枠線色

#FEFECE

コンポーネント図のインタフェースの背景色

#A80036

コンポーネント図のインタフェースの枠線色

#FBFB77

注釈の背景色

#A80036

注釈の枠線色

#FEFECE

状態遷移図のステートの背景色

#A80036

状態遷移図のステートの枠線色

#A80036

状態遷移図の矢線色

black

状態遷移図の始点の色

black

状態遷移図の終点の色

#A80036

シーケンス図の矢線色

#FEFECE
#A80036
#EEEEEE

シーケンス図のアクターの頭の色
シーケンス図のアクターの縁取り色
シーケンス図の alt/opt/loop のヘッダ色

white

シーケンス図のライフラインの背景色

#A80036

シーケンス図のライフラインの枠線色

#FEFECE

シーケンス図の分類子の背景色

#A80036

シーケンス図の分類子の枠線色

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

108 of 126

12.4 フォントの色、名前、サイズ

12.4

12

フォントや色の変更

フォントの色、名前、サイズ

テキスト描画に使用されるフォントを、パラメータ xxxFontColor、xxxFontSize、xxxFontName
で変更することができます。
例:
skinparam classFontColor red
skinparam classFontSize 10
skinparam classFontName Aapex

skinparam defaultFontName を使用して既定のフォントを変更することができます。
例:
skinparam defaultFontName Aapex

フォント名はシステム依存性が非常に高いため、ポータビリティを考慮する場合は多用しないで
ください。
パラメータ
名
activityFontColor
activityFontSize
activityFontStyle
activityFontName
activityArrowFontColor
activityArrowFontSize
activityArrowFontStyle
activityArrowFontName
circledCharacterFontColor
circledCharacterFontSize
circledCharacterFontStyle
circledCharacterFontName
circledCharacterRadius
classArrowFontColor
classArrowFontSize
classArrowFontStyle
classArrowFontName
classAttributeFontColor
classAttributeFontSize
classAttributeIconSize
classAttributeFontStyle
classAttributeFontName
classFontColor
classFontSize
classFontStyle
classFontName
classStereotypeFontColor
classStereotypeFontSize
classStereotypeFontStyle
classStereotypeFontName
componentFontColor
componentFontSize
componentFontStyle
componentFontName
componentStereotypeFontColor
componentStereotypeFontSize
componentStereotypeFontStyle
componentStereotypeFontName

デフォルト
値
black
14
plain
black
13
plain
black
17
bold
Courier
11
black
10
plain
black
10
10
plain
black
12
plain
black
12
italic
black
14
plain
black
14
italic

解説

アクティビティボックスに使用される

アクティビティ図の矢印につけるテキストに使用される

クラスや列挙値などを囲う円の中のテキストに使用される

クラス図の矢印につけるテキストに使用される

クラスの属性とメソッド

クラス名に使用される

クラス内のステレオタイプに使用される

コンポーネント名に使用される

コンポーネント内のステレオタイプに使用される

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

109 of 126

12.4 フォントの色、名前、サイズ

componentArrowFontColor
componentArrowFontSize
componentArrowFontStyle
componentArrowFontName
noteFontColor
noteFontSize
noteFontStyle
noteFontName
packageFontColor
packageFontSize
packageFontStyle
packageFontName
sequenceActorFontColor
sequenceActorFontSize
sequenceActorFontStyle
sequenceActorFontName
sequenceDividerFontColor
sequenceDividerFontSize
sequenceDividerFontStyle
sequenceDividerFontName
sequenceArrowFontColor
sequenceArrowFontSize
sequenceArrowFontStyle
sequenceArrowFontName
sequenceGroupingFontColor
sequenceGroupingFontSize
sequenceGroupingFontStyle
sequenceGroupingFontName
sequenceGroupingHeaderFontColor
sequenceGroupingHeaderFontSize
sequenceGroupingHeaderFontStyle
sequenceGroupingHeaderFontName
sequenceParticipantFontColor
sequenceParticipantFontSize
sequenceParticipantFontStyle
sequenceParticipantFontName
sequenceTitleFontColor
sequenceTitleFontSize
sequenceTitleFontStyle
sequenceTitleFontName
titleFontColor
titleFontSize
titleFontStyle
titleFontName
stateFontColor
stateFontSize
stateFontStyle
stateFontName
stateArrowFontColor
stateArrowFontSize
stateArrowFontStyle
stateArrowFontName
stateAttributeFontColor
stateAttributeFontSize
stateAttributeFontStyle
stateAttributeFontName

12

black
13
plain
black
13
plain
black
14
plain
black
13
plain
black
13
bold
black
13
plain
black
11
plain
black
13
plain
black
13
plain
black
13
plain
black
18
plain
black
14
plain
black
13
plain
black
12
plain

フォントや色の変更

コンポーネント図の矢印につけるテキストに使用される

シーケンス図以外のすべての図の注釈に使用される

パッケージ名とパーティション名に使用される

シーケンス図のアクターに使用される

シーケンス図の分割線につけるテキストに使用される

シーケンス図の矢印につけるテキストに使用される

シーケンス図の”else” に使用される

シーケンス図のヘッダ”alt/opt/loop” に使用される

シーケンス図の分類子につけるテキストに使用される

シーケンス図のタイトルに使用される

シーケンス図を除く、全ての UML 図のタイトルに使用される

状態遷移図の状態を表すテキストに使用される

状態遷移図の矢印につけるテキストに使用される

状態遷移図の状態を説明するテキストに使用される

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

110 of 126

12.4 フォントの色、名前、サイズ

usecaseFontColor
usecaseFontSize
usecaseFontStyle
usecaseFontName
usecaseStereotypeFontColor
usecaseStereotypeFontSize
usecaseStereotypeFontStyle
usecaseStereotypeFontName
usecaseActorFontColor
usecaseActorFontSize
usecaseActorFontStyle
usecaseActorFontName
usecaseActorStereotypeFontColor
usecaseActorStereotypeFontSize
usecaseActorStereotypeFontStyle
usecaseActorStereotypeFontName
usecaseArrowFontColor
usecaseArrowFontSize
usecaseArrowFontStyle
usecaseArrowFontName
footerFontColor
footerFontSize
footerFontStyle
footerFontName
headerFontColor
headerFontSize
headerFontStyle
headerFontName

12

black
14
plain
black
14
italic
black
14
plain
black
14
italic
black
13
plain
black
10
plain
black
10
plain

フォントや色の変更

ユースケース図のユースケースにつけるラベルに使用される

ユースケース図のステレオタイプに使用される

ユースケース図のアクターにつけるラベルに使用される

アクターのステレオタイプに使用される

ユースケース図の矢印につけるテキストに適用される

フッタに使用される

ヘッダに使用される

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

111 of 126

12.5 白黒

12.5

12

フォントや色の変更

白黒

コマンド skinparam monochrome true を使用して白黒表示を強制することができます。
@startuml
skinparam monochrome true
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

112 of 126

13

13

プリプロセッシング

プリプロセッシング

PlantUML は、すべてのダイアグラムで利用できるいくつかのマイナーなプリプロセッシング機
能を持っています。
それらの機能は、”#” が、感嘆符”!” であることを除けば、C 言語のプリプロセッサととても良
く似ています。

13.1

ファイルのインクルード

ダイアグラム内にファイルをインクルードするには、!include ディレクティブを使います。
Imagine you have the very same class that appears in many diagrams. Instead of duplicating the
description of this class, you can define a file that contains the description.
全く同じクラスが多数のダイアグラムに登場する状況を想像してみてください。このクラスにつ
いての記述を複製する代わりに、記述の内容をファイルに定義することが可能です。
@startuml
!include List.iuml
List <|.. ArrayList
@enduml

File List.iuml: interface List List : int size() List : void clear()
この List.iuml ファイルは複数のダイアグラムでインクルード可能です。また、このファイル
の変更はインクルードした全てのダイアログに反映されます。
ファイルは 1 度だけインクルードできます。全く同じファイルを何度もインクルードしたい場合
は、!include の代わりに !include_many ディレクティブを使用する必要があります。
複数の @startuml/@enduml ブロックをインクルードファイルに記述することも可能です。!0 を
追加してインクルードすることで、0 番目のブロックをインクルードすることができます。
たとえば、
!include foo.txt!1 と記述した場合、
foo.txt ファイルの二番目の @startuml/@enduml
ブロックの内容がインクルードされます。
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 something
like !include foo.txt!MY_OWN_ID.

13.2

URL でインクルード

図にインターネット/イントラネットからファイルをインクルードする !includeurl コマンド
を使用します。
http://someurl.com/mypath からインクルードしたい @startuml/@enduml ブロックを指定する
ために !includeurl http://someurl.com/mypath!0 を使用することもできます。!0 表記は最
初の図を示します。

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

113 of 126

13.3 定数を定義する

13.3

13

プリプロセッシング

定数を定義する

定数を定義するには擬似命令 !define を使います。定数名は言語 C と同様に、英数字とアン
ダースコアを含むもので、数字で始めることはできません。
@startuml
!define SEQUENCE (S,# AAAAAA) Database Sequence
!define TABLE (T,# FFAAAA) Database Table
class USER << TABLE >>
class ACCOUNT << TABLE >>
class UID << SEQUENCE >>
USER "1" -- "*" ACCOUNT
USER -> UID
@enduml

もちろん、擬似命令 !include を使用して、図に含めるすべての定数を 1 つのファイルに定義す
ることができます。
定数は擬似命令 !undef XXX で未定義にすることができます。
-D フラグを使用して、コマンドライン内で定数を指定することもできます。
java -jar plantuml.jar -DTITLE ="My title" atest1.txt

-D フラグは”-jar plantuml.jar” セクションの後に置かなければならないことに注意してくだ
さい。

13.4

マクロ定義

引数を持つマクロも定義できます。
@startuml
!define module(x) component x <>
module(ABC)
module(XYZ)
@enduml

マクロは複数の引数を持つことができます。
@startuml
!define send(a,b,c) a->b : c
send(Alice , Bob , Hello)
send(Bob , Alice , ok)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

114 of 126

13.5 日付と時刻の追加

13.5

13

プリプロセッシング

日付と時刻の追加

特殊な変数 %date% を使用して現在の日付や時刻を拡張することもできます。
日付は SimpleDataFormat 文書で規定された形式を使用して指定することができます。
@startuml
!define ANOTHER_DATE %date[yyyy.MM.dd 'at ' HH:mm]%
Title Generated %date% or ANOTHER_DATE
alice -> bob
@enduml

13.6

その他の特殊な変数

次のような特殊な変数が利用可能です。
%dirpath% 現在のファイルのパス
%filename% 現在のファイルの名称

13.7

複数行のマクロ

!definelong と !enddefinelong を使用して複数行でマクロを定義することもできます。
@startuml
!define DOUBLE(x) x x
!definelong AUTHEN(x,y)
x -> y : DOUBLE(hello)
y -> x : ok
!enddefinelong
AUTHEN(Bob ,Alice)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

115 of 126

13.8 マクロパラメータのデフォルト値

13.8

13

プリプロセッシング

マクロパラメータのデフォルト値

マクロパラメータにデフォルト値を割り当てることができます。
@startuml
!define some_macro(x, y = "some default" , z = 'another default ' ) x and y and z
class foo {
some_macro(Z1 , Z2 , Z3)
some_macro(Z1 , Z2)
some_macro(A)
}
@enduml

13.9

条件つき

擬似命令 !ifdef XXX と !endif を使用して、条件付き描画を行うことができます。
これら 2 つの擬似命令の間の行は、!ifdef の後の定数が前に定義されている場合にのみ含まれ
ます。
定数に not が定義されている場合は、!else 部分をインクルードすることもできます。
@startuml
!include ArrayList.iuml
@enduml

File ArrayList.iuml:
class ArrayList
!ifdef SHOW_METHODS
ArrayList : int size ()
ArrayList : void clear ()
!endif

次に、!define 指示文を使用して図の条件部分を有効にすることができます。
@startuml
!define SHOW_METHODS
!include ArrayList.iuml
@enduml

指定された定数が定義されていない場合は、行を含む擬似命令 !ifndef を使用することもでき
ます。
評価式では、括弧と演算子 や || とでブール式を使用することができます。

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

116 of 126

13.10 検索パス

13

プリプロセッシング

@startuml
!define SHOW_FIELDS
!undef SHOW_METHODS
class foo {
!ifdef SHOW_FIELDS || SHOW_METHODS
This is shown
!endif
!ifdef SHOW_FIELDS && SHOW_METHODS
This is NOT shown
!endif
}
@enduml

13.10

検索パス

コマンドラインで java プロパティ”plantuml.include.path” を指定することができます。
例えば:
java -Dplantuml.include.path ="c:/ mydir" -jar plantuml.jar atest1.txt

この -D オプションは、-jar オプションの前に置く必要があることに注意してください。-r オプ
ションの後の -D オプションは、plantuml プリプロセッサ内の定数を定義するために使用されま
す。

13.11

高度な機能

構文 ## を使用してマクロの引数にテキストを結びつけることが可能です。
@startuml
!definelong COMP_TEXTGENCOMP(name)
[name] << Comp >>
interface Ifc << IfcType >> AS name ##Ifc
name ##Ifc - [name]
!enddefinelong
COMP_TEXTGENCOMP(dummy)
@enduml

マクロは別のマクロで定義することができます。
@startuml
!define DOUBLE(x) x x
!definelong AUTHEN(x,y)
x -> y : DOUBLE(hello)
y -> x : ok
!enddefinelong
AUTHEN(Bob ,Alice)
@enduml

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

117 of 126

13.11 高度な機能

13

プリプロセッシング

マクロは引数の個数で多態になることができます。
@startuml
!define module(x) component x <>
!define module(x,y) component x as y <>
module(foo)
module(bar , barcode)
@enduml

インクルードファイルを使用するときにはシステムの環境変数や定数の定義を使用することがで
きます:
!include %windir %/ test1.txt
!define PLANTUML_HOME /home/foo
!include PLANTUML_HOME/test1.txt

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

118 of 126

14 国際化

14

国際化

PlantUML 言語は、文字を使ってアクターやユースケースを定義することができます。この 文字
には A から Z までのラテン文字に限らず、すべての言語のすべての文字を使うことができます。

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

14.1

キャラクターセット

UML の記述を含むテキストファイルが読み込まれるときのキャラクターセットはシステムに依
存します。
通常はそれだけで問題ないはずですが、必要にならば別のキャラクターセットを使うこともでき
ます。例えば、コマンドラインに以下のように入力します:
java -jar plantuml.jar -charset UTF -8 files.txt

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

119 of 126

14.1 キャラクターセット

14 国際化

または ant タスクを使うこともできます:




必要に応じて、次に示すキャラクターセットが使えるように Java がインストールされている必
要があります: ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16.

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

120 of 126

15

15

色の名前

色の名前

ここにある色は PlantUML によって認識されます。色の名前は、大文字と小文字が区別されるこ
とに注意してください。

AliceBlue
AntiqueWhite
Aquamarine
Aqua
Azure
Beige
Bisque
Black
BlanchedAlmond
BlueViolet
Blue
Brown
BurlyWood
CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornsilk
Crimson
Cyan
DarkBlue
DarkCyan
DarkGoldenRod
DarkGray
DarkGreen
DarkKhaki
DarkMagenta
DarkOliveGreen
DarkOrchid
DarkRed
DarkSalmon
DarkSeaGreen
DarkSlateBlue
DarkSlateGray
DarkTurquoise
DarkViolet
Darkorange
DeepPink
DeepSkyBlue
DimGray
DodgerBlue
FireBrick
FloralWhite
ForestGreen
Fuchsia
Gainsboro

GhostWhite
GoldenRod
Gold
Gray
GreenYellow
Green
HoneyDew
HotPink
IndianRed
Indigo
Ivory
Khaki
LavenderBlush
Lavender
LawnGreen
LemonChiffon
LightBlue
LightCoral
LightCyan
LightGoldenRodYellow
LightGreen
LightGrey
LightPink
LightSalmon
LightSeaGreen
LightSkyBlue
LightSlateGray
LightSteelBlue
LightYellow
LimeGreen
Lime
Linen
Magenta
Maroon
MediumAquaMarine
MediumBlue
MediumOrchid
MediumPurple
MediumSeaGreen
MediumSlateBlue
MediumSpringGreen
MediumTurquoise
MediumVioletRed
MidnightBlue
MintCream
MistyRose
Moccasin

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

NavajoWhite
Navy
OldLace
OliveDrab
Olive
OrangeRed
Orange
Orchid
PaleGoldenRod
PaleGreen
PaleTurquoise
PaleVioletRed
PapayaWhip
PeachPuff
Peru
Pink
Plum
PowderBlue
Purple
Red
RosyBrown
RoyalBlue
SaddleBrown
Salmon
SandyBrown
SeaGreen
SeaShell
Sienna
Silver
SkyBlue
SlateBlue
SlateGray
Snow
SpringGreen
SteelBlue
Tan
Teal
Thistle
Tomato
Turquoise
Violet
Wheat
WhiteSmoke
White
YellowGreen
Yellow

121 of 126

CONTENTS

CONTENTS

Contents
1 シーケンス図

1

1.1

基本的な例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

分類子の宣言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.3

分類子名にアルファベット以外を使う . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.4

自分自身へのメッセージ

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.5

矢印の見た目を変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.6

矢印の色を替える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.7

メッセージシーケンスの番号付け . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.8

図の分割

6

1.9

メッセージのグループ化

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.10 メッセージの注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.11 その他の注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.12 ノートの形を変える。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

1.13 Creole と HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.14 境界線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.15 リファレンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.16 遅延 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.17 間隔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.18 ライフラインの活性化と破壊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.19 分類子の生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

1.20 インとアウトのメッセージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.21 ステレオタイプとスポット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

1.22 タイトルについての詳細

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

1.23 分類子の囲み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

1.24 フッターの除去 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

1.25 スキンパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

1.26 パディングの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2 ユースケース図

22

2.1

ユースケース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.2

アクター

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.3

ユースケースの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.4

簡単な例

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.5

継承 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.6

ノートの使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.7

ステレオタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

2.8

矢印の方向を変えるには

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

2.9

図を分割する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

2.10 左から右に描画する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

2.11 スキン設定(Skinparam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

2.12 完全な例

29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

122 of 126

CONTENTS

CONTENTS

3 クラス図

30

3.1

クラス間の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.2

関係のラベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.3

メソッドの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.4

可視性の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

3.5

Abstract と Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.6

高等なクラス本体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.7

注釈とステレオタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.8

注釈の詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.9

リンクへの注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.10 抽象クラスとインタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.11 非文字の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

3.12 属性、メソッド等の非表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

3.13 非表示クラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.14 ジェネリクスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.15 特殊な目印 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.16 パッケージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

3.17 パッケージスタイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

3.18 名前空間

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

3.19 自動的に名前空間を作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.20 ロリポップ(棒付きキャンディー)インタフェース . . . . . . . . . . . . . . . . . . .

46

3.21 矢印の向きを変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

3.22 関連クラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

3.23 化粧をする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

3.24 ステレオタイプの化粧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

3.25 色のグラデーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

3.26 レイアウトの手助け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

3.27 大きなファイルの分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

4 アクティビティ図

53

4.1

単純なアクティビティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.2

矢印のラベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.3

矢印の方向を変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4

分岐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

4.5

もっと分岐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

4.6

同期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

4.7

長いアクティビティの記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

4.8

注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

4.9

パーティション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

4.10 スキンパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

4.11 八角形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

4.12 完全な例

60

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

123 of 126

CONTENTS

CONTENTS

5 アクティビティ図(ベータ版)

62

5.1

単純なアクティビティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

5.2

開始/終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

5.3

条件文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

5.4

繰り返し(後判定) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

5.5

繰り返し(前判定) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

5.6

並列処理

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

5.7

注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

5.8

色指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

5.9

矢印 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

5.10 グループ化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

5.11 動線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

5.12 分離 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

5.13 SDL 図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

5.14 完全な例

71

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 コンポーネント図

73

6.1

コンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

6.2

インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

6.3

基本的な例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.4

ノートの使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.5

コンポーネントのグループ化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

6.6

矢印の方向を変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

6.7

UML2 表記の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

6.8

長い説明

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.9

個々の色

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.10 ステレオタイプでスプライトを使用 . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.11 見かけを変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

7 ステート図

81

7.1

簡単なステート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

7.2

複合状態

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

7.3

長い言葉

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

7.4

同時状態

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

7.5

矢印の方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

7.6

注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

7.7

もっと注釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

7.8

見栄え . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

8 オブジェクト図

88

8.1

オブジェクトの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

8.2

オブジェクト間の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

8.3

フィールドの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

8.4

クラス図と共通の機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

124 of 126

CONTENTS

CONTENTS

9 共通コマンド

90

9.1

コメント

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

9.2

フッターとヘッダー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

9.3

ズーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

9.4

タイトル

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

9.5

見出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

9.6

図の説明文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

10 Salt(GUI 設計ツール)

93

10.1 基本のウィジェット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

10.2 罫線の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

10.3 セパレータの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

10.4 木構造ウィジェット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

10.5 括弧で括る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

10.6 タブの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

10.7 メニューの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

10.8 テーブル(上級) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

11 Creole(マークアップ言語)

98

11.1 テキストの強調 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

11.2 リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

11.3 エスケープ文字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

11.4 横線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

11.5 見出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.6 伝統的な HTML タグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.7 表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.8 木構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.9 特殊文字

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

11.10Open Iconic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
11.11スプライトの定義と使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
11.12スプライトのエンコード

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

11.13スプライトのインポート

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

11.14例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
12 フォントや色の変更

107

12.1 使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.2 入れ子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.3 色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
12.4 フォントの色、名前、サイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
12.5 白黒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

125 of 126

CONTENTS

CONTENTS

13 プリプロセッシング

113

13.1 ファイルのインクルード
13.2 URL でインクルード

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

13.3 定数を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
13.4 マクロ定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
13.5 日付と時刻の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
13.6 その他の特殊な変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
13.7 複数行のマクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
13.8 マクロパラメータのデフォルト値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
13.9 条件つき

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

13.10検索パス

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

13.11高度な機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
14 国際化

119

14.1 キャラクターセット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
15 色の名前

PlantUML : 言語リファレンスガイド (2017 年 9 月 3 日)

121

126 of 126



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Mode                       : UseOutlines
Page Count                      : 127
Creator                         : LaTeX with hyperref package
Title                           : PlantUML言語リファレンスガイド
Subject                         : PlantUMLを使ったUMLの描き方
Producer                        : xdvipdfmx (20140317)
Keywords                        : UML
Create Date                     : 2017:09:03 17:17:22-00:00
EXIF Metadata provided by EXIF.tools

Navigation menu