シーケンス図
PlantUML のシーケンス図はすべてテキストで定義します。参加者とそれらが交換するメッセージを記述するだけで、レイアウト、間隔、矢印は自動的に生成されます。- テキストを入力、図を出力。 ソースが唯一の信頼できる情報源であり、書いたとおりに描画されます。
- 編集が簡単。 図形をドラッグするのではなく、テキストを 1 行修正するだけです。
- 素早い反復。 ライブプレビューツールは入力中にリアルタイムで描画するため、間違いをすぐに発見できます。
基本的な例
シーケンス-> は、2人の
参加者の間のメッセージを描くために使用されます。
参加者は明示的に宣言する必要はありません。
点線の矢印を持つためには、-->を使用します。
<- と<-- を使用することも可能です。
描画は変わりませんが、読みやすさが向上する可能性があります。
これはシーケンス図にのみ当てはまることで、他の図ではルールが異なることに注意してください。
WARNING
This translation need to be updated. WARNING
分類子の宣言
キーワード participant を使って分類子を宣言すると、分類子の表示を調整することができます。
宣言した順序が、デフォルトの表示順になります。
分類子の宣言に別のキーワードを使用すると、分類子の形を変えることができます:
actorboundarycontrolentitydatabasecollectionsqueue
as を使って分類子の名前を変更することができます。
アクターや分類子の背景色を、HTML コードや色名を使って変更することもできます。
orderキーワードを使って、分類子が表示される順序を変更することもできます。
WARNING
This translation need to be updated. WARNING
複数の行を持つ分類子の宣言
複数の行を持つ分類子を宣言できます。
分類子名にアルファベット以外を使う
分類子を定義するときに引用符を使用することができます。そして、分類子にエイリアスを与えるためにキーワード as を使用することができます。
自分自身へのメッセージ
分類子は自分自身へメッセージを送信できます。
\n を使用して、複数行のテキストを扱えます。
テキストの位置
skinparam sequenceMessageAlignを使用すると、矢印に表示するテキストの位置をleft、right、centerに設定することができます。
directionまたはreverseDirectionを使用すると、矢印の方向に応じてテキストの位置が決定されます。この機能の詳細はskinparamのページを参照してください。
応答メッセージのテキストを矢印の下に表示する
skinparam responseMessageBelowArrow trueコマンドを使用すると、応答メッセージのテキストを矢印の下に表示することができます。
Change Actor style
You can change the actor style from stick man (by default) to:
- an awesome man with the
skinparam actorStyle awesomecommand; - a hollow man with the
skinparam actorStyle hollowcommand.
Stick man (by default)
Awesome man
Hollow man
矢印の見た目を変える
矢印の見た目をいくつかの方法によって変更できます。
- メッセージの消失を示す最後の
xを追加 \や/を<や>の代わりに使うと- 矢印の先端が上側だけまたは下側だけになります。
- 矢印の先端を繰り返す (たとえば
>>や//) と、矢印の先端が細くなります。 --を-の代わりに使うと、矢印が点線になります。- 矢じりに最後の "O" を追加
- 双方向の矢印を使用する
矢印の色を替える
以下の表記を使って、個々の矢印の色を変えることができます。
メッセージシーケンスの番号付け
メッセージへ自動で番号を振るために、キーワード autonumber を使います。
autonumber <開始> で開始番号を、また、autonumber <開始> <増分> で増分も指定することができます。
DecimalFormat 方式で行います。
(0 は桁を表し, # は存在しない場合は 0 で埋める桁を意味します)。
一部のHTMLタグを書式に使うこともできます。
autonumber stop と
autonumber resume <増分> <書式> を自動採番の一時停止と再開にそれぞれ使用することができます。
.、;、,、:またはこれらの組み合わせで区切ります。例えば、1.1.1や1.1:1のようにします。
自動的に最後の数字が増加していきます。
最初の数字を増加させるにはautonumber inc Aを、2番目の数字を増加させるにはautonumber inc Bを使用します。
autonumberの値は%autonumber%変数で参照することができます:
タイトル、ヘッダー、フッター
titleキーワードはページにタイトルをつけるのに使われます。
headerやfooterを使うことにより、ページにヘッダーやフッターをつけて表示することができます。
図の分割
図を複数の画像に分けるためにキーワード newpage を使います。
新しいページのタイトルをキーワード newpage の直後に書くことができます。
これは、複数ページにわたる長い図を書くときに便利な機能です。
WARNING
This translation need to be updated. WARNING
メッセージのグループ化
次のキーワードを使えば、メッセージをまとめてグループ化できます。
alt/elseoptloopparbreakcriticalgroup表示するテキスト
groupについては、後述の「groupの2つ目のラベル」を参照)
グループを閉じるにはキーワード end を使用します。
注:グループはネスト可能です。
groupの2つ目のラベル
groupでは、[と]の間に2つ目のラベルを設定し、ヘッダに表示させることができます。
Partition across the entire width
You can use partition command to group messages horizontally across the entire width (full-width).
Messages are not grouped horizontally across the entire width (by default)
Grouping messages horizontally across the entire width (with teoz mode)
メッセージに付けるノート
メッセージのすぐ後ろにキーワード note left または note right を使用し、メッセージにノートを付けることが可能です。
end note キーワードを使って、複数行のノートを作ることができます。
その他のノート
note left of、note right of、note overのキーワードを使って、分類子からの相対位置を指定してノートを配置することもできます。
ノートを目立たせるために、背景色を変えることができます。
また、キーワード end note を使って複数行のノートを作ることができます。
ノートの形を変える [hnote, rnote]
キーワード hnote と rnote を使ってノートの形を変更できます。
hnoteで六角形のノートになりますrnoteで四角形のノートになります
すべての分類子にまたがるノート [across]
次の構文で、すべての分類子にまたがるノートを直接作ることができます:
note across: ノートの記述
複数のノートを同じレベルに並べる [/]
/を使って、複数のノートを同じレベルに並べることができます:
/を使わない場合(デフォルトでは、ノートは整列されません)
/を使った場合(ノートが整列されます)
Creole と HTML
PlantUML では creole フォーマットを使うこともできます。
WARNING
This translation need to be updated. WARNING
境界線(区切り線)
== を使って、図を論理的なステップに分けることも出来ます。
リファレンス
キーワード ref over を使用して、図中にリファレンスを挿入できます。
遅延
処理の遅延を表すために ... が使えます。また、作成した遅延にコメントを付けることもできます。
テキストの折り返し
\nを使って改行することで、長いメッセージを折り返すことができます。
また、maxMessageSizeを設定するという方法もあります。
Message text spans beyond the involved participants
You can use sequenceMessageSpan command to allow message text to span beyond the involved participants.
Without sequenceMessageSpan (by default)
With sequenceMessageSpan (on teoz mode)
間隔
図の間隔を調整するために、記号|||を使用することができます。
さらにピクセル数を指定することもできます。
ライフラインの活性化と破棄
activate と deactivate を使って分類子の活性化を表します。
分類子の活性化はライフラインで表されます。
activate と deactivate は直前のメッセージに適用されます。
destroy は分類子のライフラインが終わったことを表します。
Return
新しいコマンドreturnは、リターンメッセージを生成し、オプションでテキストラベルをつけることができます。
リターンする先は最も最近活性化したライフラインです。
構文は単純にreturn ラベルです。ラベルを与える場合には、通常のメッセージに与えることが可能な文字列を何でも与えることができます。
分類子の生成
キーワード create を、オブジェクトが最初のメッセージを受信する直前に置くことにより、このメッセージがオブジェクトを新しく 生成 していることを強調して表現できます。
活性化、非活性化、生成のショートカット記法
対象の分類子を記述した直後に、次の記法を使うことができます。
++対象を活性化する (続けて色を記述することもできます)--起点側を非活性化する**対象のインスタンスを生成する!!対象のインスタンスを破棄する
インとアウトのメッセージ
図の一部だけにフォーカスを当てたい場合には、「外から入ってくる」または「外に出ていく」メッセージを使えます。
左角括弧 "[" を使って図の左端、 右角括弧 "]" を使って図の右側を表せます。
インとアウトのメッセージに短い矢印を使う
?で短い矢印を使用することができます。
アンカーと持続時間
teozを使用するとダイアグラムにアンカーを追加することができ、それによって持続時間を表現することができます。
-Pオプションを使用してpragmaを指定することもできます:
java -jar plantuml.jar -Pteoz=true
[Ref. issue-582]
ステレオタイプとスポット
<< と >> を使い分類子にステレオタイプをつけることができます。
(X,color) と記述することによりステレオタイプに色付きの文字と円のアイコンをつけることができます。
guillemet を使用してこの動作を変更することができます:
Position of the stereotypes
It is possible to define stereotypes position (top or bottom) with the command skinparam stereotypePosition.
Top postion (by default)
Bottom postion
タイトルについての詳細
タイトルには creole フォーマットが使用できます。
\n を使用して新しい行を追加することができます。
title と end title を使うことにより、タイトルを複数行にわたって記述できます。
分類子の囲み
キーワード box と end box を使い、分類子のまわりにボックスを描くことができます。
タイトルや背景色をキーワード box に続けて任意で追加できます。
WARNING
This translation need to be updated. WARNING
フッターの除去
図からフッターを削除するにはキーワード hide footbox を使います。
スキンパラメータ
ダイアグラムの色やフォントを変更するには skinparam コマンドを使用します。
このコマンドは以下の場面で使用できます。
- ダイアグラム定義内で他のコマンドを同様に。
- インクルードされたファイル内。
- 設定ファイルのコマンドライン内やANTタスク内。
WARNING
This translation need to be updated. WARNING
パディングの変更
パディングの設定を変更することができます。
付録:全種類の矢印の例
通常の矢印
自分自身への矢印
インとアウトのメッセージ('['、']')
インのメッセージ('[')
アウトのメッセージ(']')
短いインとアウトのメッセージ('?')
短いインのメッセージ('?')
短いアウトのメッセージ('?')
特有のskinparam
デフォルト
ライフラインの設定(lifelineStrategy)
- nosolid(デフォルト)
- solid
skinparam lifelineStrategy solidを設定します:
厳密なUMLスタイル(style strictuml)
厳密なUMLに準拠する(矢印の端を矢じり形ではなく三角形にする等)には、次のようにします:skinparam style strictuml
WARNING
This translation need to be updated. WARNING
未接続の分類子を表示しない
デフォルトでは、すべての分類子が表示されます。
hide unlinkedを指定すると、接続されていない分類子を非表示にできます。
グループメッセージに色を付ける
グループメッセージに色を付けることができます:
メインフレーム
Slanted or odd arrows
You can use the (nn) option (before or after arrow) to make the arrows slanted, where nn is the number of shift pixels.
[Available only after v1.2022.6beta+]
Parallel messages (with teoz)
You can use the & teoz command to display parallel messages:
Style for Solid Lifeline
By default
Solid Lifeline using style