セマンティック・メッセージフロー図

浅海 智晴 Created: 2025-11-17

セマンティック・メッセージフロー図は、制御フローとデータフローを単一のフロー記号で統合的に表現するための図法です。システム内部の振る舞いと情報伝播の両面を一つの因果線で示し、アーキテクチャ記述やロバストネス図の拡張などに利用できます。

セマンティック・メッセージフロー図

システム・アーキテクチャなどを記述するモデル図を作成する際に困るのが、制御フローとデータフローの取り扱いです。データを取得するというフローの場合、制御フローとデータフローの矢印の向きが逆になってしまいます。

そこで、SimpleModelingでは制御フローとデータフローを共存させることができる図としてセマンティック・メッセージフロー図を考案しました。略称はメッセージフロー図です。

この図を用いることで、以下の情報を記述することができます。

  • 制御とデータの方向

  • 同期・非同期

  • プッシュとプル

  • 論理フローと物理フローの差異

  • キャッシュや同期などの情報構造

本図法はSimpleModeling.orgの記事やモデル解説で必要に応じて使用していきます。

文法

メッセージフロー図ではノードは任意の図形を用います。

メッセージ・フロー図で使用するフロー線の文法です。

文法
図 1. 文法

線の意味

  • 実線 : 同期を示します。制御移行後に送信先の処理が完了するのを待ち合わせます。

  • 破線 : 非同期を示します。

制御フロー

  • 送信先 : 線矢印(→)

  • 送信元 : 記号なし

データ送信を伴わない制御のフローです。パラメタや軽量な情報の受け渡しは可能ですが、メインの意味は制御の移譲です。

実線の場合は同期型、破線の場合は非同期型を示します。

データ・プッシュ

  • 送信先 : 黒矢印(▶)

  • 送信元 : 記号なし

送信側からデータを能動的に押し出す(push)場合のフローです。

実線の場合は同期型、破線の場合は非同期型を示します。

データ・プル

  • 送信先 : 線矢印(→)

  • 送信元 : 白矢印(▷)

送信元の主導で、送信先にあるデータを受信(pull)します。このため、制御とデータの方向が反転します。

データ・プッシュ・プル

  • 送信先 : 黒矢印(▶)

  • 送信元 : 白矢印(▷)

送信元主導でデータの送信・受信を両方行う場合に使用します。問い合わせと結果の同時交換などが該当します。

スマート・プッシュ

  • 送信先 : 記号なし

  • 送信元 : 白矢印(▷)

論理的には送信元から送信先にデータを送る構造ですが、実際の物理サイクルは送信先によるポーリングで行われます。キャッシュ更新や非同期バックグラウンド処理に対応できます。

同期

  • データ1 : 黒丸(●)

  • データ2 : 黒丸(●)

2つのデータが動作基盤によって同期が取られていることを示します。マスタとレプリカの同期、分散状態の調停などに利用できます。

キャッシュ

  • データ・マスター : 黒丸(●)

  • データ・キャッシュ : 白丸(○)

マスターの情報がローカル・キャッシュにキャッシュされる構造になっていることを示します。

使用例

📄 AI協調のためのBoK生成アーキテクチャ で使用した以下の図「生成AIリファレンス・アーキテクチャ (Generative AI Reference Architecture)」はセマンティクス・メッセージ・フロー図を使用していました。

セマンティク・メッセージフロー図の使用例
図 2. セマンティク・メッセージフロー図の使用例

セマンティク・メッセージフロー記法

既存のUML (Unified Modeling Language)の図にセマンティク・メッセージフロー図の接続線の記法であるセマンティック・メッセージフロー記法を適用すると図の記述力が向上します。

例えばロバストネス図に適用するのは有力です。通常のロバストネス図はアクター、バウンダリ、コントロール、エンティティの各オブジェクト間の通信経路のみが分かりますが、メッセージフロー図の矢印記号を使うことで、制御の流れに加えてデータの流れも一目で把握することができます。

セマンティク・メッセージフロー記法の例
図 3. セマンティク・メッセージフロー記法の例

参照

用語集

セマンティック・メッセージフロー図 (Semantic Message Flow Diagram, メッセージフロー図)

制御の方向とデータの方向を単一の接続線で統合し、プロセス・エンティティ・イベント間の意味的な情報流を可視化する図。各接続線(message flow)は、動作の契機(制御)と情報の伝達(データ)を同時に表し、行為・情報・状態変化の意味的因果構造を表現する。

セマンティック・メッセージフロー記法 (Semantic Message Flow Notation, メッセージフロー記法)

制御フローとデータフローを単一の接続線で統合し、プロセス・エンティティ・イベント間の意味的な情報流を表現するための接続線記法。各接続線は動作の契機(制御)と情報の伝達(データ)を同時に表し、行為・情報・状態変化の意味的因果構造を表現する。

生成AIリファレンス・アーキテクチャ (Generative AI Reference Architecture)

生成AIが内部で実行する知識活性化・内化・表現・昇格・循環の構造を整理したアーキテクチャ。

UML (Unified Modeling Language)

オブジェクト指向分析・設計のための統一モデリング言語。クラス図、シーケンス図、ユースケース図などを通じてシステム構造と動作を表現する。UPおよびCBDの基盤言語。