2013年1月7日月曜日

メッセージ・フロー図

システム・アーキテクチャなどを記述するモデル図を作成する際に困るのが、データ・フローとコントロール・フローの使い分けです。同期処理のみで構成される処理の場合は、データ・フローとコントロール・フローが一致するケースが多くなります。この場合、データ・フローまたはコントロール・フローのどちらか一方を書いておけば十分です。

しかしクラウド・アプリケーションのようにいたるところで非同期処理やバックグラウンド処理があるような場合、データ・フローとコントロール・フローが複雑に交錯することになりますが、両方のフローを線で記述していくと非常に煩雑な図になってしまいます。

この問題に対応するために考案したのがメッセージ・フロー図です。

SimpleModelingのメタモデルの最近の全体像は「MindmapModelingと集合知(7) - クラウド拡張」にありますが、メッセージ・フロー図は図の左側にあります。

2009年ごろから使っていますが、初期のものは「(仮称)クラウド研究会@札幌」にあるような形でした。

気づいたら文法を資料化しないまま随分経ってしまいましたが、2013年のはじめにひと通りまとめておきたいと思います。

文法

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



フロー線の先端部でプッシュ、プルの違いを表現します。また、白抜きの先端はデータフローとコントロールフローの向きが異なることを示します。

個々の詳細説明は後日。

使用例

前出の矢印を使ったロバストネス図は以下になります。



通常のロバストネス図はアクター、バウンダリ、コントロール、エンティティの各オブジェクト間の通信経路のみが分かりますが、メッセージフロー図の矢印記号を使うことで、(慣れれば)データ・フローとコントロール・フローをひと目で把握することができます。