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 [warning: Documents this large are best viewed by clicking the View PDF Link!]

PlantUML を使った UML の描き方
言語リファレンスガイド
(2017 9317: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 boundary
Foo1 -> Foo3 : To control
Foo1 -> Foo4 : To entity
Foo1 -> Foo5 : To database
Foo1 -> Foo6 : To collections
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 : Aut hen tic ati on Res po nse
Bob ->L : Log t ransacti on
@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 93)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 93)3 of 126
1.6 矢印の色を替える 1シーケンス図
1.6 矢印の色を替える
以下の表記を使って、個々の矢印の色を変えることができます。
@startuml
Bob -[#red]> Alice : hello
Alice -[#0000 FF]->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 93)4 of 126
1.7 メッセージシーケンスの番号付け 1シーケンス図
Bob <- Alice : Yet another authentication Response
@enduml
二重引用符で囲って番号の書式を指定することができます。
その書式指定は Java DecimalFormat 方式で行う(0は桁を表し, ’#は存在しない場合は 0
埋める桁を意味する)
HTML タグを書式に使うこともできます。
@startuml
autonumber "<b>[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
autonumber 15 "<b>(<u>##</u>)"
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response
au tonum ber 40 10 " <font color =red > <b> Messa ge 0 "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response
@enduml
autonumber stop autonumber resume ' 増分' ' 書式'を自動採番の一時停止と再開にそれぞ
れを使用することができます。
@startuml
autonumber 10 10 "<b >[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
autonumber stop
Bob -> Alice : dummy
PlantUML : 言語リファレンスガイド (2017 93)5 of 126
1.8 図の分割 1シーケンス図
au tonum ber resume "<font color =red ><b >Messag e 0 "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response
autonumber stop
Bob -> Alice : dummy
autonumber resume 1 "< font color =blue ><b> 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 93)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 93)7 of 126
1.10 メッセージの注釈 1シーケンス図
1.10 メッセージの注釈
メッセージのすぐ後ろにキーワード 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 think in g
note left
a note
can also be defined
on several lines
end note
@enduml
1.11 その他の注釈
分類子との相対位置を指定して注釈を付けるには、次のものを使います:
注釈を目立たせるために、背景色を変えることができます。
また、キーワード end note を使って複数行の注釈を付けることができます。
PlantUML : 言語リファレンスガイド (2017 93)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 , A li ce
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 93)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 < back :cadetblue >< size :18 >displayed </size ></ back >
__left of__ Alice.
end note
note left of Bob
<u :red > This </u > is < color #118888 > displayed </ color >
**< color purple >left of </ color > <s:red >Alice </ strike > Bob **.
end note
note over Alice , Bob
<w :# FF33FF > This is hosted </w > by <img s our ceforge .jpg >
end note
@enduml
PlantUML : 言語リファレンスガイド (2017 93)10 of 126
1.14 境界線 1シーケンス図
1.14 境界線
== を使って、図を論理的なステップに分けることも出来ます。
@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 93)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 93)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 93)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 93)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 93)15 of 126
1.21 ステレオタイプとスポット 1シーケンス図
Bob ->]
Bob ->o]
Bob o->o]
Bob ->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 93)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 93)17 of 126
1.23 分類子の囲み 1シーケンス図
また、キーワード title end title を使うことにより、タイトルを複数行にわたって記述できます。
@startuml
title
<u>Simple </u> communication example
on <i>several </i > lines and using < font color =red >html </ font >
This is hosted by <img:sourceforge .jpg >
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 93)18 of 126
1.24 フッターの除去 1シーケンス図
1.24 フッターの除去
図のフッターを削除するにはキーワード hide footbox を使います。
@startuml
hide footbox
title Footer removed
Alice -> Bob: Authentication Request
Bob --> Alice : Authentication Response
@enduml
1.25 スキンパラメータ
図の色やフォントを変えるにはキーワード skinparam を使います。
キーワードを使用できるのは:
他のコマンドと同じように図の定義の中、
インクルードしたファイルの中、
またはコマンドラインで指定された設定ファイルや Ant タスクの中です。
次の例のように他のパラメータを変えることもできます。
@startuml
skinparam sequenceArrowThickness 2
skinparam roundcorner 20
skinparam maxmessagesize 60
skinparam 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 93)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 93)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 93)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 93)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 93)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 93)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 93)25 of 126
2.9 図を分割する 2ユースケース図
線を反対にすることでも方向を変えることができます。
@startuml
(Use case 1) <.. :user:
(Use case 2) <- :user:
@enduml
矢印の内側に leftrightupdown を書くことによっても線の方向を変えられます。
@startuml
:user : -left -> ( dummyLeft )
:user : -right -> ( dummyRight)
:user: -up -> (dummyUp )
:user : -down -> ( dummyDown )
@enduml
例えば、-down- ではなく -d- など、各方向の頭文字、または頭 2文字-do- だけ使って矢印を
短くすることも出来ます。
ただし、この機能の使いすぎには注意しましょう。ほとんどの場合、特別なことをしなくても
Graphviz がその場にあった表示を選びます。
2.9 図を分割する
newpage キーワードは、いくつかのページや画像に図を分割します。
PlantUML : 言語リファレンスガイド (2017 93)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 93)27 of 126
2.11 スキン設定(Skinparam2ユースケース図
2.11 スキン設定(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 93)28 of 126
2.12 完全な例 2ユースケース図
2.12 完全な例
@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 93)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 #-- Class22
Class23 x-- Class24
Class25 }-- Class26
Class27 +-- Class28
Class29 ^-- Class30
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)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} modiers to override default behaviour of the parser about elds
and methods.
@startuml
class Dummy {
{field} A field (despite parentheses )
{method} Some method
}
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)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 93)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 93)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 93)36 of 126
3.8 注釈の詳細 3クラス図
3.8 注釈の詳細
次のようないくつかの HTML タグを使用することも可能です:
<b>
<u>
<i>
<s>,<del>,<strike>
<font color="#AAAAAA">or <font color="colorName">
<color:#AAAAAA>or <color:colorName>
<size:nn>to change font size
<img src="file">or <img:file>: the le must be accessible by the lesystem
また、複数行にまたがる注釈も可能です。
クラス定義の最後には note left,note right,note top,note bottom も使用できます。
@startuml
class Foo
note left: On last defined class
note top of Object
In java , <size:18> every </ size > <u>class </u>
<b>extends </b>
<i>this </i> one.
end note
note as N1
This note is <u>also </u>
<b><color :royalBlue >on several </color >
<s>words </s> lines
And this is hosted by <img: sourceforge .jpg >
end note
@enduml
PlantUML : 言語リファレンスガイド (2017 93)37 of 126
3.9 リンクへの注釈 3クラス図
3.9 リンクへの注釈
リンク定義の直後に 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 93)38 of 126
3.10 抽象クラスとインタフェース 3クラス図
3.10 抽象クラスとインタフェース
抽象クラスは、キーワード "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 93)39 of 126
3.11 非文字の使用 3クラス図
3.11 非文字の使用
クラス(または列挙型...)の表示に文字以外を使用したい場合は、次のいずれかの方法でするこ
とができます:
クラス定義にはキーワード as を使用する
クラス名の前後に引用符 "" を入れる
@startuml
class "This is my class" as class1
class class2 as "It works this way too"
class2 *-- "foo /dummy" : use
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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>> foo1 でステレオタイプ化されたクラスに、
既存のクラス名。
コマンド show/hide をルールや例外の定義にそれぞれ使用することができます。
@startuml
class Dummy1 {
+myMethods()
}
class Dummy2 {
+hiddenMethod()
}
class Dummy3 <<Serializable >> {
String name
}
hide members
hide <<Serializable >> circle
show Dummy1 methods
show <<Serializable >> fields
@enduml
PlantUML : 言語リファレンスガイド (2017 93)41 of 126
3.13 非表示クラス 3クラス図
3.13 非表示クラス
コマンド show/hide でクラスを非表示にすることができます。
これは大規模なインクルードファイルを定義する場合で、ファイルのインクルードの後でいくつ
かのクラスを非表示にしたい場合に有用である可能性が有ります。
@startuml
class Foo1
class Foo2
Foo2 *-- Foo1
hide Foo2
@enduml
3.14 ジェネリクスの使用
括弧 <>を使用してジェネリクスの使用をクラスに定義できます。
@startuml
class Foo <? extends Element > {
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 93)42 of 126
3.16 パッケージ 3クラス図
3.16 パッケージ
キーワー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 <<Node > > {
class Class1
}
package foo2 <<Rectangle >> {
class Class2
}
package foo3 <<Folder >> {
class Class3
}
package foo4 <<Frame >> {
class Class4
}
package foo5 <<Cloud >> {
class Class5
}
package foo6 <<Database >> {
class Class6
}
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)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 93)45 of 126
3.20 ロリポップ(棒付きキャンディ)インタフェース 3クラス図
3.20 ロリポップ(棒付きキャンディ)インタフェース
次の構文を使用して、クラスにロリポップインタフェースを定義することもできます:
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 93)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 93)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 93)48 of 126
3.24 ステレオタイプの化粧 3クラス図
3.24 ステレオタイプの化粧
ステレオタイプクラスに特定の色やフォントを定義することができます。
@startuml
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
Back groun dColor <<Foo >> Wheat
BorderColor <<Foo >> Tomato
}
skinparam stereotypeCBackgroundColor YellowGreen
skinparam stereotypeCBackgroundColor << Foo >> DimGray
Clas s01 <<Foo >>
Clas s03 <<Foo >>
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
@enduml
3.25 色のグラデーション
表記を使用して、クラスや注釈の個々の色を宣言することが可能です。
標準的な色の名前または RGB コードのいずれかを使用することができます。
次の構文で背景に色のグラデーションをつけることもできます。2つの色の名前を次のいずれか
で分割:
|,
/,
\,
or -
グラデーションの方向に依存します。
例えば、こんなふうにできるかも:
PlantUML : 言語リファレンスガイド (2017 93)49 of 126
3.26 レイアウトの手助け 3クラス図
@startuml
skinparam backgroundcolor AntiqueWhite /Gold
skinparam classBackgroundColor Wheat|CornflowerBlue
class Foo #red - green
note left of Foo #blue \9932CC
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 93)50 of 126
3.27 大きなファイルの分割 3クラス図
3.27 大きなファイルの分割
時には、ある非常に大きな画像ファイルを受け取ることがあるでしょう。
生成された画像を複数のファイルに分割するコマンド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 93)51 of 126
3.27 大きなファイルの分割 3クラス図
PlantUML : 言語リファレンスガイド (2017 93)52 of 126
4アクティビティ図
4アクティビティ図
4.1 単純なアクティビティ
(*) をアクティビティ図の開始点と終了点に使います。
場合によっては、(*top) を使用して開始点を図の一番上に置くこともできます。
--> で矢印を表します。
@startuml
(*) --> " First Activity"
"First Activity " --> (*)
@enduml
4.2 矢印のラベル
デフォルトで、矢印は最後に書いたアクティビティを起点に描かれます。
矢印にラベルを付けるために brackets [and ]を使います just after the arrow denition.
@startuml
(*) --> " First Activity"
-->[You can put also labels] "Second Activity"
--> (*)
@enduml
4.3 矢印の方向を変える
水平矢印には -> を使用できます。次の構文を使用して矢印の方向を強制することができます。
-down->(default arrow)
-right->or ->
PlantUML : 言語リファレンスガイド (2017 93)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 93)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 93)55 of 126
4.6 同期 4アクティビティ図
4.6 同期
=== code === を使用して同期バーを表示できます。
@startuml
(*) --> ===B1===
--> "Parallel Activity 1"
--> === B2===
=== B1=== --> " Parallel Activity 2"
--> === B2===
--> (*)
@enduml
4.7 長いアクティビティの記述
アクティビティを宣言するとき、説明文を複数の行にまたがせることができます。説明に \n
追加することもできます。
キーワーas を使ってアクティビティに短いコードを与えることもできますこのコードは
図の説明の後半で使用できます。
PlantUML : 言語リファレンスガイド (2017 93)56 of 126
4.8 注釈 4アクティビティ図
@startuml
(*) -left - > "this <size :20 >activity </ size >
is <b>very </ b> < color :red > long2 </ color >
and defined on several lines
that contains many <i>text </i >" as A1
-up -> " Another activity\n on several lines"
A1 --> " Short activity < img: sourceforge.jpg >"
@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 93)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 93)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 93)59 of 126
4.12 完全な例 4アクティビティ図
4.12 完全な例
@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 ] === RE DIR ECT _CH ECK ===
endif
else
-->[yes] === RENDERING ===
endif
if "is Post ?" then
-->[yes] " Page.onPost ()"
--> "Page .onRender ()" as render
--> === RE DIR ECT _CHECK ===
else
-->[no] "Page.onGet()"
--> render
endif
else
-->[ false ] === RE DIRECT_ CHE CK ===
endif
if "Do redirect ?" then
->[yes] " redirect request"
--> == BEF ORE _DE STR OY ===
else
if "Do Forward ?" then
-left ->[ yes] " Forward request "
--> == BEF ORE _DE STR OY ===
else
-right ->[no ] "Render page template "
--> == BEF ORE _DE STR OY ===
endif
endif
--> "Page .onDestroy ()"
-->(*)
@enduml
PlantUML : 言語リファレンスガイド (2017 93)60 of 126
4.12 完全な例 4アクティビティ図
PlantUML : 言語リファレンスガイド (2017 93)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 93)62 of 126
5.3 条件文 5アクティビティ図(ベータ版)
@startuml
start
:Hello world;
:This is on defined on
several ** lines **;
end
@enduml
5.3 条件文
図に条件分岐を追加したい場合は、キーワーifthen そして 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 93)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 93)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 並列処理
並列処理を示すために、キーワード forkfork 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 93)65 of 126
5.7 注釈 5アクティビティ図(ベータ版)
5.7 注釈
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 <b>HTML </b>
====
* 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 93)66 of 126
5.9 矢印 5アクティビティ図(ベータ版)
5.9 矢印
記号 -> を用いて、矢印にテキストを添えることができ、また、色を変えることもできます。
点線、破線、太線、または、矢印なし、もまた可能です。
@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 93)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 93)68 of 126
5.12 分離 5アクティビティ図(ベータ版)
5.12 分離
キーワード detach を使用して、矢印を取り除くことができます。
@startuml
:start;
fork
:foo1;
:foo2;
fork again
:foo3;
detach
endfork
if (foo4) then
:foo5;
detach
endif
:foo6;
detach
:foo7;
stop
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)70 of 126
5.14 完全な例 5アクティビティ図(ベータ版)
5.14 完全な例
@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 93)71 of 126
5.14 完全な例 5アクティビティ図(ベータ版)
PlantUML : 言語リファレンスガイド (2017 93)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 93)73 of 126
6.3 基本的な例 6コンポーネント図
6.3 基本的な例
要素間の関係は、破線 (..)、直線 (--), 矢印 (-->)の組合せで構成されます。
@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 93)74 of 126
6.5 コンポーネントのグループ化 6コンポーネント図
6.5 コンポーネントのグループ化
いくつかのキーワードをグループコンポーネントやインタフェースに使用することができます:
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 93)75 of 126
6.6 矢印の方向を変える 6コンポーネント図
6.6 矢印の方向を変える
デフォルトではクラス間のリンクは 2のダッシュ-- を持っており垂直方向に配向されていま
す。次のように単一のダッシまたはドット)を置くことによって水平方向のリンクを使用す
ることが可能です:
@startuml
[Component] --> Interface1
[Component] -> Interface2
@enduml
リンクを反対にすることで方向を変更することもできます。
@startuml
Interface1 <-- [Component]
Interface2 <- [Component ]
@enduml
PlantUML : 言語リファレンスガイド (2017 93)76 of 126
6.7 UML2 表記の使用 6コンポーネント図
また、left を加えることで矢印の向きを変更することもできます。right,up,down などのキー
ワードを矢印の間に記述します。:
@startuml
[ Component ] -left -> left
[Component ] -right -> right
[Component] -up-> up
[ Component ] -down -> down
@enduml
方向の最初の文字のみを使用して矢印を短くすることができます(例えば-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 93)77 of 126
6.8 長い説明 6コンポーネント図
6.8 長い説明
角括弧を使用して説明を複数行で記述することができます。
@startuml
component comp1 [
This component
has a long comment
on several lines
]
@enduml
6.9 個々の色
コンポーネント定義のあとに色を指定することができます。
@startuml
component [Web Server ] #Yellow
@enduml
6.10 ステレオタイプでスプライトを使用
ステレオタイプのコンポーネント内にスプライトを使用することができます。
@startuml
sprite $businessProcess [16x16 /16] {
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFF00FFFF
FF00000000000FFF
FF000000000000FF
FF00000000000FFF
FFFFFFFFFF00FFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
PlantUML : 言語リファレンスガイド (2017 93)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 <<Apache >> Red
BorderColor <<Apache >> # 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 93)79 of 126
6.11 見かけを変える 6コンポーネント図
@startuml
[AA ] <<st at ic lib > >
[BB ] <<sh ar ed lib > >
[CC ] <<st at ic lib > >
node node1
node node2 << shared node >>
database Production
skinparam component {
back groun dColor << static lib >> Dar kKhak i
back groun dColor << shared lib >> Gr ee n
}
skinparam node {
borderColor Green
backgroundColor Yellow
backgroundColor <<shared node >> Magenta
}
skinparam databaseBackgroundColor Aqua
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)81 of 126
7.3 長い言葉 7ステート図
7.3 長い言葉
キーワード 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 93)82 of 126
7.4 同時状態 7ステート図
7.4 同時状態
記号 --で分離することで、同時状態となる複合状態を定義することができます。
@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 93)83 of 126
7.5 矢印の方向 7ステート図
7.5 矢印の方向
記号 -> を水平矢印として使用でき、以下の構文を使用することで、矢印の方向を支配すること
ができます。
-down->(default arrow)
-right->or ->
-left->
-up->
@startuml
[*] -up -> First
First -right -> Second
Second --> Third
Third - left -> Last
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 93)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 <<Warning >> Olive
BorderColor Gray
FontName Impact
}
[*] --> NotShooting
state "Not Shooting State" as NotShooting {
PlantUML : 言語リファレンスガイド (2017 93)86 of 126
7.8 見栄え 7ステート図
state "Idle mode" as Idle <<Warning >>
state "Configuring mode" as Configuring
[*] --> Idle
Idle --> Configuring : EvConfig
Configuring --> Idle : EvConfig
}
NotShooting --> [*]
@enduml
PlantUML : 言語リファレンスガイド (2017 93)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 <|-- Object02
Object03 *-- Object04
Object05 o-- "4" Object06
Object07 .. Object08 : some labels
@enduml
8.3 フィールドの追加
フィールドを宣言するには、シンボル ":" にフィールド名を続けます。
@startuml
object user
user : name = "Dummy"
user : id = 123
@enduml
PlantUML : 言語リファレンスガイド (2017 93)88 of 126
8.4 クラス図と共通の機能 8オブジェクト図
全てのフィールドを括弧 {} で括って範囲を示すことも可能です。
@startuml
object user {
name = " Dummy"
id = 123
}
@enduml
8.4 クラス図と共通の機能
可視性
注釈の定義
パッケージの使用
出力スキン
PlantUML : 言語リファレンスガイド (2017 93)89 of 126
9共通コマンド
9共通コマンド
9.1 コメント
シングルクォート 'から始まるものはコメントとして扱われます。
また、/' で初まり'/で終わる複数行にまたがるコメントも書けます。
9.2 フッターとヘッダー
どのダイアグラムも、header 及び footer で、ヘッダー及びフッターを追加できます。
キーワード centerleftright 追記することで、ヘッダー/フッターを中央、左、右に
せることが可能です。
タイトルと同様にヘッダー/フッターは複数行記述可能です。
ヘッダー/フッターを HTML で記述することも可能です。
@startuml
Alice -> Bob: Authentication Request
header
<font color =red > Warning : </ font >
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 93)90 of 126
9.4 タイトル 9共通コマンド
9.4 タイトル
タイトルの指定にキーワード title を使います。タイトルの記述では \n を使用して新しい行を
追加することができます。
いくつかの skinparam 設定が、タイトルに境界をつけるために利用可能です。
@startuml
skinparam titleBorderRoundCorner 15
skinparam titleBorderThickness 2
skinparam titleBorderColor red
skinparam titleBackgroundColor Aqua - CadetBlue
title Simple communication\nexample
Alice -> Bob: Authentication Request
Bob --> Alice : Authentication Response
@enduml
タイトルには creole フォーマットが使用できます。
また、キーワード title end title を使うことにより、タイトルを複数行にわたって記述で
きます。
@startuml
title
<u>Simple </u> communication example
on <i>several </i> lines and using <back:cadetblue >creole tags </back >
end title
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml
PlantUML : 言語リファレンスガイド (2017 93)91 of 126
9.5 見出し 9共通コマンド
9.5 見出し
図の下に見出しを置くキーワード caption もあります。
@startuml
caption figure 1
Alice -> Bob: Hello
@enduml
9.6 図の説明文
legend end legend は説明文を記入するために使用されるキーワードです。
必要に応じて leftrightcenter によって説明文の位置合わせをすることができます。
@startuml
Alice -> Bob : Hello
legend right
Short
legend
endlegend
@enduml
PlantUML : 言語リファレンスガイド (2017 93)92 of 126
10 SALTGUI 設計ツール)
10 SaltGUI 設計ツール)
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 93)93 of 126
10.3 セパレータの使用 10 SALTGUI 設計ツール)
括弧で表を開始したら、行や列の罫線を表示したいがために定義された文字を使用することがで
きます:
#全ての縦横の罫線を表示する
!全ての縦線を表示する
-全ての横線を表示する
+枠線を表示する
@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 93)94 of 126
10.5 括弧で括る 10 SALTGUI 設計ツール)
++ 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
{+
{/ <b>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 93)95 of 126
10.7 メニューの使用 10 SALTGUI 設計ツール)
@startsalt
{+
{/ <b>General
Fullscreen
Behavior
Saving } |
{
{ Open image in: | ^Smart Mode^ }
[X] Smooth images when zoomed
[X] Confirm image deletion
[ ] Show hidden images
[Close]
}
}
@endsalt
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 93)96 of 126
10.8 テーブル(上級) 10 SALTGUI 設計ツール)
10.8 テーブル(上級)
テーブルのための2つの特別な表記を使用することができます。
*は残りのセルとの範囲を示すために
.は空のセルを示すために
@startsalt
{#
. | Column 2 | Column 3
Row header 1 | value 1 | value 2
Row header 2 | A long cell | *
}
@endsalt
PlantUML : 言語リファレンスガイド (2017 93)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 93)98 of 126
11.3 エスケープ文字 11 CREOLE(マークアップ言語)
11.3 エスケープ文字
特別なクレオール文字をエスケープするためにチルダ ~を使用することができます。
@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 93)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:
<b> は太字に
<u> <u:#AAAAAA> <u:colorName> は下線に
<i> は斜体(イタリック)に
<s> <s:#AAAAAA> <s:colorName> は打ち消し線に
<w> <w:#AAAAAA> <w:colorName> は波線(下線)に
<color:#AAAAAA> <color:colorName>
<back:#AAAAAA> <back:colorName> は背景色に
<size:nn> はフォントサイズを変更するために
<img:file> :そのファイルはファイルシステムによりアクセスできる必要があります
<img:http://url> :その URL はインターネットによりアクセスできる必要があります
@startuml
:* You can change < color :red > text color </ color >
* You can change <back :cadetblue > background color </back >
* You can change <size :18> size </ size >
* You use <u> legacy </u > <b> HTML <i >tag </i ></b >
* You use <u :red > color </ u> < s:green > in HTML </s > <w :#000 0FF >tag </w >
----
* Use image : < img: sour ceforge .jpg >
;
@enduml
PlantUML : 言語リファレンスガイド (2017 93)100 of 126
11.7 11 CREOLE(マークアップ言語)
11.7
表を構築することが可能です。
@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 | <#80 FF80 > 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 93)101 of 126
11.9 特殊文字 11 CREOLE(マークアップ言語)
11.9 特殊文字
&# 構文や <U+XXXX> でユニコード文字を使用することが可能です。
@startuml
usecase foo as "this is &#8734; long"
usecase bar as "this is also <U +221E> long"
@enduml
11.10 Open Iconic
Open Iconic は非常に素晴らしいオープンソースのアイコンセットです。これらのアイコンはク
レオールパーザに統合されているので、図の外部領域にそれらを使用することができます。
次の構文を使用できます:<&ICON_NAME>
@startuml
title: < size :20 ><& heart > Use of OpenIconic <&heart ></ size >
class Wifi
note left
Click on <&wifi >
end note
@enduml
完全なリストは Open Iconic ウェブサイト上で利用可能ですが、このような特殊な図形を使用す
ることができます。
@startuml
listopeniconic
@enduml
PlantUML : 言語リファレンスガイド (2017 93)102 of 126
11.10 Open Iconic 11 CREOLE(マークアップ言語)
PlantUML : 言語リファレンスガイド (2017 93)103 of 126
11.11 スプライトの定義と使い方 11 CREOLE(マークアップ言語)
11.11 スプライトの定義と使い方
Sprite は、図で使用できる小さなグラフィック要素です。
PlantUML では、スプライトはモノクロで 48または 16 のグレーレベルのいずれかを持つこと
ができます。
スプライトを定義するには、ピクセルごとに 0Fの間の 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 93)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 [15x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEqm0
start
:click on <$printer > to print the page ;
@enduml
@startuml
sprite $bug [15 x15/16z] PKzR2i0m2BFMi15p__FEjQEqB1z27aeqCqixa8S4OT7C53cKpsHpaYPDJY_12MHM -BLRyywPhrrlw3qumqNThmXgd1TOterAZmOW8sgiJafogofWRwtV3nCF
sprite $printer [15x15/8z] NOtH3W0W208HxFz_kMAhj7lHWpa1XC716sz0Pq4MVPEWfBHIuxP3L6kbTcizR8tAhzaqFvXwvFfPEqm0
sprite $disk {
444445566677881
436000000009991
43 60000000 0 AC A1
53 70000000 1 A7 A1
53 70000001 2 B8 A1
53 80000012 3 B8 A1
63 80000123 3 C9 A1
634999 A ABBC9 9B1
74 456 677 889 9 AB1
7456 AAAAA99AAB1
8566 AFC228AABB1
8567 AC8118BBBB1
867BD4433BBBBB1
39AAAAABBBBBBC1
}
title Use of sprites (<$printer >, <$bug >...)
class Example {
Can have some bug : <$bug >
Click on <$disk > to save
}
PlantUML : 言語リファレンスガイド (2017 93)105 of 126
11.14 11 CREOLE(マークアップ言語)
note left : The printer <$printer > is available
@enduml
PlantUML : 言語リファレンスガイド (2017 93)106 of 126
12 フォントや色の変更
12 フォントや色の変更
12.1 使い方
コマンド skinparam を使用して、製図の色やフォントを変えることができます。例:
skinparam backgroundColor yellow
このコマンドを使用することができます:
図の定義には、他のコマンドのように、
インクルードファイルには(Preprocessing 参照)
設定ファイルには、コマンドラインまたは ANT タスクで提供します。
12.2 入れ子
繰返しを避けるために、入れ子に定義することが可能です。次のような定義は、
skinparam xxxxParam1 value1
skinparam xxxxParam2 value2
skinparam xxxxParam3 value3
skinparam xxxxParam4 value4
次のとまったく等価です。
skinparam xxxx {
Param1 value1
Param2 value2
Param3 value3
Param4 value4
}
PlantUML : 言語リファレンスガイド (2017 93)107 of 126
12.3 12 フォントや色の変更
12.3
標準的な色名または RGB コードのいずれかを使用できます。
パラメータ名 既定値 色 解説
backgroundColor white ページ背景色
activityArrowColor #A80036 アクティビティ図の矢線色
activityBackgroundColor #FEFECE アクティビティ毎の背景色
activityBorderColor #A80036 アクティビティの枠線色
activityStartColor black アクティビティ図の開始円
activityEndColor black アクティビティ図の終了円
activityBarColor black アクティビティ図の同期バー
usecaseArrowColor #A80036 ユースケース図の矢線色
usecaseActorBackgroundColor #FEFECE ユースケース図のアクターの頭の色
usecaseActorBorderColor #A80036 ユースケース図のアクターの縁取り色
usecaseBackgroundColor #FEFECE 各ユースケースの背景
usecaseBorderColor #A80036 ユースケース図のユースケース枠線色
classArrowColor #A80036 クラス図の矢線の色
classBackgroundColor #FEFECE クラス図のクラス/インタフェース/列挙型の背景色
classBorderColor #A80036 クラス図のクラス/インタフェース/列挙型の枠線色
packageBackgroundColor #FEFECE クラス図のパッケージの背景色
packageBorderColor #A80036 クラス図のパッケージの枠線色
stereotypeCBackgroundColor #ADD1B2 クラス図のクラススポットの背景色
stereotypeABackgroundColor #A9DCDF クラス図の抽象クラススポットの背景色
stereotypeIBackgroundColor #B4A7E5 クラス図のインタフェーススポットの背景色
stereotypeEBackgroundColor #EB937F クラス図の列挙型スポットの背景色
componentArrowColor #A80036 コンポーネント図の矢線色
componentBackgroundColor #FEFECE コンポーネントの背景色
componentBorderColor #A80036 コンポーネントの枠線色
componentInterfaceBackgroundColor #FEFECE コンポーネント図のインタフェースの背景色
componentInterfaceBorderColor #A80036 コンポーネント図のインタフェースの枠線色
noteBackgroundColor #FBFB77 注釈の背景色
noteBorderColor #A80036 注釈の枠線色
stateBackgroundColor #FEFECE 状態遷移図のステートの背景色
stateBorderColor #A80036 状態遷移図のステートの枠線色
stateArrowColor #A80036 状態遷移図の矢線色
stateStartColor black 状態遷移図の始点の色
stateEndColor black 状態遷移図の終点の色
sequenceArrowColor #A80036 シーケンス図の矢線色
sequenceActorBackgroundColor #FEFECE シーケンス図のアクターの頭の色
sequenceActorBorderColor #A80036 シーケンス図のアクターの縁取り色
sequenceGroupBackgroundColor #EEEEEE シーケンス図の alt/opt/loop のヘッダ色
sequenceLifeLineBackgroundColor white シーケンス図のライフラインの背景色
sequenceLifeLineBorderColor #A80036 シーケンス図のライフラインの枠線色
sequenceParticipantBackgroundColor #FEFECE シーケンス図の分類子の背景色
sequenceParticipantBorderColor #A80036 シーケンス図の分類子の枠線色
PlantUML : 言語リファレンスガイド (2017 93)108 of 126
12.4 フォントの色、名前、サイズ 12 フォントや色の変更
12.4 フォントの色、名前、サイズ
テキスト描画に使用されるフォントを、パラメータ xxxFontColorxxxFontSizexxxFontName
で変更することができます。
例:
skinparam classFontColor red
skinparam classFontSize 10
skinparam classFontName Aapex
skinparam defaultFontName を使用して既定のフォントを変更することができます。
:
skinparam defaultFontName Aapex
フォント名はシステム依存性が非常に高いため、ポータビリティを考慮する場合は多用しないで
ください。
パラメータ デフォルト 解説
名 値
activityFontColor black
アクティビティボックスに使用される
activityFontSize 14
activityFontStyle plain
activityFontName
activityArrowFontColor black
アクティビティ図の矢印につけるテキストに使用される
activityArrowFontSize 13
activityArrowFontStyle plain
activityArrowFontName
circledCharacterFontColor black
クラスや列挙値などを囲う円の中のテキストに使用される
circledCharacterFontSize 17
circledCharacterFontStyle bold
circledCharacterFontName Courier
circledCharacterRadius 11
classArrowFontColor black
クラス図の矢印につけるテキストに使用される
classArrowFontSize 10
classArrowFontStyle plain
classArrowFontName
classAttributeFontColor black
クラスの属性とメソッド
classAttributeFontSize 10
classAttributeIconSize 10
classAttributeFontStyle plain
classAttributeFontName
classFontColor black
クラス名に使用される
classFontSize 12
classFontStyle plain
classFontName
classStereotypeFontColor black
クラス内のステレオタイプに使用される
classStereotypeFontSize 12
classStereotypeFontStyle italic
classStereotypeFontName
componentFontColor black
コンポーネント名に使用される
componentFontSize 14
componentFontStyle plain
componentFontName
componentStereotypeFontColor black
コンポーネント内のステレオタイプに使用される
componentStereotypeFontSize 14
componentStereotypeFontStyle italic
componentStereotypeFontName
PlantUML : 言語リファレンスガイド (2017 93)109 of 126
12.4 フォントの色、名前、サイズ 12 フォントや色の変更
componentArrowFontColor black
コンポーネント図の矢印につけるテキストに使用される
componentArrowFontSize 13
componentArrowFontStyle plain
componentArrowFontName
noteFontColor black
シーケンス図以外のすべての図の注釈に使用される
noteFontSize 13
noteFontStyle plain
noteFontName
packageFontColor black
パッケージ名とパーティション名に使用される
packageFontSize 14
packageFontStyle plain
packageFontName
sequenceActorFontColor black
シーケンス図のアクターに使用される
sequenceActorFontSize 13
sequenceActorFontStyle plain
sequenceActorFontName
sequenceDividerFontColor black
シーケンス図の分割線につけるテキストに使用される
sequenceDividerFontSize 13
sequenceDividerFontStyle bold
sequenceDividerFontName
sequenceArrowFontColor black
シーケンス図の矢印につけるテキストに使用される
sequenceArrowFontSize 13
sequenceArrowFontStyle plain
sequenceArrowFontName
sequenceGroupingFontColor black
シーケンス図の”else” に使用される
sequenceGroupingFontSize 11
sequenceGroupingFontStyle plain
sequenceGroupingFontName
sequenceGroupingHeaderFontColor black
シーケンス図のヘッダ”alt/opt/loop” に使用される
sequenceGroupingHeaderFontSize 13
sequenceGroupingHeaderFontStyle plain
sequenceGroupingHeaderFontName
sequenceParticipantFontColor black
シーケンス図の分類子につけるテキストに使用される
sequenceParticipantFontSize 13
sequenceParticipantFontStyle plain
sequenceParticipantFontName
sequenceTitleFontColor black
シーケンス図のタイトルに使用される
sequenceTitleFontSize 13
sequenceTitleFontStyle plain
sequenceTitleFontName
titleFontColor black
シーケンス図を除く、全ての UML 図のタイトルに使用される
titleFontSize 18
titleFontStyle plain
titleFontName
stateFontColor black
状態遷移図の状態を表すテキストに使用される
stateFontSize 14
stateFontStyle plain
stateFontName
stateArrowFontColor black
状態遷移図の矢印につけるテキストに使用される
stateArrowFontSize 13
stateArrowFontStyle plain
stateArrowFontName
stateAttributeFontColor black
状態遷移図の状態を説明するテキストに使用される
stateAttributeFontSize 12
stateAttributeFontStyle plain
stateAttributeFontName
PlantUML : 言語リファレンスガイド (2017 93)110 of 126
12.4 フォントの色、名前、サイズ 12 フォントや色の変更
usecaseFontColor black
ユースケース図のユースケースにつけるラベルに使用される
usecaseFontSize 14
usecaseFontStyle plain
usecaseFontName
usecaseStereotypeFontColor black
ユースケース図のステレオタイプに使用される
usecaseStereotypeFontSize 14
usecaseStereotypeFontStyle italic
usecaseStereotypeFontName
usecaseActorFontColor black
ユースケース図のアクターにつけるラベルに使用される
usecaseActorFontSize 14
usecaseActorFontStyle plain
usecaseActorFontName
usecaseActorStereotypeFontColor black
アクターのステレオタイプに使用される
usecaseActorStereotypeFontSize 14
usecaseActorStereotypeFontStyle italic
usecaseActorStereotypeFontName
usecaseArrowFontColor black
ユースケース図の矢印につけるテキストに適用される
usecaseArrowFontSize 13
usecaseArrowFontStyle plain
usecaseArrowFontName
footerFontColor black
フッタに使用される
footerFontSize 10
footerFontStyle plain
footerFontName
headerFontColor black
ヘッダに使用される
headerFontSize 10
headerFontStyle plain
headerFontName
PlantUML : 言語リファレンスガイド (2017 93)111 of 126
12.5 白黒 12 フォントや色の変更
12.5 白黒
コマンド 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 93)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 dene a le 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 le using @startuml(id=MY_OWN_ID)
syntax and then include the block adding !MY_OWN_ID when including the le, 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 93)113 of 126
13.3 定数を定義する 13 プリプロセッシング
13.3 定数を定義する
定数を定義するには擬似命令 !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 >>
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 93)114 of 126
13.5 日付と時刻の追加 13 プリプロセッシング
13.5 日付と時刻の追加
特殊な変数 %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 93)115 of 126
13.8 マクロパラメータのデフォルト値 13 プリプロセッシング
13.8 マクロパラメータのデフォルト値
マクロパラメータにデフォルト値を割り当てることができます。
@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
次に、!dene 指示文を使用して図の条件部分を有効にすることができます。
@startuml
!define SHOW_METHODS
!include ArrayList .iuml
@enduml
指定された定数が定義されていない場合は、行を含む擬似命令 !ifndef 使用することもでき
ます。
評価式では、括弧と演算子 || とでブール式を使用することができます。
PlantUML : 言語リファレンスガイド (2017 93)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 93)117 of 126
13.11 高度な機能 13 プリプロセッシング
マクロは引数の個数で多態になることができます。
@startuml
!define module(x) component x << module >>
!define module(x,y) component x as y <<module >>
module (foo)
module (bar , b arcod e)
@enduml
インクルードファイルを使用するときにはシステムの環境変数や定数の定義を使用することがで
きます:
!include %windir%/test1.txt
!define PLANTUML_HOME / home/foo
!include PLANTUML_HOME/test1 .txt
PlantUML : 言語リファレンスガイド (2017 93)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 93)119 of 126
14.1 キャラクターセット 14 国際化
または ant タスクを使うこともできます:
<target name="main">
<plantuml dir ="./ src " charset =" UTF -8" />
</target >
必要に応じて、次に示すキャラクターセットが使えるように Java がインストールされている必
要があります:ISO-8859-1,UTF-8,UTF-16BE,UTF-16LE,UTF-16.
PlantUML : 言語リファレンスガイド (2017 93)120 of 126
15 色の名前
15 色の名前
ここにある色は PlantUML によって認識されます。色の名前は、大文字と小文字が区別されるこ
とに注意してください。
AliceBlue GhostWhite NavajoWhite
AntiqueWhite GoldenRod Navy
Aquamarine Gold OldLace
Aqua Gray OliveDrab
Azure GreenYellow Olive
Beige Green OrangeRed
Bisque HoneyDew Orange
Black HotPink Orchid
BlanchedAlmond IndianRed PaleGoldenRod
BlueViolet Indigo PaleGreen
Blue Ivory PaleTurquoise
Brown Khaki PaleVioletRed
BurlyWood LavenderBlush PapayaWhip
CadetBlue Lavender PeachPu
Chartreuse LawnGreen Peru
Chocolate LemonChion Pink
Coral LightBlue Plum
CornowerBlue LightCoral PowderBlue
Cornsilk LightCyan Purple
Crimson LightGoldenRodYellow Red
Cyan LightGreen RosyBrown
DarkBlue LightGrey RoyalBlue
DarkCyan LightPink SaddleBrown
DarkGoldenRod LightSalmon Salmon
DarkGray LightSeaGreen SandyBrown
DarkGreen LightSkyBlue SeaGreen
DarkKhaki LightSlateGray SeaShell
DarkMagenta LightSteelBlue Sienna
DarkOliveGreen LightYellow Silver
DarkOrchid LimeGreen SkyBlue
DarkRed Lime SlateBlue
DarkSalmon Linen SlateGray
DarkSeaGreen Magenta Snow
DarkSlateBlue Maroon SpringGreen
DarkSlateGray MediumAquaMarine SteelBlue
DarkTurquoise MediumBlue Tan
DarkViolet MediumOrchid Teal
Darkorange MediumPurple Thistle
DeepPink MediumSeaGreen Tomato
DeepSkyBlue MediumSlateBlue Turquoise
DimGray MediumSpringGreen Violet
DodgerBlue MediumTurquoise Wheat
FireBrick MediumVioletRed WhiteSmoke
FloralWhite MidnightBlue White
ForestGreen MintCream YellowGreen
Fuchsia MistyRose Yellow
Gainsboro Moccasin
PlantUML : 言語リファレンスガイド (2017 93)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 93)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 93)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 93)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 SaltGUI 設計ツール) 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.10OpenIconic.........................................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 93)125 of 126
CONTENTS CONTENTS
13 プリプロセッシング 113
13.1 ファイルのインクルード .................................113
13.2 URL でインクルード ...................................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 色の名前 121
PlantUML : 言語リファレンスガイド (2017 93)126 of 126

Navigation menu