Mermaid記法 | シーケンス図を描く
- 2023.02.24
- 開発系

みなさんこんにちは!
今回は前回の内容に続いて、Mermaid記法を用いた「シーケンス図」の例を紹介します。
公式が公開しているドキュメントは以下からご覧いただけます。↓
シーケンス図とは?
シーケンス図とは、システムの概要・仕様・処理の流れを記載した図のことです。
オブジェクト指向のソフトウェア設計においては、グローバルスタンダードの設計手法と言っても過言ではありません。
シーケンス図を使うメリットは、以下のようなものがあります。
- クラスやオブジェクト間のメッセージや相互作用を時系列で表すことができます
- システムの動作や振る舞いを分かりやすく可視化できます
- 設計時に不具合や問題点を発見しやすくなります
- プログラミングやテストに役立ちます
サンプルを見てみる
前回の記事と同じくNotion環境でMermaid記法をプレビューします。
Alice と Bobの会話をシーケンス図に表すと、下図のようになります。
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
Bob-->>Alice: Fine, thank you.

Mermaid記法として、以下のようにも記載できます。
sequenceDiagram
Actor Alice
Actor Bob
Alice->>Bob: Hello Bob, how are you?
Bob-->>Alice: Fine, thank you.

シーケンス図の書き方
シーケンス図では、「sequenceDiagram」というキーワードに続けてコードを記載します。
記載するにあたって必要な要素は以下の通りです。
- 各参加者(アクター)
- メッセージ(イベント)
- ラベル
- 矢印
これらをセミコロン;で区切りながら定義します。
アクター
participant :登場人物です。actorで定義すれば人型で表示されます。(省略も可能)
sequenceDiagram
actor さとし
actor たけし
actor かおり
さとし->>たけし:こんにちは!
さとし->>かおり:こんにちは!
かおり-->>さとし:こんにちは!

線
矢印の線種や終点のマークを定義することができます。
現在サポートされている矢印のタイプは 6 つあります。
タイプ | 説明 |
---|---|
-> | 矢印のない実線 |
–> | 矢印のない点線 |
->> | 矢印付きの実線 |
–>> | 矢印付きの点線 |
-x | 最後に十字がある実線 |
–x | 最後に十字がある点線。 |
-) | 最後に開いた矢印がある実線 (非同期) |
–) | 最後に開いた矢印のある点線 (非同期) |
sequenceDiagram
actor さとし
actor たけし
さとし->>たけし:矢印
さとし->たけし:実線
さとし-->たけし:矢印なし点線
さとし--xたけし:終点がバツ印

アクティベーション と ノート
アクティベーション:稼働(実行)している期間を描画します。
ノート:メモを記載することができます。表記場所のオプションは「over | left of | right of」です。
sequenceDiagram
autonumber
actor 作業者
participant プリンタ
作業者 ->>+プリンタ:印刷指示
プリンタ -->>-作業者:印刷物出力
Note left of プリンタ:印刷物

サンプル
以下はシーケンス図の例です。autonumberを使うことで、手順に番号を振ることができます。
sequenceDiagram
autonumber
actor A as 作業者
participant B as 装置1
participant C as 装置2
A->>B:電源ON
A->>C:電源ON
loop 1時間に1回発生
A->>+B: 部品セット
B-->>B: 加工
B->>+C: 自動搬送
C-->>C: 加工
C-->>-B: 自動搬送
B-->>-A: 自動搬送
end

まとめ
今回はシーケンス図の書き方について紹介しました。
この記事で紹介しきれていない内容も沢山あるため、興味があるかたは公式ドキュメントをご確認ください。
エラー: データの取得に失敗しました。
-
前の記事
Mermaid記法 | フローチャートを描く 2023.02.24
-
次の記事
Python | 「flask」を使ってWebサーバを立てよう 2023.04.08