ZenUML
シーケンス図は、プロセスが互いにどのように操作し、どのような順序で行われるかを示すインタラクション図です。
MermaidはZenUMLを使用してシーケンス図を描画できます。ZenUMLは、元のシーケンス図とは異なる 構文を使用していることに注意してください。
Code:
構文
参加者
参加者は、ページの最初の例のように暗黙的に定義できます。参加者やアクターは、 図のソーステキストでの出現順に描画されます。場合によっては、最初のメッセージに現れる順序とは異なる参加者を表示したいかもしれません。参加者の出現順序を次のように指定することができます。
Code:
注釈者
テキスト付きの長方形の代わりに記号を使用したい場合は、以下のように参加者を宣言するために注釈者構文を使用できます。
Code:
利用可能な注釈者は以下の通りです:
エイリアス
参加者には便利な識別子と説明的なラベルを持たせることができます。
Code:
メッセージ
メッセージは以下のいずれかです:
- 同期メッセージ
- 非同期メッセージ
- 作成メッセージ
- 応答メッセージ
同期メッセージ
プログラミング言語における同期(ブロッキング)メソッドを考えてみてください。
Code:
非同期メッセージ
プログラミング言語における非同期(ノンブロッキング)メソッドを考えてみてください。 イベントを発火し、その後を忘れます。
Code:
作成メッセージ
オブジェクトを作成するためにnew
キーワードを使用します。
Code:
応答メッセージ
応答メッセージを表現する方法は3つあります:
Code:
3番目の方法@return
はあまり使用されませんが、一レベル上に戻る場合に便利です。
Code:
ネスティング
同期メッセージと作成メッセージは、{}
で自然にネストできます。
Code:
コメント
シーケンス図には// comment
構文でコメントを追加できます。 コメントはメッセージやフラグメントの上に描画されます。他の場所のコメントは無視されます。Markdownがサポートされています。
以下の例を見てください:
Code:
ループ
ZenUML図ではループを表現することができます。これは以下のいずれかの記法で行います:
- while
- for
- forEach, foreach
- loop
while(condition) {
...statements...
}
以下の例を見てください:
Code:
Alt
シーケンス図で代替の経路を表現することができます。これは以下の記法で行います。
if(condition1) {
...statements...
} else if(condition2) {
...statements...
} else {
...statements...
}
以下の例を見てください:
Code:
Opt
opt
フラグメントを描画することができます。これは以下の記法で行います。
opt {
...statements...
}
以下の例を見てください:
Code:
並行
並行して行われるアクションを示すことができます。
これは以下の記法で行います。
par {
statement1
statement2
statement3
}
以下の例を見てください:
Code:
Try/Catch/Finally (Break)
フローの中でシーケンスの停止を示すことができます(通常は例外処理モデルに使用されます)。
これは以下の記法で行います。
try {
...statements...
} catch {
...statements...
} finally {
...statements...
}
以下の例を見てください:
Code:
ライブラリやウェブサイトとの統合
Zenumlは、将来的に変更される可能性のある実験的なレイジーロードおよび非同期レンダリング機能を使用しています。
以下の方法でMermaidを追加し、ZenUML図をウェブページに含めることができます:
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
import zenuml from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml@0.1.0/dist/mermaid-zenuml.esm.min.mjs';
await mermaid.registerExternalDiagrams([zenuml]);
</script>