シーケンス図

PlantUML のシーケンス図はすべてテキストで定義します。参加者とそれらが交換するメッセージを記述するだけで、レイアウト、間隔、矢印は自動的に生成されます。

すべての図種に共通する機能については、共通コマンド を参照してください。

基本的な例

シーケンス-> は、2人の 参加者の間のメッセージを描くために使用されます。 参加者は明示的に宣言する必要はありません。

点線の矢印を持つためには、-->を使用します。

<-<-- を使用することも可能です。 描画は変わりませんが、読みやすさが向上する可能性があります。 これはシーケンス図にのみ当てはまることで、他の図ではルールが異なることに注意してください。

WARNING
 This translation need to be updated. 
WARNING

分類子の宣言

キーワード participant を使って分類子を宣言すると、分類子の表示を調整することができます。

宣言した順序が、デフォルトの表示順になります。

分類子の宣言に別のキーワードを使用すると、分類子の形を変えることができます:

キーワード as を使って分類子の名前を変更することができます。

アクターや分類子の背景色を、HTML コードや色名を使って変更することもできます。

orderキーワードを使って、分類子が表示される順序を変更することもできます。

WARNING
 This translation need to be updated. 
WARNING

複数の行を持つ分類子の宣言

複数の行を持つ分類子を宣言できます。

[Ref. QA-15232]

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

分類子を定義するときに引用符を使用することができます。そして、分類子にエイリアスを与えるためにキーワード as を使用することができます。

自分自身へのメッセージ

分類子は自分自身へメッセージを送信できます。

\n を使用して、複数行のテキストを扱えます。

[Ref. QA-1361]

テキストの位置

skinparam sequenceMessageAlignを使用すると、矢印に表示するテキストの位置をleftrightcenterに設定することができます。

directionまたはreverseDirectionを使用すると、矢印の方向に応じてテキストの位置が決定されます。この機能の詳細はskinparamのページを参照してください。

応答メッセージのテキストを矢印の下に表示する

skinparam responseMessageBelowArrow trueコマンドを使用すると、応答メッセージのテキストを矢印の下に表示することができます。

Change Actor style

You can change the actor style from stick man (by default) to:

Stick man (by default)

Awesome man

[Ref. QA-10493]

Hollow man

[Ref. PR#396]

矢印の見た目を変える

矢印の見た目をいくつかの方法によって変更できます。

矢印の色を替える

以下の表記を使って、個々の矢印の色を変えることができます。

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

メッセージへ自動で番号を振るために、キーワード autonumber を使います。

autonumber <開始> で開始番号を、また、autonumber <開始> <増分> で増分も指定することができます。

二重引用符で囲って番号の書式を指定することができます。

その書式指定は Java の DecimalFormat 方式で行います。 (0 は桁を表し, # は存在しない場合は 0 で埋める桁を意味します)。

一部のHTMLタグを書式に使うこともできます。

autonumber stopautonumber resume <増分> <書式> を自動採番の一時停止と再開にそれぞれ使用することができます。

開始番号は、2つまたは3つの部分からなる数字の列を指定することもできます。各部分は.;,:またはこれらの組み合わせで区切ります。例えば、1.1.11.1:1のようにします。

自動的に最後の数字が増加していきます。

最初の数字を増加させるにはautonumber inc Aを、2番目の数字を増加させるにはautonumber inc Bを使用します。

現在のautonumberの値は%autonumber%変数で参照することができます:
[Ref. QA-7119]

タイトル、ヘッダー、フッター

titleキーワードはページにタイトルをつけるのに使われます。

headerfooterを使うことにより、ページにヘッダーやフッターをつけて表示することができます。

図の分割

図を複数の画像に分けるためにキーワード newpage を使います。

新しいページのタイトルをキーワード newpage の直後に書くことができます。

これは、複数ページにわたる長い図を書くときに便利な機能です。

WARNING
 This translation need to be updated. 
WARNING

メッセージのグループ化

次のキーワードを使えば、メッセージをまとめてグループ化できます。

ヘッダ部分に文字列を追加することが可能です。(groupについては、後述の「groupの2つ目のラベル」を参照)

グループを閉じるにはキーワード end を使用します。

注:グループはネスト可能です。

groupの2つ目のラベル

groupでは、[]の間に2つ目のラベルを設定し、ヘッダに表示させることができます。

[Ref. QA-2503]

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)

[Ref. GH-589]

メッセージに付けるノート

メッセージのすぐ後ろにキーワード note left または note right を使用し、メッセージにノートを付けることが可能です。

end note キーワードを使って、複数行のノートを作ることができます。

その他のノート

note left ofnote right ofnote overのキーワードを使って、分類子からの相対位置を指定してノートを配置することもできます。

ノートを目立たせるために、背景色を変えることができます。

また、キーワード end note を使って複数行のノートを作ることができます。

ノートの形を変える [hnote, rnote]

キーワード hnoternote を使ってノートの形を変更できます。

[Ref. QA-1765]

すべての分類子にまたがるノート [across]

次の構文で、すべての分類子にまたがるノートを直接作ることができます:

[Ref. QA-9738]

複数のノートを同じレベルに並べる [/]

/を使って、複数のノートを同じレベルに並べることができます:

[Ref. QA-354]

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)

[Ref. GH-2386]

間隔

図の間隔を調整するために、記号|||を使用することができます。

さらにピクセル数を指定することもできます。

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

activatedeactivate を使って分類子の活性化を表します。

分類子の活性化はライフラインで表されます。

activatedeactivate は直前のメッセージに適用されます。

destroy は分類子のライフラインが終わったことを表します。

ライフラインはネスト(入れ子に)することができ、色をつけることもできます。

自動的に活性化(autoactivate)することもできます。この場合はreturnキーワードを使用します。

Return

新しいコマンドreturnは、リターンメッセージを生成し、オプションでテキストラベルをつけることができます。 リターンする先は最も最近活性化したライフラインです。 構文は単純にreturn ラベルです。ラベルを与える場合には、通常のメッセージに与えることが可能な文字列を何でも与えることができます。

分類子の生成

キーワード create を、オブジェクトが最初のメッセージを受信する直前に置くことにより、このメッセージがオブジェクトを新しく 生成 していることを強調して表現できます。

活性化、非活性化、生成のショートカット記法

対象の分類子を記述した直後に、次の記法を使うことができます。

同じ行に活性化と非活性化を混ぜることもできます:

[Ref. QA-4834, QA-9573 and QA-13234]

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

図の一部だけにフォーカスを当てたい場合には、「外から入ってくる」または「外に出ていく」メッセージを使えます。

左角括弧 "[" を使って図の左端、 右角括弧 "]" を使って図の右側を表せます。

また、次の書き方も使えます:

インとアウトのメッセージに短い矢印を使う

?短い矢印を使用することができます。

[Ref. QA-310]

アンカーと持続時間

teozを使用するとダイアグラムにアンカーを追加することができ、それによって持続時間を表現することができます。

コマンドライン-Pオプションを使用してpragmaを指定することもできます:

java -jar plantuml.jar -Pteoz=true

[Ref. issue-582]

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

<<>> を使い分類子にステレオタイプをつけることができます。

(X,color) と記述することによりステレオタイプに色付きの文字と円のアイコンをつけることができます。

デフォルトでは guillemet キャラクターがステレオタイプを表示するために使用されます。 スキンパラメータ 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

[Ref. QA-18650]

タイトルについての詳細

タイトルには creole フォーマットが使用できます。

タイトルの記述では \n を使用して新しい行を追加することができます。
また、キーワード titleend title を使うことにより、タイトルを複数行にわたって記述できます。

分類子の囲み

キーワード boxend box を使い、分類子のまわりにボックスを描くことができます。

タイトルや背景色をキーワード box に続けて任意で追加できます。

WARNING
 This translation need to be updated. 
WARNING

フッターの除去

図からフッターを削除するにはキーワード hide footbox を使います。

スキンパラメータ

ダイアグラムの色やフォントを変更するには skinparam コマンドを使用します。

このコマンドは以下の場面で使用できます。

次の例のように他のパラメータを変えることもできます。

WARNING
 This translation need to be updated. 
WARNING

パディングの変更

パディングの設定を変更することができます。

*[Ref. [QA-5493](https://forum.plantuml.net/5493/provide-skinparam-between-participants-sequence-diagrams)]*

付録:全種類の矢印の例

通常の矢印

自分自身への矢印

インとアウトのメッセージ('['、']')

インのメッセージ('[')

アウトのメッセージ(']')

短いインとアウトのメッセージ('?')

短いインのメッセージ('?')

短いアウトのメッセージ('?')

特有のskinparam

デフォルト

ライフラインの設定(lifelineStrategy)

[Ref. QA-9016]

シーケンス図のライフラインを実線で表示するには、skinparam lifelineStrategy solidを設定します:

[Ref. QA-2794]

厳密なUMLスタイル(style strictuml)

厳密なUMLに準拠する(矢印の端を矢じり形ではなく三角形にする等)には、次のようにします:
[Ref. QA-1047]

[Ref. GH-2266 and GH-2662]
WARNING
 This translation need to be updated. 
WARNING

未接続の分類子を表示しない

デフォルトでは、すべての分類子が表示されます。

hide unlinkedを指定すると、接続されていない分類子を非表示にできます。

[Ref. QA-4247]

グループメッセージに色を付ける

グループメッセージにを付けることができます:

[Ref. QA-4750 and QA-6410]

メインフレーム

[Ref. QA-4019 and Issue#148]

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+]

[Ref. QA-14145]

[Ref. QA-6684]

[Ref. QA-1072]

Parallel messages (with teoz)

You can use the & teoz command to display parallel messages:

(See also Teoz architecture)

Style for Solid Lifeline

By default

Solid Lifeline using style

[Ref. GH-2266 and GH-2662]